ABAP 代码中通过 Submit 实现程序的调用以及调用时数据参数的传递。
程序准备
将要被调用的 Report: ZTEST_SUBMIT1
REPORT ZTEST_SUBMIT1.
DATA: lv_matnr TYPE matnr.
DATA: lv_charg TYPE charg.
SELECT-OPTIONS: s1_matnr FOR matnr,
s1_lgort FOR lgort.
START-OF-SELECTION.
DATA: lv_line TYPE i.
lv_line = LINES( s1_matnr ).
WRITE: / 'S1_MATNR',lv_line.
lv_line = LINES( s1_lgort ).
WRITE: / 'S1_CHARG',lv_line.
使用 Submit 的 Report: ZTEST_SUBMIT2
REPORT ZTEST_SUBMIT2.
DATA: lv_matnr TYPE matnr.
SELECT-OPTIONS: s2_matnr FOR matnr.
START-OF-SELECTION.
*$*$*.....CODE_ADD_1 - Begin..................................1..*$*$*
* 在该代码块实现用不同的方式调用Reprot1
*$*$*.....CODE_ADD_1 - End....................................1..*$*$*
SUBMIT 使用语法:
SUBMIT {report|(name)} [selscreen_options]
[list_options]
[job_options]
[AND RETURN].
不使用参数直接调用
SUBMIT ztest_submit1 AND RETURN.
直接使用参数调用
*$*$*.....CODE_ADD_1 - Begin..................................1..*$*$*
SUBMIT ztest_submit1
WITH s1_matnr IN s2_matnr
WITH s1_lgort EQ 'WA01' SIGN 'I'
.......
AND RETURN.
*$*$*.....CODE_ADD_1 - End....................................1..*$*$*
使用 SELECTION-TABLE 调用
*$*$*.....CODE_ADD_1 - Begin..................................1..*$*$*
DATA: lt_seltab TYPE TABLE OF rsparams,
ls_seltab LIKE LINE OF lt_seltab.
LOOP AT s2_matnr.
ls_seltab-selname = 'S1_MATNR'. " Report1中的屏幕字段名 "
ls_seltab-KIND = 'S'.
ls_seltab-SIGN = s2_matnr-SIGN.
ls_seltab-OPTION = s2_matnr-OPTION.
ls_seltab-LOW = s2_matnr-LOW.
APPEND ls_seltab TO lt_seltab.
ENDLOOP.
ls_seltab-selname = 'S1_LGORT'.
ls_seltab-KIND = 'S'.
ls_seltab-SIGN = 'I'.
ls_seltab-OPTION = 'EQ'.
ls_seltab-LOW = 'WA01'.
APPEND ls_seltab TO lt_seltab.
SUBMIT ztest_submit1
WITH SELECTION-TABLE lt_seltab
AND RETURN.
*$*$*.....CODE_ADD_1 - End....................................1..*$*$*
使用 Report Variant 调用
*$*$*.....CODE_ADD_1 - Begin..................................1..*$*$*
" TEST 是report:ztest_submit1中保存的变式名称 "
SUBMIT ztest_submit1
USING SELECTION-SET 'TEST'
AND RETURN.
*$*$*.....CODE_ADD_1 - End....................................1..*$*$*
调用程序,显示选择屏幕界面
被调报表程序的选择屏幕会显示。如果此选择打开,并且还使用了其他参数选项来传输值时,这些值也会显示在屏幕中相应的输入框中,并且用户可以进一步修改这些值。
*$*$*.....CODE_ADD_1 - Begin..................................1..*$*$*
SUBMIT ztest_submit1 VIA SELECTION-SCREEN AND RETURN.
*$*$*.....CODE_ADD_1 - End....................................1..*$*$*