Ibm midrange 在RPG程序中使用DSPATR(PR)来保护字段
我正在IBM开发软件上开发RPG程序 发生的情况是,我正在使用输入字段创建一个显示文件 我正在努力完成一项任务 如果他们已经输入了所有字段,而另一条记录是display,我想保护这个字段,他们只需输入值,直到按enter键Ibm midrange 在RPG程序中使用DSPATR(PR)来保护字段,ibm-midrange,rpg,Ibm Midrange,Rpg,我正在IBM开发软件上开发RPG程序 发生的情况是,我正在使用输入字段创建一个显示文件 我正在努力完成一项任务 如果他们已经输入了所有字段,而另一条记录是display,我想保护这个字段,他们只需输入值,直到按enter键 但是我很困惑如何使用DSPATR(PR)来保护绿色屏幕上的字段。RPG程序只有在您点击屏幕上的时才知道屏幕上的内容。听起来您希望在用户将数据输入字段后保护该字段。我认为这是不可能的,除非每个字段上都有检查(ER)。根据程序功能的不同,这会变得很烦人。人们喜欢直接输入数据,他们
但是我很困惑如何使用DSPATR(PR)来保护绿色屏幕上的字段。RPG程序只有在您点击屏幕上的
时才知道屏幕上的内容。听起来您希望在用户将数据输入字段后保护该字段。我认为这是不可能的,除非每个字段上都有检查(ER)
。根据程序功能的不同,这会变得很烦人。人们喜欢直接输入数据,他们准确地记住了输入数据所需的制表符和空格。我找到了问题的答案
要做到这一点,只需转到屏幕设计器上的属性>右键单击属性并查找关键字保护
,这将保护他们输入的字段的整个屏幕,直到按下输入
取消保护
也可以通过添加带指示器的DSPATR(PR)来完成,并将其添加到
RPG
以打开所需字段的指示器。A SEL 1A B 11 299 DSPATR(个人计算机) 99 DSPATR(RI) 当您在绿色屏幕上显示一个字段时,通常会显示I/O。 在这里,我将首先清除SEL字段,然后从display(DDS)文件中导出记录格式。一旦用户按下回车键,我“打开”指示器99。 然后我会再次EXFMT以显示屏幕。在本例中,如果*IN99为*ON,光标将定位到SEL字段并将其反转成像。您可以使用protect DSPATR(PR)执行相同的操作。在您的代码中,您可以“启动”指示器,显示屏幕。用户点击进入“打开”指示器并重新弹出屏幕 在RPG中,您可以在99中使用MOVE*ON* 或者您可以使用SETON…….99 或在99中移动“1”
在CLP中,您可以为研究目的设置CHGVAR(&IN99)值('1'),因为您可以设置显示属性,因为您的RPG“后端”代码,例如,在您的情况下,protect(只读)字段的十六进制代码值为'A0',请查看代码: 在DDSRC中:
.....AAN01N02N03T.Nombre++++RLon++TPdBLínPosFunciones+++++++++++++++++++++++++++
A* First declare the variable
A REV1 1A P
A*
A* then, after the display field in function limit you assign it
A*
A FIELD01 14Y 2B 17 42EDTCDE(1)
A DSPATR(&REV1)
在RPGSRC中,只需在需要时设置或清除:
CL0N01Factor1+++++++Operac&ExtFactor2+++++++Resultado+++++Lon++D+MaMeIg....Comentarios+++++++++
C*
C* Set the hex value in the QDDSSRC variable
C EVAL REV2 = x'A0'
C*
C* Clear the variable
C CLEAR REV1 1
对于许多Purpose来说,有太多的hexa代码,只需查看www:)。因此,一旦用户将数据键入字段,您就需要在屏幕上重新显示受保护的字段(可能是某些字段)。通常,当我们重新显示屏幕以进行确认时,我们希望允许用户进行任何适当的更正。在这种情况下,你不希望他们能够纠正错误吗?@WarrenT嗯,这是我必须编写的程序的要求,以保护字段信息,如果他们想要更改,他们只需按enter键即可取消字段保护。感谢您的回答,但我找到了解决方案,并且可以在RPG屏幕上实现设计师[DSP]