*&---------------------------------------------------------------------*
*& 包含 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.