类 事件响应
来源:互联网 发布:java高性能并发框架 编辑:程序博客网 时间:2024/06/06 01:03
TABLES:sflight.
DATA:BEGIN OF lspfli OCCURS 0.
INCLUDE STRUCTURE sflight.
DATA:color TYPE char10,
END OF lspfli.
DATA:fieldcat TYPE lvc_t_fcat,
grid TYPE REF TO cl_gui_alv_grid,
g_container TYPE scrfname VALUE 'CONT1',
is_layout TYPE lvc_s_layo,
g_custom_container TYPE REF TO cl_gui_custom_container.
DATA:gs_toolbar TYPE stb_button.
CLASS alv_event_receiver DEFINITION DEFERRED."声明类对象
CLASS alv_event_receiver DEFINITION.
PUBLIC SECTION.
CLASS-METHODS:
handle_toolbar "初始化工具栏对象事件,如增加按钮增加属性
FOR EVENT toolbar of cl_gui_alv_grid
IMPORTING e_object e_interactive,
handle_menu_button"该按钮适用于在下拉菜单中增加选项
FOR EVENT menu_button of cl_gui_alv_grid
IMPORTING e_object e_ucomm,
handle_user_command"工具栏按钮的单击事件
FOR EVENT user_command of cl_gui_alv_grid
IMPORTING e_ucomm,
handle_double_click"ALV表格中的双击事件
FOR EVENT double_click of cl_gui_alv_grid
IMPORTING e_row e_column es_row_no.
ENDCLASS.
CLASS alv_event_receiver IMPLEMENTATION.
METHOD handle_toolbar.
gs_toolbar-function = 'B_SUM'.
gs_toolbar-icon = icon_display.
gs_toolbar-text = '总行数'.
gs_toolbar-butn_type = '0'.
APPEND gs_toolbar TO e_object->mt_toolbar.
gs_toolbar-function = 'B_LIST'.
gs_toolbar-quickinfo = '自定义下拉菜单'.
gs_toolbar-icon = icon_biw_report_view.
gs_toolbar-text = '下拉菜单'.
gs_toolbar-butn_type = '1'.
APPEND gs_toolbar to e_object->mt_toolbar.
ENDMETHOD.
METHOD handle_menu_button.
IF e_ucomm = 'B_LIST'.
CALL METHOD e_object->add_function
EXPORTING
icon = icon_display
fcode = 'B_SUM'
text = '显示alv总行数'.
ENDIF.
ENDMETHOD.
METHOD handle_user_command.
DATA sum TYPE i.
IF e_ucomm = 'B_SUM'.
DESCRIBE TABLE lspfli[] LINES sum.
MESSAGE i001(00) WITH '当前ALV表格中总行数;' sum.
ENDIF.
ENDMETHOD.
METHOD handle_double_click.
DATA ls_spfli TYPE sflight.
READ TABLE lspfli INTO ls_spfli INDEX es_row_no-row_id.
MESSAGE i001(00) WITH '当前行:' es_row_no-row_id
'航班代码:' ls_spfli-carrid.
ENDMETHOD.
ENDCLASS.
"SELECTION-SCREEN BEGIN OF BLOCK
START-OF-SELECTION.
CALL SCREEN 100.
FORM alvshow.
CREATE OBJECT g_custom_container
EXPORTING
container_name = g_container.
CREATE OBJECT grid
EXPORTING
i_parent = g_custom_container.
is_layout-info_fname = 'COLOR' .
CALL METHOD grid->set_table_for_first_display
EXPORTING
i_structure_name = 'SFLIGHT'
is_layout = is_layout
i_save = 'X'
CHANGING
it_outtab = lspfli[]
it_fieldcatalog = fieldcat[].
"注册ALV中引用事件
SET HANDLER alv_event_receiver=>handle_toolbar
alv_event_receiver=>handle_menu_button
alv_event_receiver=>handle_user_command
alv_event_receiver=>handle_double_click
FOR ALL INSTANCES.
"调用方法激活自定义工具栏对象
CALL METHOD grid->set_toolbar_interactive.
ENDFORM.
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_0100 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_0100 INPUT.
CASE sy-ucomm.
WHEN 'EXIT'.
LEAVE PROGRAM.
WHEN 'EXEC'.
SELECT *
FROM sflight INTO CORRESPONDING FIELDS OF TABLE lspfli
.
lspfli-color = 'C610'.
* MODIFY lspfli TRANSPORTING color WHERE
IF g_custom_container IS INITIAL.
PERFORM alvshow.
ELSE.
CALL METHOD grid->refresh_table_display.
ENDIF.
WHEN OTHERS.
ENDCASE.
ENDMODULE. " USER_COMMAND_0100 INPUT
*&---------------------------------------------------------------------*
*& Module STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE STATUS_0100 OUTPUT.
SET PF-STATUS 'T001'.
* SET TITLEBAR 'xxx'.
ENDMODULE. " STATUS_0100 OUTPUT
- 类 事件响应
- android手势类事件响应
- VC事件,事件响应API,CEvent类
- 事件响应
- 事件响应
- CDialog类响应ActiveX事件的实现
- Datagrid事件响应(二)
- ItemCommand事件不响应
- 响应按钮的事件
- DirectShow中响应事件
- winform响应回车事件
- 禁止响应事件函数
- ItemCommand事件不响应
- DirectShow中响应事件
- Swing事件响应机制
- Applet事件响应
- wxPython之响应事件
- 计时响应事件
- 一种异步加载资源的方法(源于SDK文档)
- Android学习笔记<二>
- Oracle Coherence中文教程三:配置
- NPOI导出Excel2007
- iOS应用内支付(IAP)的那些坑
- 类 事件响应
- 开放接口使用积累
- ActionBar -- 添加Action按钮
- [leetcode] Remove Element
- 解决com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax;错误
- linq to sql 查询后排序(字符串类型的数字进行排序)
- 图片缓存(源于SDK文档)
- Mulitimedia-pause(RTSP)
- 变阻式恒流源