物料价格分析取未分摊和未分配价格差异

物料价格分析的事务码是:CKM3和CKMVFM 

 

*&---------------------------------------------------------------------*
*& Report  ZTEST
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  ZTEST.
TYPE-POOLSSLIS.
DATAI_FIELDCAT_ALV TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,
          I_LAYOUT   TYPE SLIS_LAYOUT_ALV,   "alv的格式
          I_FIELDCAT TYPE SLIS_FIELDCAT_ALV,
          TMP_TITLE(70),
          W_REPID   LIKE SY-REPID.
**---------------------------------------------------------------------*
*** Types
**---------------------------------------------------------------------*
DATA :  POS TYPE I,
        LW_TITLE(150TYPE C,
        S_mat TYPE CKMLHD-MATNR.
*选择屏幕
data:BEGIN OF itab OCCURS 0,
      matnr like mara-matnr,
      KALNR like CKMLHD-kalnr,
      BDATJ like ckmlcr-bdatj,
      POPER like ckmlcr-poper,
      VNPRD_EA like ckmlcr-VNPRD_EA,
      vnprd_ma like ckmlcr-vnprd_ma,
   ABPRD_O  LIKE CKMLCR-ABPRD_O,
   ZUPRD_O  LIKE CKMLCR-ZUPRD_O,
   EBPRD_EA  LIKE CKMLCR-EBPRD_EA,
     ABPRD_mO  LIKE CKMLCR-ABPRD_mO,
   ZUPRD_mO  LIKE CKMLCR-ZUPRD_mO,
   EBPRD_mA  LIKE CKMLCR-EBPRD_mA,
      ESTPRD like mlcd-ESTPRD,
      mstprd like mlcd-mstprd,
      testprd like mlcd-estprd,
      WFPCY  LIKE CKMLCR-ABPRD_O,
end of itab.
SELECTION-SCREEN BEGIN OF BLOCK BLK1 WITH FRAME TITLE TEXT-001.
SELECTION-SCREEN SKIP.
PARAMETERS P_BDATJ  LIKE CKMLCR-BDATJ OBLIGATORY DEFAULT '2011'.
SELECTION-SCREEN SKIP.
PARAMETERSP_POPER LIKE CKMLCR-POPER OBLIGATORY DEFAULT '12'.
SELECTION-SCREEN SKIP.
PARAMETERS P_WERKS LIKE CKMLHD-BWKEY OBLIGATORY DEFAULT 'PS01'.
SELECTION-SCREEN SKIP.
SELECT-OPTIONSS_MATNR FOR S_mat.
SELECTION-SCREEN SKIP.
SELECTION-SCREEN END OF BLOCK BLK1.



CONCATENATE  '                                      '  P_BDATJ '年' P_POPER

'月'
'未分配差异表' INTO LW_TITLE.


START-OF-SELECTION.
  PERFORM GETDATA.      "
  PERFORM LAYOUT_BUILD.  "
  PERFORM FIELDS"
  PERFORM DISPLAY_DATA"
*&---------------------------------------------------------------------*
*&      Form  getdata
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM GETDATA.
  select CKMLHD~matnr
      CKMLHD~KALNR
      ckmlcr~BDATJ
      ckmlcr~POPER
      ckmlcr~VNPRD_EA
      ckmlcr~vnprd_ma
       ckmlcr~ABPRD_O
       ckmlcr~ZUPRD_O
       ckmlcr~EBPRD_EA
       ckmlcr~ABPRD_mO
       ckmlcr~ZUPRD_mO
       ckmlcr~EBPRD_mA
  INTO CORRESPONDING FIELDS OF TABLE itab
  from ckmlhd
  join ckmlcr on ckmlhd~kalnr ckmlcr~kalnr
  where ckmlhd~matnr in s_matnr
    and ckmlhd~bwkey p_werks
    and ckmlcr~BDATJ p_BDATJ
    and ckmlcr~POPER p_poper.

  loop at itab.
    select sumESTPRD summstprd into (itab-tESTPRD,itab-mstprd)
    from mlcd
    where kalnr itab-kalnr
      and bdatj itab-bdatj
      and poper itab-poper
      and CATEG 'VN'.

    itab-estprd itab-vnprd_ea + itab-vnprd_ma itab-testprd + itab-mstprd ).
    itab-WFPCY itab-EBPRD_EA + + itab-VNPRD_EA itab-ZUPRD_O itab-ABPRD_O
                   + itab-EBPRD_mA + + itab-VNPRD_mA itab-ZUPRD_mO itab-ABPRD_mO.

    modify itab.
  endloop.

ENDFORM.                    "GETDATA
*&---------------------------------------------------------------------*
*&      Form  layout_build
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM LAYOUT_BUILD.
  I_LAYOUT-ZEBRA 'X'.
  I_LAYOUT-DETAIL_POPUP 'X'"
  W_REPID SY-REPID.    "
  I_LAYOUT-F2CODE '&ETA'."
  I_LAYOUT-NO_VLINE             'X'."
  I_LAYOUT-COLWIDTH_OPTIMIZE    'X'"
  I_LAYOUT-DETAIL_INITIAL_LINES 'X'.
  I_LAYOUT-DETAIL_TITLEBAR      '详细内容'."
ENDFORM.                    "layout_build

*&---------------------------------------------------------------------*
*&      Form  fields
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM FIELDS.
  REFRESH I_FIELDCAT_ALV.
  POS 0.
  CLEAR I_FIELDCAT.
  TMP_TITLE LW_TITLE."
  I_FIELDCAT-COL_POS POS.      "
  I_FIELDCAT-FIELDNAME 'MATNR'.
  I_FIELDCAT-SELTEXT_L '物料号'"
  APPEND I_FIELDCAT TO I_FIELDCAT_ALV.
  POS POS + 1.
  I_FIELDCAT-COL_POS       =  POS.
  I_FIELDCAT-FIELDNAME     'WFPCY'.
  I_FIELDCAT-SELTEXT_L     '没有被分摊'.
  APPEND I_FIELDCAT TO  I_FIELDCAT_ALV.
  POS POS + 1.
  I_FIELDCAT-COL_POS       =  POS.
  I_FIELDCAT-FIELDNAME     'ESTPRD'.
  I_FIELDCAT-SELTEXT_L     '未分配价格差异'.
  APPEND I_FIELDCAT TO  I_FIELDCAT_ALV.
  CLEAR I_FIELDCAT.
ENDFORM.                    "fields
*&---------------------------------------------------------------------*
*&      Form  display_data
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM DISPLAY_DATA.
  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      I_CALLBACK_PROGRAM W_REPID   "
      I_SAVE             ''
      IS_LAYOUT          I_LAYOUT  "
      IT_FIELDCAT        I_FIELDCAT_ALV[] "
      I_GRID_TITLE       TMP_TITLE
    TABLES
      T_OUTTAB           itab.  "
ENDFORM.                    "display_data

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值