&---------------------------------------------------------------------**& Program ID : ZSDR0150& Description: 装箱单打印*&---------------------------------------------------------------------& Created by : N_LI Date: 2019/05/31 Ver: 01.0*&-------------------------------------------------------------------& Modified by: author Date: YYYY/MM/DD Ver: 02.0*&---------------------------------------------------------------------*
REPORT ZSDR0150 NO STANDARD PAGE HEADING.
&---------------------------------------------------------------------**& INCLUDE&---------------------------------------------------------------------*
include ZBCI0010.include ZBCI0020.include ZBCI0030.
&---------------------------------------------------------------------**& Types:&---------------------------------------------------------------------*
TYPES: BEGIN OF TP_OUTPUT, SLBOX, CHECK_BOX TYPE C, "选择框 INDEX TYPE I, "行号 WADAT_IST TYPE LIKP-WADAT_IST, "日期 KUNAG TYPE VBRK-KUNAG, "买方 BSTKD TYPE VBKD-BSTKD, "订单号 VBELN TYPE VBRK-VBELN, "形式发票号 ZTERM TYPE VBRK-ZTERM, "付款条件 FIELD_STYLE TYPE LVC_T_STYL, "可编辑 END OF TP_OUTPUT.
----------------------------------------------------------------------* Class*----------------------------------------------------------------------** 注册回车事件*----------------------------------------------------------------------*
CLASS LCL_EVENT_RECEIVER DEFINITION. PUBLIC SECTION. METHODS HANDLE_MODIFY FOR EVENT DATA_CHANGED_FINISHED OF CL_GUI_ALV_GRID IMPORTING E_MODIFIED ET_GOOD_CELLS.ENDCLASS.CLASS LCL_EVENT_RECEIVER IMPLEMENTATION. METHOD HANDLE_MODIFY. PERFORM FRM_HANDLE_MODIFY USING E_MODIFIED ET_GOOD_CELLS. ENDMETHOD.ENDCLASS.
&---------------------------------------------------------------------**& Constants:&---------------------------------------------------------------------*
CONSTANTS: C_1 TYPE CHAR1 VALUE ‘1’, C_DH TYPE CHAR1 VALUE ‘,’, C_HG TYPE CHAR1 VALUE ‘’, C_XG TYPE CHAR1 VALUE ‘’, C_A TYPE CHAR1 VALUE ‘A’, C_E TYPE CHAR1 VALUE ‘E’, C_YES TYPE CHAR2 VALUE ‘是’, C_NO TYPE CHAR2 VALUE ‘否’, C_ZF8 TYPE CHAR3 VALUE ‘ZF8’, C_SLBOX TYPE CHAR5 VALUE ‘SLBOX’, C_XLSX TYPE CHAR5 VALUE ‘.xlsx’, C_PRINT TYPE CHAR5 VALUE ‘PRINT’, C_000000 TYPE CHAR6 VALUE ‘000000’, C_SHANGHAI TYPE CHAR8 VALUE ‘SHANGHAI’, C_CHECK_BOX TYPE CHAR9 VALUE ‘CHECK_BOX’, C_STYLE TYPE CHAR11 VALUE ‘FIELD_STYLE’, C_CLASSNAME TYPE SBDST_CLASSNAME VALUE ‘ZSD001’, C_OBJECTKEY TYPE SBDST_OBJECT_KEY VALUE ‘ZSDR0150’.
&---------------------------------------------------------------------**& Data:&---------------------------------------------------------------------*
DATA: T_OUTPUT TYPE STANDARD TABLE OF TP_OUTPUT.DATA: V_FILE TYPE RLGRAP-FILENAME. "路径
* 定义ALV相关字段
DATA: W_LAYOUT TYPE LVC_S_LAYO, T_FIELDCAT TYPE LVC_T_FCAT.DATA: T_EVENTS TYPE SLIS_T_EVENT, "ALV显示用 V_EVENT_RECEIVER TYPE REF TO LCL_EVENT_RECEIVER.
&---------------------------------------------------------------------**& Parameters Screen:&---------------------------------------------------------------------*
DATA: TB_KUNAG TYPE VBRK-KUNAG, "买方 TB_BSTKD TYPE VBKD-BSTKD, "订单号 TB_VBELN TYPE VBRK-VBELN, "发票号 TB_WADAT TYPE LIKP-WADAT_IST. "订单号
----选择条件
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-P01.SELECT-OPTIONS: S_KUNAG FOR TB_KUNAG, "买方 S_BSTKD FOR TB_BSTKD, "订单号 S_VBELN FOR TB_VBELN, "发票号 S_DATA FOR TB_WADAT. "日期SELECTION-SCREEN END OF BLOCK B1.
&---------------------------------------------------------------------**& INITIALIZATION&---------------------------------------------------------------------
INITIALIZATION.
&---------------------------------------------------------------------**& AT SELECTION-SCREEN OUTPUT&---------------------------------------------------------------------*
AT SELECTION-SCREEN OUTPUT.
&---------------------------------------------------------------------**& AT SELECTION-SCREEN&---------------------------------------------------------------------*
AT SELECTION-SCREEN.
&---------------------------------------------------------------------**& START-OF-SELECTION&---------------------------------------------------------------------*
START-OF-SELECTION.
* 取数
PERFORM FRM_FIND_DATA.
&---------------------------------------------------------------------**& END-OF-SELECTION&---------------------------------------------------------------------*
END-OF-SELECTION.
* 展示数据到ALV画面上
PERFORM FRM_DISPLAY_ALV.
&---------------------------------------------------------------------**& Form FRM_FIND_DATA&---------------------------------------------------------------------& 取数*&---------------------------------------------------------------------*
FORM FRM_FIND_DATA .DATA: L_BSTKD TYPE VBKD-BSTKD. "DATA: LW_OUTPUT TYPE TP_OUTPUT.SELECT VBRK~VBELN, "形式发票号 VBRK~KUNAG, "买方 VBRK~ZTERM, "付款条件 VBKD~BSTKD, "订单号 LIKP~WADAT_IST "日期 FROM VBRK JOIN VBRP ON VBRK~VBELN = VBRP~VBELN JOIN VBKD ON VBRP~AUBEL = VBKD~VBELN JOIN LIKP ON VBRP~VGBEL = LIKP~VBELN INTO TABLE @DATA(LT_DISPLAY) WHERE VBRK~FKART = @C_ZF8 AND VBRK~VBELN IN @S_VBELN AND VBRK~KUNAG IN @S_KUNAG AND VBKD~BSTKD IN @S_BSTKD AND VBKD~POSNR = @C_000000 AND LIKP~WADAT_IST IN @S_DATA. IF LT_DISPLAY IS INITIAL.
* 无查询记录
MESSAGE S008(ZSD01) DISPLAY LIKE C_E. LEAVE LIST-PROCESSING. ELSE. MOVE-CORRESPONDING LT_DISPLAY TO T_OUTPUT. SORT T_OUTPUT BY VBELN. DELETE ADJACENT DUPLICATES FROM T_OUTPUT COMPARING VBELN. LOOP AT T_OUTPUT ASSIGNING FIELD-SYMBOL(<LW_OUTPUT>).
* 行号
<LW_OUTPUT>-INDEX = SY-TABIX.
* 日期/买方/订单号/付款方式
READ TABLE LT_DISPLAY INTO DATA(LW_DISPALY) WITH KEY VBELN = <LW_OUTPUT>-VBELN. IF SY-SUBRC = 0. <LW_OUTPUT>-WADAT_IST = LW_DISPALY-WADAT_IST. <LW_OUTPUT>-KUNAG = LW_DISPALY-KUNAG. <LW_OUTPUT>-ZTERM = LW_DISPALY-ZTERM. ENDIF.
* 订单号
CLEAR: L_BSTKD. LOOP AT LT_DISPLAY INTO LW_DISPALY WHERE VBELN = <LW_OUTPUT>-VBELN. CONCATENATE L_BSTKD LW_DISPALY-BSTKD INTO L_BSTKD SEPARATED BY C_DH. SHIFT L_BSTKD LEFT DELETING LEADING C_DH. ENDLOOP. <LW_OUTPUT>-BSTKD = L_BSTKD. ENDLOOP. ENDIF.ENDFORM.
*&---------------------------------------------------------------------& Form FRM_DISPLAY_ALV*&---------------------------------------------------------------------& 展示数据到ALV画面上*&---------------------------------------------------------------------*
FORM FRM_DISPLAY_ALV .
* 设置输出格式
PERFORM FRM_SET_AL_LAYOUT.
* 设置字段属性
PERFORM FRM_BUILD_FIELDCAT.
* 自动刷新事件
PERFORM FRM_SET_EVENT.
* 调用ALV函数输出ALV
PERFORM FRM_CALL_AL_FUNC.ENDFORM.
*&---------------------------------------------------------------------& Form FRM_SET_AL_LAYOUT*&---------------------------------------------------------------------& 设置输出格式*&---------------------------------------------------------------------*
FORM FRM_SET_AL_LAYOUT .CLEAR: W_LAYOUT. W_LAYOUT-ZEBRA = C_X. "斑马线 W_LAYOUT-CWIDTH_OPT = C_X. "自动列宽 W_LAYOUT-BOX_FNAME = C_SLBOX. "选择框字段名 W_LAYOUT-STYLEFNAME = C_STYLE. "将内表中的字段名存入显示格式ENDFORM.
*&---------------------------------------------------------------------& Form FRM_BUILD_FIELDCAT*&---------------------------------------------------------------------& 设置字段属性*&---------------------------------------------------------------------*
FORM FRM_BUILD_FIELDCAT .PERFORM FRM_APPEND_FIELDCAT_ROW TABLES T_FIELDCAT USING : ‘CHECK_BOX’ ‘’ ‘’ ‘X’ ‘X’ TEXT-H01, "选择 ‘INDEX’ ‘’ ‘’ ‘’ ‘’ TEXT-H02, "行号 ‘WADAT_IST’ ‘WADAT_IST’ ‘LIKP’ ‘’ ‘’ TEXT-H03, "日期 ‘KUNAG’ ‘KUNAG’ ‘VBRK’ ‘’ ‘’ TEXT-H04, "买方 ‘BSTKD’ ‘BSTKD’ ‘VBKD’ ‘’ ‘’ TEXT-H05, "订单号 ‘VBELN’ ‘VBELN’ ‘VBRK’ ‘’ ‘’ TEXT-H06, "形式发票号 ‘ZTERM’ ‘ZTERM’ ‘VBRK’ ‘’ ‘’ TEXT-H07. "付款方式ENDFORM.
*&---------------------------------------------------------------------& Form FRM_APPEND_FIELDCAT_ROW*&---------------------------------------------------------------------** text*----------------------------------------------------------------------** -->P_IT_FIELDCAT text* -->P_0149 FIELDNAME* -->P_0150 REF_FIELD* -->P_0151 REF_TABLE* -->P_0152 CHECKBOX* -->P_0153 EDIT* -->P_0154 TITLE*----------------------------------------------------------------------*
FORM FRM_APPEND_FIELDCAT_ROW TABLES IT_FIELDCAT STRUCTURE LVC_S_FCAT USING IU_FIELDNAME TYPE LVC_S_FCAT-FIELDNAME IU_REF_FIELD TYPE LVC_S_FCAT-REF_FIELD IU_REF_TABLE TYPE LVC_S_FCAT-REF_TABLE IU_CHECKBOX TYPE LVC_S_FCAT-CHECKBOX IU_EDIT TYPE LVC_S_FCAT-EDIT IU_TITLE TYPE LVC_S_FCAT-COLTEXT. DATA: LW_FIELDCAT TYPE LVC_S_FCAT. CLEAR: LW_FIELDCAT. LW_FIELDCAT-FIELDNAME = IU_FIELDNAME. LW_FIELDCAT-REF_FIELD = IU_REF_FIELD. LW_FIELDCAT-REF_TABLE = IU_REF_TABLE. LW_FIELDCAT-CHECKBOX = IU_CHECKBOX. LW_FIELDCAT-EDIT = IU_EDIT. LW_FIELDCAT-COLTEXT = IU_TITLE. LW_FIELDCAT-SCRTEXT_L = IU_TITLE. LW_FIELDCAT-SCRTEXT_M = IU_TITLE. LW_FIELDCAT-SCRTEXT_S = IU_TITLE. APPEND LW_FIELDCAT TO IT_FIELDCAT. CLEAR: LW_FIELDCAT.ENDFORM.
&---------------------------------------------------------------------**& Form FRM_CALL_AL_FUNC&---------------------------------------------------------------------& 调用ALV函数输出ALV*&---------------------------------------------------------------------*
FORM FRM_CALL_AL_FUNC .CALL FUNCTION ‘REUSE_ALV_GRID_DISPLAY_LVC’ EXPORTING I_CALLBACK_PROGRAM = SY-REPID I_SAVE = C_A I_CALLBACK_PF_STATUS_SET = ‘FRM_SET_PF_STATUS’ I_CALLBACK_USER_COMMAND = ‘FRM_USER_COMMAND’ IS_LAYOUT_LVC = W_LAYOUT IT_EVENTS = T_EVENTS IT_FIELDCAT_LVC = T_FIELDCAT TABLES T_OUTTAB = T_OUTPUT EXCEPTIONS PROGRAM_ERROR = 1 OTHERS = 2. IF SY-SUBRC <> 0. MESSAGE E000(ZSD01) WITH TEXT-M02. "ERROR! ENDIF.ENDFORM.
*&---------------------------------------------------------------------& Form FRM_PF_STATUS_0200*&---------------------------------------------------------------------** FRM_PF_STATUS_0200*----------------------------------------------------------------------** -->IT_EXTAB text*----------------------------------------------------------------------*
FORM FRM_SET_PF_STATUS USING IT_EXTAB TYPE SLIS_T_EXTAB. CLEAR IT_EXTAB. SET PF-STATUS ‘0100’ .ENDFORM.
&---------------------------------------------------------------------**& Form FRM_USER_COMMAND&---------------------------------------------------------------------& FRM_USER_COMMAND*&---------------------------------------------------------------------& --> I_UCOMM*& <-- IW_SELFIELD*&---------------------------------------------------------------------*
FORM FRM_USER_COMMAND USING I_UCOMM TYPE SY-UCOMM IW_SELFIELD TYPE SLIS_SELFIELD.DATA: L_ALVGRID TYPE REF TO CL_GUI_ALV_GRID. CALL FUNCTION ‘GET_GLOBALS_FROM_SLVC_FULLSCR’ IMPORTING E_GRID = L_ALVGRID. CALL METHOD L_ALVGRID->CHECK_CHANGED_DATA. IW_SELFIELD-REFRESH = C_X.
&------------基于行列稳定刷新
IW_SELFIELD-COL_STABLE = C_X. IW_SELFIELD-ROW_STABLE = C_X. IF I_UCOMM = C_PRINT.
* 点EXCEL导出时
PERFORM FRM_PRINT. ENDIF. "刷新ALV PERFORM REFRESH_ALV.ENDFORM.
&---------------------------------------------------------------------**& Form FRM_PRINT&---------------------------------------------------------------------**& 点Excel导出&---------------------------------------------------------------------*
FORM FRM_PRINT . READ TABLE T_OUTPUT INTO DATA(LW_OUTPUT) WITH KEY CHECK_BOX = C_X. IF SY-SUBRC = 0.
* 选择路径
PERFORM FRM_CHOOSE_PATH. ELSE.
* 请选择一条有效数据!
MESSAGE S000(ZSD01) WITH TEXT-M03 DISPLAY LIKE C_E. ENDIF.ENDFORM.
&---------------------------------------------------------------------**& Form FRM_CHOOSE_PATH&---------------------------------------------------------------------& 选择路径*&---------------------------------------------------------------------*
FORM FRM_CHOOSE_PATH .DATA: L_SELECTED_FOLDER TYPE STRING, L_PATH TYPE STRING, L_FILENAME TYPE STRING, L_ANSWER TYPE CHAR1 .
* 文件选择框
CALL METHOD CL_GUI_FRONTEND_SERVICES=>DIRECTORY_BROWSE CHANGING SELECTED_FOLDER = L_SELECTED_FOLDER EXCEPTIONS CNTL_ERROR = 1 ERROR_NO_GUI = 2 NOT_SUPPORTED_BY_GUI = 3 OTHERS = 4 . IF SY-SUBRC <> 0.
* 请选择一条有效数据!
MESSAGE E000(ZSD01) WITH TEXT-M03. ENDIF. IF L_SELECTED_FOLDER IS INITIAL.
* 取消下载
MESSAGE S065(ZSD01) DISPLAY LIKE C_E. EXIT. ENDIF. READ TABLE T_OUTPUT INTO DATA(LW_OUTPUT) WITH KEY CHECK_BOX = C_X. IF SY-SUBRC = 0. CONCATENATE TEXT-M04 LW_OUTPUT-VBELN LW_OUTPUT-WADAT_IST INTO L_PATH SEPARATED BY C_HG. ENDIF.
*将获取的服务器上的文件内容下载到上面获取的文件名中
CONCATENATE L_SELECTED_FOLDER C_XG L_PATH C_XLSX INTO L_FILENAME.
* 保存的路径名
V_FILE = L_FILENAME.
* 检查是否本地已有同名文件,如果有,选择是否覆盖
PERFORM FRM_CHECK_IF_FILE_EXIST USING L_FILENAME CHANGING L_ANSWER. IF L_ANSWER <> C_1. MESSAGE S065(ZSD01). "取消下载 EXIT. ENDIF.
* DOWNLOAD TEMPLATE
CALL FUNCTION ‘SAPGUI_PROGRESS_INDICATOR’ "给个进度条信息 EXPORTING TEXT = ‘LOADING…’. CALL SCREEN 0100. MESSAGE S066(ZSD01). "下载成功ENDFORM.
*&---------------------------------------------------------------------& FORM FRM_CHECK_IF_FILE_EXIST*&---------------------------------------------------------------------** 检查是否本地已有同名文件,如果有,选择是否覆盖*----------------------------------------------------------------------** -->PV_FILE TEXT*----------------------------------------------------------------------*
FORM FRM_CHECK_IF_FILE_EXIST USING I_FILE CHANGING O_ANSWER. DATA: L_EXIST TYPE ABAP_BOOL, L_ANSWER TYPE C LENGTH 1. CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_EXIST EXPORTING FILE = I_FILE RECEIVING RESULT = L_EXIST EXCEPTIONS CNTL_ERROR = 1 ERROR_NO_GUI = 2 WRONG_PARAMETER = 3 NOT_SUPPORTED_BY_GUI = 4 OTHERS = 5. IF SY-SUBRC <> 0.
* ERROR!
MESSAGE E000(ZSD01) WITH TEXT-M02. EXIT. ENDIF. IF L_EXIST = ABAP_TRUE. CALL FUNCTION ‘POPUP_TO_CONFIRM’ EXPORTING TEXT_QUESTION = TEXT-M01 TEXT_BUTTON_1 = C_YES(001) TEXT_BUTTON_2 = C_NO(002) IMPORTING ANSWER = L_ANSWER "RETURN VALUE: 1, 2, A EXCEPTIONS TEXT_NOT_FOUND = 1 OTHERS = 2. IF SY-SUBRC <> 0.
* ERROR!
MESSAGE E000(ZSD01) WITH TEXT-M02. ENDIF. ELSE. L_ANSWER = C_1. ENDIF. O_ANSWER = L_ANSWER.ENDFORM. "FRM_CHECK_IF_FILE_EXIST
&---------------------------------------------------------------------**& Module status_0100 OUTPUT&---------------------------------------------------------------------** text*----------------------------------------------------------------------*
MODULE STATUS_0100 OUTPUT.DATA: L_DATA TYPE CHAR10. SET PF-STATUS ‘0100’. PERFORM FRM_GET_CONTAINER. PERFORM FRM_CREATE_CONTAINER_CONTROL. PERFORM FRM_GET_TEMPLATE_URL USING C_CLASSNAME C_OBJECTKEY. PERFORM FRM_OPEN_EXCEL_DOC. LOOP AT T_OUTPUT INTO DATA(LW_OUPUT) WHERE CHECK_BOX = C_X. WRITE LW_OUPUT-WADAT_IST TO L_DATA USING EDIT MASK '___//’.
* 日期
PERFORM FRM_WRITE_DATA_TO_CELL USING 6 "行 3 "列 L_DATA. "写入的数据
* 订单号码
PERFORM FRM_WRITE_DATA_TO_CELL USING 7 "行 3 "列 LW_OUPUT-BSTKD. "写入的数据
* 发票号码
PERFORM FRM_WRITE_DATA_TO_CELL USING 7 "行 9 "列 LW_OUPUT-VBELN. "写入的数据
* 买方
PERFORM FRM_WRITE_DATA_TO_CELL USING 11 "行 4 "列 LW_OUPUT-KUNAG. "写入的数据
* SHANGHAI
PERFORM FRM_WRITE_DATA_TO_CELL USING 15 "行 4 "列 C_SHANGHAI. "写入的数据 ENDLOOP.
* PERFORM FRM_CHANGING_PATH CHANGING V_FILE.
PERFORM FRM_SAVE_DOCUMENT USING V_FILE. PERFORM FRM_CLOSE_EXCEL_DOC.ENDMODULE. " status_0100 OUTPUT
&---------------------------------------------------------------------**& Module USER_COMMAND_0100 INPUT&---------------------------------------------------------------------** text*----------------------------------------------------------------------*
MODULE USER_COMMAND_0100 INPUT. SET SCREEN 0.ENDMODULE.
&---------------------------------------------------------------------**& Form FRM_AL_REFRESH&---------------------------------------------------------------------** ALV刷新*----------------------------------------------------------------------** <–P_L_SELFIELD_COL_STABLE text* <–P_L_SELFIELD_ROW_STABLE text* <–P_L_SELFIELD_REFRESH text*----------------------------------------------------------------------*
FORM FRM_AL_REFRESH CHANGING O_COL_STABLE O_ROW_STABLE O_REFRESH. DATA: L_GRID TYPE REF TO CL_GUI_ALV_GRID. CLEAR: L_GRID, O_COL_STABLE, O_ROW_STABLE,O_REFRESH. CALL FUNCTION ‘GET_GLOBALS_FROM_SLVC_FULLSCR’ IMPORTING E_GRID = L_GRID. CALL METHOD L_GRID->CHECK_CHANGED_DATA. O_COL_STABLE = C_X. O_ROW_STABLE = C_X. O_REFRESH = C_X.ENDFORM. "FRM_ALV_REFRESH
&---------------------------------------------------------------------**& Form FRM_HANDLE_MODIFY&---------------------------------------------------------------------** text*----------------------------------------------------------------------** -->P_E_MODIFIED I_MODIFIED* -->P_ET_GOOD_CELLS IT_GOOD_CELLS*----------------------------------------------------------------------*
FORM FRM_HANDLE_MODIFY USING I_MODIFIED IT_GOOD_CELLS TYPE LVC_T_MODI.DATA: LW_STYLEROW TYPE LVC_S_STYL . CHECK I_MODIFIED = C_X. LOOP AT IT_GOOD_CELLS INTO DATA(LW_GOOD_CELLS) WHERE FIELDNAME = C_CHECK_BOX. IF LW_GOOD_CELLS-VALUE = ‘’. LOOP AT T_OUTPUT ASSIGNING FIELD-SYMBOL(<LW_OUTPUT>). CLEAR: <LW_OUTPUT>-FIELD_STYLE. ENDLOOP. ELSEIF LW_GOOD_CELLS-VALUE = C_X. LOOP AT T_OUTPUT ASSIGNING <LW_OUTPUT>. IF <LW_OUTPUT>-CHECK_BOX NE C_X. LW_STYLEROW-FIELDNAME = C_CHECK_BOX.
* 设成可以输入用MC_STYLE_ENABLED
LW_STYLEROW-STYLE = CL_GUI_ALV_GRID=>MC_STYLE_DISABLED. APPEND LW_STYLEROW TO <LW_OUTPUT>-FIELD_STYLE. CLEAR: LW_STYLEROW. ENDIF. ENDLOOP. ENDIF. ENDLOOP. IF SY-UCOMM = ‘’. PERFORM REFRESH_ALV. ENDIF.ENDFORM.
&---------------------------------------------------------------------**& Form FRM_SET_EVENT&---------------------------------------------------------------------** 回车事件*----------------------------------------------------------------------*
FORM FRM_SET_EVENT .T_EVENTS = VALUE #( ( NAME = ‘CALLER_EXIT’ FORM = ‘FRM_ALV_EVENT’ ) ).ENDFORM.
--------------------------------------------------------------------------------------------------------------------------------------------
FORM FRM_ALV_EVENT USING E_GRID TYPE SLIS_DATA_CALLER_EXIT. DATA: L_GRID TYPE REF TO CL_GUI_ALV_GRID. IF L_GRID IS INITIAL. CALL FUNCTION ‘GET_GLOBALS_FROM_SLVC_FULLSCR’ IMPORTING E_GRID = L_GRID. ENDIF.
* ENTER
CALL METHOD L_GRID->REGISTER_EDIT_EVENT EXPORTING I_EVENT_ID = CL_GUI_ALV_GRID=>MC_EVT_ENTER EXCEPTIONS ERROR = 1 OTHERS = 2. IF SY-SUBRC <> 0. MESSAGE E000(ZSD01) WITH TEXT-M02. "ERROR! ENDIF.
–·设置 单光标焦点移开被修改单元格后既触发事件
CALL METHOD L_GRID->REGISTER_EDIT_EVENT EXPORTING I_EVENT_ID = CL_GUI_ALV_GRID=>MC_EVT_MODIFIED EXCEPTIONS ERROR = 1 OTHERS = 2. IF sy-SUBRC <> 0. MESSAGE E000(ZSD01) WITH TEXT-M02. "ERROR! ENDIF. CREATE OBJECT V_EVENT_RECEIVER. SET HANDLER V_EVENT_RECEIVER->HANDLE_MODIFY FOR L_GRID.ENDFORM.
&---------------------------------------------------------------------*& Form REFRESH_ALV&---------------------------------------------------------------------* 刷新ALV*----------------------------------------------------------------------*
FORM REFRESH_ALV . DATA: L_GRID TYPE REF TO CL_GUI_ALV_GRID, LW_STABLE TYPE LVC_S_STBL. CALL FUNCTION ‘GET_GLOBALS_FROM_SLVC_FULLSCR’ IMPORTING E_GRID = L_GRID. LW_STABLE-ROW = C_X. LW_STABLE-COL = C_X. L_GRID->REFRESH_TABLE_DISPLAY( EXPORTING IS_STABLE = LW_STABLE EXCEPTIONS FINISHED = 1 OTHERS = 2 ). IF sy-SUBRC <> 0. MESSAGE E000(ZSD01) WITH TEXT-M02. "ERROR! ENDIF.ENDFORM.
Messages---------------------------** Message class: Hard coded* 无可用模板,请检查
ABAP alv获取鼠标焦点移开事件
最新推荐文章于 2024-02-06 15:43:34 发布