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ソースを生成してみます。