ZPPRP038

*&---------------------------------------------------------------------*
*& Report ZPPRP038
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ZPPRP038.
INCLUDE ZPPRP038TOP.
INCLUDE ZPPRP038ALV.

INITIALIZATION.

*执行按钮点击事件
START-OF-SELECTION.
  PERFORM FUNC_ITAB_GET_DATA."获取数据
  PERFORM FUNC_ALV_SHOW.     "显示ALV

*&---------------------------------------------------------------------*
*& 包含               ZPPRP038TOP
*&---------------------------------------------------------------------*
TABLES: MARA.

DATA: BEGIN OF COMM_WTAB_001,
        MATNR(18),"   LIKE ZTPP098-MATNR,
        ADDUSER LIKE ZTPP098-ADDUSER,
        ADDDATE LIKE ZTPP098-ADDDATE,
        ADDTIME LIKE ZTPP098-ADDTIME,
        MDFUSER LIKE ZTPP098-MDFUSER,
        MDFDATE LIKE ZTPP098-MDFDATE,
        MDFTIME LIKE ZTPP098-MDFTIME,
        MAKTXID LIKE ZTPP098-MAKTXID,
      END OF COMM_WTAB_001.
DATA: BEGIN OF COMM_WTAB_002,
        MATNR(18),"   LIKE ZTPP098-MATNR,
        ADDUSER LIKE ZTPP098-ADDUSER,
        ADDDATE LIKE ZTPP098-ADDDATE,
        ADDTIME LIKE ZTPP098-ADDTIME,
        MDFUSER LIKE ZTPP098-MDFUSER,
        MDFDATE LIKE ZTPP098-MDFDATE,
        MDFTIME LIKE ZTPP098-MDFTIME,
        MAKTXID LIKE ZTPP098-MAKTXID,
        MAKTX   LIKE MAKT-MAKTX,
      END OF COMM_WTAB_002.

DATA: COMM_ALV_ITAB LIKE TABLE OF COMM_WTAB_002 WITH HEADER LINE.

SELECT-OPTIONS:
    COMM_P_M FOR MARA-MATNR."物料编号"

*&---------------------------------------------------------------------*
*& 包含               ZPPRP038ALV
*&---------------------------------------------------------------------*










*---------------------------------------------------------------------*
*                             ALV字段显示控制
*---------------------------------------------------------------------*
FORM COMM_ALV_FIELD_INIT TABLES FUNC_LVC_T_FCAT TYPE LVC_T_FCAT USING
      FUNC_FIELDNAME  TYPE C            " 字段名
      FUNC_SCRTEXT_M  TYPE C            " 标题
      FUNC_COL_POS    TYPE I            " 所在列
      FUNC_OUTPUTLEN  TYPE I            " 输出长度
      FUNC_EMPHASIZE  TYPE C            " 高亮显示
      FUNC_KEY        TYPE C            " 主键
      FUNC_CHECKBOX   TYPE C            " 显示checkbox
      FUNC_EDIT       TYPE C            " 是否可编辑
      FUNC_FIX_COLUMN TYPE C            " 固定列
      FUNC_NO_ZERO    TYPE C            " 为输出隐藏零
      .

  DATA: FUNC_LVC_S_FCAT TYPE LVC_S_FCAT.
  FUNC_LVC_S_FCAT-FIELDNAME   = FUNC_FIELDNAME.
  FUNC_LVC_S_FCAT-SCRTEXT_M   = FUNC_SCRTEXT_M.
  FUNC_LVC_S_FCAT-COL_POS     = FUNC_COL_POS.
  FUNC_LVC_S_FCAT-OUTPUTLEN   = FUNC_OUTPUTLEN.
  FUNC_LVC_S_FCAT-EMPHASIZE   = FUNC_EMPHASIZE.
  FUNC_LVC_S_FCAT-KEY         = FUNC_KEY.
  FUNC_LVC_S_FCAT-CHECKBOX    = FUNC_CHECKBOX.
  FUNC_LVC_S_FCAT-EDIT        = FUNC_EDIT.
  FUNC_LVC_S_FCAT-FIX_COLUMN  = FUNC_FIX_COLUMN.
  FUNC_LVC_S_FCAT-NO_ZERO     = FUNC_NO_ZERO.

  APPEND FUNC_LVC_S_FCAT TO FUNC_LVC_T_FCAT.
  CLEAR  FUNC_LVC_S_FCAT.
ENDFORM.










*---------------------------------------------------------------------*
*                             绑定按钮
*---------------------------------------------------------------------*
FORM FUNC_ALV_BTN_INIT USING
  FUNC_SLIS_T_EXTAB TYPE SLIS_T_EXTAB
  .

  SET PF-STATUS 'ZPPRP038STATUS'.
ENDFORM.

*---------------------------------------------------------------------*
*                             绑定按钮事件
*---------------------------------------------------------------------*
FORM FUNC_ALV_BTN_EVENT USING
  FUNC_SY_UCOMM LIKE SY-UCOMM
  FUNC_SLIS_SELFIELD TYPE SLIS_SELFIELD
  .

  DATA: FUNC_CL_GUI_ALV_GRID TYPE REF TO CL_GUI_ALV_GRID.

  CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
    IMPORTING
      E_GRID = FUNC_CL_GUI_ALV_GRID.

  CALL METHOD FUNC_CL_GUI_ALV_GRID->CHECK_CHANGED_DATA.

  FUNC_SLIS_SELFIELD-REFRESH = 'X'.

  READ TABLE COMM_ALV_ITAB INDEX FUNC_SLIS_SELFIELD-TABINDEX.

  CLEAR:FUNC_SY_UCOMM.
ENDFORM.

*---------------------------------------------------------------------*
*                             显示ALV
*---------------------------------------------------------------------*
FORM FUNC_ALV_SHOW.
  DATA: FUNC_LVC_S_FCAT TYPE TABLE OF LVC_S_FCAT WITH HEADER LINE."设定输出目录

  DATA: FUNC_LVC_S_LAYO TYPE LVC_S_LAYO."对输出样式的设定
  FUNC_LVC_S_LAYO-CWIDTH_OPT = 'X'.
  FUNC_LVC_S_LAYO-CWIDTH_OPT = 'X'.
  FUNC_LVC_S_LAYO-STYLEFNAME = 'FIELD_STYLE'.

  PERFORM COMM_ALV_FIELD_INIT TABLES FUNC_LVC_S_FCAT USING 'MATNR'   '物料编码'                '' '' '' '' '' '' '' ''.
  PERFORM COMM_ALV_FIELD_INIT TABLES FUNC_LVC_S_FCAT USING 'MAKTX'   '描述长文本'                '' '' '' '' '' '' '' ''.
  PERFORM COMM_ALV_FIELD_INIT TABLES FUNC_LVC_S_FCAT USING 'ADDUSER' '添加人'                '' '' '' '' '' '' '' ''.
  PERFORM COMM_ALV_FIELD_INIT TABLES FUNC_LVC_S_FCAT USING 'ADDDATE' '添加日期'                '' '' '' '' '' '' '' ''.
  PERFORM COMM_ALV_FIELD_INIT TABLES FUNC_LVC_S_FCAT USING 'ADDTIME' '添加时间'                '' '' '' '' '' '' '' ''.
  PERFORM COMM_ALV_FIELD_INIT TABLES FUNC_LVC_S_FCAT USING 'MDFUSER' '修改人'                '' '' '' '' '' '' '' ''.
  PERFORM COMM_ALV_FIELD_INIT TABLES FUNC_LVC_S_FCAT USING 'MDFDATE' '修改日期'                '' '' '' '' '' '' '' ''.
  PERFORM COMM_ALV_FIELD_INIT TABLES FUNC_LVC_S_FCAT USING 'MDFTIME' '修改时间'                '' '' '' '' '' '' '' ''.
  PERFORM COMM_ALV_FIELD_INIT TABLES FUNC_LVC_S_FCAT USING 'MAKTXID' '长文本id'                '' '' '' '' '' '' '' ''.

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
    EXPORTING
      I_CALLBACK_PROGRAM       = SY-CPROG
      I_CALLBACK_PF_STATUS_SET = 'FUNC_ALV_BTN_INIT'        "绑定按钮
      I_CALLBACK_USER_COMMAND  = 'FUNC_ALV_BTN_EVENT'       "自定义工具栏的事件
      IT_FIELDCAT_LVC          = FUNC_LVC_S_FCAT[]
      IS_LAYOUT_LVC            = FUNC_LVC_S_LAYO
    TABLES
      T_OUTTAB                 = COMM_ALV_ITAB              "ALV 输出的内表
    EXCEPTIONS
      PROGRAM_ERROR            = 1
                                 OTHERS.
ENDFORM.

*---------------------------------------------------------------------*
*                             itab赋值
*---------------------------------------------------------------------*
FORM FUNC_ITAB_GET_DATA.
  DATA: FUNC_ITAB LIKE TABLE OF COMM_WTAB_001 WITH HEADER LINE.

  CLEAR: COMM_ALV_ITAB, COMM_ALV_ITAB[], FUNC_ITAB, FUNC_ITAB[].

  DATA: FUNC_TLINES    TYPE STANDARD TABLE OF TLINE WITH HEADER LINE."长文本内容
  DATA: FUNC_TDNAME    TYPE THEAD-TDNAME.

  SELECT
  ZTPP098~MATNR
  ZTPP098~ADDUSER
  ZTPP098~ADDDATE
  ZTPP098~ADDTIME
  ZTPP098~MDFUSER
  ZTPP098~MDFDATE
  ZTPP098~MDFTIME
  ZTPP098~MAKTXID
  INTO CORRESPONDING FIELDS OF TABLE FUNC_ITAB
  FROM ZTPP098
  WHERE ZTPP098~MATNR IN COMM_P_M
  .
  IF SY-SUBRC IS NOT INITIAL.
    MESSAGE '没有数据' TYPE 'I'.
    STOP.
  ENDIF.







  LOOP AT FUNC_ITAB.
    CLEAR: FUNC_TLINES, FUNC_TDNAME.

    FUNC_TDNAME = FUNC_ITAB-MAKTXID.

    CALL FUNCTION 'READ_TEXT' "读取长文本
      EXPORTING
        CLIENT   = SY-MANDT
        ID       = '001'
        LANGUAGE = '1'
        NAME     = FUNC_TDNAME
        OBJECT   = 'ZLSJQ'
      TABLES
        LINES    = FUNC_TLINES.

    IF SY-SUBRC = 0.
      LOOP AT FUNC_TLINES.
        COMM_ALV_ITAB-MAKTX = FUNC_TLINES-TDLINE."长文本
      ENDLOOP.
    ENDIF.

    COMM_ALV_ITAB-MATNR = FUNC_ITAB-MATNR.
    COMM_ALV_ITAB-ADDUSER = FUNC_ITAB-ADDUSER.
    COMM_ALV_ITAB-ADDDATE = FUNC_ITAB-ADDDATE.
    COMM_ALV_ITAB-ADDTIME = FUNC_ITAB-ADDTIME.
    COMM_ALV_ITAB-MDFUSER = FUNC_ITAB-MDFUSER.
    COMM_ALV_ITAB-MDFDATE = FUNC_ITAB-MDFDATE.
    COMM_ALV_ITAB-MDFTIME = FUNC_ITAB-MDFTIME.
    COMM_ALV_ITAB-MAKTXID = FUNC_ITAB-MAKTXID.
    APPEND COMM_ALV_ITAB.
  ENDLOOP.
ENDFORM.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值