T. *_*bre 5 control-language ibm-midrange
我正在尝试在iSeries上创建一个新命令,其中一个参数必须是使用标准LIBRARY/FILE MEMBER语法的文件名,类似于
MYCMD FILE(MYLIB/MYFILE MYMEMBER)
Run Code Online (Sandbox Code Playgroud)
甚至
MYCMD FILE(MYLIB/MYFILE) MEMBER(MYMEMBER)
Run Code Online (Sandbox Code Playgroud)
我试过了 :
但我找不到如何创建一个接受值为限定对象名称的参数,如与CPYTOIMPF一起使用的FROMFILE参数.
UPDATE
JamesA的答案很好,但不知怎的,我的CL变量中有两个额外的字符:
CMD
PARM KWD(FILE) TYPE(FNAME) PROMPT('CL +
source' 1)
FNAME: ELEM TYPE(FILE) PROMPT('File')
ELEM TYPE(*NAME) LEN(10) PROMPT('Source +
member')
FILE: QUAL TYPE(*NAME) LEN(10)
QUAL TYPE(*NAME) DFT(*CURLIB) SPCVAL(*CURLIB) PROMPT('Library') LEN(10) MIN(0)
Run Code Online (Sandbox Code Playgroud)
CL
PGM PARM(&PFIC &OUTFILE &CODEPAGE)
DCL VAR(&PFIC) TYPE(*CHAR) LEN(32)
DCL VAR(&LIB) TYPE(*CHAR) LEN(10)
DCL VAR(&FILE) TYPE(*CHAR) LEN(10)
DCL VAR(&MEMBER) TYPE(*CHAR) LEN(10)
CHGVAR VAR(&FILE) VALUE(%SST(&PFIC 3 10))
CHGVAR VAR(&LIB) VALUE(%SST(&PFIC 13 10))
CHGVAR VAR(&MEMBER) VALUE(%SST(&PFIC 23 10))
Run Code Online (Sandbox Code Playgroud)
您需要使用限定符定义.
CMD
CMD
PARM KWD(FILE) TYPE(Q1) PROMPT('File')
PARM KWD(MBR) TYPE(*NAME) LEN(10) DFT(*FIRST) SPCVAL(*FIRST) PROMPT('Member')
Q1: QUAL TYPE(*NAME) LEN(10)
QUAL TYPE(*NAME) LEN(10) DFT(*LIBL) SPCVAL(*LIBL) PROMPT('Library')
Run Code Online (Sandbox Code Playgroud)
CL
PGM PARM(&FILELIB &MBR)
DCL VAR(&FILELIB) TYPE(*CHAR) LEN(20)
DCL VAR(&MBR) TYPE(*CHAR) LEN(10)
DCL VAR(&FILE) TYPE(*CHAR) LEN(10)
DCL VAR(&LIB) TYPE(*CHAR) LEN(10)
CHGVAR VAR(&FILE) VALUE(%SST(&FILELIB 1 10))
CHGVAR VAR(&LIB) VALUE(%SST(&FILELIB 11 10))
. . .
ENDPGM
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3051 次 |
| 最近记录: |