面板没有执行)PNTS部分

时间:2016-01-25 16:33:54

标签: rexx ispf

我用"指向和拍摄"编写ISPF面板。元素。元素说"是"和"不"并且默认光标必须指向"是"。

第一案:
字段声明: + TYPE(INPUT) PAS(ON)
当我使用此声明时,按[enter]并生成rc = 0关闭面板。但是,PNTS部分不会运行。

第二案例:
字段声明: + TYPE (PS)
按)[输入]运行PNTS部分。但是,我无法将.cursor设置为字段"是"。

我尝试了不同的字段名称(例如ZPS00001)。我试着用Rexx模拟Point and Shoot,但没有什么工作得很好。

1 个答案:

答案 0 :(得分:1)

按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时光标所在的位置。根据示例,您可以看到瞄准和射击不仅限于菜单。希望这个例子有帮助。

Marv Knight