SAP/ABAP高手请进,求教

来源:百度知道 编辑:UC知道 时间:2024/06/07 14:37:47
我在《SAP程序设计》这本书里看到这样一段程序。
REPORT z_calling_program.
START-OF-SELECTION.
WRITE 'This program calls another program'.
SUBMIT z_simple_program.
前提是z_simple_program这个应用程序已经存在,并且里面也是只有一条简单的输出语句。
书上说执行完我写的这4行代码后,程序将直接输出z_simple_program中的那条输出语句,而不是先输出'This program calls another program'。这是为什么呢,书上说是因为程序z_simple_program调用在程序z_calling_program的立标输出处理之前进行。难道调用语句的优先权如此之大?那么我如果想先输出'This program calls another program'再调用z_simple_program该怎么办呢?
如有达人能解此疑问小弟将不胜感激!
"书上说是因为程序z_simple_program调用在程序z_calling_program的立标输出处理之前进行"这句话打错了两个字,应该是“列表”而不是“立标”
。难道真的没有人会吗??

如果用SUBMIT z_simple_program EXPORTING LIST TO MEMORY AND RETURN.程序会输出calling中的语句,simple程序中的值不会输出,保存在内存中。

如果你希望先输出calling中的语句,可以考虑使用GUI status
START-OF-SELECTION.
WRITE '222'.
SET PF-STATUS 'STATUS_1000'.

AT USER-COMMAND.
CASE sy-ucomm.
WHEN 'EXECUTE'.
IF sy-pfkey = 'STATUS_1000'.
SET PF-STATUS 'STATUS_2000'.
ENDIF.
LEAVE TO LIST-PROCESSING.
SUBMIT zrab_yxy_0005 .
SET SCREEN 0.
ENDCASE.

可以参考page349页的GUI状态交互。

你重新输入列表不行吗?

如果要看到calling程式中的语句,可以将submit改为如下代码
SUBMIT z_simple_program AND RETURN,先调用simple程式,输出后点击返回按钮会输出calling中的语句。