AutoWeb

64. DSPFを自動生成するには

AutoWebにはApp.Wizard(=Application Wizard)というソースの自動生成機能が
用意されています。

データ・ベースの名前を指定して保守または照会のための画面のDSPFソースを
生成します。
例えばライブラリーQTRFILのSHOHIN:商品マスターファイルを保守する画面を
生成してみましょう。
AutoWebメニューの「41. DSPF ソースの生成」(CRTDSPSRC)を選択して
次のように指示します。

                         DSPF ソースの作成  (CRTDSPSRC)                         
                                                                                
  選択項目を入力して,実行キーを押してください。                                
                                                                                
  原始ファイル  . . . . . . . . .   QDSPSRC        名前                         
    ライブラリー  . . . . . . . .     QTRSRC       名前 , *LIBL, *CURLIB        
  原始メンバー  . . . . . . . . .   TEST01FM       名前 , *SRCMBR               
  テキスト  . . . . . . . . . . .    商品マスターの登録                         
                                                                                
  タイプ  . . . . . . . . . . . .   *RECORD       *RECORD, *SFL, *POPUP         
  使用目的  . . . . . . . . . . .   *UPDATE       *UPDATE, *INQUIRY             
  画面サイズ  . . . . . . . . . .   *DS3          *FREE, *DS3, *DS4, *HNDY      
  基礎ファイル  . . . . . . . . .   SHOHIN         名前                         
    ライブラリー  . . . . . . . .     QTRFIL       名前 , *LIBL, *CURLIB        
  レコードの置き換えまたは追加      *ADD          *NONE, *ADD, *REPLACE         
                                                                                

[解説]

原始ファイルとはソース・ファイルのことです。
ライブラリーQTRSRCにあるQDSPSRCに原始メンバー(ソース・メンバー) TEST01FM という
名前で生成するものとします。

テキストには「商品マスターの登録」と指定しますがこれが画面の表題にも使われます。

生成するタイプは*RECORDつまりDFUのような1レコードを保守する型式の画面を
生成するものとします。
SFLレコードやPOPUPウィンドウ・タイプも指定することができます。
 
使用目的は *UPDATE つまり更新用です。単に照会用の画面をつく姓するのであれば
*INQUIERYと指示します。
 
画面サイズは *DS3 つまり 24*80サイズです。5250ハンドラー用の画面サイズの制約のない
画面を作成するのであれば *FREEを指定してください。
ハンディ・ターミナル用を作成したいのであれば小さなサイズが必要ですので *HNDY と
指定します。
 
基礎ファイルとして初めに説明したデータ・ベースとてして商品マスター(QTRFIL/SHOHIN)を
指定します。

最後にレコードの置換えの初期値は*NONEになっていますが*NONEのままでは生成することは
できません。
今回は初めての作成なので*ADDを指定します。
再作成のときは*REPLACEと指定してください。
*ADDを指定してもしソース・メンバーが既に存在している場合はエラーとなります。
*REPLACEを指定した場合はメンバーが存在していてもエラーとはならず置き換えが行われます。

それではこれで実行キーを押してDSPFソースを開始してください。
最初に次のような項目を指示する画面が表示されます。

 CRTDSPSRC               DSPF ソースの生成         QTRSRC/QDSPSRC(TEST01FM) 
                                                   *RECORD                  
   表示する項目を指定して実行キーを押してください。                         
                                                                            
  使用 :H= 縦方向に並べる D= 横方向に並べる                                 
                                                                            
  №   順序   使用   フィールド  TYPE  長さ   DEC  欄見出し                 
 0001   1.00   H    SHCODE        A       10       商品コード               
 0002   2.00   H    SHNAME        O       24       商品名                   
 0003   3.00   H    SHTANK        S        7   0   単価                     
 0004   4.00   H    SHSCOD        A        4       品種コード               
                                                                      続く ...
                                                                              
F3= 終了     F15= 他のデータ・ベースの取込み       F21= すべての選択          

[解説]

ここでは項目を縦方向に並べるのか横方向に並べるのかを尋ねている。
縦方向とはDFUのような項目配置で1行に1項目(フィールド)を配置する方法である。
それに対して横方向に展開して配置することもできる。
ここではDFUのように縦方向へ配置するために H のままにするがここでは
もうひとつの機能であるデータ・ベースの結合を行ってみましょう。
品種コードに対して品種マスター(QTRFIL/HINHU)と結合して品種名を表示したいと
思います。
「F15= 他のデータ・ベースの取込み」を押してみます。

CRTDSPSRC                他のデータ・ベースの取込み                         
                                                                            
 選択項目を入力して、実行キーを押してください。                             
                                                                            
   ファイル名 . . . . . . . . . . . HINSHU          名前 , リストは F4 キー 
     ライブラリー . . . . . . . . .    QTRFIL       名前 , *CURLIB, *LIBL   

F3= 終了       F4= プロンプト                       F12= 前画面                                                               

[解説]

他のデータ・ベースの取込みに対して結合するデータ・ベースとして
QTRFIL/HINSHU を指定して実行キーを押します。

 CRTDSPSRC               DSPF ソースの生成         QTRSRC/QDSPSRC(TEST01FM)    
                                                   *RECORD                     
   表示する項目を指定して実行キーを押してください。                            
                                                                               
  使用 :H= 縦方向に並べる D= 横方向に並べる                                    
                                                                               
  №   順序   使用   フィールド  TYPE  長さ   DEC  欄見出し                    
 0001   1.00   H    SHCODE        A       10       商品コード                  
 0002   2.00   H    SHNAME        O       24       商品名                      
 0003   3.00   H    SHTANK        S        7   0   単価                        
 0004   4.00   H    SHSCOD        A        4       品種コード                  
                                                                               
                                                                               
----------------------------------------------------------------------------------------
                    他のデータ・ベースの取込み                              QTRFIL/HINSHU   
     
              X= 選択                                                          
 0001               HNSCOD        A        4       品種コード                  
 0002          X    HNSNAM        O       14       品種名                      
                                                                               

[解説]

画面の下部に結合を指示した品種マスター(QTRFIL/HINHU)の内容が表示されますので
取り込みたいフィールドとして品種名だけを選択して X を入力して実行キーを押してください。

 CRTDSPSRC               DSPF ソースの生成         QTRSRC/QDSPSRC(TEST01FM) 
                                                   *RECORD                  
   表示する項目を指定して実行キーを押してください。                         
                                                                            
  使用 :H= 縦方向に並べる D= 横方向に並べる                                 
                                                                            
  №   順序   使用   フィールド  TYPE  長さ   DEC  欄見出し                 
 0001   1.00   H    SHCODE        A       10       商品コード               
 0002   2.00   H    SHNAME        O       24       商品名                   
 0003   3.00   H    SHTANK        S        7   0   単価                     
 0004   4.00   H    SHSCOD        A        4       品種コード               
 0005   5.00   H    HNSNAM        O       14       品種名                   
                                                                            
                                                                      続く ...
                                                                              
F3= 終了     F15= 他のデータ・ベースの取込み       F21= すべての選択          

[解説]

ご覧のように品種名が最下部に挿入されました。
順序番号を変更すれば品種名を任意の位置に変更することができますが
今回は丁度品種コードの次のよい位置にありますので
このまま実行キーを押して進みます。
さらに別のデータ・ベースに結合したい場合はやはりF15キーを押して
結合を追加することができます。


QTRSRC/QDSPSRC(TEST01FM) を生成しました 

[解説]

このように完了メッセージが報告されれば生成の完了です。

生成されたDSPFソースを次に紹介します。,/p>

[ DSPF: TEST01FM ]

ソースはこちらから

0001.00      A***************************************************************   
0002.00      A*    TEST01FM     :   商品マスターの登録                          
0003.00      A*    QTRSRC/QDSPSRC(TEST01FM)                                     
0004.00      A*     使用目的    :   更新 (*UPDATE)                              
0005.00      A*     作成日      :  2021/08/07         11:01:41                  
0006.00      A*     作成者      :  QTR                                          
0007.00      A***************************************************************   
0008.00      A                                      DSPSIZ(24 80 *DS3)          
0009.00      A                                      MSGLOC(24)                  
0010.00      A                                      PRINT                       
0011.00       *    ---------------------------                                  
0012.00      A          R DSPHEAD                                               
0013.00       *    ---------------------------                                  
0014.00      A                                      TEXT(' 初期画面 ')          
0015.00      A                                      CF03(03 ' 終了 ')           
0016.00      A                                      ROLLUP(07)                  
0017.00      A                                      ROLLDOWN(08)                
0018.00      A                                      BLINK                       
0019.00      A                                  1  2'TEST01'                    
0020.00      A                                  1 27' 商品マスターの登録 '      
0021.00      A                                      DSPATR(HI)                  
0022.00      A                                  2 64' 日付 '                    
0023.00      A                                  2 71DATE(*JOB *YY)              
0024.00      A                                      EDTCDE(W)                            
0025.00      A                                  3 64' 時刻 '                             
0026.00      A                                  3 71TIME                                 
0027.00      A                                      EDTWRD('  :  :  ')                   
0028.00       *( キーの記述 )                                                            
0029.00      A                                  3  2' 商品コード '                       
0030.00      A            SHCODE        10A  B  3 15TEXT(' 商品コード ')                 
0031.00      A  61                                  ERRMSGID(DFU0806 QSYS/QDFUMSG 61 +   
0032.00      A                                      &MSGDTA)                             
0033.00      A            MSGDTA        30A  P                                           
0034.00      A                                 11 15' 必要な項目を打鍵して実行キーを押 + 
0035.00      A                                       して下さい。 '                      
0036.00      A                                      DSPATR(HI)                           
0037.00      A                                 23  2'F3= 終了 '                          
0038.00      A                                      COLOR(BLU)                           
0039.00      A                                 23 59'ROLL UP/DOWN'                       
0040.00      A                                      COLOR(BLU)                           
0041.00       *    ---------------------------                                           
0042.00      A          R DSPDTA01                                                       
0043.00       *    ---------------------------                                           
0044.00      A                                      TEXT(' 明細画面 01')                 
0045.00      A                                      CF03(03 ' 終了 ')                    
0046.00      A                                      CF10(10 ' 更新 ')                    
0047.00      A                                      CF23(23 ' 削除 ')                    
0048.00      A                                      CF12(12 ' 前画面 ')               
0049.00      A                                      ROLLUP(07)                        
0050.00      A                                      ROLLDOWN(08)                      
0051.00      A                                      SETOF(99)                         
0052.00      A                                      BLINK                             
0053.00      A                                  1  2'TEST01'                          
0054.00      A                                  1 27' 商品マスターの登録 '            
0055.00      A                                      DSPATR(HI)                        
0056.00      A            DSPMSG         6A  O  1 72TEXT(' 維持モード ')              
0057.00      A                                      DSPATR(HI)                        
0058.00      A                                  2 64' 日付 '                          
0059.00      A                                  2 71DATE(*JOB *YY)                    
0060.00      A                                      EDTCDE(W)                         
0061.00      A                                  3 64' 時刻 '                          
0062.00      A                                  3 71TIME                              
0063.00      A                                      EDTWRD('  :  :  ')                
0064.00       *( キーの記述 )                                                         
0065.00      A                                  3  2' 商品コード '                    
0066.00      A            SHCODE        10A  O  3 15TEXT(' 商品コード ')              
0067.00      A  61                                  ERRMSGID(DFU0806 QSYS/QDFUMSG 61 +
0068.00      A                                      &MSGDTA)                          
0069.00      A            MSGDTA        30A  P                                        
0070.00       *( データの記述 )                                                       
0071.00      A                                  5  2' 商品名 '                        
0072.00      A            SHNAME        24O  B  5 15TEXT(' 商品名 ')      
0073.00      A                                  6  2' 単価 '              
0074.00      A            SHTANK         7Y 0B  6 15TEXT(' 単価 ')        
0075.00      A                                      EDTCDE(J)             
0076.00      A                                      DSPATR(CS) CHECK(RB)  
0077.00      A                                  7  2' 品種コード '        
0078.00      A            SHSCOD         4A  B  7 15TEXT(' 品種コード ')  
0079.00      A                               O  8  2' 品種名 '            
0080.00      A            HNSNAM        14O  O  8 15TEXT(' 品種名 ')      
0081.00      A*( 機能キーの記述 )                                         
0082.00      A                                 23  2'F3= 終了 '           
0083.00      A                                      COLOR(BLU)            
0084.00      A                                 23 20'F10= 更新 '          
0085.00      A                                      COLOR(BLU)            
0086.00      A                                 23 41'F12= 前画面 '        
0087.00      A                                      COLOR(BLU)            
0088.00      A                                 23 66'F23= 削除 '          
0089.00      A                                      COLOR(BLU)            
0090.00      A                                 22 66'ROLL UP/DOWN'        
0091.00      A                                      COLOR(BLU)            
0092.00       *    ---------------------------                            
0093.00      A          R ENDOPT                                          
0094.00       *    ---------------------------                            
0095.00      A                                      TEXT(' 終了画面 ')    
0096.00      A                                      CF03(03 ' 終了 ')                   
0097.00      A                                      CF12(12 ' 前画面 ')                 
0098.00      A                                  1 34' 終了 '                            
0099.00      A                                      DSPATR(HI)                          
0100.00      A                                  3  2' 処理されたレコード数 '            
0101.00      A                                  5 10' 追加  . . . . . :'                
0102.00      A            ADDREC         5Y 0O  5 35EDTCDE(1)                           
0103.00      A                                  6 10' 変更  . . . . . :'                
0104.00      A            CHGREC         5Y 0O  6 35EDTCDE(1)                           
0105.00      A                                  7 10' 削除  . . . . . :'                
0106.00      A            DLTREC         5Y 0O  7 35EDTCDE(1)                           
0107.00      A                                 11  2' 選択項目を打鍵して,実行キーを押 +
0108.00      A                                       してください。 '                   
0109.00      A                                      COLOR(BLU)                          
0110.00      A                                 13  5' データ入力の終了  . . . . . .'    
0111.00      A            ANS            1A  B 13 39VALUES('Y' 'N')                     
0112.00      A                                 13 53'Y=YES, N=NO'                       
0113.00      A                                 23  2'F3= 終了 '                         
0114.00      A                                      COLOR(BLU)                          
0115.00      A                                 23 15'F12= 前画面 '                      
0116.00      A                                      COLOR(BLU)        


                     

[解説]

このDSPFソースを筒偽のようにコンパイルします。

CRTDSPF FILE(QTROBJ/TEST01FM) SRCFILE(QTRSRC/QDSPSRC) LVLCHK(*NO) AUT(*ALL)

ライブラリー QTROBJ にファイル TEST01FM が作成された

のようにメーッセージが報告されれば成功です。

SDAで調べてみると次のような画面が生成されています。

TEST01                    商品マスターの登録                          OOOOOO   
                                                               日付  2021/08/07
 商品コード  OOOOOOOOOO                                        時刻  11:31:19  
                                                                               
 商品名      BBBBBBBBBBBBBBBBBBBBBBBB                                          
 単価        9,999,999                                                         
 品種コード  BBBB                                                              
 品種名      OOOOOOOOOOOOOO                                                    
                                                                               
                                                                 ROLL UP/DOWN
 F3= 終了          F10= 更新            F12= 前画面              F23= 削除   

DSPFソースの記述は面倒ですがこのようにAutoWebのApp.Wizardを使えば
わずか数分で正しいDSPFソースを生成することができます。
これだけでもAutoWebを契約された効果はあるはずです。

次回はこのDSPFを使って処理するRPGソースを生成してみます。