PANEL-WORKER

3. コマンドのキー・ワードに対応したヘルプ

先の例は最も簡単なパネル・グループによるヘルプの例を示したものだが、実用レベルとなると、やはりコマンドのキー・ワード・パラメータ個別の説明が必要となる。
ここでは弊社製品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(' 権限 ')
【 PNLGRPソース】
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 という名前のパラメータを定義している。