原始ファイル . . . . . . . QRPGSRC 名前 , *PRV ライブラリー . . . . . . ASNET.SRC 名前 , *LIBL, *CURLIB, *PRV
のように2段に従属を示すように表示したい場合がある。
この形式のパラメータを従属パラメータという。
従属パラメータは QUAL パラメータによって実現できる。
以下に例を示す。
PARM KWD(SRCFILE) TYPE(SRCFILE) + PROMPT(' 原始ファイル ') SRCFILE: QUAL TYPE(*NAME) LEN(10) SPCVAL((*PRV)) MIN(1) QUAL TYPE(*NAME) LEN(10) DFT(*LIBL) + SPCVAL((*LIBL) (*CURLIB) (*PRV)) + PROMPT(' ライブラリー ')
従属パラメータは
PARM KWD(SRCFILE) TYPE(SRCFILE) + PROMPT(' 原始ファイル ')
で示されるように1つのパラメータであり、KWD(SRCFILE) によって2つの構成に分割される。
(2つ以上であっても良い)
SRCFILE とは
SRCFILE: QUAL TYPE(*NAME) LEN(10) SPCVAL((*PRV)) MIN(1) QUAL TYPE(*NAME) LEN(10) DFT(*LIBL) + SPCVAL((*LIBL) (*CURLIB) (*PRV)) + PROMPT(' ライブラリー ')
で QUAL によって表現される。最初の QUAL のタイプは必ず *NAME でなくてはならない。
*NAME とは A – Z で始まる文字列のことである。
また、従属パラメータは最初に述べたように「1つの」パラメータとしてコマンドの実行プログラムに渡される。
よって、コマンドを処理するプログラムでは
PGM PARM(&SRCFILEPRM) DCL VAR(&SRCFILEPRM) TYPE(*CHAR) LEN(20) DCL VAR(&SRCFILE) TYPE(*CHAR) LEN(10) DCL VAR(&SRCLIB) TYPE(*CHAR) LEN(10) CHGVAR VAR(&SRCFILE) VALUE(%SST(&SRCFILEPRM 01 10)) CHGVAR VAR(&SRCLIB) VALUE(%SST(&SRCFILEPRM 11 10))
のようにして、1つのパラメータとして受け取ってから2つの要素に分割しなければならない。