销售订单需求传递报表

S_BSTKD 合同编号
S_EDATU 销售要求交货日期 
S_KUNNR 客户编号
S_LFGSA 是否完全出货
S_MATNR 物料号 
S_VBELN 销售订单号
S_VKBUR 销售办公室
________ ______________________________
________ ______________________________
report  
zsd_r_11.

include zsd_r_11top.
include zsd_r_11form .
include zsd_r_11ui .


initialization.
  perform layout_init    using g_layout_s.    "ALV GRID LAYOUT
  perform eventtab_build using g_events_t[].  "ALV GRID EVENT

start-of-selection.
  perform get_data.

  if sy-subrc 0.
    perform displaycatalog_merge1 using g_fieldcat_t[] 'ITAB'.
    perform alv_display tables itab[].
  else.
    write'NO DATA'.
  endif.

*******************************************************************************
*&---------------------------------------------------------------------*
*&  Include           ZSD_R_11FORM
*&---------------------------------------------------------------------*
*&--------------------------------------------------------------------*
*&      Form  GET_DATA
*&--------------------------------------------------------------------*
*       text
*---------------------------------------------------------------------*
form get_data.
  select distinct vbap~vbeln vbap~posnr vbap~matnr vbap~arktx vbap~netwr
vbap~kwmeng vbap~bedae vbep~ettyp vbep~edatu vbup~lfgsa vbak~kunnr
vbkd~bstkd t171t~bztxt
 into corresponding fields of table itab
    from vbak inner join vbap on vbak~vbeln vbap~vbeln
       inner join vbkd on vbak~vbeln vbkd~vbeln
       inner join vbep on vbap~vbeln vbep~vbeln and vbap~posnr vbep~posnr
       inner join vbup on vbup~vbeln vbap~vbeln and vbup~posnr vbap~posnr
       left join t171t on t171t~bzirk vbkd~bzirk
    where vbap~vbeln in s_vbeln
     and  vbep~etenr 0001
     and  vbap~matnr in s_matnr
     and  vbep~edatu in s_edatu
     and  vbup~lfgsa in s_lfgsa
     and  vbak~vkbur in s_vkbur
     and  vbak~kunnr in s_kunnr
     and  vbkd~bstkd in s_bstkd
     and  vbep~ettyp <> 'CD'
     and  vbep~ettyp <> 'DN'
     and  vbep~ettyp <> 'BN'.
  loop at itab.
  select single vbelv into itab-vbelv
   from vbfa
   where vbfa~vbeln itab-vbeln.
  modify itab.
  endloop.
  loop at itab.
    if itab-bedae 'KSV'.
      itab-char '不需要'.
      modify itab.
      clear itab1.
    else.
      select single stlan into itab1-stlan
      from kdst
      where vbeln itab-vbeln
      and   vbpos itab-posnr
      and   matnr itab-matnr.

      if itab1-stlan <> ''.
        itab-char '已存在'.
        modify itab.
        clear itab1.
      else.
        itab-char '需维护'.
        modify itab.
        clear itab1.
      endif.
    endif.
  endloop.
  perform get_lflist.
endform.                    "GET_DATA

*得到出货明细
form get_lflist .
  select lips~vgbel as vbeln lips~vgpos as posnr lfimg likp~wadat_ist
     into corresponding fields of table itab_lflist
     from lips
     inner join likp on lips~vbeln likp~vbeln
     inner join vbuk on lips~vbeln vbuk~vbeln
     for all entries in itab
     where lips~vgbel itab-vbeln
       and lips~vgpos itab-posnr
       and vbuk~wbstk 'C'
       .
  loop at itab .
    loop at itab_lflist into wa_lflist where vbeln itab-vbeln and posnr itab-posnr .
      itab-lfimg itab-lfimg + wa_lflist-lfimg .
      itab-lfamount itab-lfamount + wa_lflist-lfimg / itab-kwmeng * itab-netwr .
      if itab-wadat_ist < wa_lflist-wadat_ist or itab-wadat_ist is initial .
         itab-wadat_ist wa_lflist-wadat_ist .
      endif .
    endloop .
    modify itab .
  endloop .
endform .                    "GET_LFLIST

**************************************************************************************
*&---------------------------------------------------------------------*
*&  Include           ZSD_R_11TOP
*&---------------------------------------------------------------------*
type-pools slis.
typesslis_t_fieldcat_alv type slis_fieldcat_alv occurs 1.
data g_events_t               type slis_t_event,
       g_fieldcat_t             type slis_t_fieldcat_alv.
data g_layout_s               type slis_layout_alv.

datal_fieldcat_s  type slis_fieldcat_alv.

define __field_tab.
  l_fieldcat_s-seltext_l     &1.
  l_fieldcat_s-seltext_m     &1.
  l_fieldcat_s-seltext_s     &1.
  l_fieldcat_s-ddictxt       ' '.
end-of-definition.

tablesvbak,vbap,vbup,marc,vbep,kdst,vbkd,t171t,makt.

databegin of itab occurs 0,
      vbeln like vbap-vbeln,
      posnr like vbap-posnr,
      matnr like vbap-matnr,
      arktx like makt-maktx,
      kwmeng like vbap-kwmeng,
      netwr like vbap-netwr,
      lfimg  like lips-lfimg ,
      lfamount like vbap-netwr ,
      wadat_ist like likp-wadat_ist ,
      bedae  like vbap-bedae,
*      DISGR like marc-DISGR,
      ettyp like vbep-ettyp,
      char(10type ,
      edatu like vbep-edatu,
*      char1(10) type c,
      lfgsa like vbup-lfgsa,
      kunnr like vbak-kunnr,
      bstkd like vbkd-bstkd,
      bztxt like t171t-bztxt,
      vbelv like vbfa-vbelv,
   end of itab.

databegin of itab1 occurs 0,
       stlan like kdst-stlan,
      end of itab1.
*出货明细
typesbegin of s_lflist ,
   vbeln like vbak-vbeln,"订单号
   posnr like vbap-posnr,"行项目号
   lfimg like lips-lfimg,"交货数量
   wadat_ist like likp-wadat_ist,"实际货物移动日期
   end of s_lflist .
data:itab_lflist type standard table of s_lflist with key vbeln posnr,
      wa_lflist like line of itab_lflist .

selection-screen begin of block bl1 with frame title text-bl1 .
select-options:s_vbeln for vbap-vbeln.
select-options:s_matnr for vbap-matnr.
select-options:s_edatu for vbep-edatu.
select-options:s_lfgsa for vbup-lfgsa.
select-options:s_vkbur for vbak-vkbur.
select-options:s_kunnr for vbak-kunnr.
select-options:s_bstkd for vbkd-bstkd.
selection-screen end of block bl1.

*****************************************************************************************
*&---------------------------------------------------------------------*
*&  Include           ZSD_R_11UI
*&---------------------------------------------------------------------*
*&--------------------------------------------------------------------*
*&      Form  LAYOUT_INIT
*&--------------------------------------------------------------------*
*       text
*---------------------------------------------------------------------*
*      -->P_G_LAYOUT_text
*---------------------------------------------------------------------*
form layout_init using    p_g_layout_s type slis_layout_alv.
** Build layout for list display
  p_g_layout_s-detail_popup         'X'.
  p_g_layout_s-colwidth_optimize    'X'.
endform.                    " LAYOUT_INIT

*--------------------------------------------------------------------
*       FORM EVENTTAB_BUILD
*--------------------------------------------------------------------
form eventtab_build using  p_g_events_t  type slis_t_event.
** Registration of events to happen during list display
  datal_event type slis_alv_event.
*
  call function 'REUSE_ALV_EVENTS_GET'
    exporting
      i_list_type 0
    importing
      et_events   p_g_events_t.
* GUI STATUS
  read table p_g_events_t with key name slis_ev_pf_status_set
                          into l_event.
  if sy-subrc eq 0.
    move 'PF_STATUS_SET' to l_event-form.
    append l_event      to p_g_events_t.
  endif.
endform.                    " EVENTTAB_BUILD

*--------------------------------------------------------------------
*       FORM ALV_DISPLAY
*--------------------------------------------------------------------
form alv_display tables p_int_t.
  call function 'REUSE_ALV_GRID_DISPLAY'
       exporting
*         I_BACKGROUND_ID    = 'ALV_BACKGROUND'
          i_callback_program 'ZRSD0008' "G_REPID
*          I_CALLBACK_PF_STATUS_SET = 'PF_STATUS_SET'
*         I_CALLBACK_USER_COMMAND  = 'USER_COMMAND'
          is_layout          g_layout_s
          it_fieldcat        g_fieldcat_t[]
          i_save                   'A'
*      IMPORTING
*         E_EXIT_CAUSED_BY_CALLER = G_EXIT_CAUSED_BY_CALLER
*         ES_EXIT_CAUSED_BY_USER  = G_EXIT_CAUSED_BY_USER_S
       tables
          t_outtab p_int_t
       exceptions
          program_error 1
          others        2.

endform.                    " ALV_DISPLAY


*&--------------------------------------------------------------------*
*&      Form  DISPLAYCATALOG_MERGE1
*&--------------------------------------------------------------------*
*       text
*---------------------------------------------------------------------*
*      -->对应汇总表
*      -->P_TABNAME  text
*---------------------------------------------------------------------*
form displaycatalog_merge1 using p_g_fieldcat_t
                                type slis_t_fieldcat_alv
                                p_tabname.

  clear l_fieldcat_s.
  l_fieldcat_s-fieldname 'VBELN'.
  l_fieldcat_s-seltext_m '销售订单号'.
  l_fieldcat_s-fix_column 'X' .
  l_fieldcat_s-emphasize 'X'.
  append l_fieldcat_s to p_g_fieldcat_t.

  l_fieldcat_s-fieldname 'POSNR'.
  l_fieldcat_s-seltext_m '行项目'.
  append l_fieldcat_s to p_g_fieldcat_t.

  l_fieldcat_s-fieldname 'MATNR'.
  l_fieldcat_s-seltext_m '物料号'.
  l_fieldcat_s-ref_tabname    'MARA'.
  append l_fieldcat_s to p_g_fieldcat_t.

  l_fieldcat_s-fieldname 'ARKTX'.
  l_fieldcat_s-seltext_m '物料描述'.
  append l_fieldcat_s to p_g_fieldcat_t.

  clear l_fieldcat_s .

  l_fieldcat_s-fieldname 'KWMENG'.
  l_fieldcat_s-seltext_m '数量'.
  append l_fieldcat_s to p_g_fieldcat_t.

  l_fieldcat_s-fieldname 'BEDAE'.
  l_fieldcat_s-seltext_m '需求类型'.
  append l_fieldcat_s to p_g_fieldcat_t.

  l_fieldcat_s-fieldname 'ETTYP'.
  l_fieldcat_s-seltext_m '需求传递'.
  append l_fieldcat_s to p_g_fieldcat_t.

  l_fieldcat_s-fieldname 'CHAR'.
  l_fieldcat_s-seltext_m '是否存在销售订单BOM'.
  append l_fieldcat_s to p_g_fieldcat_t.

  l_fieldcat_s-fieldname 'EDATU'.
  l_fieldcat_s-seltext_m '需求日期'.
  append l_fieldcat_s to p_g_fieldcat_t.

  l_fieldcat_s-fieldname 'LFGSA'.
  l_fieldcat_s-seltext_m '是否完全发货'.
  append l_fieldcat_s to p_g_fieldcat_t.

  l_fieldcat_s-fieldname 'KUNNR'.
  l_fieldcat_s-seltext_m '客户编号'.
   l_fieldcat_s-ref_tabname    'KNA1'.
  append l_fieldcat_s to p_g_fieldcat_t.

  l_fieldcat_s-fieldname 'BSTKD'.
  l_fieldcat_s-seltext_m '合同号'.
  append l_fieldcat_s to p_g_fieldcat_t.


  l_fieldcat_s-fieldname 'BZTXT'.
  l_fieldcat_s-seltext_m '销售地区'.
  append l_fieldcat_s to p_g_fieldcat_t.

  l_fieldcat_s-fieldname 'VBELV'.
  l_fieldcat_s-seltext_m '合同/报价号'.
  append l_fieldcat_s to p_g_fieldcat_t.

  l_fieldcat_s-fieldname 'LFIMG'.
  l_fieldcat_s-seltext_m '出货数量'.
  append l_fieldcat_s to p_g_fieldcat_t.

  l_fieldcat_s-fieldname 'LFAMOUNT'.
  l_fieldcat_s-seltext_m '出货金额'.
  append l_fieldcat_s to p_g_fieldcat_t.

  l_fieldcat_s-fieldname 'WADAT_IST'.
  l_fieldcat_s-seltext_m '出货日期'.
  append l_fieldcat_s to p_g_fieldcat_t.
endform.  " FIELDCATALOG_MERGE

请使用浏览器的分享功能分享到微信等