网格初始化时的 SALV 事件?
SALV event at grid initialization?
我正在以一种简单的方式创建 SALV 网格,避免屏幕和容器:
TRY.
cl_salv_table=>factory(
IMPORTING
r_salv_table = lo_alv
CHANGING
t_table = itab ).
CATCH cx_salv_msg INTO exc.
ENDTRY.
...
lo_alv->set_screen_status( pfstatus = 'SALV_STATUS'
report = sy-repid
set_functions = lo_alv->c_functions_all ).
...
lo_alv->display( ).
我只想在网格显示时一次显示标准MESSAGE
,使其显示在底部状态栏中。
我尝试了 PAGE 事件,但它们不会在启动时触发,只有在按下标准工具栏按钮后才会触发
SET HANDLER cl_event_handler=>on_top_of_page FOR lo_events.
SET HANDLER cl_event_handler=>on_end_of_page FOR lo_events.
我也试过把MESSAGE
放在display( )
方法后面,但是这样在我用后退按钮退出网格后显示,这不是我想要的,我想要它显示第一次加载时正好在网格下方。
是否有在网格初始化时或 rendering/loading 数据后触发的事件?
如果没有,是否有任何解决方法可以使此工作正常进行?
在调用 lo_alv->display( )
之前 放置消息 。这个完整的程序似乎按照你想要的方式运行。状态消息“Hello World”出现在 ALV 网格下方,数据为:
REPORT Z_TEST_SALV_MESSAGE.
SELECT * FROM sflight INTO TABLE @DATA(gt_sflight).
cl_salv_table=>factory(
IMPORTING
r_salv_table = DATA(lo_alv)
CHANGING
t_table = gt_sflight ).
MESSAGE 'Hello World' TYPE 'S'.
lo_alv->display( ).
我正在以一种简单的方式创建 SALV 网格,避免屏幕和容器:
TRY.
cl_salv_table=>factory(
IMPORTING
r_salv_table = lo_alv
CHANGING
t_table = itab ).
CATCH cx_salv_msg INTO exc.
ENDTRY.
...
lo_alv->set_screen_status( pfstatus = 'SALV_STATUS'
report = sy-repid
set_functions = lo_alv->c_functions_all ).
...
lo_alv->display( ).
我只想在网格显示时一次显示标准MESSAGE
,使其显示在底部状态栏中。
我尝试了 PAGE 事件,但它们不会在启动时触发,只有在按下标准工具栏按钮后才会触发
SET HANDLER cl_event_handler=>on_top_of_page FOR lo_events.
SET HANDLER cl_event_handler=>on_end_of_page FOR lo_events.
我也试过把MESSAGE
放在display( )
方法后面,但是这样在我用后退按钮退出网格后显示,这不是我想要的,我想要它显示第一次加载时正好在网格下方。
是否有在网格初始化时或 rendering/loading 数据后触发的事件?
如果没有,是否有任何解决方法可以使此工作正常进行?
在调用 lo_alv->display( )
之前 放置消息 。这个完整的程序似乎按照你想要的方式运行。状态消息“Hello World”出现在 ALV 网格下方,数据为:
REPORT Z_TEST_SALV_MESSAGE.
SELECT * FROM sflight INTO TABLE @DATA(gt_sflight).
cl_salv_table=>factory(
IMPORTING
r_salv_table = DATA(lo_alv)
CHANGING
t_table = gt_sflight ).
MESSAGE 'Hello World' TYPE 'S'.
lo_alv->display( ).