我在RPGLE AS400中进行了屏幕值验证。子文件中有10个字段,用户可以在这些字段中输入值。如果用户输入Y,则有一个字段,则应保护8个字段,仅保护其他字段不受保护。验证没有按Enter键意味着一旦输入值,它应该检查并显示错误消息。
答案 0 :(得分:3)
不可能这样做......
5250终端是"智能"设备。它并不是一个将每个按键发送给主机的哑终端。相反,整个屏幕输入/输出缓冲区来回发送。
在将缓冲区发送到设备之前设置字段的受保护/未受保护状态,并且无法更改,直到通过回车键(或F键)将控制权返回给您的应用程序
您可以做的是将CHECK(ER)
或AUTO(RA)
关键字添加到您的单个字符字段中;充当"自动输入"。只要键入一个值,控件就会返回到您的应用程序,就像用户按下回车一样。
5250可以处理基本验证,而无需使用CHECK
和VALUES
关键字将控制权返回给您的应用。
答案 1 :(得分:1)
可能会将check(er)属性添加到您谈论的Y字段中。当用户在Y字段中键入任何内容时,控件将返回到程序。如果它不适用于子文件,只需创建一个看起来像子文件的屏幕。使用Y字段上的check(er)属性来保护其他字段。
答案 2 :(得分:0)
查尔斯是对的。
您可以将5250视为没有客户端上的DOM或脚本功能的HTML。它具有一些基本的格式化功能,甚至一些基本的字段验证功能,但终端无法编写脚本来响应事件。您可以做的唯一事情是通过按下其中一个命令键将请求发送回服务器(除了各种功能键[F1-F24]之外,ENTER是一个命令键,还有一些其他功能键)。如果您在屏幕上使用更多“现代”控件,您还可以使用按钮,单选按钮和复选框与服务器进行通信。您还可以捕获鼠标事件,如右键和左键单击或双击,拖放,但必须将这些鼠标事件发送回服务器进行解释。必须将命令键按键,按钮和鼠标事件发送到服务器,以便在终端上发生任何事情,因为客户端上不存在脚本功能。