接上一篇,我们继续讲解SELECTION-SCREEN的的语法。
(4)SELECTION-SCREEN INCLUDE(调用已经存在的屏幕元素)
参照某一个已经定义的屏幕元素来创建,如下代码:
CALL SCREEN 1234.
*PARAMETERS MATNR LIKE MARA-MATNR.
*CALL SELECTION-SCREEN 1234. "调用子窗体
SELECTION-SCREEN BEGIN OF SCREEN 1111.
SELECTION-SCREEN BEGIN OF BLOCK block1 WITH FRAME TITLE TEXT-W01.
SELECT-OPTIONS SELO FOR SY-REPID.
SELECTION-SCREEN ULINE. "换行线
PARAMETERS PARO.
SELECTION-SCREEN END OF BLOCK block1.
SELECTION-SCREEN END OF SCREEN 1111.
SELECTION-SCREEN BEGIN OF SCREEN 1234.
SELECTION-SCREEN INCLUDE BLOCKS block1.
SELECTION-SCREEN END OF SCREEN 1234.
程序运行界面如下:
(5)SELECTION-SCREEN ULINE
划出横线,必须用在BLOCK中才能生效。
(6)SELECTION-SCREEN SKIP n
在BLOCK中产生换行。
(7)SELECTION-SCREEN POSITION pos
在BLOCK中产生空格。
(8)SELECTION-SCREEN BEGIN OF LINE.
......
SELECTION-SCREEN END OF LINE.
将所生成的屏幕元素控制在一行。
(9)AT SELECTION-SCREEN
是PAI处理,选择屏幕显示之后,用来响应回车,F8,F1,F4等事件。
(1)选择屏幕事件,此处声明的变量是局部变量。
(2)check sy-ucomm 判断用户命令。
(3)在这个事件响应中,可以对屏幕字段进行有效性检验等,但无法修改选择屏幕。
分为以下几个方面:
... ON <field>:该语法用于控制屏幕元素输入时的遇错处理,检查具体输入字段(SELECTION-OPTIONS或PARAMETERS)是否完整或正确,若输入有错或不满足条件,其它屏幕元素会变成灰色,不接受输入直到该字段输入正确为止。
...ON VALUE-REQUEST FOR <field low/high>:SELECT-OPTIONS按选择帮助<F4>键时触发该事件。
...ON HELP-REQUEST FOR <field low/high>:SELECTION-OPTIONS按选择帮助<F1>键时键发该事件。
...ON RADIOBUTTON GROUP <radio>:单选按钮事件,必须进行整体输入检查。
...ON BLOCK <block>:框架的触发事件(控制框架中的屏幕元素值的输入)。
...OUTPUT:用于屏幕输出时的各屏幕元素值的管控(PBO处理,在选择屏幕显示之前就被调用;响应屏幕上的事件,用户回车或F8后也被调用;通过modify screen可以修改选择屏幕字段)。
...ON EXIT-COMMAND:用于响应"BACK","CANCEL","EXIT"等事件。
[For Example]
SELECT-OPTIONS SEL0 FOR SY-TVAR0.
SELECTION-SCREEN BEGIN OF BLOCK BL0.
SELECT-OPTIONS SEL1 FOR SY-TVAR1.
SELECTION-SCREEN BEGIN OF BLOCK BL1.
PARAMETERS P1 RADIOBUTTON GROUP RAD1.
PARAMETERS P2 RADIOBUTTON GROUP RAD1.
SELECTION-SCREEN BEGIN OF BLOCK BL2.
PARAMETERS P3.
SELECTION-SCREEN END OF BLOCK BL2.
SELECT-OPTIONS SEL2 FOR SY-TVAR2.
SELECTION-SCREEN END OF BLOCK BL1.
SELECTION-SCREEN END OF BLOCK BL0.
AT SELECTION-SCREEN ON SEL1.
AT SELECTION-SCREEN ON RADIOBUTTON GROUP RAD1.
AT SELECTION-SCREEN ON P3.
AT SELECTION-SCREEN ON BLOCK BL1.
AT SELECTION-SCREEN ON BLOCK BL2.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端