Ibm midrange 在RPG程序中使用DSPATR(PR)来保护字段

Ibm midrange 在RPG程序中使用DSPATR(PR)来保护字段,ibm-midrange,rpg,Ibm Midrange,Rpg,我正在IBM开发软件上开发RPG程序 发生的情况是,我正在使用输入字段创建一个显示文件 我正在努力完成一项任务 如果他们已经输入了所有字段,而另一条记录是display,我想保护这个字段,他们只需输入值,直到按enter键 但是我很困惑如何使用DSPATR(PR)来保护绿色屏幕上的字段。RPG程序只有在您点击屏幕上的时才知道屏幕上的内容。听起来您希望在用户将数据输入字段后保护该字段。我认为这是不可能的,除非每个字段上都有检查(ER)。根据程序功能的不同,这会变得很烦人。人们喜欢直接输入数据,他们

我正在IBM开发软件上开发RPG程序

发生的情况是,我正在使用输入字段创建一个显示文件

我正在努力完成一项任务

如果他们已经输入了所有字段,而另一条记录是display,我想保护这个字段,他们只需输入值,直到按enter键


但是我很困惑如何使用DSPATR(PR)来保护绿色屏幕上的字段。RPG程序只有在您点击屏幕上的
时才知道屏幕上的内容。听起来您希望在用户将数据输入字段后保护该字段。我认为这是不可能的,除非每个字段上都有
检查(ER)
。根据程序功能的不同,这会变得很烦人。人们喜欢直接输入数据,他们准确地记住了输入数据所需的制表符和空格。

我找到了问题的答案

要做到这一点,只需转到屏幕设计器上的属性>右键单击属性并查找关键字
保护
,这将保护他们输入的字段的整个屏幕,直到按下
输入
取消保护


也可以通过添加带指示器的DSPATR(PR)来完成,并将其添加到
RPG
以打开所需字段的指示器。

A SEL 1A B 11 2
99 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]