先の例は最も簡単なパネル・グループによるヘルプの例を示したものだが、実用レベルとなると、やはりコマンドのキー・ワード・パラメータ個別の説明が必要となる。
ここでは弊社製品PANEL-WORKER の中の「QUERYプロンプト作成」(CRTQRYPMT) を例にしてソースを紹介する。
「QUERYプロンプト作成」とは 任意のユーザーが作成したQuery/400に、外部からパラメータを与えることができるようにするためのコマンドやCLPを自動生成してくれる App である。
0001.00 CMD PROMPT('QUERY プロンプト作成 ') 0002.00 PARM KWD(QRY) TYPE(QRY) PROMPT(QUERY) 0003.00 QRY: QUAL TYPE(*NAME) LEN(10) MIN(1) CHOICE(PNL0114) 0004.00 QUAL TYPE(*NAME) LEN(10) DFT(*LIBL) + 0005.00 SPCVAL((*LIBL) (*CURLIB)) + 0006.00 PROMPT(' ライブラリー ') 0007.00 PARM KWD(QRYTYPE) TYPE(*CHAR) LEN(7) RSTD(*YES) + 0008.00 DFT(*QRYDFN) VALUES(*QMQRY *QRYDFN) + 0009.00 PROMPT('QRY タイプ ') 0010.00 PARM KWD(LANGUAGE) TYPE(*CHAR) LEN(4) RSTD(*YES) + 0011.00 DFT(*JPN) VALUES(*JPN *USA) + 0012.00 PMTCTL(*PMTRQS) PROMPT(' 言語 ') 0013.00 PARM KWD(APW) TYPE(APW) PMTCTL(*PMTRQS) + 0014.00 PROMPT(' 書式ファイル ') 0015.00 APW: QUAL TYPE(*NAME) LEN(10) DFT(*NONE) SPCVAL((*NONE)) 0016.00 QUAL TYPE(*NAME) LEN(10) DFT(*QRYLIB) + 0017.00 SPCVAL((*QRYLIB)) PROMPT(' ライブラリー ') 0018.00 PARM KWD(APWFORM) TYPE(*NAME) DFT(*QRY) + 0019.00 SPCVAL((*QRY)) PMTCTL(*PMTRQS) + 0020.00 PROMPT(' APW書式 ') 0021.00 PARM KWD(FORMSIZE) TYPE(FORMSIZE) PMTCTL(*PMTRQS) + 0022.00 PROMPT(' 用紙サイズ ') 0023.00 FORMSIZE: ELEM TYPE(*INT2) DFT(66) RANGE(1 255) + 0024.00 PROMPT(' 用紙の長さ ') 0025.00 ELEM TYPE(*INT2) RSTD(*YES) DFT(132) VALUES(80 + 0026.00 132 198) PROMPT(' 用紙の幅 ') 0027.00 PARM KWD(OVRFLW) TYPE(*INT2) DFT(60) RANGE(1 255) + 0028.00 PMTCTL(*PMTRQS) PROMPT(' オーバーフロー行 ') 0029.00 PARM KWD(FORMTYPE) TYPE(*CHAR) LEN(10) DFT(*STD) + 0030.00 PMTCTL(*PMTRQS) PROMPT(' 用紙タイプ ') 0031.00 PARM KWD(CMD) TYPE(CMD) PGM(*YES) PMTCTL(*PMTRQS) + 0032.00 PROMPT(' コマンド ') 0033.00 CMD: QUAL TYPE(*NAME) LEN(10) DFT(*QRY) SPCVAL((*QRY)) 0034.00 QUAL TYPE(*NAME) LEN(10) DFT(*QRYLIB) + 0035.00 SPCVAL((*QRYLIB)) PROMPT(' ライブラリー ') 0036.00 PARM KWD(SRCFILE) TYPE(SRCFILE) PMTCTL(*PMTRQS) + 0037.00 PROMPT(' 原始ファイル ') 0038.00 SRCFILE: QUAL TYPE(*NAME) LEN(10) DFT(QCMDSRC) 0039.00 QUAL TYPE(*NAME) LEN(10) DFT(QGPL) + 0040.00 SPCVAL((*LIBL) (*CURLIB)) + 0041.00 PROMPT(' ライブラリー ') 0042.00 PARM KWD(SRCMBR) TYPE(*NAME) LEN(10) DFT(*QRY) + 0043.00 SPCVAL((*QRY)) PMTCTL(*PMTRQS) + 0044.00 PROMPT(' 原始メンバー ') 0045.00 PARM KWD(PGM) TYPE(PGM) PGM(*YES) PMTCTL(*PMTRQS) + 0046.00 PROMPT(' コマンドを処理するプログラム ') 0047.00 PGM: QUAL TYPE(*NAME) LEN(10) DFT(*QRYCL) + 0048.00 SPCVAL((*QRY) (*QRYCL)) 0049.00 QUAL TYPE(*NAME) LEN(10) DFT(*QRYLIB) + 0050.00 SPCVAL((*QRYLIB)) PROMPT(' ライブラリー ') 0051.00 PARM KWD(QCLSRC) TYPE(QCLSRC) PMTCTL(*PMTRQS) + 0052.00 PROMPT(' 原始ファイル ') 0053.00 QCLSRC: QUAL TYPE(*NAME) LEN(10) DFT(QCLSRC) 0054.00 QUAL TYPE(*NAME) LEN(10) DFT(QGPL) + 0055.00 SPCVAL((*LIBL) (*CURLIB)) + 0056.00 PROMPT(' ライブラリー ') 0057.00 PARM KWD(CLPMBR) TYPE(*NAME) LEN(10) DFT(*QRYCL) + 0058.00 SPCVAL((*QRY) (*QRYCL)) PMTCTL(*PMTRQS) + 0059.00 PROMPT(' 原始メンバー ') 0060.00 PARM KWD(AUT) TYPE(*CHAR) LEN(10) RSTD(*YES) + 0061.00 DFT(*LIBCRTAUT) VALUES(*LIBCRTAUT *USE + 0062.00 *ALL *CHANGE *EXCLUDE) PMTCTL(*PMTRQS) + 0063.00 PROMPT(' 権限 ')
0001.00 :PNLGRP. 0002.00 :HELP NAME=CRTQRYPMT. QUERY プロンプトの作成 0003.00 :P. 0004.00 :PC. この QUERY プロンプト画面は QUERY プログラムの実行のための 0005.00 レコード選択をユーザーにとってやさしく入力するためのプロンプト画面 0006.00 となるコマンドおよび CL プログラムを生成します。 0007.00 :PC.QUERY/400 プログラムに対してのコマンド入力が行なえるようになると, 0008.00 次のような効果があります。 0009.00 :H2.QUERY/400 の定型業務が可能 0010.00 :PC.QUERY/400 をメニューに組込んでエンド・ユーザーに渡して,定型業務 0011.00 にすることができ、 QUERY/400 をプログラムの代りとすることができ, 0012.00 開発工数を低減します。 0013.00 :PC. しかも,開発者は新たに,入力用の画面を作成する必要もありません。 0014.00 :EHELP. 0015.00 :HELP NAME='CRTQRYPMT/QRY'.QUERY 0016.00 :XH3. 0017.00 QUERY 0018.00 :P. 0019.00 :PC. 生成の基礎となる既存の QUERY/400 プログラムの名前です。 0020.00 :PC.QUERY/400 は WRKQRY を使って「レコードの選択」の指定と, 0021.00 「出力タイプおよび出力形式の選択」で 2= 印刷装置に指定しておかねば 0022.00 なりません。 0023.00 :EHELP. 0024.00 :HELP NAME='CRTQRYPMT/QRYTYPE'.QRY タイプ 0025.00 :XH3. 0026.00 QUERY 0027.00 :P. 0028.00 :PC. 実行する QUERY のタイプを選択します。 0029.00 :H2.*QRYDFN 0030.00 :PC. 指定したデータが抜き出されて, QUERY/400 プログラムに渡されて 0031.00 QUERY/400 が実行されます。 0032.00 :PC.*QRYDFN で QUERY/400 の実行を指定した場合には, QUERY/400 での 0033.00 編集などの指定はすべて維持されます。 QUERY 管理機能の原始はライブラリ 0034.00 ー QGPL の QQMQRYSRC,QQMFORMSRC に保管されますが,管理機能オブジェク 0035.00 トは作成されません。 0036.00 :H2.*QMQRY 0037.00 :PC. ライブラリー QGPL の原始 QQMQRYSRC,QQMFORMSRC に QUERY 管理機能 0038.00 原始が保管され, QMQRY オブジェクトが生成されます。実行は QMQRY 0039.00 オブジェクトによって行なわれます。 0040.00 :PC.QUERY 管理機能による実行は項目の下に下線が施されて見やすくなります 0041.00 。 0042.00 :PC. 但し, QUERY 管理機能による実行は必ずしも QUERY/400 の編集機能が 0043.00 そのまま維持される訳ではありません。これは IBM テu]n゙: RTVQMQRY および 0044.00 RTVQMFORM に依存します。詳しくは, 「 IBM QUERY 管理機能の手引き」を 0045.00 参照してください。 0046.00 :EHELP. 0047.00 :HELP NAME='CRTQRYPMT/LANGUAGE'. 言語 0048.00 :XH3. 0049.00 言語 0050.00 :P. 0051.00 :PC.QUERY の実行環境の使用言語を指定します。 0052.00 :PC. 使用言語を指定します。 *JPN --- 日本語 *USA --- 米語 0053.00 :EHELP. 0054.00 :HELP NAME='CRTQRYPMT/APW'. 書式ファイル名 0055.00 :XH3. 0056.00 書式ファイル名 0057.00 :P. 0058.00 :PC.APW を使って印刷罫線書式と合成するときは APW 書式ファイル名, 0059.00 ライブラリー名, APW 書式名を指定してください。 0060.00 :EHELP. 0061.00 :HELP NAME='CRTQRYPMT/APWFORM'. APW書式 0062.00 :XH3. 0063.00 APW書式 0064.00 :P. 0065.00 :PC.APW を使って印刷罫線書式と合成するときは APW 書式ファイル名, 0066.00 ライブラリー名, APW 書式名を指定してください。 0067.00 :EHELP. 0068.00 :HELP NAME='CRTQRYPMT/FORMSIZE'. 用紙サイズ 0069.00 :XH3. 0070.00 用紙サイズ 0071.00 :P. 0072.00 :PC. 印刷用紙のサイズを指定します。指定できる値は次のとおりです。 0073.00 :H2. 用紙の長さ 0074.00 :PC. この QUERY の実行時に使用される用紙の長さを指定してください。 0075.00 1-255 の値の範囲を指定することができます。 0076.00 :H2. 用紙の幅 0077.00 :PC. この QUERY の実行時に使用される用紙の幅を指定してください。 0078.00 1-378 の値の範囲を指定することができます。 0079.00 :EHELP. 0080.00 :HELP NAME='CRTQRYPMT/OVRFLW'. オーバーフロー行 0081.00 :XH3. 0082.00 オーバーフロー行 0083.00 :P. 0084.00 :PC. 印刷オーバーフロー行を指定します。 0085.00 :EHELP. 0086.00 :HELP NAME='CRTQRYPMT/FORMTYPE'. 用紙タイプ 0087.00 :XH3. 0088.00 用紙タイプ 0089.00 :P. 0090.00 :PC. 専用印刷用紙に印刷したいときは用紙名を指定してください。 0091.00 :EHELP. 0092.00 :HELP NAME='CRTQRYPMT/CMD'. コマンド 0093.00 :XH3. 0094.00 コマンド 0095.00 :P. 0096.00 :PC.QUERY プロンプトの実行コマンドの名前と保管されるライブラリー 0097.00 を指定します。 0098.00 :EHELP. 0099.00 :HELP NAME='CRTQRYPMT/SRCFILE'. 原始ファイル 0100.00 :XH3. 0101.00 原始ファイル 0102.00 :P. 0103.00 :PC.QUERY プロンプトの実行コマンドの原始が保管されるファイル 0104.00 を指定します。 0105.00 :EHELP. 0106.00 :HELP NAME='CRTQRYPMT/SRCMBR'. 原始メンバー 0107.00 :XH3. 0108.00 原始メンバー 0109.00 :P. 0110.00 :PC.QUERY プロンプトの実行コマンドの原始メンバー名 0111.00 を指定します。 0112.00 :EHELP. 0113.00 :HELP NAME='CRTQRYPMT/PGM'. コマンドを処理するプログラム 0114.00 :XH3. 0115.00 コマンドを処理するプログラム 0116.00 :P. 0117.00 :PC.QUERY プロンプトの実行CLPの名前と保管されるライブラリー 0118.00 を指定します。 0119.00 :EHELP. 0120.00 :HELP NAME='CRTQRYPMT/QCLSRC'. 原始ファイル 0121.00 :XH3. 0122.00 原始ファイル 0123.00 :P. 0124.00 :PC.QUERY プロンプトのCLPの原始が保管されるファイル 0125.00 を指定します。 0126.00 :EHELP. 0127.00 :HELP NAME='CRTQRYPMT/CLPMBR'. 原始メンバー 0128.00 :XH3. 0129.00 原始メンバー 0130.00 :P. 0131.00 :PC.QUERY プロンプトの実行CLPの原始メンバー名 0132.00 を指定します。 0133.00 :EHELP. 0134.00 :HELP NAME='CRTQRYPMT/AUT'. 権限 0135.00 :P. 0136.00 :PC. 新規に作成する QUERY プロンプトの権限を指定してください。 0137.00 :PC. 次の中から認可する権限を選んでください。 0138.00 :H2.*LIBCRTAUT 0139.00 :PC. 保管ライブラリーと同じ権限を与えます。 0140.00 :H2.*CHANGE 0141.00 :PC. ユーザーはこのオブジェクトを使用することはできますが, 0142.00 変更する権限は与えられません。 0143.00 :H2.*ALL 0144.00 :PC. すべてのユーザーに使用・変更の権限を与えます。 0145.00 :H2.*USE 0146.00 :PC. 使用権限はオブジェクト操作権限および読み取り権限を提供します。 0147.00 :H2.*EXCLUDE 0148.00 :PC. 排他権限はユーザーがオブジェクトをアクセスできないようにします。 0149.00 :EHELP. 0150.00 :EPNLGRP.
0002.00 :HELP NAME=CRTQRYPMT. QUERY プロンプトの作成
と
0015.00 :HELP NAME='CRTQRYPMT/QRY'.QUERY
を見比べて欲しい。
NAME='ヘルプPNLGRP名/項目名'
とあることによって、コマンドの QRY という名前のパラメータを定義している。