手工创建表控制条目:
1、新建主屏幕。
2、新建子屏幕至少两个。
3.在主屏幕上加上手工创建表条目的元素,设置其属性、这边值得注意的是在表条目元素里面加上子屏幕范围并设置名称,在tab1下面的参考字段里填上刚才加进去的子屏幕范围,并在tab2中相应的此位置也设置刚才创建的子屏幕范围名称。
4、代码部分:
定义的时候要多定义一个sy-ucomm变量 并赋予变量的默认值子屏幕中tab1的功能码。
还要定义CONTROLS: tt TYPE TABSTRIP. “TT为表条目控制的控件名称,一定要和你画出的一样,
5、在主屏幕的BPO下面设置逻辑流要加上一章中学过的调用子屏幕的语句:CALL SUBSCREEN:TT_REF INCLUDING sy-repid sid1. 其中 sy-repid 是本程序名称,sid1是屏幕的变量号码。
联系下面PAI在 MODULE STATUS_0100下面设置sid1的获取逻辑:如下:
module STATUS_0100 output.
* SET PF-STATUS 'xxxxxxxx'.* SET TITLEBAR 'xxx'. tt-activetab = PRE_TAB. ”PRE_TAB是PAI中功能码的变量值,如果不把ok_code赋给表条目控制的控件 tt-activetab,button按钮就会一直定在button默认的地方。 CASE tt-activetab . WHEN 'T1'. SID1 = 200. WHEN 'T2'. SID1 = 300. ENDCASE.endmodule.6、PAI设置:
PROCESS AFTER INPUT.
MODULE cancel AT EXIT-COMMAND. “退出按钮的设置 CALL SUBSCREEN tt_sca. ”这边是必须的要调用子屏幕范围,这里tt_sca是子屏幕范围的名称 MODULE tt_active_tab_get. ”对功能码的控制也就是MODULE USER_COMMAND_0100.这里面的逻辑如下save_ok = ok_code.
CLEAR ok_code. CASE save_ok. WHEN 'EXIT'. LEAVE PROGRAM. WHEN 'T1'. pre_tab = 'T1'. WHEN 'T2'. pre_tab = 'T2'. ENDCASE.