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



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

实际情况是,我正在创建一个带有输入字段的显示文件

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

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

但我很困惑如何使用DSP(PR)来保护字段

在绿色屏幕上,RPG程序只有在您点击屏幕上的<enter>时才知道屏幕上有什么。听起来,在用户将数据输入字段后,您希望保护字段。我认为这是不可能的,除非每个字段上都有CHECK(ER)。根据程序功能的不同,这会变得很烦人。不用动手输入的人更喜欢不停地打字,他们已经准确地记住了输入数据需要键入多少选项卡和空格。

我找到了问题的答案。

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

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

出于研究目的,您可以设置显示属性,因为您的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

对于许多用途来说,有太多的hexa代码,只需要四处查看即可:)。

A SEL 1A B 11 2
一个99 DSP(PC)

A 99 DSP(RI)

当您在绿色屏幕上显示字段时,您通常会为I/O执行EXFMT。在这里,我将首先清除SEL字段,然后从显示(DDS)文件中EXFMT记录格式。一旦用户按下ENTER,我就"打开"指示器99。然后我会再次EXFMT显示屏幕。在该示例中,如果*IN99为*ON,则光标将定位到SEL字段并对其进行反向成像。您可以对保护DSP(PR)执行同样的操作。在你的代码中,你会"设置"指示器,显示屏幕。用户点击ENTER,"打开"指示器并重新显示屏幕。

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

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

或移动'1'*IN99。

在CLP中,您可以使用CHGVAR VAR(&IN99)VALUE('1')

相关内容

  • 没有找到相关文章

最新更新