ДСПАТР(ПР) в программе РПГ по защите поля
-
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')