1.はじめに
こちらの記事では、物理ファイル作成と画面ファイル(以降はDSPF)作成について、どのようなことを実施してきたかをまとめています。
(今回実施したことが、テーマであるRPGLEでは無い事には、目をつぶってください。。。)
また、初級者が今ある知識を総動員させて作成した記事となっているため、至らない点あるかと思いますが、何卒ご容赦いただけますと幸いです。
2.準備
開発を行う環境についてですが、当時(2025/4)の最新バージョンはIBM i 7.6でしたが、出荷されて間もないということもあり、IBM i 7.5で進めることにしました。
自社の環境がある人はそれを使い、無い人はPUB400もしくはIBM TechZoneを利用することになりました。
(2025/10/14時点ではどちらも無料で利用できますが、IBM TechZoneのIBM i デモ環境はビジネスパートナー向けしか存在しませんでした)
IBM TechZoneですと環境の維持期間が短いという事もあり、今回の検証ではPUB400を利用することにしました。
環境の借り方などで気になる方がいらっしゃいましたら、下記の記事を参考にしてみてください。
3.取引先マスタの設計
取引先マスタの保守アプリを作成するという事で、マスタの設計をしなければいけませんが、実務経験が浅いため、どのような項目が必要か見当もつきません。。。
先ず生成AIに聞いてみる
見当がつかず悩む前に、先ずは生成AIに聞いてみましょう!
下記のようにプロンプトを作成してみました。
物理ファイルに反映しやすいように、条件も組み込んでいます。
あなたはシステムエンジニアで、データベースの設計のプロフェッショナルです。
「取引先マスタ」のデータベースを作成するのですが、その際の項目を提示してください。
#条件
・項目の物理名の頭2桁をTRに統一して、名称の全体は6文字の制約で作成してください
・論理名、データ型(数値、小数、文字(シングルかマルチ))、文字数、小数桁数を教えてください
・論理名は日本語と英語の2つを提示ください
・金額や数量などの数値を4つ以上盛り込んでみてください
いい感じですね。必要そうな項目も一通りそろっている感じがします。
マスタの設計レベルであれば、生成AIが簡単にやってくれますね。
4.物理ファイルの作成
続いては取引先マスタの設計から物理ファイルを作成してみます。
こちらも生成AIに聞いてみます。
(長くなってしまったので、興味のある方は「▶」から展開してご確認ください。)
プロンプト
あなたは、IBM i 7.5の技術者でRPGLEを使用してコーディングしています。
取引先マスタ保守アプリを作成する際の、DDSのソース物理ファイルと取引先マスタの物理ファイルを
作成してください。また、作成する際のコマンドも教えてください。
#注意点
・ライブラリ名は「XXXXXX1」です。
・ファイル名は「TRMAST」です。
#レイアウト
☆Customer CodeとCustomer Branch Codeの複合キーです
☆シングルバイトはSB、ダブルバイトはDBと表記
☆項目名:フィールド名 データ型 桁数 小数点以下 SB/DB
☆レコード名は「TRMASTR」です。
・Customer Code:TRTRCD 文字 10 SB
・Customer Branch Code:TRTRSC 文字 3 SB
・Customer Name:TRNM01 文字 50 DB
・Customer Short Name:TRNM02 文字 20 SB
・Postal Code:TRPOST 文字 8 SB
・Address Line 1:TRADR1 文字 50 DB
・Address Line 2:TRADR2 文字 50 DB
・Address Line 3:TRADR3 文字 50 DB
・Phone Number:TRTELN 文字 15 SB
・Fax Number:TRFAXN 文字 15 SB
・Email Address:TRMAIL 文字 60 SB
・Total Sales Amount:TRURKN 数字 15 2
・Total Purchas Amount:TRSIKN 数字 15 2
・Accounts Receivable:TRURZN 数字 15 2
・Accounts Payable:TRSIZN 数字 15 2
・Bank Name:TRBKNM 文字 30 DB
・Bank Code:TRBKCD 文字 4 SB
・Branch Code:TRBRCD 文字 3 SB
・Account Number:TRACCD 文字 7 SB
・Account Type:TRKUBN 文字 1 SB
・Contact Person:TRTNTM 文字 30 DB
・Created Date:TRRGDT 数字 8 0
・Created Time:TRRGTM 数字 6 0
・Updated Date:TRUPDT 数字 8 0
・Updated Time:TRUPTM 数字 6 0
作成したプロンプトでそれぞれの生成AIに聞いてみる
こちらも長くなっているため、興味のある方は「▶」から展開してご確認ください。
ChatGPT
CRTSRCPF FILE(XXXXXX1/QDDSSRC) RCDLEN(112)
CRTPF FILE(XXXXXX1/TRMAST) SRCFILE(XXXXXX1/QDDSSRC)
*****************************************************************
* File Name : TRMAST *
* Library : XXXXXX1 *
* Description : 取引先マスタ *
* Record Name : TRMASTR *
*****************************************************************
A R TRMASTR
A TRTRCD 10A COLHDG('Customer' 'Code')
A TRTRSC 3A COLHDG('Customer' 'Branch')
A TRNM01 50A CCSID(5026) COLHDG('Customer' 'Name')
A TRNM02 20A COLHDG('Customer' 'Short Name')
A TRPOST 8A COLHDG('Postal' 'Code')
A TRADR1 50A CCSID(5026) COLHDG('Address' 'Line1')
A TRADR2 50A CCSID(5026) COLHDG('Address' 'Line2')
A TRADR3 50A CCSID(5026) COLHDG('Address' 'Line3')
A TRTELN 15A COLHDG('Phone' 'Number')
A TRFAXN 15A COLHDG('Fax' 'Number')
A TRMAIL 60A COLHDG('Email' 'Address')
A TRURKN 15P 2 COLHDG('Total' 'Sales Amount')
A TRSIKN 15P 2 COLHDG('Total' 'Purchas Amount')
A TRURZN 15P 2 COLHDG('Accounts' 'Receivable')
A TRSIZN 15P 2 COLHDG('Accounts' 'Payable')
A TRBKNM 30A CCSID(5026) COLHDG('Bank' 'Name')
A TRBKCD 4A COLHDG('Bank' 'Code')
A TRBRCD 3A COLHDG('Branch' 'Code')
A TRACCD 7A COLHDG('Account' 'Number')
A TRKUBN 1A COLHDG('Account' 'Type')
A TRTNTM 30A CCSID(5026) COLHDG('Contact' 'Person')
A TRRGDT 8P 0 COLHDG('Created' 'Date')
A TRRGTM 6P 0 COLHDG('Created' 'Time')
A TRUPDT 8P 0 COLHDG('Updated' 'Date')
A TRUPTM 6P 0 COLHDG('Updated' 'Time')
A K TRTRCD
A K TRTRSC
Copilot
ソース物理ファイル作成コマンド:なし
CRTPF FILE(XXXXXX1/TRMAST) SRCFILE(XXXXXX1/QRPGLESRC) SRCMBR(TRMAST)
A R TRMASTR TEXT('取引先マスタレコード')
A TRTRCD 10A COLHDG('Customer' 'Code')
A TRTRSC 3A COLHDG('Customer' 'Branch Code')
A TRNM01 50A CCSID(930) COLHDG('Customer' 'Name')
A TRNM02 20A COLHDG('Customer' 'Short Name')
A TRPOST 8A COLHDG('Postal' 'Code')
A TRADR1 50A CCSID(930) COLHDG('Address' 'Line 1')
A TRADR2 50A CCSID(930) COLHDG('Address' 'Line 2')
A TRADR3 50A CCSID(930) COLHDG('Address' 'Line 3')
A TRTELN 15A COLHDG('Phone' 'Number')
A TRFAXN 15A COLHDG('Fax' 'Number')
A TRMAIL 60A COLHDG('Email' 'Address')
A TRURKN 15S 2 COLHDG('Total' 'Sales Amount')
A TRSIKN 15S 2 COLHDG('Total' 'Purchas Amount')
A TRURZN 15S 2 COLHDG('Accounts' 'Receivable')
A TRSIZN 15S 2 COLHDG('Accounts' 'Payable')
A TRBKNM 30A CCSID(930) COLHDG('Bank' 'Name')
A TRBKCD 4A COLHDG('Bank' 'Code')
A TRBRCD 3A COLHDG('Branch' 'Code')
A TRACCD 7A COLHDG('Account' 'Number')
A TRKUBN 1A COLHDG('Account' 'Type')
A TRTNTM 30A CCSID(930) COLHDG('Contact' 'Person')
A TRRGDT 8S 0 COLHDG('Created' 'Date')
A TRRGTM 6S 0 COLHDG('Created' 'Time')
A TRUPDT 8S 0 COLHDG('Updated' 'Date')
A TRUPTM 6S 0 COLHDG('Updated' 'Time')
A K TRTRCD
Perplexity
ソース物理ファイル作成コマンド:なし
CRTPF FILE(XXXXXX1/TRMAST) SRCFILE(XXXXXX1/QDDSSRC) SRCMBR(TRMAST)
A R TRMASTR
A TRTRCD 10A COLHDG('Customer Code')
A TRTRSC 3A COLHDG('Customer Branch Code')
A TRNM01 50S COLHDG('Customer Name')
A TRNM02 20A COLHDG('Customer Short Name')
A TRPOST 8A COLHDG('Postal Code')
A TRADR1 50S COLHDG('Address Line 1')
A TRADR2 50S COLHDG('Address Line 2')
A TRADR3 50S COLHDG('Address Line 3')
A TRTELN 15A COLHDG('Phone Number')
A TRFAXN 15A COLHDG('Fax Number')
A TRMAIL 60A COLHDG('Email Address')
A TRURKN 15P 2 COLHDG('Total Sales Amount')
A TRSIKN 15P 2 COLHDG('Total Purchas Amount')
A TRURZN 15P 2 COLHDG('Accounts Receivable')
A TRSIZN 15P 2 COLHDG('Accounts Payable')
A TRBKNM 30S COLHDG('Bank Name')
A TRBKCD 4A COLHDG('Bank Code')
A TRBRCD 3A COLHDG('Branch Code')
A TRACCD 7A COLHDG('Account Number')
A TRKUBN 1A COLHDG('Account Type')
A TRTNTM 30S COLHDG('Contact Person')
A TRRGDT 8P 0 COLHDG('Created Date')
A TRRGTM 6P 0 COLHDG('Created Time')
A TRUPDT 8P 0 COLHDG('Updated Date')
A TRUPTM 6P 0 COLHDG('Updated Time')
A K TRTRCD
A K TRTRSC
GenSpark
CRTSRCPF FILE(XXXXXX1/QDDSSRC) RCDLEN(112)
STRSEU SRCFILE(XXXXXX1/QDDSSRC) SRCMBR(TRMAST) TYPE(PF)
A*%%TS RD 20240514 123456 USERID IBM i 7.5 取引先マスタファイル
A*%%EC
A DSPSIZ(24 80 *DS3)
A CA03(03 '終了')
A PRINT
A R TRMASTR TEXT('取引先マスタレコード')
A*%%TS SD 20240514 123456 USERID 取引先マスタレコード定義
A*%%EC
A TRTRCD 10A COLHDG('取引先' 'コード')
A TEXT('取引先コード')
A TRTRSC 3A COLHDG('支店' 'コード')
A TEXT('取引先支店コード')
A TRNM01 50G COLHDG('取引先名称')
A TEXT('取引先名称')
A TRNM02 20A COLHDG('取引先略称')
A TEXT('取引先略称')
A TRPOST 8A COLHDG('郵便番号')
A TEXT('郵便番号')
A TRADR1 50G COLHDG('住所1')
A TEXT('住所1')
A TRADR2 50G COLHDG('住所2')
A TEXT('住所2')
A TRADR3 50G COLHDG('住所3')
A TEXT('住所3')
A TRTELN 15A COLHDG('電話番号')
A TEXT('電話番号')
A TRFAXN 15A COLHDG('FAX番号')
A TEXT('FAX番号')
A TRMAIL 60A COLHDG('メールアドレス')
A TEXT('メールアドレス')
A TRURKN 15S 2 COLHDG('売上金額')
A TEXT('売上合計金額')
A TRSIKN 15S 2 COLHDG('仕入金額')
A TEXT('仕入合計金額')
A TRURZN 15S 2 COLHDG('売掛金')
A TEXT('売掛残高')
A TRSIZN 15S 2 COLHDG('買掛金')
A TEXT('買掛残高')
A TRBKNM 30G COLHDG('銀行名')
A TEXT('銀行名')
A TRBKCD 4A COLHDG('銀行' 'コード')
A TEXT('銀行コード')
A TRBRCD 3A COLHDG('支店' 'コード')
A TEXT('支店コード')
A TRACCD 7A COLHDG('口座番号')
A TEXT('口座番号')
A TRKUBN 1A COLHDG('口座' '区分')
A TEXT('口座区分')
A TRTNTM 30G COLHDG('担当者名')
A TEXT('担当者名')
A TRRGDT 8S 0 COLHDG('登録日付')
A TEXT('登録日付')
A TRRGTM 6S 0 COLHDG('登録時刻')
A TEXT('登録時刻')
A TRUPDT 8S 0 COLHDG('更新日付')
A TEXT('更新日付')
A TRUPTM 6S 0 COLHDG('更新時刻')
A TEXT('更新時刻')
A K TRTRCD
A K TRTRSC
聞き方が悪かったのか、CopilotとPerplexityはソース物理ファイル作成コマンドを提示してくれませんでした。ですが、提示されたコマンドに関しては、問題無く使用できそうです。
(一部、QRPGLESRCに作成しようとしていますが。。。)
物理ファイルのソースはそれぞれ特色がありますが、どのソースもエラーが出ます。
ChatGPTやCopilotは非常に似ており、CCSIDと付けたことで若干桁数オーバーしています。

Perplexityに関しては、ほとんどの行で桁ずれを起こしてしまっています。
ソースとしてはきれいに出力されている感覚です。

GenSparkに関しては、DSPFで見るような記述がありました。

また、これは指定していないためかもしれませんが、全てのソースにUniqueがありません。
ChatGPTとPerplexityで再チャレンジ
正解に近かった2つのAIに絞って、下記のことを先ほどのプロンプトに続けて聞いてみます。
- Uniqueを付けてもらう
- ダブルバイトはデータ・タイプをOにしてもらう
- ChatGPTはCCSIDの記述を削除してもらう
- Perplexityは位置などが明記されたIBMドキュメントで学習してから返答してもらう
さきほどのソースに、下記の要件を反映ください。
・Uniqueにしてください
・ダブルバイトのデータ・タイプはOで記述ください
・CCSIDの記述は必要無いので削除ください // ChatGPTの場合
・[URL]のように桁位置を修正ください // Perplexityの場合
下記のように返答がきました。
ChatGPT
*****************************************************************
* File Name : TRMAST *
* Library : XXXXXX1 *
* Description : 取引先マスタ *
* Record Name : TRMASTR *
*****************************************************************
A R TRMASTR
A TRTRCD 10A COLHDG('Customer' 'Code')
A TRTRSC 3A COLHDG('Customer' 'Branch')
A TRNM01 50O COLHDG('Customer' 'Name')
A TRNM02 20A COLHDG('Customer' 'Short Name')
A TRPOST 8A COLHDG('Postal' 'Code')
A TRADR1 50O COLHDG('Address' 'Line1')
A TRADR2 50O COLHDG('Address' 'Line2')
A TRADR3 50O COLHDG('Address' 'Line3')
A TRTELN 15A COLHDG('Phone' 'Number')
A TRFAXN 15A COLHDG('Fax' 'Number')
A TRMAIL 60A COLHDG('Email' 'Address')
A TRURKN 15P 2 COLHDG('Total' 'Sales Amount')
A TRSIKN 15P 2 COLHDG('Total' 'Purchas Amount')
A TRURZN 15P 2 COLHDG('Accounts' 'Receivable')
A TRSIZN 15P 2 COLHDG('Accounts' 'Payable')
A TRBKNM 30O COLHDG('Bank' 'Name')
A TRBKCD 4A COLHDG('Bank' 'Code')
A TRBRCD 3A COLHDG('Branch' 'Code')
A TRACCD 7A COLHDG('Account' 'Number')
A TRKUBN 1A COLHDG('Account' 'Type')
A TRTNTM 30O COLHDG('Contact' 'Person')
A TRRGDT 8P 0 COLHDG('Created' 'Date')
A TRRGTM 6P 0 COLHDG('Created' 'Time')
A TRUPDT 8P 0 COLHDG('Updated' 'Date')
A TRUPTM 6P 0 COLHDG('Updated' 'Time')
A K TRTRCD
A K TRTRSC
A UNIQUE
Perplexity
A UNIQUE
A R TRMASTR TEXT('取引先マスタ')
A TRTRCD 10A COLHDG('Customer Code')
A TRTRSC 3A COLHDG('Customer Branch Code')
A TRNM01 50O COLHDG('Customer Name')
A TRNM02 20A COLHDG('Customer Short Name')
A TRPOST 8A COLHDG('Postal Code')
A TRADR1 50O COLHDG('Address Line 1')
A TRADR2 50O COLHDG('Address Line 2')
A TRADR3 50O COLHDG('Address Line 3')
A TRTELN 15A COLHDG('Phone Number')
A TRFAXN 15A COLHDG('Fax Number')
A TRMAIL 60A COLHDG('Email Address')
A TRURKN 15P 2 COLHDG('Total Sales Amount')
A TRSIKN 15P 2 COLHDG('Total Purchas Amount')
A TRURZN 15P 2 COLHDG('Accounts Receivable')
A TRSIZN 15P 2 COLHDG('Accounts Payable')
A TRBKNM 30O COLHDG('Bank Name')
A TRBKCD 4A COLHDG('Bank Code')
A TRBRCD 3A COLHDG('Branch Code')
A TRACCD 7A COLHDG('Account Number')
A TRKUBN 1A COLHDG('Account Type')
A TRTNTM 30O COLHDG('Contact Person')
A TRRGDT 8P 0 COLHDG('Created Date')
A TRRGTM 6P 0 COLHDG('Created Time')
A TRUPDT 8P 0 COLHDG('Updated Date')
A TRUPTM 6P 0 COLHDG('Updated Time')
A K TRTRCD
A K TRTRSC
ChatGPTは要求したことがしっかりと反映されているように見えますが、Uniqueの部分でエラーが出ます。桁位置と書かれている行が違いそうです。(通常はレコード名の上に書く)

Perplexityに関しては、桁位置は直らず。。。(惜しくはなっている?)

ChatGPTで再々チャレンジ
非常に惜しいところまできているChatGPTに、IBMドキュメントで学習させてから返答してもらいます。
さきほどのソースに、下記の要件を反映ください。
・[URL]のようにUniqueの位置を修正ください
結果は先ほどとはほとんど変わらない答えが返ってきました。
A TRUPDT 8P 0 COLHDG('Updated' 'Date')
A TRUPTM 6P 0 COLHDG('Updated' 'Time')
A K TRTRCD
A K TRTRSC
A UNIQUE(TRTRCD TRTRSC)
その後も、想定しているような返答は無かったため、結局手で修正をしました。
(最終版のソースは最後にまとめて記載します)
惜しいところまではいきましたが、すべてを生成AIで実装するのは難しそうです
因みにテストデータも作ってもらいましたが、実在する会社名や住所を提示されるので、ご留意ください。(プロンプトに明記しても提示してきます)
5.画面設計と項目定義
次に項目定義を実施しました。それぞれの処理を分担しているので、共通認識を持てるように定義しております。画面毎に必要な項目やファンクションキー、レコード名までイメージするために簡単に画面設計も実施しました。(この章では生成AIを使用しておりません)
以下では画面設計と項目をまとめた表を添付しております。
(興味のある方は「▶」から展開してご確認ください。)
項目定義
タイプについて:
- A:文字(シングルバイトのみ)
- O:文字(ダブルバイト混合)
- S:符号付き数字(小数点あり)
- Y:数字のみ
サブファイルに必要なSFLCLRの標識の指定が抜けてしまっています。。。
(生成AIによる)プログラミングの途中で気づきました

以上のことを踏まえて、次はいよいよDSPFを作成していきます
6.DSPFの作成
画面ごとに小出しで聞くのではなく、一括で聞いてみようと思います。
レコードや項目名、桁数やファンクションキーなど、必要な情報が盛りだくさんなプロンプトを作成しました。
こちらも長くなってしまったので、興味のある方は「▶」から展開してご確認ください。
プロンプト
あなたはIBM iで画面(DSPF)を作成しているエンジニアです。
下記の要件の則り、DSPF画面を作成してください。
ただし、画面上部に画面名とGxDATEの項目を表示、画面下部にファンクションキーの説明を表示してください。
また、項目名があるデータは項目の左隣にその名称を直接画面上に表示させてください。
#要件
●第一画面
-画面名:取引先マスタ 照会
-レコード名:G1
-項目,桁数,データタイプ,備考,項目名:
G1TRCD,10,A,エラー標識は30か31, 取引先コード
G1TRSC,3,A,,取引先支店コード
G1NM01,50,O,,取引先名
G1DATE,16,O,RPGから値をいれる
-ファンクションキー,内容:
F3,終了
F5,検索
●第二画面
-画面名:取引先マスタ 保守
-レコード名:G2
-項目,桁数,データタイプ,備考,項目名:
G2TRCD,10,A,表示のみ,取引先コード
G2TRSC,3,A,表示のみ,取引先支店コード
G2NM01,50,O,表示のみ,取引先名
G2NM02,20,A,, 取引先略称
G2POST,7,A,,郵便番号
G2ADR1,50,O,,住所1
G2ADR2,50,O,,住所2
G2ADR3,50,O,,住所3
G2TELN,15,A,,電話番号
G2FAXN,15,A,,FAX番号
G2MAIL,60,A,,メールアドレス
G2URKN,15,S,小数点以下2桁,売上金額
G2SIKN,15,S,小数点以下2桁,仕入金額
G2URZN,15,S,小数点以下2桁,売掛残高
G2SIZN,15,S,小数点以下2桁,買掛残高
G2BKNM,30,O,,銀行名
G2BKCD,4,A,,銀行コード
G2BRCD,3,A,,支店コード
G2ACCD,7,A,,口座番号
G2KUBN,1,A,,口座区分
G2TNTM,30,O,,担当者名
G2DATE,16,O
-ファンクションキー,内容:
F3,終了
F5,削除
F12,前画面
●第三画面
-画面名:取引先マスタ 確認
-レコード名:G3
-項目,桁数,データタイプ,備考,項目名:
G3TRCD,10,A,表示のみ,取引先コード
G3TRSC,3,A,表示のみ,取引先支店コード
G3NM01,50,O,表示のみ,取引先名
G3NM02,20,A,表示のみ,取引先略称
G3POST,7,A,表示のみ,郵便番号
G3ADR1,50,O,表示のみ,住所1
G3ADR2,50,O,表示のみ,住所2
G3ADR3,50,O,表示のみ,住所3
G3TELN,15,A,表示のみ,電話番号
G3FAXN,15,A,表示のみ,FAX番号
G3MAIL,60,A,表示のみ,メールアドレス
G3URKN,15,S,小数点以下2桁 表示のみ,売上金額
G3SIKN,15,S,小数点以下2桁 表示のみ,仕入金額
G3URZN,15,S,小数点以下2桁 表示のみ,売掛残高
G3SIZN,15,S,小数点以下2桁 表示のみ,買掛残高
G3BKNM,30,O,表示のみ,銀行名
G3BKCD,4,A,表示のみ,銀行コード
G3BRCD,3,A,表示のみ,支店コード
G3ACCD,7,A,表示のみ,口座番号
G3KUBN,1,A,表示のみ,口座区分
G3TNTM,30,O,表示のみ,担当者名
G3DATE,16,O ,表示のみ
-ファンクションキー,内容:
F3,終了
F12,前画面
●サブファイル
-画面名:取引先マスタ 検索
-レコード名:G1SFL
-コントロール名:G1CTL
-SFLSIZ:11
-SFLPAG:10
-項目,桁数,データタイプ,備考,項目名:
S1SLCT,1,A,入力可能
S1TRCD,10,A,表示のみ,取引先コード
S1TRSC,3,A,表示のみ,取引先支店コード
S1NM01,50,O,表示のみ,取引先名
-ファンクションキー,内容:
F3,終了
F12,前画面
作成したプロンプトでそれぞれの生成AIに聞いてみる
こちらも長くなっているため、興味のある方は「▶」から展開してご確認ください。
(CopilotはChatGPTと共通することが多いことから今回外しております)
ChatGPT
とてもまとまっているように見えます
A DSPSIZ(24 80 *DS3)
A PRINT
A INDARA
*-----------------------------------------------------------------
* 第一画面 取引先マスタ 照会
*-----------------------------------------------------------------
A R G1
A CF03(03 '終了')
A CF05(05 '検索')
A G1DATE 16 O 1 60
A 1 2'取引先マスタ 照会'
A 3 2'取引先コード'
A G1TRCD 10A B 3 20
A 4 2'取引先支店コード'
A G1TRSC 3A B 4 20
A 5 2'取引先名'
A G1NM01 50O O 5 20
A 22 2'F3=終了 F5=検索'
*-----------------------------------------------------------------
* 第二画面 取引先マスタ 保守
*-----------------------------------------------------------------
A R G2
A CF03(03 '終了')
A CF05(05 '削除')
A CF12(12 '前画面')
A G2DATE 16 O 1 60
A 1 2'取引先マスタ 保守'
A 3 2'取引先コード'
A G2TRCD 10A O 3 20
A 4 2'取引先支店コード'
A G2TRSC 3A O 4 20
A 5 2'取引先名'
A G2NM01 50O O 5 20
A 6 2'取引先略称'
A G2NM02 20A B 6 20
A 7 2'郵便番号'
A G2POST 7A B 7 20
A 8 2'住所1'
A G2ADR1 50O B 8 20
A 9 2'住所2'
A G2ADR2 50O B 9 20
A 10 2'住所3'
A G2ADR3 50O B 10 20
A 11 2'電話番号'
A G2TELN 15A B 11 20
A 12 2'FAX番号'
A G2FAXN 15A B 12 20
A 13 2'メールアドレス'
A G2MAIL 60A B 13 20
A 14 2'売上金額'
A G2URKN 15S 2B 14 20
A 15 2'仕入金額'
A G2SIKN 15S 2B 15 20
A 16 2'売掛残高'
A G2URZN 15S 2B 16 20
A 17 2'買掛残高'
A G2SIZN 15S 2B 17 20
A 18 2'銀行名'
A G2BKNM 30O B 18 20
A 19 2'銀行コード'
A G2BKCD 4A B 19 20
A 20 2'支店コード'
A G2BRCD 3A B 20 20
A 21 2'口座番号'
A G2ACCD 7A B 21 20
A 22 2'口座区分'
A G2KUBN 1A B 22 20
A 23 2'担当者名'
A G2TNTM 30O B 23 20
A 24 2'F3=終了 F5=削除 F12=前画面'
*-----------------------------------------------------------------
* 第三画面 取引先マスタ 確認
*-----------------------------------------------------------------
A R G3
A CF03(03 '終了')
A CF12(12 '前画面')
A G3DATE 16 O 1 60
A 1 2'取引先マスタ 確認'
A 3 2'取引先コード'
A G3TRCD 10A O 3 20
A 4 2'取引先支店コード'
A G3TRSC 3A O 4 20
A 5 2'取引先名'
A G3NM01 50O O 5 20
A 6 2'取引先略称'
A G3NM02 20A O 6 20
A 7 2'郵便番号'
A G3POST 7A O 7 20
A 8 2'住所1'
A G3ADR1 50O O 8 20
A 9 2'住所2'
A G3ADR2 50O O 9 20
A 10 2'住所3'
A G3ADR3 50O O 10 20
A 11 2'電話番号'
A G3TELN 15A O 11 20
A 12 2'FAX番号'
A G3FAXN 15A O 12 20
A 13 2'メールアドレス'
A G3MAIL 60A O 13 20
A 14 2'売上金額'
A G3URKN 15S 2O 14 20
A 15 2'仕入金額'
A G3SIKN 15S 2O 15 20
A 16 2'売掛残高'
A G3URZN 15S 2O 16 20
A 17 2'買掛残高'
A G3SIZN 15S 2O 17 20
A 18 2'銀行名'
A G3BKNM 30O O 18 20
A 19 2'銀行コード'
A G3BKCD 4A O 19 20
A 20 2'支店コード'
A G3BRCD 3A O 20 20
A 21 2'口座番号'
A G3ACCD 7A O 21 20
A 22 2'口座区分'
A G3KUBN 1A O 22 20
A 23 2'担当者名'
A G3TNTM 30O O 23 20
A 24 2'F3=終了 F12=前画面'
*-----------------------------------------------------------------
* サブファイル 取引先マスタ 検索
*-----------------------------------------------------------------
A R G1SFL SFL
A S1SLCT 1A B 5 2
A S1TRCD 10A O 5 5
A S1TRSC 3A O 5 16
A S1NM01 50O O 5 20
A R G1CTL SFLCTL(G1SFL)
A CF03(03 '終了')
A CF12(12 '前画面')
A SFLPAG(10)
A SFLSIZ(11)
A G1DATE 16 O 1 60
A 1 2'取引先マスタ 検索'
A 4 2'選択'
A 4 5'取引先コード'
A 4 16'支店コード'
A 4 20'取引先名'
A 24 2'F3=終了 F12=前画面'
Perplexity
これもまとまっているように見えます
*-------------------------------------------------------------------
* ファイル: TRKMNUDSPF
* 機能 : 取引先マスタ 画面 (照会・保守・確認・検索)
*-------------------------------------------------------------------
A DSPSIZ(24 80 *DS3)
A CA03(03 '終了')
A CA05(05)
A CA12(12)
*-------------------------------------------------------------------
* 第一画面 : 取引先マスタ 照会
*-------------------------------------------------------------------
A R G1
A CF05(05 '検索')
A 1 2'取引先マスタ 照会'
A 1 60'日付:'
A G1DATE 16O 1 66
A 3 2'取引先コード'
A G1TRCD 10A B 3 20
A 4 2'取引先支店コード'
A G1TRSC 3A B 4 20
A 5 2'取引先名'
A G1NM01 50A O 5 20
A 23 2'F3=終了'
A 23 20'F5=検索'
*-------------------------------------------------------------------
* 第二画面 : 取引先マスタ 保守
*-------------------------------------------------------------------
A R G2
A CF05(05 '削除')
A 1 2'取引先マスタ 保守'
A 1 60'日付:'
A G2DATE 16O 1 66
A 3 2'取引先コード'
A G2TRCD 10A O 3 20
A 4 2'取引先支店コード'
A G2TRSC 3A O 4 20
A 5 2'取引先名'
A G2NM01 50A O 5 20
A 6 2'取引先略称'
A G2NM02 20A B 6 20
A 7 2'郵便番号'
A G2POST 7A B 7 20
A 8 2'住所1'
A G2ADR1 50A O 8 20
A 9 2'住所2'
A G2ADR2 50A O 9 20
A 10 2'住所3'
A G2ADR3 50A O 10 20
A 11 2'電話番号'
A G2TELN 15A B 11 20
A 12 2'FAX番号'
A G2FAXN 15A B 12 20
A 13 2'メールアドレス'
A G2MAIL 60A B 13 20
A 14 2'売上金額'
A G2URKN 15S 2B 14 20
A 15 2'仕入金額'
A G2SIKN 15S 2B 15 20
A 16 2'売掛残高'
A G2URZN 15S 2B 16 20
A 17 2'買掛残高'
A G2SIZN 15S 2B 17 20
A 18 2'銀行名'
A G2BKNM 30A O 18 20
A 19 2'銀行コード'
A G2BKCD 4A B 19 20
A 20 2'支店コード'
A G2BRCD 3A B 20 20
A 21 2'口座番号'
A G2ACCD 7A B 21 20
A 22 2'口座区分'
A G2KUBN 1A B 22 20
A 23 2'担当者名'
A G2TNTM 30A O 23 20
A 24 2'F3=終了 F5=削除 F12=前画面'
*-------------------------------------------------------------------
* 第三画面 : 取引先マスタ 確認
*-------------------------------------------------------------------
A R G3
A 1 2'取引先マスタ 確認'
A 1 60'日付:'
A G3DATE 16O 1 66
A 3 2'取引先コード'
A G3TRCD 10A O 3 20
A 4 2'取引先支店コード'
A G3TRSC 3A O 4 20
A 5 2'取引先名'
A G3NM01 50A O 5 20
A 6 2'取引先略称'
A G3NM02 20A O 6 20
A 7 2'郵便番号'
A G3POST 7A O 7 20
A 8 2'住所1'
A G3ADR1 50A O 8 20
A 9 2'住所2'
A G3ADR2 50A O 9 20
A 10 2'住所3'
A G3ADR3 50A O 10 20
A 11 2'電話番号'
A G3TELN 15A O 11 20
A 12 2'FAX番号'
A G3FAXN 15A O 12 20
A 13 2'メールアドレス'
A G3MAIL 60A O 13 20
A 14 2'売上金額'
A G3URKN 15S 2O 14 20
A 15 2'仕入金額'
A G3SIKN 15S 2O 15 20
A 16 2'売掛残高'
A G3URZN 15S 2O 16 20
A 17 2'買掛残高'
A G3SIZN 15S 2O 17 20
A 18 2'銀行名'
A G3BKNM 30A O 18 20
A 19 2'銀行コード'
A G3BKCD 4A O 19 20
A 20 2'支店コード'
A G3BRCD 3A O 20 20
A 21 2'口座番号'
A G3ACCD 7A O 21 20
A 22 2'口座区分'
A G3KUBN 1A O 22 20
A 23 2'担当者名'
A G3TNTM 30A O 23 20
A 24 2'F3=終了 F12=前画面'
*-------------------------------------------------------------------
* サブファイル : 取引先マスタ 検索
*-------------------------------------------------------------------
A R G1SFL SFL
A S1SLCT 1A B 5 2
A S1TRCD 10A O 5 6
A S1TRSC 3A O 5 18
A S1NM01 50A O 5 22
A R G1CTL SFLCTL(G1SFL)
A SFLSIZ(11)
A SFLPAG(10)
A OVERLAY
A 1 2'取引先マスタ 検索'
A 1 60'日付:'
A G1DATE 16O 1 66
A 3 2'選択'
A 3 6'取引先コード'
A 3 18'取引先支店コード'
A 3 22'取引先名'
A 24 2'F3=終了 F12=前画面'
GenSpark
ご丁寧にWebページを作成してくれました
出力されたWebページを確認したい場合はこちらをクリックしてください

ソースは見慣れない書き方をされています
A*%%TS SD 20231201 123456 USERID REL-V7R5M0 5770-WDS
A*%%EC
A DSPSIZ(24 80 *DS3)
A CA03(03 '終了')
A CA05(05 '検索')
A PRINT
A*%%
A R SFL1FMT
A*%%TS SD 20231201 123456 USERID REL-V7R5M0 5770-WDS
A OVERLAY
A 1 2'取引先マスタ 照会'
A GXDATE R O 1 65REFFLD(QSYS/QWCRSYS/DATE)
A 3 2'取引先コード . . .'
A G1TRCD 10A B 8 30DSPATR(UL)
A N30N31 DSPATR(BL)
A 30 DSPATR(BL)
A 31 DSPATR(RI)
A 5 2'取引先支店コード . . .'
A G1TRSC 3A B 8 42DSPATR(UL)
A 7 2'取引先名 . . . . . . .'
A G1NM01 50A O 7 25DSPATR(HI)
A G1DATE 16A O 9 25DSPATR(HI)
A 23 2'F3=終了 F5=検索'
A R G1
A*%%TS SD 20231201 123456 USERID REL-V7R5M0 5770-WDS
A OVERLAY
A R SFL2FMT
A*%%TS SD 20231201 123456 USERID REL-V7R5M0 5770-WDS
A OVERLAY
A 1 2'取引先マスタ 保守'
A GXDATE R O 1 65REFFLD(QSYS/QWCRSYS/DATE)
A 3 2'取引先コード . . .'
A G2TRCD 10A O 3 25DSPATR(HI)
A 3 40'取引先支店コード'
A G2TRSC 3A O 3 60DSPATR(HI)
A 4 2'取引先名 . . . . . . .'
A G2NM01 50A O 4 25DSPATR(HI)
A 5 2'取引先略称 . . . . . .'
A G2NM02 20A B 8 25DSPATR(UL)
A 6 2'郵便番号 . . . . . . .'
A G2POST 7A B 8 25DSPATR(UL)
A 7 2'住所1 . . . . . . . .'
A G2ADR1 50A B 8 25DSPATR(UL)
A 8 2'住所2 . . . . . . . .'
A G2ADR2 50A B 8 25DSPATR(UL)
A 9 2'住所3 . . . . . . . .'
A G2ADR3 50A B 8 25DSPATR(UL)
A 10 2'電話番号 . . . . . . .'
A G2TELN 15A B 8 25DSPATR(UL)
A 11 2'FAX番号 . . . . . . . .'
A G2FAXN 15A B 8 25DSPATR(UL)
A 12 2'メールアドレス . . . .'
A G2MAIL 60A B 8 25DSPATR(UL)
A 13 2'売上金額 . . . . . . .'
A G2URKN 15S 2B 8 25EDTCDE(3) DSPATR(UL)
A 14 2'仕入金額 . . . . . . .'
A G2SIKN 15S 2B 8 25EDTCDE(3) DSPATR(UL)
A 15 2'売掛残高 . . . . . . .'
A G2URZN 15S 2B 8 25EDTCDE(3) DSPATR(UL)
A 16 2'買掛残高 . . . . . . .'
A G2SIZN 15S 2B 8 25EDTCDE(3) DSPATR(UL)
A 17 2'銀行名 . . . . . . . .'
A G2BKNM 30A B 8 25DSPATR(UL)
A 18 2'銀行コード . . . . . .'
A G2BKCD 4A B 8 25DSPATR(UL)
A 18 35'支店コード'
A G2BRCD 3A B 8 50DSPATR(UL)
A 19 2'口座番号 . . . . . . .'
A G2ACCD 7A B 8 25DSPATR(UL)
A 19 35'口座区分'
A G2KUBN 1A B 8 50DSPATR(UL)
A 20 2'担当者名 . . . . . . .'
A G2TNTM 30A B 8 25DSPATR(UL)
A G2DATE 16A O 21 25DSPATR(HI)
A 23 2'F3=終了 F5=削除 F12=前画面'
A R G2
A*%%TS SD 20231201 123456 USERID REL-V7R5M0 5770-WDS
A OVERLAY
A R SFL3FMT
A*%%TS SD 20231201 123456 USERID REL-V7R5M0 5770-WDS
A OVERLAY
A 1 2'取引先マスタ 確認'
A GXDATE R O 1 65REFFLD(QSYS/QWCRSYS/DATE)
A 3 2'取引先コード . . .'
A G3TRCD 10A O 3 25DSPATR(HI)
A 3 40'取引先支店コード'
A G3TRSC 3A O 3 60DSPATR(HI)
A 4 2'取引先名 . . . . . . .'
A G3NM01 50A O 4 25DSPATR(HI)
A 5 2'取引先略称 . . . . . .'
A G3NM02 20A O 5 25DSPATR(HI)
A 6 2'郵便番号 . . . . . . .'
A G3POST 7A O 6 25DSPATR(HI)
A 7 2'住所1 . . . . . . . .'
A G3ADR1 50A O 7 25DSPATR(HI)
A 8 2'住所2 . . . . . . . .'
A G3ADR2 50A O 8 25DSPATR(HI)
A 9 2'住所3 . . . . . . . .'
A G3ADR3 50A O 9 25DSPATR(HI)
A 10 2'電話番号 . . . . . . .'
A G3TELN 15A O 10 25DSPATR(HI)
A 11 2'FAX番号 . . . . . . . .'
A G3FAXN 15A O 11 25DSPATR(HI)
A 12 2'メールアドレス . . . .'
A G3MAIL 60A O 12 25DSPATR(HI)
A 13 2'売上金額 . . . . . . .'
A G3URKN 15S 2O 13 25EDTCDE(3) DSPATR(HI)
A 14 2'仕入金額 . . . . . . .'
A G3SIKN 15S 2O 14 25EDTCDE(3) DSPATR(HI)
A 15 2'売掛残高 . . . . . . .'
A G3URZN 15S 2O 15 25EDTCDE(3) DSPATR(HI)
A 16 2'買掛残高 . . . . . . .'
A G3SIZN 15S 2O 16 25EDTCDE(3) DSPATR(HI)
A 17 2'銀行名 . . . . . . . .'
A G3BKNM 30A O 17 25DSPATR(HI)
A 18 2'銀行コード . . . . . .'
A G3BKCD 4A O 18 25DSPATR(HI)
A 18 35'支店コード'
A G3BRCD 3A O 18 50DSPATR(HI)
A 19 2'口座番号 . . . . . . .'
A G3ACCD 7A O 19 25DSPATR(HI)
A 19 35'口座区分'
A G3KUBN 1A O 19 50DSPATR(HI)
A 20 2'担当者名 . . . . . . .'
A G3TNTM 30A O 20 25DSPATR(HI)
A G3DATE 16A O 21 25DSPATR(HI)
A 23 2'F3=終了 F12=前画面'
A R G3
A*%%TS SD 20231201 123456 USERID REL-V7R5M0 5770-WDS
A OVERLAY
A R G1SFL SFL
A*%%TS SD 20231201 123456 USERID REL-V7R5M0 5770-WDS
A S1SLCT 1A B 8 2DSPATR(UL)
A S1TRCD 10A O 8 4DSPATR(HI)
A S1TRSC 3A O 8 15DSPATR(HI)
A S1NM01 50A O 8 19DSPATR(HI)
A R G1CTL SFLCTL(G1SFL)
A*%%TS SD 20231201 123456 USERID REL-V7R5M0 5770-WDS
A N32 SFLSIZ(11)
A N32 SFLPAG(10)
A CF03(03 '終了')
A CF12(12 '前画面')
A N32 OVERLAY
A SFLRCDNBR 4S 0H SFLRCDNBR(CURSOR)
A 32 SFLCLR
A N32 SFLDSP
A N32 SFLDSPCTL
A N32 SFLCSRRRN(&SFLRCDNBR)
A 1 2'取引先マスタ 検索'
A GXDATE R O 1 65REFFLD(QSYS/QWCRSYS/DATE)
A 6 2'選択'
A 6 4'取引先コード'
A 6 15'支店'
A 6 19'取引先名'
A 7 2'----'
A 7 4'----------'
A 7 15'---'
A 7 19'--------------------------------------------------'
A 23 2'F3=終了 F12=前画面'
ChatGPTはそのまま貼り付けても、ほとんどエラーが出ませんでした。桁位置を1~2桁ずらすだけの軽微な修正で済んでいます。
Perplexityは予想していましたが、桁位置がほとんど合わないです。(惜しいですが。。。)
文字でも小数部(?)に0が付いています。

GenSparkも桁位置がほとんど合わず、修正にはそれなりに時間を要します。

とりあえずChatGPTのソースが最も軽微な修正で済んでいるため、このソースでコンパイルを実施していきます。
7.動作確認
ChatGPTで生成したソースをコンパイルしてみます。パラメータは何も指定せずにコンパイルします。
[Errors in DDS not allowed with specified GENLVL.]というエラーメッセージが表示されます。
エラーが出てしまったので、スプールを確認してみます。
スプールの一番下まで行くと、エラーの原因が書いてあります。
何となくサブファイル関連のエラーであることは読み取れましたが、、、

分からないときはとりあえず生成AIに聞いてみる
下記のようにプロンプトを作成して、ChatGPTに聞いてみます
コンパイルをしたときに、下記のようなエラーが出ました
見当は付きますか?
* CPD7564 20 1 Message . . . . : SFLSIZ, SFLPAG, and SFLDSP keywords required.
* CPD7571 20 2 Message . . . . : Indicated keyword requires SFLCTL keyword.
* CPD7836 30 1 Message . . . . : Subfile control record not found.
* CPD7866 10 6 Message . . . . : Field overlaps another field with no conditions specified.
* CPD7892 10 1 Message . . . . : Indicator ignored because of error on field or keyword.
ChatGPTからエラー毎の原因候補ということで、返答がありました。
1.CPD7564 : SFLSIZ, SFLPAG, and SFLDSP keywords required
→ サブファイルコントロールレコード(G1CTL)に必要なキーワードが足りていません。
SFLDSP(サブファイル表示許可)
SFLDSPCTL(サブファイルコントロール表示許可)
SFLCLR(サブファイルクリア)
このあたりを追加する必要があります。
2.CPD7571 : Indicated keyword requires SFLCTL keyword
→ SFLCTL(G1SFL) の関連付けが正しく認識されていません。SFLDSPCTL や SFLCLR を付けないとこのエラーが出ます。
3.CPD7836 : Subfile control record not found
→ SFLCTL(G1SFL) の指定はあるが、G1SFL レコードが DDS に定義されていないように見えている状態。
実際は順番の問題で、DDSでは「サブファイルレコード(G1SFL)」を先に定義 → その後にコントロールレコード(G1CTL)を書く必要があります。
私の例では順番は正しかったはずですが、もしかするとコピペ時に入れ替わったか、誤字(G1SFL と G1Sfl の大小文字違いなど)かもしれません。
4.CPD7866 : Field overlaps another field with no conditions specified
→ 同じ行・列に項目を配置してしまっている箇所があります。たとえば:
A S1TRSC 3A O 5 16
A S1NM01 50O O 5 20
この場合、S1TRSC (列16~18) と S1NM01 (列20~69) はギリギリセーフですが、別の画面で微妙にかぶっている可能性があります。
修正案:列位置を少し離す。
5.CPD7892 : Indicator ignored because of error on field or keyword
→ 上記エラーに引きずられて出ている二次的なエラーです。1〜4を直せば消えます。
この返答に続いてサブファイルの修正案を提示してくれました。
(ここでSFLCLRが必要であることを思い出します)
A R G1SFL SFL
A S1SLCT 1A B 5 2
A S1TRCD 10A O 5 6
A S1TRSC 3A O 5 18
A S1NM01 50O O 5 24
A R G1CTL SFLCTL(G1SFL)
A CF03(03 '終了')
A CF12(12 '前画面')
A SFLDSP
A SFLDSPCTL
A 32 SFLCLR
A SFLPAG(10)
A SFLSIZ(11)
A G1DATE 16 O 1 60
A 1 2'取引先マスタ 検索'
A 4 2'選択'
A 4 6'取引先コード'
A 4 18'支店コード'
A 4 24'取引先名'
A 24 2'F3=終了 F12=前画面'
早速、反映してコンパイルしてみます。
が、再びコンパイルエラーが出ました。
同じ手順でエラーを確認してみます。嬉しいことにエラーは減っております。
しかし、新たなエラーが出てきました。

ChatGPTに同じように聞いてみます。
コンパイルをしたときに、下記のようなエラーが出ました
見当は付きますか?
* CPD7812 30 1 Message . . . . : Subfile control record overlaps subfile record.
* CPD7866 10 6 Message . . . . : Field overlaps another field with no conditions specified.
下記のように、エラー内容の意味を教えてくれました。
⚠️CPD7812
Subfile control record overlaps subfile record
→ 「サブファイル制御レコード (SFLCTL) がサブファイル本体 (SFL) と表示領域で重なっている」
修正案として、G1SFLの最初の行位置を直すように言われましたが、同様のエラーが出ました。ChatGPTに聞いても同じような返答しかないため、自力で解決しようと思いましたが、ここから時間が掛かりました。
行をコメントアウトしたりして、サブファイルに記述しているフッター部分が悪さをしていることが分かりました。
どうやら、サブファイルの明細部分を、SFLCTLの同一レコード内で上下に挟むことができないようです。そのため、フッター部分を別レコードにすることでコンパイルが通るようになりました。
知識不足で時間が掛かってしまいましたが、0ベースから作成するよりは楽な気がしました。コンパイルエラーの意味や修正案なども提示されるので比較的楽でした。
また、今回作成した画面をSDAで表示した画像を下記に添付します。
どのような形になったか気になる方は「▶」から展開してご確認ください。
8.まとめ
今回、生成AIを使用して設計からDSPF作成まで実施してみましたが、想定より精度が良く、ついにここまで来たかと感心しました。
担当割の都合上、RPGLEに触れることはできなかったのが非常に残念ですが、設計、物理ファイル、DSPFと多くの事を経験することができ、得られたものは多かったと思います。
さて、今回のテーマは初級者のサポートを生成AIができるか検証ということでしたが、今回実施した作業については充分サポートできると思います。
白紙の状態からやろうとすると分からないことが多かったのですが、エラーはあれど形にしてくれることは、非常に頼れるとは思いました。(Uniqueやエラーの標識など要望を聞いてくれないときもありますが。。。)
ただ、知識が全くないような初級者の方だと、苦戦はするかなと思います。
基礎的な技術、知識があれば非常に便利で、使いやすいと思います。
個人的にはChatGPTがより精度が高く、使いやすかったと思いますが、知識の無い初級者が安心して使用するにはまだまだ至らない部分が多いとは思います。
そのため、 IBMから発表されている Project Bob と IBM i コード・アシスタント には、より期待が高まりました。
実施できなかったこと
話は変わりますが、今回の活動で惜しくも実施できなかったことがあります。
(活動外で今度、試してみます!)
- 設計した画面を画像として生成AIになげるとどのようになるか
- 担当した処理の結合テスト
ここまでできればよかったのですが、時間の都合上叶いませんでした。
今回作成したソース
最後に最終のソースを添付します。
興味のある方は「▶」から展開してご確認ください。
物理ファイル
*****************************************************************
* FILE NAME : TRMAST *
* LIBRARY : XXXXXX1 *
* DESCRIPTION : *
* RECORD NAME : TRMASTR *
*****************************************************************
A UNIQUE
A R TRMASTR
A TRTRCD 10A COLHDG('CUSTOMER' 'CODE')
A TRTRSC 3A COLHDG('CUSTOMER' 'BRANCH')
A TRNM01 50O COLHDG('CUSTOMER' 'NAME')
A TRNM02 20A COLHDG('CUSTOMER' 'SHORT NAME')
A TRPOST 8A COLHDG('POSTAL' 'CODE')
A TRADR1 50O COLHDG('ADDRESS' 'LINE1')
A TRADR2 50O COLHDG('ADDRESS' 'LINE2')
A TRADR3 50O COLHDG('ADDRESS' 'LINE3')
A TRTELN 15A COLHDG('PHONE' 'NUMBER')
A TRFAXN 15A COLHDG('FAX' 'NUMBER')
A TRMAIL 60A COLHDG('EMAIL' 'ADDRESS')
A TRURKN 15P 2 COLHDG('TOTAL' 'SALES AMOUNT')
A TRSIKN 15P 2 COLHDG('TOTAL' 'PURCHAS AMOUNT')
A TRURZN 15P 2 COLHDG('ACCOUNTS' 'RECEIVABLE')
A TRSIZN 15P 2 COLHDG('ACCOUNTS' 'PAYABLE')
A TRBKNM 30O COLHDG('BANK' 'NAME')
A TRBKCD 4A COLHDG('BANK' 'CODE')
A TRBRCD 3A COLHDG('BRANCH' 'CODE')
A TRACCD 7A COLHDG('ACCOUNT' 'NUMBER')
A TRKUBN 1A COLHDG('ACCOUNT' 'TYPE')
A TRTNTM 30O COLHDG('CONTACT' 'PERSON')
A TRRGDT 8P 0 COLHDG('CREATED' 'DATE')
A TRRGTM 6P 0 COLHDG('CREATED' 'TIME')
A TRUPDT 8P 0 COLHDG('UPDATED' 'DATE')
A TRUPTM 6P 0 COLHDG('UPDATED' 'TIME')
A K TRTRCD
A K TRTRSC
DSPF
A DSPSIZ(24 80 *DS3)
A PRINT
A INDARA
*------------------------------------------------------------------
* 第一画面 取引先マスタ 照会
*------------------------------------------------------------------
A R G1
A CF03(03 '終了')
A CF05(05 '検索')
A G1DATE 16 O 1 60
A 1 2'取引先マスタ 照会'
A 3 2'取引先コード'
A G1TRCD 10A B 3 20
A 4 2'取引先支店コード'
A G1TRSC 3A B 4 20
A 5 2'取引先名'
A G1NM01 50O O 5 20
A 22 2'F3=終了 F5=検索'
*------------------------------------------------------------------
* 第二画面 取引先マスタ 保守
*------------------------------------------------------------------
A R G2
A CF03(03 '終了')
A CF05(05 '削除')
A CF12(12 '前画面')
A G2DATE 16 O 1 60
A 1 2'取引先マスタ 保守'
A 3 2'取引先コード'
A G2TRCD 10A O 3 20
A 4 2'取引先支店コード'
A G2TRSC 3A O 4 20
A 5 2'取引先名'
A G2NM01 50O O 5 20
A 6 2'取引先略称'
A G2NM02 20A B 6 20
A 7 2'郵便番号'
A G2POST 7A B 7 20
A 8 2'住所1'
A G2ADR1 50O B 8 20
A 9 2'住所2'
A G2ADR2 50O B 9 20
A 10 2'住所3'
A G2ADR3 50O B 10 20
A 11 2'電話番号'
A G2TELN 15A B 11 20
A 12 2'FAX番号'
A G2FAXN 15A B 12 20
A 13 2'メールアドレス'
A G2MAIL 60A B 13 20
A 14 2'売上金額'
A G2URKN 15S 2B 14 20
A 15 2'仕入金額'
A G2SIKN 15S 2B 15 20
A 16 2'売掛残高'
A G2URZN 15S 2B 16 20
A 17 2'買掛残高'
A G2SIZN 15S 2B 17 20
A 18 2'銀行名'
A G2BKNM 30O B 18 20
A 19 2'銀行コード'
A G2BKCD 4A B 19 20
A 20 2'支店コード'
A G2BRCD 3A B 20 20
A 21 2'口座番号'
A G2ACCD 7A B 21 20
A 22 2'口座区分'
A G2KUBN 1A B 22 20
A 23 2'担当者名'
A G2TNTM 30O B 23 20
A 24 2'F3=終了 F5=削除 F12=前画面'
*------------------------------------------------------------------
* 第三画面 取引先マスタ 確認
*------------------------------------------------------------------
A R G3
A CF03(03 '終了')
A CF12(12 '前画面')
A G3DATE 16 O 1 60
A 1 2'取引先マスタ 確認'
A 3 2'取引先コード'
A G3TRCD 10A O 3 20
A 4 2'取引先支店コード'
A G3TRSC 3A O 4 20
A 5 2'取引先名'
A G3NM01 50O O 5 20
A 6 2'取引先略称'
A G3NM02 20A O 6 20
A 7 2'郵便番号'
A G3POST 7A O 7 20
A 8 2'住所1'
A G3ADR1 50O O 8 20
A 9 2'住所2'
A G3ADR2 50O O 9 20
A 10 2'住所3'
A G3ADR3 50O O 10 20
A 11 2'電話番号'
A G3TELN 15A O 11 20
A 12 2'FAX番号'
A G3FAXN 15A O 12 20
A 13 2'メールアドレス'
A G3MAIL 60A O 13 20
A 14 2'売上金額'
A G3URKN 15S 2O 14 20
A 15 2'仕入金額'
A G3SIKN 15S 2O 15 20
A 16 2'売掛残高'
A G3URZN 15S 2O 16 20
A 17 2'買掛残高'
A G3SIZN 15S 2O 17 20
A 18 2'銀行名'
A G3BKNM 30O O 18 20
A 19 2'銀行コード'
A G3BKCD 4A O 19 20
A 20 2'支店コード'
A G3BRCD 3A O 20 20
A 21 2'口座番号'
A G3ACCD 7A O 21 20
A 22 2'口座区分'
A G3KUBN 1A O 22 20
A 23 2'担当者名'
A G3TNTM 30O O 23 20
A 24 2'F3=終了 F12=前画面'
*------------------------------------------------------------------
* サブファイル 取引先マスタ 検索
*------------------------------------------------------------------
A R G1SFL SFL
A S1SLCT 1A B 6 2
A S1TRCD 10A O 6 6
A S1TRSC 3A O 6 18
A S1NM01 50O O 6 24
A R G1CTL SFLCTL(G1SFL)
A CF03(03 '終了')
A CF12(12 '前画面')
A SFLDSP
A SFLDSPCTL
A 32 SFLCLR
A SFLPAG(10)
A SFLSIZ(11)
A G1DATE 16 O 1 60
A 1 2'取引先マスタ 検索'
A 5 2'選択'
A 5 6'取引先コード'
A 5 18'支店コード'
A 5 24'取引先名'
*-----------------------------------------------------------------
* フッター
*-----------------------------------------------------------------
A R FTR
A 24 2'F3=終了 F12=前画面'
☆☆ 最後まで読んでいただきありがとうございます。他の方の担当記事も是非読んでみてください!! ☆☆
■ 当記事の著作権はIBMに帰属します。詳細はこちらを参照ください。














