1、ALV怎么设置定时刷新: cl_gui_timer;
2、取消右键功能: context_menu_request of cl_gui_alv_grid (事件);
3、submit 调用标准程序的时候,不方便使用Import,这时候可以使用:
Cl_salv_bs_runtime_info=>get_data_ref( importing r_data = ls_data ).
或者使用SUBMIT (REPORT NAME) AND RETURN
EXPORTING LIST TO MEMORY.
CALL FUNCTION 'LIST_FROM_MEMORY' 获取ALV内表信息
CALL FUNCTION 'LIST_TO_ASCI'
4、list alv 同时show item和header:CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY';
5、切换ALV的编辑状态,先将需要编辑的地方设为可编辑,
若是需要退出编辑模式,即
call method g_grid->set_ready_for_input
exporting
i_ready_for_input = 0.
若是需要使用编辑模式,即
call method g_grid->set_ready_for_input
exporting
i_ready_for_input = 1.
6、ALV删除和增加行 ,范例: BCALV_EDIT_04;
7、自定义非标准的F4 ,范例:BCALV_EDIT_08;
8、ALV导出EXCEL的时候少一位,原因:对应的domain有自己的转换规则;fieldcat没有参考指定的字段;列的表头文本( seltext_s )比实际显示的数据短;
9、整列显示为BUTTON:gs_fieldcat-style = cl_gui_alv_grid=>mc_style_button
10、增加button和button group(容器中添加)
CALL METHOD go_toolbar->add_button
EXPORTING
fcode = 'EXIT' "Function Code
icon = icon_system_end "ICON name
is_disabled = ' ' "Disabled = X
butn_type = cntb_btype_button "Type of button
text = 'Exit' "Text on button
quickinfo = 'Exit program' "Quick info
is_checked = ' '. "Button selected
* Add a seperator
CALL METHOD cl_gui_toolbar=>fill_buttons_data_table
EXPORTING
fcode = 'SEP1'
icon = ' '
butn_type = cntb_btype_sep
CHANGING
data_table = gi_button_group.
* Add an Enable button
CALL METHOD cl_gui_toolbar=>fill_buttons_data_table
EXPORTING
fcode = 'ENABLE'
icon = ' '
butn_type = cntb_btype_group
text = 'Enable'
quickinfo = 'Enable a print button'
checked = 'X'
CHANGING
data_table = gi_button_group.
Create context menu
* Add a menu button
CALL METHOD cl_gui_toolbar=>fill_buttons_data_table
EXPORTING
fcode = 'MENU'
icon = ' '
butn_type = cntb_btype_menu
text = 'Menu'
quickinfo = 'A menu buttonz'
CHANGING
data_table = gi_button_group.
METHODS: on_dropdown_clicked
FOR EVENT dropdown_clicked OF cl_gui_toolbar
IMPORTING fcode posx posy.
*-- Create context menu
CREATE OBJECT go_context_menu.
CALL METHOD go_context_menu->add_function
EXPORTING
fcode = 'CONTEXT1'
text = 'Do something funny'.
11、控制ALV的variant,I_SAVE = 'X',若同一程序有多個ALV,為了避免variant之间有影响,is_variant需要赋值,is_variant-handle是用来区分不同的ALV的。
12、判断是在SAP GUI上运行还是在RFC、WDA或者后台运行
CLASS cl_gui_alv_grid DEFINITION LOAD .
IF cl_gui_alv_grid=>offline( ) IS INITIAL.
"程序以SAP GUI的方式运行
ELSE.
"程序以后台、RFC、Web-Reporting等方式运行,不要创建前台对象(Frontend Objects)
ENDIF.