为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

ALV双击事件

2018-01-04 7页 doc 23KB 32阅读

用户头像

is_842972

暂无简介

举报
ALV双击事件ALV双击事件 *&---------------------------------------------------------------------* *& Report ZTEST32 *& *&---------------------------------------------------------------------* *& *& *&---------------------------------------------------------------------* REPO...
ALV双击事件
ALV双击事件 *&---------------------------------------------------------------------* *& Report ZTEST32 *& *&---------------------------------------------------------------------* *& *& *&---------------------------------------------------------------------* REPORT ZTEST32. *功能码返回值 DATA: OK_CODE TYPE SY-UCOMM, SAVE_OK TYPE SY-UCOMM. TABLES SPFLI. DATA LS_SPFLI TYPE SPFLI. *定义内表,变量需要传递,不加HEADER LINE DATA WA_SPFLI TYPE TABLE OF SPFLI. DATA WADEL_SPFLI TYPE TABLE OF SPFLI. *内表赋值 SELECT * INTO TABLE WA_SPFLI FROM SPFLI. *定义窗口定制控制,定义ALV对象 DATA: WA_CONTAINER TYPE SCRFNAME VALUE 'ALVDATA', ALV_GRID TYPE REF TO CL_GUI_ALV_GRID, WA_CUSTOM_CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER. DATA WA_LAYOUT TYPE LVC_S_LAYO. WA_LAYOUT-EDIT = 'X'. *定义事件类型 CLASS LCL_EVENT_RECEIVER DEFINITION DEFERRED. *定义事件 DATA EVENT_RECEIVER TYPE REF TO LCL_EVENT_RECEIVER. *---------------------------------------------------------- *CLASS LCL_EVENT_RECEIVER DEFINITION *---------------------------------------------------------- *定义事件的属性和方法 *---------------------------------------------------------- CLASS LCL_EVENT_RECEIVER DEFINITION. PUBLIC SECTION. TYPES: DEL_ROWS TYPE STANDARD TABLE OF SPFLI. DATA: DDEL_ROWS TYPE STANDARD TABLE OF SPFLI. METHODS: HANDLE_DATA_CHANGED FOR EVENT DATA_CHANGED OF CL_GUI_ALV_GRID IMPORTING ER_DATA_CHANGED. METHODS: UPDATE_DELTA_TABLES IMPORTING PR_DATA_CHANGED TYPE REF TO CL_ALV_CHANGED_DATA_PROTOCOL. METHODS: GET_DELETED_ROWS EXPORTING DELETED_ROWS TYPE DEL_ROWS. * METHODS: * HANDLE_DOUBLE_CLICK * FOR EVENT DOUBLE_CLICK OF CL_GUI_ALV_GRID * IMPORTING E_ROW E_COLUMN. ENDCLASS. *--------------------------------------------------------------- *CLASS LCL_EVENT_RECEIVER IMPLENTATION *--------------------------------------------------------------- * *--------------------------------------------------------------- CLASS LCL_EVENT_RECEIVER IMPLEMENTATION. METHOD HANDLE_DATA_CHANGED. CALL METHOD UPDATE_DELTA_TABLES( ER_DATA_CHANGED ). ENDMETHOD. METHOD UPDATE_DELTA_TABLES. DATA: L_DEL_ROW TYPE LVC_S_MOCE. LOOP AT PR_DATA_CHANGED->MT_DELETED_ROWS INTO L_DEL_ROW. READ TABLE WA_SPFLI INTO LS_SPFLI INDEX L_DEL_ROW-ROW_ID. IF SY-SUBRC NE 0. MESSAGE E208(00) WITH '处理错误'. ELSE. APPEND LS_SPFLI TO DDEL_ROWS. ENDIF. ENDLOOP. ENDMETHOD. "update_delta_tables METHOD GET_DELETED_ROWS. DELETED_ROWS = ME->DDEL_ROWS. ENDMETHOD. "get_deleted_rows * METHOD HANDLE_DOUBLE_CLICK. * DATA: LI_SPFLI LIKE LINE OF WA_SPFLI. * READ TABLE WA_SPFLI INDEX E_ROW-INDEX INTO LI_SPFLI. *将行列等信息合并到字符串 * DATA: S1(100) TYPE C. * CONCATENATE '行:' E_ROW-INDEX '列名:' E_COLUMN-FIELDNAME INTO S1. * CONCATENATE S1 ' connid:' LI_SPFLI-CONNID INTO S1. * CONCATENATE S1 ' carrid:' LI_SPFLI-CARRID INTO S1. *在状态条显示双击的行和列信息 * MESSAGE I005(YMESS) WITH S1. * ENDMETHOD. ENDCLASS. START-OF-SELECTION. CALL SCREEN 100. WRITE / '删除的内表记录'. WRITE / '______________'. CALL METHOD EVENT_RECEIVER->GET_DELETED_ROWS IMPORTING DELETED_ROWS = WADEL_SPFLI. LOOP AT WADEL_SPFLI INTO SPFLI. WRITE: / SPFLI-CARRID,SPFLI-CONNID,SPFLI-CITYFROM. ENDLOOP. WRITE: / '更新后的内表记录:'. WRITE: / '_________________'. LOOP AT WA_SPFLI INTO SPFLI. WRITE: / SPFLI-CARRID,SPFLI-CONNID,SPFLI-CITYFROM. ENDLOOP. END-OF-SELECTION. *&---------------------------------------------------------------------* *& Module STATUS_0100 OUTPUT *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* MODULE STATUS_0100 OUTPUT. SET PF-STATUS 'STATUS1'. * SET TITLEBAR 'xxx'. *如果窗口还没有创建ALV对象则创建它 IF WA_CUSTOM_CONTAINER IS INITIAL. CREATE OBJECT WA_CUSTOM_CONTAINER EXPORTING CONTAINER_NAME = WA_CONTAINER. CREATE OBJECT ALV_GRID EXPORTING I_PARENT = WA_CUSTOM_CONTAINER. CREATE OBJECT EVENT_RECEIVER. SET HANDLER EVENT_RECEIVER->HANDLE_DATA_CHANGED FOR ALV_GRID. CALL METHOD ALV_GRID->SET_TABLE_FOR_FIRST_DISPLAY EXPORTING I_STRUCTURE_NAME = 'SPFLI' IS_LAYOUT = WA_LAYOUT CHANGING IT_OUTTAB = WA_SPFLI. *ALV对象分配双击事件 * CREATE OBJECT EVENT_RECEIVER. * SET HANDLER EVENT_RECEIVER->HANDLE_DOUBLE_CLICK * FOR ALV_GRID. ENDIF. ENDMODULE. " STATUS_0100 OUTPUT *&---------------------------------------------------------------------* *& Module USER_COMMAND_0100 INPUT *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* MODULE USER_COMMAND_0100 INPUT. SAVE_OK = OK_CODE. CLEAR OK_CODE. CASE SAVE_OK. WHEN 'EXIT'. DATA L_RET VALUE 'X'. CALL METHOD ALV_GRID->CHECK_CHANGED_DATA IMPORTING E_VALID = L_RET. LEAVE TO SCREEN 0. ENDCASE. ENDMODULE. " USER_COMMAND_0100 INPUT
/
本文档为【ALV双击事件】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索