DSPATR(PR)在RPG程序中保护现场

时间:2012-03-09 04:51:27

标签: ibm-midrange rpg

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

我正在创建一个带有输入字段

的显示文件

我正在努力完成一项任务。

如果他们已经输入了所有字段而另一条记录显示我想保护他们只是输入值的字段,直到他们按下

但我很困惑如何使用DSPATR(PR)来保护现场

4 个答案:

答案 0 :(得分:2)

在绿色屏幕上,当您点击屏幕上的<enter>时,RPG程序只会知道屏幕上显示的内容。听起来您希望在用户将数据输入字段后保护字段。除非每个字段在每个字段上都有CHECK(ER),否则我认为不可能。根据程序功能,这会很烦人。精诚的入门人员更喜欢只是继续打字,并且他们已经准确记住了他们需要多少个标签和空格来输入数据。

答案 1 :(得分:1)

我找到了问题的答案。

要执行此操作,只需转到屏幕设计器上的属性&gt;右键单击属性并找到关键字protect,这将保护他们输入的字段的整个屏幕,直到按enter取消保护。

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

答案 2 :(得分:0)

对于研究purpouse,您可以设置显示属性,因为您的RPG“后端”代码,例如在您的情况下保护(只读)字段的十六进制代码值是'A0',看看代码:

在DDSSRC:

.....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

对于许多人来说,有太多的六进制代码,只需要查看www:)。

答案 3 :(得分:-1)

SEL 1A B 11 2
 A 99 DSPATR(PC)

A 99 DSPATR(RI)

在绿色屏幕上显示字段时,通常会对I / O进行EXFMT操作。 在这里,我先清除SEL字段然后从显示(DDS)文件EXFMT记录格式。一旦用户按下ENTER键,我就打开&#34;指标99。 然后我会再次EXFMT显示屏幕。在示例中,如果* IN99为* ON,则光标将位于SEL字段并将其反转为Image。您可以使用保护DSPATR(PR)执行相同操作。在您的代码中,您已经启动&#34;指示器,显示屏幕。用户点击进入你&#34;打开&#34;指示器并重新显示屏幕。

在RPG中,您可以使用MOVE * ON * IN99。

或者您可以使用SETON ........ 99。

或MOVE&#39; 1&#39; * IN99。

在CLP中,您可以CHGVAR VAR(&amp; IN99)VALUE(&#39; 1&#39;)