7.3.2 処理定義の例
図7-3に示した業務の処理定義の例を,次に示します。
- 項目処理
[得意先コード:項目処理] @レコード入力△TOKUI,?コード=得意先コード @判定開始△#コード=¥NIL @成立 @電文表示△'参照するデータがありません。' @再入力△2 @判定終了 @代入△得意先名=#名前 [コード:項目処理] @レコード入力△SHOHIN,?コード=コード @判定開始△#コード=¥NIL @成立 @電文表示△'参照するデータがありません。' @再入力△2 @判定終了 @代入△商品名=#商品名 @代入△単価=#単価 [金額:項目処理] @代入△金額=単価*数量 [合計:項目処理] @代入△合計=SUM(金額) |
- 後処理
- 「得意先コード」の項目処理(データ確定後処理)
レコードの読み込み
伝票発行画面の「得意先コード」にデータを入力・確定したとき,@レコード入力でデータベースTOKUIのレコードを読み込みます。TOKUIの項目「コード」の内容が,「得意先コード」の内容と同じであるレコードを読み込むように,条件を指定してあります。
@判定開始~@判定終了では,該当するレコードが実際にあったかどうかを判定します。該当するレコードがないと,レコード項目の内容は空値「¥NIL」になります。この場合は,@電文表示で「参照するデータがありません」というメッセージを表示します。また,@再入力で「得意先コード」を再び入力待ちにします。
判定の終了後,@代入で,読み込んだレコードの「名前」のデータを,画面の「得意先名」に表示します。
項目名の指定方法
@レコード入力のオペランドでは,データベースのレコードの項目名「コード」に「?」を付けて指定しています。また,@判定開始のオペランドでは,「#」を付けています。これは,画面の項目名とデータベースの項目名を区別するための指定方法で,それぞれ「?項目名」,「#項目名」といいます。「?項目名」は,レコードをこれから読み込もうとするときに指定し,「#項目名」は,読み込んだ後で指定します。
- 「コード」の項目処理(データ確定後処理)
データベースSHOHINの項目「コード」の内容が,画面の項目「コード」の入力データと同じであるレコードを読み込みます。読み込んだレコードの「商品名」,「単価」の内容を,画面の項目に表示します。
- 「金額」の項目処理(データ確定後処理)
「単価」のデータと「数量」のデータとを掛けた計算結果を表示します。「単価」のデータは,データベースから読み込んだデータです。「数量」のデータは,ユーザが画面に入力したデータです。
「金額」は表示項目なので,直前の「数量」の処理が終わって「金額」に制御が移ったときに,定義した処理が実行されます。
- 「合計」の項目処理(データ確定後処理)
処理済みの「金額」の合計を表示します。「コード」~「金額」は明細項目なので,処理が繰り返し実行されます。「金額」の処理が実行されるたびに,「金額」の合計を計算して表示します。
- 後処理
データ入力が終わって,その伝票発行画面を終了したとき,@レコード登録で画面のデータをデータベースUDATAに格納します。
UDATAは,作成順のデータベースです。画面の項目のうち,UDATAの項目と項目名・属性が一致している項目のデータが格納されます。