Панель не выполняется) Секция ПНЦ
Я пишу панель ISPF с элементами "наведи и снимай". Элементы говорят "да" и "нет", а курсор по умолчанию должен указывать на "да".
1-й случай:
Декларация полей: + TYPE(INPUT) PAS(ON)
Когда я использую это объявление, панель закрывается нажатием [enter] и генерацией rc = 0. Однако секция)PNTS не запускается.
2-й случай:
Декларация полей: + TYPE (PS)
Раздел)PNTS запускается нажатием [enter]. Тем не менее, я не могу установить .cursor
на поле "да".
Я пробовал разные способы с разными именами полей (например, ZPS00001
). Я пытался смоделировать Point and Shoot с Rexx, но ничего не получалось.
1 ответ
Нажатие кнопки ввода приведет к обработке полей точек и снимков. Однако курсор должен находиться на одном из полей в разделе)PNTS, чтобы установить значение, связанное с полем. Звучит так, как будто панель неправильно закодирована. PAS должен использоваться для полей ввода или вывода, а PS должен использоваться для текстовых полей. Например, если у вас есть следующая панель:
)ATTR
$ TYPE(PS)
! TYPE(OUTPUT) PAS(ON)
)BODY
+ --------------------- +
+ ===>_ZCMD +
+
$Field1 : _FLD +
$Field2 : _ABC +
$Field3 : !IN1 +
$Field4 : !IN2 +
)INIT
&INV1 = 111
&INV2 = 222
&INV3 = 333
)REINIT
REFRESH(*)
)PROC
)PNTS
FIELD(IN1) VAR(INV1) VAL(ON)
FIELD(IN2) VAR(INV2) VAL(OFF)
FIELD(ZPS00001) VAR(INV3) VAL(1)
FIELD(ZPS00002) VAR(INV3) VAL(2)
FIELD(ZPS00003) VAR(INV3) VAL(3)
FIELD(ZPS00004) VAR(INV3) VAL(4)
)END
Со следующим REXX exec:
/* REXX */
RCC = 0
INV1 = 0
INV2 = 1
DO WHILE RCC = 0
ADDRESS ISPEXEC 'DISPLAY PANEL(PAS)'
RCC = RC
SAY INV1 '-' INV2 '-' INV3
END
Вы можете проверить значения inv1, inv2 и inv3 в зависимости от того, где вы поместили курсор, когда нажмете ввод. Вы получите 1, 2, 3 или 4, если курсор находится в поле field1, field2, field3 или field4. Если он включен на IN1 или IN2, то вы включаете или выключаете. Все зависит от того, где находится курсор при нажатии ENTER. Исходя из примера, вы можете увидеть, как стрелять и стрелять не ограничивается меню. Надеюсь, пример поможет.
Марв Найт