有人留言,想要个过滤器的demo,就应读者要求,发篇简单的:
我也偷懒直接找个已有的程序修改的。
效果如下(有点丑~):
执行:
下面是代码:
首先建了个屏幕:空屏幕
在PBO里 设置状态栏,然后加个ALV展示:
MODULE mdl_alv_show OUTPUT.
SET PF-STATUS 'TEST_STATUS'.
* SET TITLEBAR 'xxx'.
PERFORM zform_alv_show.
ENDMODULE.
剩下的代码都在一起:
*&---------------------------------------------------------------------*
*& Report ZLM_ALV001
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT zlm_alv001.
*&---------------------------------------------------------------
*& 全局变量
*&---------------------------------------------------------------
DATA:
BEGIN OF str_spfli,
checkbox TYPE char1, "复选框
carrid TYPE sflight-carrid , "航线承运人ID
connid TYPE sflight-connid , "航班连接 Id
fldate TYPE sflight-fldate , "航班日期
price TYPE sflight-price , "航空运费
END OF str_spfli.
DATA:
g_it_show LIKE TABLE OF str_spfli WITH KEY checkbox carrid,
g_wa_show LIKE str_spfli.
*&---------------------------------------------------------------
*& ALV 全局变量
*&---------------------------------------------------------------
DATA: g_alv_grid TYPE REF TO cl_gui_alv_grid, "ALV控件
alv_ctner TYPE REF TO cl_gui_docking_container.
DATA: wa_fieldcatalog TYPE lvc_s_fcat, "显示数据列内表工作区域
it_fieldcatalog TYPE lvc_t_fcat. "显示数据列内表
*----------------------------------------------------------------
* 事件的定义 CLASS ALV_EVENT_RECEIVER DEFINITION
*----------------------------------------------------------------
CLASS alv_event_receiver DEFINITION.
PUBLIC SECTION.
"添加工具条
METHODS toolbar FOR EVENT toolbar OF cl_gui_alv_grid
IMPORTING
e_object
e_interactive.
"子都修改时触发
METHODS handle_data_changed FOR EVENT data_changed OF cl_gui_alv_grid
IMPORTING
er_data_changed.
"某字段设置热键后,单击此单元格时触发
METHODS handle_cell_click FOR EVENT hotspot_click OF cl_gui_alv_grid
IMPORTING
e_row_id
e_column_id
es_row_no.
"双击时触发
METHODS handle_double_click FOR EVENT double_click OF cl_gui_alv_grid
IMPORTING