Chinaunix

标题: [解决]自定义的命令如何将参数设为必须输入 [打印本页]

作者: yayuyo    时间: 2007-11-02 09:47
标题: [解决]自定义的命令如何将参数设为必须输入
设置命令的参数为必须输入,我知道的有2种方法
1.由系统做的有效性检查,包括参数的类型长度和命令中定义的有效性检查等。
     当把最前面的参数设置为必须输入,即MIN(1)时,系统在该参数没有输入时会反白,并提示给用户。
   2.自己写有效性检查程序
     如果第N个参数也是必须输入的,即MIN(1),它不会像第一个参数一样会被系统自动检查,这时候要
自己写有效性检查程序,然后在CRTCMD时指定VLDCHK参数为这个有效检查程序。
    例:
    PGM PARM(&OUTSPLF &BCDLIN)
    DCL VAR(&OUTSPLF) TYPE(*CHAR) LEN(10)
    DCL VAR(&BCDLIN) TYPE(*DEC) LEN(3)
    IF COND(&OUTSPLF * EQ '          ') THEN(DO)
     SNDPGMMSG MSGID(CPD0006) MSGF(QCPFMSG) +
               MSGDTA('0000 错误信息...') MSGTYPE(*DIAG)
     SNDPGMMSG  MSGID(CPF0002) MSGF(QCPFMSG) MSGTYPE(*ESCAPE)
   ENDDO
     IF COND(&BCDLIN *LE 0 ) THEN(DO)  
      SNDPGMMSG MSGID(CPD0006) MSGF(QCPFMSG) +
               MSGDTA('0000 错误信息...') MSGTYPE(*DIAG)
      SNDPGMMSG  MSGID(CPF0002) MSGF(QCPFMSG) MSGTYPE(*ESCAPE)
    ENDDO
     
   #END   ENDPGM
即对要检查的参数做判断,有错误时发送一个CPD0006的MSGID,且MSGDTA要以0000开头。最后还要发一个CPF0002的MSGID,系统接收CPF0002时,发出CPF0001给调用程序指出已找到错误。

[ 本帖最后由 yayuyo 于 2007-11-2 10:42 编辑 ]
作者: yayuyo    时间: 2007-11-05 08:18
这个 方法是更简单一些,谢谢楼上的,又学到一招!




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2