SET/GET PARAMETER 是通过sap memory来传输字段的值,比如你登陆完系统后第一次运行VL02N修改交货单,修改完后退出,系统会set parameter把这张交换单号写入到sap memory中,当你下次在运行VL02N时,会发现上次修改过的交换单号会自动的带出来,这是系统通过get parameter找到该交货单。parameter id在sap memory起的是标识作用,所以必须是唯一的。
测试过程:
第一步:创建一个report ZTEST101_1
(1)创建screen 100,并从dictionary中新建如下图所示的几个屏幕元素。
维护Airlline 和 Flight Number 字段为输入输出字段,其它字段为输出字段。
Airline和Flight Number字段的属性中,勾中set parameter和get parameter。
系统自动维护了Ariline的Parameter ID 为 ‘CAR', 另外,Flight Number
(2)第二步:写screen相关的PBO PAI module
在PBO 中调用status 'ST0100',在这个GUI中,增加了一个ok_code为SHOW的按钮。
在PAI 中则判断用户点击的是ok_code为SHOW的按钮的话,就根据carrid和connid信息查询表SFPLI,
从而在屏幕上显示其他字段的字段值。
*PBO Module
MODULE status_0100 OUTPUT.
SET PF-STATUS 'ST0100'.
ET TITLEBAR '100'.
ENDMODULE.
*PAI Module
MODULE user_command_0100 INPUT.
CASE ok_code.
WHEN 'SHOW'.
CLEAR ok_code.
SELECT SINGLE * FROM spfli
INTO spfli WHEREcarrid= spfli-carrid
AND connid = spfli-connid.
spfli_wa = spfli.
WHEN space.
WHEN OTHERS.
CLEAR ok_code.
SET SCREEN 0.LEAVESCREEN.
ENDCASE.
ENDMODULE.
(3)report ZTEST101_1的完整代码为为
(4)创建程序ZTEST101_2,用来调用reprot ZTEST101_1
在下图所示的代码中
set parameter id 'CAR' field carrier
的语法为将本程序中的变量carrier的值,传递给parameter id 为'CAR'的那个字段。
前面说道,parameter id 'CAR'是在屏幕中系统自动给字段Ariline指定的一个paramter id。
(5)运行reprot ZTEST101_2
A 输出下图所示的结果,然后我们点击 LH 0402那个记录,
B 将跳转到下图所示的界面中,可以看到Ariline 自动填值为LH,Fight Number 自动填值为402。
但是这个时候,别的字段还是没有值的。
C 点击 上图所示中的显示 按钮。
然后其他字段也会被填充进去值。