我希望用户注意到他当前使用的报告已被弃用并被另一个报告替换。因此,我需要在程序启动时有一个类似信息消息的弹出窗口。
但是当我尝试像这样运行我的代码时:
INITIALIZATION.
MESSAGE i355(zz).
该消息仅显示在状态栏中。
这种方法在用户方面看起来不错:
INITIALIZATION.
DATA: w_mes TYPE string.
MESSAGE i355(zz) INTO w_mes.
CALL FUNCTION 'POPUP_TO_DISPLAY_TEXT'
EXPORTING
textline1 = w_mes.
但事实上它非常混乱。
在程序启动时是否有更顺畅的方式显示信息消息?
答案 0 :(得分:3)
根据behavior matrix of the MESSAGE
statement in Dialog Processing,这是不可能的。您可能希望将语句移动到其他部分,例如: G。 START-OF-SELECTION
。
答案 1 :(得分:1)
您可以将DISPLAY LIKE
用于最初类型为E
的邮件,以实现您想要的效果,但用户将无法执行此弃用版本。
INITIALIZATION.
MESSAGE e184(sabapdocu) WITH 'Sorry, Batory!' DISPLAY LIKE 'I'.
此类消息将显示为弹出窗口。
答案 2 :(得分:0)
可以想象,这不允许保留使用SUBMIT
从所有上下文调用报表程序的能力(即批处理,rfc,更新)以及允许外部子例程调用(PERFORM ABC IN PROGRAM XYZ
) 。
在需要此类事情的情况下,最好配置一个事务代码(使用SE93)以某种方式调用程序,以便显示消息。
以下是使用本地课程的简单示例:
CLASS lcl_selcr_mess DEFINITION.
PUBLIC SECTION.
METHODS
start. "#EC CALLED
ENDCLASS.
CLASS lcl_selcr_mess IMPLEMENTATION.
METHOD start.
MESSAGE i001(00) WITH 'Deprecated...' DISPLAY LIKE 'I'.
CALL SELECTION-SCREEN 1000.
ENDMETHOD.
ENDCLASS.
如果你觉得这种方法是突兀的,我怀疑这也可以通过创建一个"虚拟"屏幕仅显示消息,然后将流程传递到选择屏幕。创建一个对话框事务来调用虚拟屏幕。