ALV的应用,除了直接调用函数以外,另一种发发就是利用类,具体步骤如下:
一。创建容器。
这就需要为程序添加Dynpro画面,并在屏幕中创建容器,用来显示ALV。例如容器控件名称为‘CUST_01’。
ALV的应用,除了直接调用函数以外,另一种发发就是利用类,具体步骤如下:
一。创建容器。
这就需要为程序添加Dynpro画面,并在屏幕中创建容器,用来显示ALV。例如容器控件名称为‘CUST_01’。
二。定义类。
*类定义
CLASS lcl_event_receiver DEFINITION.
PUBLIC SECTION.
* 方法(双击事件)
METHODS: handle_double_click
FOR EVENT double_click OF cl_gui_alv_grid
IMPORTING e_row e_column.
PRIVATE SECTION.
ENDCLASS. "lcl_event_receiver DEFINITION
*类声明
CLASS lcl_event_receiver IMPLEMENTATION.
* 方法(双击事件)
METHOD handle_double_click.
* 方法(双击事件)实现
PERFORM screen_call_order USING e_row-index.
ENDMETHOD. "handle_double_click
三。定义对象及相关变量。
* ALV输出用
DATA:
* 输出
rec_layout TYPE lvc_s_layo,
* ALV用标准类
grid1 TYPE REF TO cl_gui_alv_grid,
event_receiver TYPE REF TO lcl_event_receiver,
* CFW用标准类
custom_container1 TYPE REF TO cl_gui_custom_container,
* variant
rec_variant TYPE disvariant,
* fieldcatalog
rec_fieldcatalog TYPE lvc_s_fcat,
tab_fieldcatalog TYPE TABLE OF lvc_s_fcat.
上面是一些ALV输出用的基本定义,下面是创建对象:
* 容器控件创建
CREATE OBJECT custom_container1
" CL_GUI_CUSTOM_CONTAINER
EXPORTING
container_name = ‘CUST_01’
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2
create_error = 3
lifetime_error = 4
lifetime_dynpro_dynpro_link = 5.
* ALV对象创建
CREATE OBJECT grid1 " CL_GUI_ALV_GRID
EXPORTING i_parent = custom_container1
i_appl_events = 'X'.
以上的CREAT是在第一步的DYNPRO的PBO里面做的。
四。设置以及调用方法。
CALL METHOD grid1->set_table_for_first_display
EXPORTING
i_structure_name = XXX " 列构造(需要自己声明定义)
is_layout = rec_layout " ALV Layout构造
i_save = 'A'
is_variant = rec_variant
it_toolbar_excluding = tab_toolbar
CHANGING
it_outtab = tab_alv[] " 列数据
it_fieldcatalog = tab_fieldcatalog[].
CREATE OBJECT EVENT_RECEIVER.
SET HANDLER EVENT_RECEIVER->HANDLE_DOUBLE_CLICK FOR GRID1.
CALL METHOD GRID1->SET_READY_FOR_INPUT
EXPORTING
I_READY_FOR_INPUT = 1.
ENDIF.
上面的tab_toolbar是有关机能码的内部表,定义如下:
DATA:tab_toolbar TYPE ui_functions. "机能码
此方法调用仍然是在PBO里面完成的。
还有其他方法的调用:
CALL METHOD grid1->refresh_table_display.
刷新画面用,支持针对USER-COMMAND的操作,当你对ALV输出做了变动的时候,可调用此方法对画面进行更新输出。
CALL METHOD grid1->get_selected_rows
IMPORTING
et_index_rows = l_lvc_t_row.
取得被选择行的行信息,你可在此基础上进行明细查看以及其他的具体操作等。
以上只是简单的介绍了一下,要想充分掌握理解,最好自己实践一下。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/547380/viewspace-886423/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/547380/viewspace-886423/