ZPPRP025

*&---------------------------------------------------------------------*
*& Report ZTEST003
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ZPPRP025.

INCLUDE ZPPRP025TOP.
INCLUDE ZPPRP025A01.
INCLUDE ZPPRP025ALV.

INITIALIZATION.
AT SELECTION-SCREEN OUTPUT.
AT SELECTION-SCREEN.










START-OF-SELECTION.
  PERFORM FRM_GETDATA.
  GS_LAYOUT-CWIDTH_OPT = 'X'.
  GS_LAYOUT-CWIDTH_OPT = 'X'.
  GS_LAYOUT-STYLEFNAME = 'FIELD_STYLE'.
  PERFORM FIELDS_BUILD CHANGING  IT_FIELDCAT[].
  PERFORM ALV_SHOW. "展示alv"
END-OF-SELECTION.










*======================================================================*
*  List Events
*======================================================================*
*** page header
TOP-OF-PAGE.

*** page header after first list
TOP-OF-PAGE DURING LINE-SELECTION.

*** page footer
END-OF-PAGE.

*** when double click
AT LINE-SELECTION.
*&---------------------------------------------------------------------*
*& 包含               ZTEST003TOP
*&---------------------------------------------------------------------*

TABLES: MARC,MARA,MKAL,MAKT.
DATA: BEGIN OF WTAB,
  WERKS LIKE MARC-WERKS,"工厂"
  MATNR LIKE MARA-MATNR,"物料"
  MAKTX LIKE MAKT-MAKTX,"物料描述"
  ADATU LIKE MKAL-ADATU,"生效日期"
  BDATU LIKE MKAL-BDATU,"截止日期"
  VERID LIKE MKAL-VERID,"生产版本"
  TEXT1 LIKE MKAL-TEXT1,"生产版本的短文本"
  ERSDA LIKE MARA-ERSDA,"创建日期"
  STLAL LIKE MKAL-STLAL,"可选的 BOM"
  STLAN LIKE MKAL-STLAN,"BOM 用途"
  END OF WTAB.

DATA: ITAB LIKE TABLE OF WTAB WITH HEADER LINE.

DATA: IT_FIELDCAT TYPE TABLE OF LVC_S_FCAT WITH HEADER LINE,GS_LAYOUT TYPE LVC_S_LAYO.

SELECTION-SCREEN BEGIN OF BLOCK BLK_1 WITH FRAME TITLE TEXT-001.
  PARAMETER:
    P_WERKS LIKE MARC-WERKS OBLIGATORY MEMORY ID KUN.
  SELECT-OPTIONS:
    P_MATNR FOR MARA-MATNR,"物料编号"
    P_ADATU FOR MKAL-ADATU,"生效日期"
    P_BDATU FOR MKAL-BDATU"截止日期"
    .
SELECTION-SCREEN END OF BLOCK BLK_1.
*&---------------------------------------------------------------------*
*& 包含               ZTEST003A01
*&---------------------------------------------------------------------*

FORM FRM_GETDATA.
*  break-point.

  SELECT
  DISTINCT
  MARC~WERKS"工厂"
  MARA~MATNR"物料"
  MAKT~MAKTX"物料描述"
  MKAL~ADATU"生效日期"
  MKAL~BDATU"截止日期"
  MKAL~VERID"生产版本"
  MKAL~TEXT1"生产版本的短文本"
  MARA~ERSDA"创建日期"
  MKAL~STLAL"可选的 BOM"
  MKAL~STLAN"BOM 用途"

  INTO CORRESPONDING FIELDS OF TABLE ITAB

  FROM MARA
  INNER JOIN MAKT ON MARA~MATNR = MAKT~MATNR
  INNER JOIN MARC ON MARA~MATNR = MARC~MATNR
   LEFT JOIN MKAL ON MARA~MATNR = MKAL~MATNR

  WHERE
          MARC~WERKS  = P_WERKS"工厂"
      AND MARA~MATNR IN P_MATNR"物料编号"
*      AND MKAL~ADATU IN P_ADATU"生效日期"
*      AND MKAL~BDATU IN P_BDATU"截止日期"
    .

  IF SY-SUBRC IS NOT INITIAL.
    MESSAGE '没有数据' TYPE 'I'.
    STOP.
  ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*& 包含               ZTEST003ALV
*&---------------------------------------------------------------------*

FORM SET_STATUS USING RT_EXTAB TYPE SLIS_T_EXTAB.
  SET PF-STATUS 'ZTEST003STATUS' EXCLUDING RT_EXTAB .
ENDFORM.

FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM
  RS_SELFIELD TYPE SLIS_SELFIELD.
  DATA: LR_GRID TYPE REF TO CL_GUI_ALV_GRID.
  DATA: L_VALID TYPE C.
  CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
    IMPORTING
      E_GRID = LR_GRID.
  CALL METHOD LR_GRID->CHECK_CHANGED_DATA.
  RS_SELFIELD-REFRESH = 'X'.
  READ TABLE  ITAB  INDEX rs_selfield-tabindex.
ENDFORM.


FORM FIELDS_BUILD CHANGING  M_FIELDCAT TYPE LVC_T_FCAT.
  PERFORM FRM_FIELDCAT_INIT TABLES M_FIELDCAT USING 'WERKS' '工厂' '' '' '' '' '' '' '' ''  .
  PERFORM FRM_FIELDCAT_INIT TABLES M_FIELDCAT USING 'MATNR' '物料' '' '' '' '' '' '' '' ''  .
  PERFORM FRM_FIELDCAT_INIT TABLES M_FIELDCAT USING 'MAKTX' '物料描述' '' '' '' '' '' '' '' ''  .
  PERFORM FRM_FIELDCAT_INIT TABLES M_FIELDCAT USING 'ADATU' '生效日期' '' '' '' '' '' '' '' ''  .
  PERFORM FRM_FIELDCAT_INIT TABLES M_FIELDCAT USING 'BDATU' '截止日期' '' '' '' '' '' '' '' ''  .
  PERFORM FRM_FIELDCAT_INIT TABLES M_FIELDCAT USING 'VERID' '生产版本' '' '' '' '' '' '' '' ''  .
  PERFORM FRM_FIELDCAT_INIT TABLES M_FIELDCAT USING 'TEXT1' '生产版本的短文本' '' '' '' '' '' '' '' ''  .
  PERFORM FRM_FIELDCAT_INIT TABLES M_FIELDCAT USING 'ERSDA' '创建日期' '' '' '' '' '' '' '' ''  .
  PERFORM FRM_FIELDCAT_INIT TABLES M_FIELDCAT USING 'STLAL' '可选的 BOM' '' '' '' '' '' '' '' ''  .
  PERFORM FRM_FIELDCAT_INIT TABLES M_FIELDCAT USING 'STLAN' 'BOM 用途' '' '' '' '' '' '' '' ''  .
ENDFORM.



FORM FRM_FIELDCAT_INIT TABLES T_FIELDCAT TYPE LVC_T_FCAT
                       USING FIELDNAME TYPE C           " 字段名
                             SCRTEXT_M TYPE C           " 标题
                             COL_POS   TYPE I           " 所在列
                             OUTPUTLEN TYPE I           " 输出长度
                             EMPHASIZE TYPE C           " 高亮显示
                             KEY       TYPE C           " 主键
                             CHECKBOX  TYPE C
                             EDIT      TYPE C
                             FIX_COLUMN TYPE C          " 固定列
                             NO_ZERO   TYPE C.
  DATA: LS_FIELDCAT TYPE LVC_S_FCAT.
  LS_FIELDCAT-FIELDNAME   = FIELDNAME.
  LS_FIELDCAT-SCRTEXT_M   = SCRTEXT_M.
  LS_FIELDCAT-COL_POS     = COL_POS.
  LS_FIELDCAT-OUTPUTLEN   = OUTPUTLEN.
  LS_FIELDCAT-EMPHASIZE   = EMPHASIZE.
  LS_FIELDCAT-KEY         = KEY.
  LS_FIELDCAT-CHECKBOX    = CHECKBOX.
  LS_FIELDCAT-EDIT        = EDIT.
  LS_FIELDCAT-FIX_COLUMN  = FIX_COLUMN.
  LS_FIELDCAT-NO_ZERO     = NO_ZERO.
  APPEND LS_FIELDCAT TO T_FIELDCAT.
  CLEAR  LS_FIELDCAT.
ENDFORM.



FORM ALV_SHOW.
  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
    EXPORTING
      I_CALLBACK_PROGRAM       = SY-CPROG        " /SY-REPID  " 程式名称
      I_CALLBACK_PF_STATUS_SET = 'SET_STATUS'    "GUI状态
      I_CALLBACK_USER_COMMAND  = 'USER_COMMAND'  " 自定义工具栏的事件
      IT_FIELDCAT_LVC          = IT_FIELDCAT[]   " 必须要设置的参数 , 设定输出目录
      IS_LAYOUT_LVC            = GS_LAYOUT       " 对输出样式的设定
    TABLES
      T_OUTTAB                 = ITAB            "ALV 输出的内表
    EXCEPTIONS
      PROGRAM_ERROR            = 1
      OTHERS.
ENDFORM.




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值