网格初始化时的SALV事件



我正在以一种简单的方式创建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( )方法之后,但这样它会在我用后退按钮退出网格后显示,这不是我想要的,我希望它在第一次加载时正好显示在网格下。

是否存在在网格初始化时或渲染/加载数据后触发的事件?

如果没有,有什么变通办法可以让它发挥作用吗?

将消息放在调用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( ).

相关内容

  • 没有找到相关文章

最新更新