ДСПАТР(ПР) в программе РПГ по защите поля

StackOverflow https://stackoverflow.com//questions/9629096

  •  09-12-2019
  •  | 
  •  

Вопрос

Я разрабатываю программу RPG в программном обеспечении IBM для разработки.

происходит то, что я создаю файл отображения с полем ввода

Я пытаюсь выполнить одну задачу.

Если они уже ввели все поле и отображается другая запись, я хочу защитить поле, чтобы они просто вводили значение, пока не нажмут Enter.

но я в замешательстве, как мне использовать ДСПАТР(ПР) для защиты поля

Это было полезно?

Решение 2

Я нашел ответ на свой вопрос.

Для этого просто перейдите в свойства в дизайнере экрана> щелкните правой кнопкой мыши свойства и найдите ключевое слово. protect и это защитит весь экран для поля, в которое они вводятся, до тех пор, пока enter нажимается для снятия защиты.

Это также можно сделать, добавив DSPATR(PR) с индикатором и добавьте это в RPG для включения индикатора нужного поля.

Другие советы

На зеленом экране программа RPG знает только о том, что происходит на экране, когда вы нажимаете <enter> на вашем экране.Похоже, вы хотите защитить поле после того, как пользователь ввел в него данные.Я не думаю, что это возможно, если каждое поле не имеет CHECK(ER) на каждом поле.Это может раздражать в зависимости от функции программы.Люди, использующие ручной ввод, предпочитают просто продолжать печатать, и они точно запомнили, сколько табуляции и пробелов им нужно нажать для ввода данных.

Для исследования Purpouse вы можете установить атрибуты отображения, поскольку ваш RPG «Backend» код, например, в вашем случае шестнадцатеричное значение кода для защиты (только для чтения), является «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 :).

sel 1a b 11 2
99 DSPATR (ПК)

99 DSPATR (RI)

Когда вы отображаете поле на зеленом экране, вы включите в целом для ввода / вывода. Здесь я сначала очистите поле SEL, затем EXFMT формат записи с файла дисплея (DDS).Как только пользователь нажимает Enter, я «включаю» индикатор 99. Я бы снова бывшими снова отобразить экран.В примере, если * in99 был * включен, курсор будет расположен в поле SEL и обратное изображение его.Вы можете сделать то же самое с защитой DSPATR (PR).В вашем коде вы можете «установить» индикатор, отобразите экран.Пользовательские попадания входят в вас «включить» индикатор и репо экрана.

в RPG, вы можете использовать движение * на * in99.

или вы можете использовать Seton ........ 99.

или переместить '1' * in99.

в CLP, вы можете CHGVAR VAR (& in99) значение ('1')

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top