IBM大型机论坛索引
 
登录
 
IBM大型机论坛索引 大型机:搜索 IBM Mainframe论坛:常见问题解答 寄存器
 

从PANEL获取详细信息时出错


IBM大型机论坛 -> TSO / ISPF
发表新话题   回复主题
查看上一个主题 :: 查看下一个主题  
作者 信息
拉姆湖

新的用户


已加入:2011年1月6日
帖子:53
地点:钦奈

发布发表:2013年11月18日星期一1点31分
引用回复

大家好,

美好的一天,热烈的问候!!

我正在学习如何通过REXX对PANEL进行编码,现在我正试图从PANEL中获取信息,但是信息无法正确获取,我的问题如下。
1.我设计了带有一个输入选项的主面板

输入您的选项==>_
一个。 1 ==>Sub-Panel1
b。 2 ==>Sub-Panel2
C。 3 ==>Sub-Panel3

如果USER输入1作为输入,则用户将被路由到子面板1-2 /> 子面板2 / 3 --> 子面板3

相同的以下设计。
码:

)ATTR                                                   
  %  TYPE(TEXT)  INTENS(HIGH) COLOR(TURQ)               
  @  TYPE(TEXT)  INTENS(HIGH) COLOR(GREEN) SKIP(ON)     
  +  TYPE(TEXT)  INTENS(LOW)  SKIP(ON) COLOR(RED)       
  $  TYPE(TEXT)  INTENS(HIGH) COLOR(RED)                 
  _  TYPE(INPUT) INTENS(HIGH) JUST(LEFT) COLOR(TURQ)     
)BODY EXPAND(\\)                                         
+     @ENTER您的选项%===>_ZCMD   
+                                                           
+                                                           
+                  @1.ABC (SUB-PANEL1)           
+                                                           
+                  @2.BCD(SUB-PANEL2)           
+                                                           
+                  @3.CDE(SUB-PANEL3)               
+                                                           
+                                                           
+ PRESS%PF3 +返回。         
)INIT                               
  .ZVARS= '(INPUT)'                 
/)REINIT                             
)PROC                               
    &ZSEL=TRANS(TRUNC(&INPUT,'.')   
               1,'PANEL(sub-panel1)'   
               2,'PANEL(sub-panel2)' 
               3,'PANEL(sub-panel3)'
               ' ',' '               
               *,'?' )               
)END                                 
                 


我正在使用REXX程序执行上述设计如下
码:

"PROFILE NOPREFIX"                                               
"ISPEXEC LIBDEF ISPPLIB数据集ID(“ USER.TEST.SOURCE.PANEL”)"
"ISPEXEC LIBDEF ISPSLIB数据集ID('USER.TEST.SOURCE')"       
"ISPEXEC ADDPOP"                                                 
"ISPEXEC显示面板(PANEL1)"                                 
"ISPEXEC显示面板(SUBPL1)"                               
"ISPEXEC显示面板(SUBPL2)"                               
"ISPEXEC显示面板(SUBPL3)" 
"ISPEXEC REMPOP"                                                 
ARG 输入       
                                                 


尝试执行主面板时出现以下错误

码:

 ISPP241                                                                   
                                                                           
 Panel 'PANEL1' error                                                     
 .ZVARS字段名称的数量不等于"Z" in/out fields. 
                                                                       
                                                                           
                                                                           
                                                                           
                                                                           
                                                                           
 当前对话框声明:                                                 
 DISPLAY PANEL(PANEL1)                                                     


请帮助我确定我在上面犯的错误。

非常感谢您的宝贵时间。
回到顶部
查看用户资料 发送私信
恩里科·索里切蒂

高级主持人


已加入:2007年3月14日
帖子:10715
所在地:意大利

发布发表:2013年11月18日星期一2点18分
引用回复

在我看来,这则讯息很能自我解释

在面板中,您将字段编码为 Z 当字段大小不足以包含实际字段/变量名称时

在选择面板中很少出现
(当然不是在初学者的水平上)

在这种情况下,请摆脱ZVARS的东西
回到顶部
查看用户资料 发送私信
拉姆湖

新的用户


已加入:2011年1月6日
帖子:53
地点:钦奈

发布发表:2013年11月18日星期一3:30 pm
引用回复

嗨,恩里科,

您能否建议我,从面板获取INPUT并将INPUT传递给REXX程序的最佳方法是什么,以便我可以尝试使其按我的要求工作。

感谢您的时间和帮助。
回到顶部
查看用户资料 发送私信
恩里科·索里切蒂

高级主持人


已加入:2007年3月14日
帖子:10715
所在地:意大利

发布发表:2013年11月18日星期一3:43 pm
引用回复

首先阅读和冥想ISPF手册...
了解之间的区别
显示屏 ...

选择面板...

您发布的内容是“选择”面板
ISPF负责导航的地方

不是最新的 但足以让您入门
publibz.boulder.ibm.com/cgi-bin/bookmgr_OS390/Shelves/ISPZPM70

如果从另一方面开始,请从这里开始。您想了解有关zOS级别的ISPF手册
www-03.ibm.com/systems/z/os/zos/bkserv/index.html

看到这里的一个完整的工作示例
www.ibmmainframes.com/viewtopic.php?t=60794&高亮=显示+面板+测试
回到顶部
查看用户资料 发送私信
佩德罗

全球主持人


已加入:2006年9月1日
帖子:2214
地点:硅谷

发布发表于:周二2013年11月19日上午12:11
引用回复

拉姆湖,您的帖子显示错误消息ISPP241被显示。您可以使用LOOKAT查找消息说明:请参阅 www-03.ibm.com/systems/z/os/zos/bkserv/lookat/

ISPF也有一条消息和代码手册,其中将包含关于消息ISPP241的说明。请参阅Enrico提供的链接。
回到顶部
查看用户资料 发送私信
MFKid

新的用户


已加入:2013年11月20日
帖子:91
地点:印度

发布发表:2013年11月20日,星期三,下午1:31
引用回复

拉姆湖,要显示主面板没有错误,您需要做的就是删除INIT,REINIT中的所有内容&PROC部分(包括标题),然后将_ZCMD更新为_INPUT。
稍后在REXX中,您可以将IF条件语句与INPUT变量一起使用以显示子面板。 (例如:如果Input = 1,则....)
回到顶部
查看用户资料 发送私信
恩里科·索里切蒂

高级主持人


已加入:2007年3月14日
帖子:10715
所在地:意大利

发布发表:2013年11月20日,星期三2:47 pm
引用回复

有任何理由建议TS实施自己的面板导航基础架构
ISPF肯定会以更好的方式做到这一点?
回到顶部
查看用户资料 发送私信
拉姆湖

新的用户


已加入:2011年1月6日
帖子:53
地点:钦奈

发布发表:2013年11月20日,星期三,下午3:44
引用回复

嗨,MFKID,

感谢您对我的查询的建议!

我已使用以下逻辑满足我的要求。

面板设计:
码:

)INIT                     
  &INPT  = ' '             
)REINIT                   
 REFRESH(*)               
)PROC                     
    VPUT(INPT) SHARED     
    VER(&INPT,NB,RANGE,1,3)



REXX代码:
码:

地址ISPEXEC"VPUT (INPT) SHARED"                 
  IF INPT = '1' THEN                                 
     DO                                               
       "ISPEXEC显示面板(SUBPAN1)"                                           
     END                                             
  IF INPT = '2' THEN                                 
     DO                                               
       "ISPEXEC显示面板(SUBPAN2)"             
     END                                             
  IF INPT = '3' THEN                                 
     DO                                               
       "ISPEXEC显示面板(SUBPAN3)"     
     END
出口   
       


上面的代码完全符合我对PANELS的要求。

请让我知道是否还有其他方法可以达到上述要求,因为我无法使用ZVARS取得成功。

感谢您的时间和帮助吨!
回到顶部
查看用户资料 发送私信
MFKid

新的用户


已加入:2013年11月20日
帖子:91
地点:印度

发布发表:2013年11月20日,星期三,下午4:09
引用回复

很好。我想您无需在面板程序或REXX中编码“ VPUT(INPT)SHARED”。一旦在面板中定义了输入变量(_INPT),便可以从rexx直接访问该变量。
回到顶部
查看用户资料 发送私信
尼克·克劳斯顿

全球主持人


加入时间:2007年5月10日
帖子:2455
地点:英国汉普郡

发布发表:2013年11月20日,星期三,下午4:20
引用回复

首先,就像Enrico所说的那样,无需rexx代码就可以完成所有操作。 ISPF可以处理所有问题-查看ISP @ PRIM的代码或查看手册。唯一需要的Z变量是ZCMD。
第二:所有这些IF是什么?为什么不使用SELECT或IF / THEN / ELSE?但是最好不要显示任何代码,除非显示选择面板。
回到顶部
查看用户资料 发送私信
恩里科·索里切蒂

高级主持人


已加入:2007年3月14日
帖子:10715
所在地:意大利

发布发表:2013年11月20日,星期三,下午4:21
引用回复

引用:
请让我知道是否还有其他方法可以达到上述要求,因为我无法使用ZVARS取得成功。

另一种方法是正确的方法...
让ISPF处理导航
回到顶部
查看用户资料 发送私信
MFKid

新的用户


已加入:2013年11月20日
帖子:91
地点:印度

发布发表:2013年11月20日,星期三,下午4:34
引用回复

拉姆湖(ibmmainframeforum.com)可能是发布与面板/ rexx设计上的基本/入门级问题相关的查询的更好的地方。
回到顶部
查看用户资料 发送私信
查看上一个主题 :: :: 查看下一个主题  
发表新话题   回复主题 查看书签
所有时间均为格林尼治标准时间+ 6小时
论坛索引 -> TSO / ISPF

 


类似主题
话题 论坛 回覆
没有新帖 加载D ...时二级索引错误 IMS数据库/ DC 2
没有新帖 错误0C1原因代码1与分支i ... PL / I和组装商 3
没有新帖 xped时出现错误 JCL和VSAM 10
没有新帖 有人可以帮我找到... IBM工具 9
没有新帖 同步排序错误-超出控制范围... 同步排序 10
搜索我们的论坛:


回到顶部