订单BOM

REPORT  zr_ddbom.

TABLES : rc29k,afko,plpo,afpo,aufk,resb.

TYPE-POOLS slis.
DATA:   wf_fieldcat        TYPE slis_t_fieldcat_alv WITH HEADER LINE .
DATA:   ws_fieldcat        TYPE slis_t_fieldcat_alv WITH HEADER LINE .
DATA:   ws_fieldgroups_tab TYPE slis_t_sp_group_alv .
DATA:   ws_sortfields_tab  TYPE slis_t_sortinfo_alv WITH HEADER  LINE .
DATA:   wf_layout          TYPE slis_layout_alv  .
DATA    i_repid LIKE sy-repid.
i_repid = sy-repid.

DATA : BEGIN OF itab OCCURS 0 ,
        matnr LIKE rc29k-matnr ,
        maktx LIKE makt-maktx  ,
        psmng LIKE rc29p-menge ,
        meins LIKE mseg-meins  ,
       END OF itab .

SELECTION-SCREEN BEGIN OF BLOCK ot WITH FRAME. TITLE text-001.
PARAMETERS : p_werks LIKE rc29k-werks OBLIGATORY DEFAULT 1855.
SELECT-OPTIONS : p_aufnr FOR  afko-aufnr .
*  scrcnt type i no-display.
SELECTION-SCREEN END OF BLOCK ot.

INITIALIZATION.

START-OF-SELECTION.
  PERFORM. get_data ."获得物料和数量
  PERFORM. init_fieldcat ."初始化ALV
  PERFORM. show_data ."ALV显示数据

 

END-OF-SELECTION.


*&---------------------------------------------------------------------*
*&      Form  GET_DATA
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM. get_data.
  SELECT  resb~matnr makt~maktx resb~meins  SUM( resb~bdmng ) AS psmng
  APPENDING CORRESPONDING FIELDS OF TABLE itab
  FROM afko
  INNER JOIN resb ON resb~rsnum = afko~rsnum
  INNER JOIN aufk ON aufk~aufnr = afko~aufnr
  INNER JOIN makt ON makt~matnr = resb~matnr
   WHERE
  NOT EXISTS ( SELECT objnr FROM jest  WHERE bjnr = aufk~objnr  AND
  inact = ''   AND stat IN ('I0523','I0013','I0076','I0560' ) ) AND
    afko~aufnr IN p_aufnr AND aufk~werks = p_werks AND resb~dumps =  ''
   AND makt~spras = sy-langu AND resb~xloek = ''
   GROUP BY  resb~matnr  makt~maktx resb~meins.
*'I0523','I0013','I0076','I0560'
*dltd,dlt,dlid,deld删除

ENDFORM.                    "GET_DATA
*&---------------------------------------------------------------------*
*&      Form  init_fieldcat
*&---------------------------------------------------------------------*
FORM. init_fieldcat .
  CLEAR wf_fieldcat[].
  PERFORM. alv_field_column USING wf_fieldcat[] 'MATNR' '物料编码' 'CHAR' '8'.
  PERFORM. alv_field_column USING wf_fieldcat[] 'MAKTX' '物料描述' 'CHAR' '25'.
  PERFORM. alv_field_column USING wf_fieldcat[] 'PSMNG' '需求数量' 'CURR' '8'.
  PERFORM. alv_field_column USING wf_fieldcat[] 'MEINS' '单位' 'CHAR' '8' .
ENDFORM.                    " init_fieldcat

*&---------------------------------------------------------------------*
*&      Form  alv_field_column
*&---------------------------------------------------------------------*
FORM. alv_field_column  USING lt_fieldcat  TYPE slis_t_fieldcat_alv
                                         value(p_fieldname)
                                         value(p_seltext_l)
                                         value(p_datatype)
                                         value(p_outputlen).

  DATA: ls_fieldcat TYPE slis_fieldcat_alv.
  CLEAR ls_fieldcat.

  ls_fieldcat-fieldname = p_fieldname.
  ls_fieldcat-seltext_l = p_seltext_l.
  ls_fieldcat-datatype  = p_datatype.
  ls_fieldcat-outputlen = p_outputlen.
  ls_fieldcat-no_zero   = ''.
*    ls_fieldcat-reprep = 'X'.
  ls_fieldcat-edit = 'X'.
  APPEND ls_fieldcat TO lt_fieldcat.

ENDFORM.                    " alv_field_column
*&---------------------------------------------------------------------*
*&      Form  show_data
*&---------------------------------------------------------------------*
FORM. show_data .

  SORT itab BY matnr.

  wf_layout-colwidth_optimize = 'X' .
*     wf_layout-detail_initial_lines = 'X'.
*     wf_layout-coltab_fieldname = 'COLOR'.

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      i_callback_program      = i_repid
*      i_callback_user_command = g_command
      is_layout               = wf_layout
      it_fieldcat             = wf_fieldcat[]
*      i_grid_title            = title
    TABLES
      t_outtab                = itab
    EXCEPTIONS
      program_error           = 1
      OTHERS                  = 2.

ENDFORM.                    " show_data

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9394055/viewspace-604959/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/9394055/viewspace-604959/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值