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