面板不执行 )PNTS 部分
Panel doesn't execute )PNTS Section
我正在编写一个包含 "Point and shoot" 元素的 ISPF 面板。元素表示 "yes" 和 "no",默认光标必须指向 "yes"。
第一种情况:
字段声明: + TYPE(INPUT) PAS(ON)
当我使用此声明时,面板通过按 [enter] 并生成 rc = 0 来关闭。但是,)PNTS 部分没有 运行.
第二个案例:
字段声明: + TYPE (PS)
)PNTS 部分 运行s 按 [enter]。但是,我无法将 .cursor
设置为字段 "yes".
我用不同的字段名称尝试了不同的方法(例如 ZPS00001
)。我尝试用 Rexx 模拟 Point and Shoot,但效果不佳。
按 enter 键将处理瞄准和射击字段。但是,光标必须在 )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 执行程序:
/* 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 的值。如果光标在 field1、field2、field3 或 field4 上,您将得到 1、2、3 或 4。如果它在 IN1 或 IN2 上,则您会打开或关闭。这完全取决于按下 ENTER 时光标所在的位置。根据示例,您可以看到傻瓜相机不仅限于菜单。希望这个例子有所帮助。
马夫骑士
我正在编写一个包含 "Point and shoot" 元素的 ISPF 面板。元素表示 "yes" 和 "no",默认光标必须指向 "yes"。
第一种情况:
字段声明: + TYPE(INPUT) PAS(ON)
当我使用此声明时,面板通过按 [enter] 并生成 rc = 0 来关闭。但是,)PNTS 部分没有 运行.
第二个案例:
字段声明: + TYPE (PS)
)PNTS 部分 运行s 按 [enter]。但是,我无法将 .cursor
设置为字段 "yes".
我用不同的字段名称尝试了不同的方法(例如 ZPS00001
)。我尝试用 Rexx 模拟 Point and Shoot,但效果不佳。
按 enter 键将处理瞄准和射击字段。但是,光标必须在 )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 执行程序:
/* 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 的值。如果光标在 field1、field2、field3 或 field4 上,您将得到 1、2、3 或 4。如果它在 IN1 或 IN2 上,则您会打开或关闭。这完全取决于按下 ENTER 时光标所在的位置。根据示例,您可以看到傻瓜相机不仅限于菜单。希望这个例子有所帮助。
马夫骑士