1.DIALOG基础屏幕创建
1.屏幕入参创建
在空白的REPORT中创建一个新的屏幕‘0001’

当屏幕大小不够用时,可以在这里调节

进入绘制屏幕界面

创建屏幕入参


2.界面展示列表创建
1.单个列表创建
点击图标创建单个列表

依次点击下一步

表控制命名(PS:当原来的表建错了,比如少加了一个字段,那就需要将相关的所有子例程,包括PBO,PAI等在内代码删除或注释,否则一会报错。首当其冲的便是table control 已存在的报错)

在创建列表的时候,若不参考数据字段,需要事先在REPORT中定义对应的TABLE 和 WA.

根据上一步的选择会出现可选字段,选择自己需要的字段后,继续下一步

选择列表的属性,例:Output only 只能展示数据无法插入、修改。

是否需要滚动条

简介明了地命名PBO等自动生成的代码(PS:命名需要Z/Y开头否则后续生成会报错)

最后完成

2.多个可切换列表创建
点击图标创建

同理,执行下一步

同理,简介命名,执行下一步

命名需要的多个列表,至少需要两个

下一步

同理,Z/Y开头命名,下一步

生成对应子屏幕,完成

2.功能的实现
1.常规功能退出、返回、执行
创建GUI Status、 GUI Titles



创建常规FUNCTION KEY 、工具栏按钮

在代码中添加对应按键设置和标题


添加按钮对应的指令控制

为了防止出现按钮CODE获取错误,事先将OK_CODE 保存起来。
先定义CODE

在program中建一个用于保存ok_code的变量

代码用例:
*----------------------------------------------------------------------*
***INCLUDE ZTEST_DIALOG_USER_COMMAND_0I01.
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_0001 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE user_command_0001 INPUT.
CLEAR:save_ok.
save_ok = ok_code.
CLEAR ok_code.
CASE save_ok.
WHEN 'BACK'.
LEAVE TO SCREEN 0001.
WHEN 'EXIT'.
LEAVE PROGRAM.
WHEN 'CANCEL'.
LEAVE SCREEN .
WHEN 'ZEXECUTE'.
MESSAGE '不要点了' TYPE 'I'.
WHEN OTHERS.
ENDCASE.
ENDMODULE.
预览结果:


2.将入参值自动填加到列表中(PS:触发条件为回车事件)
先将入参值对应字段,在report中定义


由于,前面我们将OK_CODE存放到了,SAVE_OK中,所以以下部分也要修改
在回车触发中,添加代码将入参值,添加到表中
效果展示:

3.展示当前列表数据量
新建一个空白输出字段,并设置为仅输出

在report中定义对应变量

代码中获取当前列表数量,并展示 (PS:如果表参考的是数据字典的话,需要将里面的从数据获取的代码去除,否则会把参考的表中所有的数据都取出来。)

效果展示:

4.动态显示隐藏DIALOG屏幕字段
DIALOG屏幕对应的,按钮、字段创建

在PAI的指令中,进行SCREEN MODIFY 来修改,缺点是无法立即,展示或隐藏,需要一个触发条件,如回车,点击按钮等。
本文详细介绍了DIALOG中屏幕的创建过程,包括单个和多个列表的创建,常规功能如退出、返回、执行的实现,以及如何将入参值自动填充到列表、显示数据量和动态显示/隐藏字段。开发者需注意命名规范和代码调试技巧。
1万+





