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

在面板中显示错误消息


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

新的用户


已加入:2007年5月29日
帖子:34
地点:钦奈

发布发表:2008年4月28日星期一11:41上午
引用回复

我正在设计一个屏幕来从用户那里获取输入,对其进行验证并在输入正确的情况下进一步处理,如果面板上的输入错误则显示错误消息

谁能告诉我如何在面板中弹出这些错误消息?

您能否让我知道ZMSG,LMSG,SMSG,Zedsmsg,Zedlmsg的正确用法。我不知道所有这些以及使用方式的确切含义(例如,它将很有用)。

这些方面的任何帮助都将非常有用。
回到顶部
查看用户资料 发送私信
恩里科·索里切蒂

高级主持人


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

发布发表:2008年4月28日星期一12:48 pm
引用回复

码:
zerrsm ="short message text"
zerrlm ="long message text"
地址ISPEXEC  "SETMSG MSG(ISRZ002) "


自我解释不是吗
回到顶部
查看用户资料 发送私信
malathy_tv

新的用户


已加入:2007年5月29日
帖子:34
地点:钦奈

发布发表:2008年4月29日,星期二,上午10:41
引用回复

你好

谢谢回复

我想知道如何在实际编程中使用这些变量并真正使用它。

例如:

我的面板是从用户那里获取输入,并在rexx中对其进行验证并相应地发送消息

说面板是这样的

输入您的Emp ID:_____________

说用户输入AAAAA

我需要在REXX中进行验证并弹出一条消息,提示

“输入有效的Emp ID”

如何才能做到这一点。
回到顶部
查看用户资料 发送私信
恩里科·索里切蒂

高级主持人


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

发布发表:2008年4月29日,星期二,上午11:41
引用回复

为什么不看看手册呢?
http://publibz.boulder.ibm.com/cgi-bin/bookmgr_OS390/BOOKS/ispzdg60/9.0?ACTION=MATCHES&REQUEST=setmsg&TYPE=FUZZY&SHELF=ISPZPM61.bks&DT=20070621205851&CASE=&searchTopic=TOPIC&searchText=TEXT&searchIndex=INDEX&rank=RANK&ScrollTOP=FIRSTHIT#FIRSTHIT
回到顶部
查看用户资料 发送私信
UmeySan

活跃成员


已加入:2006年8月22日
职位:771
地点:德国

发布发表:2008年4月29日,星期二,下午1:57
引用回复

嗨!

举个小例子:

面板被支付。数据集的验证在rexx中完成。
如果DSN不存在,则设置err-msg并再次显示面板。
数据集... ISPF.MESSAGES用于定义用户按摩。

J120830.ISPF.MESSAGES(UMMSG03):

联合会035 .ALARM =否
“数据集不存在”

J120830.ISPF.CLIST(TVADL):

地址ISPEXEC"ADDPOP"

乌潘 = "TVADL002"
联合会 =“ UDS1”
联合会 =“”
DSNRC = 9

在进行DSNRC时> 0
地址ISPEXEC“显示面板(” 乌潘“)
味精(“ 联合会”)
游标(“ 联合会”)“
DISPRC = RC
如果显示> 0 THEN EXIT DISPRC
地址ISPEXEC“ VGET(UDS1)配置文件”
地址ISPEXEC“ DSINFO DATASET('” UDS1“')”
DSNRC = RC
中频DSNRC>0 THEN 联合会 ='UMMSG035'
结束

J120830.ISPF.PANELS(TVADL002):

+请提供数据集名称
+
+ ... DS名称:+ \ z
+
)在里面
.ZVARS ='(UDS1)'
VGET(UDS1)配置文件
PROC
VER(&UDS1,NB,MSG = 联合会037)
VPUT(UDS1)配置文件
)结束


希望对大家有帮助,UmeySan
回到顶部
查看用户资料 发送私信
malathy_tv

新的用户


已加入:2007年5月29日
帖子:34
地点:钦奈

发布发表:2008年4月29日,星期二,下午5:58
引用回复

你好

非常感谢你的回复。

我尝试了一个像您一样的示例,并创建了自己的消息,并将该消息库与ISPMLIB连接起来

码:

/ * REXX * /                                   
乌潘 = "TY"                                     
联合会 = "INP"                                     
联合会 = " "                                       
地址ISPEXEC"DISPLAY 面板 ("UMPAN")         
味精("UMMSG")                                     
光标("UMCUR")"                                 
 ADDRESS ISPEXEC                                 
 SAY RC                                           
如果INP = 100,则                                   
  联合会 = 'MAL002'                               


码:

)ATTR                             
   + TYPE(TEXT) INTENS(HIGH)       
   \ TYPE(INPUT) INTENS(LOW)       
)BODY EXPAND($$)                   
+   $-$                           
+                                 
+ 输入: +\Z                       
+                                 
)INIT                             
.ZVARS ='(INP)'                   
)PROC                             
VER(&INP,NB,MSG=MAL002)           
)END                               


我也输入了100,但没有收到错误消息

请让我知道是否做错了事。
回到顶部
查看用户资料 发送私信
malathy_tv

新的用户


已加入:2007年5月29日
帖子:34
地点:钦奈

发布发表:2008年4月30日星期三上午10:30
引用回复

你好

谢谢大家的帮助

我再次尝试并纠正了错误,原因是REXX

我没有DO WHILE条件告诉REXX什么时候应该在什么条件下执行它。
回到顶部
查看用户资料 发送私信
迪克·谢勒

主持人荣誉


已加入:2006年11月23日
帖子:19245
位置:矩阵内部

发布发表:2008年4月30日星期三上午11:15
引用回复

很高兴听到它现在正在工作。

感谢您发布解决方案 icon_smile.gif

d
回到顶部
查看用户资料 发送私信
UmeySan

活跃成员


已加入:2006年8月22日
职位:771
地点:德国

发布发表:2008年4月30日,星期三,下午3:45
引用回复

Hi & namastē malathy_tv !

很高兴听到,它有效。
很高兴在chennai /印度的一段代码中看到“ 乌潘”变量!

Poi varukiren& Regards,
UmeySan
回到顶部
查看用户资料 发送私信
malathy_tv

新的用户


已加入:2007年5月29日
帖子:34
地点:钦奈

发布发表:2008年4月30日,星期三5:09 pm
引用回复

嗨,古鲁斯,

我还有一个疑问

如果我们已按以下方式检入了传递消息ID的面板,则能够调用错误消息

VER(&INP,NB,MSG=MAL001)

然后验证并再次通过REXX传递

但是,如果不想验证面板中的输入但希望验证并为无效输入抛出错误消息怎么办?

如何做到这一点。

提前致谢
回到顶部
查看用户资料 发送私信
UmeySan

活跃成员


已加入:2006年8月22日
职位:771
地点:德国

发布发表:2008年4月30日,星期三5:39 pm
引用回复

嗨,malathy_tv!

您真的不需要“ VER(&面板中的INP,NB,MSG = MAL002)“
PROC部分,如果您将在Rexx中进行所有验证。

如您所见,在我的小示例中,我使用了两种不同的消息。
在面板中,仅检查了输入是否为空白MSG037。

然后在Rexx中,检查输入的DSN是否存在。
如果DSN不存在,则使用MSG035。

所以这爸被分开两个&不同的验证。

Poi varukiren& Regards,
UmeySan
回到顶部
查看用户资料 发送私信
malathy_tv

新的用户


已加入:2007年5月29日
帖子:34
地点:钦奈

发布发表:2008年5月2日,星期五10:00 am
引用回复

嗨,梅森,

Nandri(谢谢)

我明白你的意思....

我还有另一件事我想创建自己的错误消息,如果我创建msglib(PDS)并使用“ ALLOC FA(ISPMLIB)DA(PDS.MSGLIB)”与ISPMLIB串联,就足够了吗?当我尝试执行此操作时,它说的更多

在“ ISPMLIB”库中找不到该消息。
当前对话框声明:
显示面板(BFSP)味精(MAL004)



我的REXX的一部分是:

做STA> 0
地址ISPEXEC“显示面板(” 乌潘“)
MSG(“ 联合会”)“
...
P1 = SUBSTR(POL,1,2)
A =验证(P1,XRANGE('A','Z'))
IF(A = 0& B = 0) THEN STA = 0
ELSE 联合会 ='MAL004'

任何想法....
回到顶部
查看用户资料 发送私信
c

高级会员


已加入:2006年7月28日
职位:1702
所在地:澳大利亚

发布发表:2008年5月2日,星期五,上午10:25
引用回复

你好
您确定ALLOC命令有效吗?

跟踪。


格里
回到顶部
查看用户资料 发送私信
malathy_tv

新的用户


已加入:2007年5月29日
帖子:34
地点:钦奈

发布发表:2008年5月2日,星期五,上午10:33
引用回复

你好

当我通过执行ISRDDN检查ALLOC时,我可以看到MSGLIB与ISPMLIB连接在一起

但是错误消息仍然显示未找到...还有其他方法可以创建自己的消息。

谢谢。
回到顶部
查看用户资料 发送私信
c

高级会员


已加入:2006年7月28日
职位:1702
所在地:澳大利亚

发布发表:2008年5月2日,星期五,上午11:06
引用回复

你好
我假设您能够通过ISRDDN看到该成员。 MEM MAL004

MAL004会员是什么样的?


格里
回到顶部
查看用户资料 发送私信
malathy_tv

新的用户


已加入:2007年5月29日
帖子:34
地点:钦奈

发布发表:2008年5月2日,星期五,上午11:37
引用回复

你好

它不是PDS中的成员,就像某个成员中的msg id一样,该成员存在于PDS PDS.MSGLIB中

我能够使用ISRDDN看到PDS PDS.MSGLIB

例如:

MAL002“无效选项”

MAL004“无效状态号”
回到顶部
查看用户资料 发送私信
malathy_tv

新的用户


已加入:2007年5月29日
帖子:34
地点:钦奈

发布发表:2008年5月2日,星期五,上午11:42
引用回复

你好

MAL004不是成员,它类似于MSGID,它存在于PDS.MSGLIB库的成员之一内

我只能看到使用ISRDDN将PDS.MSGLIB与ISPMLIB串联在一起

成员内部存在的MSGID的示例:

MAL002“无效选项”

MAL004“无效状态号”
回到顶部
查看用户资料 发送私信
malathy_tv

新的用户


已加入:2007年5月29日
帖子:34
地点:钦奈

发布发表:2008年5月2日,星期五,下午5:17
引用回复

你好

我发现了一种使用ZEDMSG填充错误消息的方法

这里抛出面板以获取输入,在rexx中验证并抛出错误消息

正如UmeySan所说的那样,我使用了do while循环,但是当我这样做时,无法同时检查和验证我的两个输入

如果这些方法中的任何一个是正确的,它都会在不检查其他方法的情况下出现,这都是因为使用DO WHILE STA>0,并在每次检查后将值设置为零,但如果我没有这样做,则不会像我之前所说的那样收到错误消息

/ * REXX * /

STA = 9
做STA> 0
ZEDSMSG =“”
地址ISPEXEC
“ ADDPOP行(24)列(60)”
"显示屏("面板")"
AGN_CHK:
A3 =验证(AGN,XRANGE('0','9'))
IF A3 = 0 THEN STA = 0
ELSE ZEDSMSG ='无效的代理商编号'
"ISPEXEC 味精味精(ISRZ001)"
返回
STE_CHK:
A4 =验证(STE,XRANGE('A','Z'))
中频(A4 = 0&STA = 0时的长度(STE)= 2
ELSE ZEDSMSG ='无效状态码'
"ISPEXEC 味精味精(ISRZ001)"
返回

所以在这方面可以做什么

提前致谢。
回到顶部
查看用户资料 发送私信
佩德罗

全球主持人


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

发布发表:2008年5月10日星期六4:37 am
引用回复

关于您的程序:
码:

/ * REXX * /                                   
STA = 9                                   
做STA> 0                           
ZEDSMSG =" "                             
地址ISPEXEC                           
"ADDPOP ROW(24) COLUMN(60)"               
"DISPLAY 面板 ("PANEL")"                 
AGN_CHK:                                   
A3 =验证(AGN,XRANGE('0','9'))           
IF A3 = 0 THEN STA = 0                       
ELSE ZEDSMSG ='无效的代理商编号'     
"ISPEXEC 味精味精(ISRZ001)"             
返回                                     
STE_CHK:                                   
A4 =验证(STE,XRANGE('A','Z'))           
IF (A4 = 0 & LENGTH(STE) = 2 )THEN STA=0   
ELSE ZEDSMSG ='无效状态码'       
"ISPEXEC 味精味精(ISRZ001)"             
返回                                     



1.我认为您需要END语句来匹配DO WHILE
2.您的面板名称是一个变量,但是该名称未在任何地方设置
3.删除RETURN语句。他们将结束程序,但是我想您要一直尝试直到没有发现错误为止。
4.在两个检查都通过之前,我认为您不应该将STA = 0设置为0。目前,如果其中一个还可以,则退出,但另一个不能。
5.也许它在论坛中丢失了,但是您应该缩进嵌套行
6. ELSE仅执行一项声明。您需要在DO / 结束子句中包含ZEDSMSG和SETMSG。
7.将ADDPOP移出循环。
8.在您添加ADDPOP之后进行REMPOP的好习惯
9.在DO WHILE上,最好将条件括在括号内。
10.检查DISPLAY的返回码。用户可能已取消面板,在这种情况下,您应该退出并且不执行任何字段检查。
11.如果“ DISPLAY 面板(”)有效,则感到惊讶。此处不应有空格。
12.我认为您不需要标签(AGN_CHK,STE_CHK)
13.我认为您的短消息应该混合使用。
回到顶部
查看用户资料 发送私信
查看上一个主题 :: :: 查看下一个主题  
发表新话题   回复主题 查看书签
所有时间均为格林尼治标准时间+ 6小时
论坛索引 -> TSO / ISPF

 


类似主题
话题 论坛 回覆
没有新帖 加载D ...时二级索引错误 IMS数据库/ DC 2
没有新帖 DB2I面板中的命令行放置 TSO / ISPF 2
没有新帖 错误0C1原因代码1与分支i ... PL / I和组装商 3
没有新帖 xped时出现错误 JCL和VSAM 10
没有新帖 有人可以帮我找到... IBM工具 9
搜索我们的论坛:

回到顶部