UI部品 基本編

| この記事でわかること: ・リストビューに表示しているテーブルとは異なるテーブルデータを更新する方法 ・特定の条件に一致するすべてのレコードを一括で更新する方法 |
本記事はForguncy製品サイトで公開しているリストビュー概要資料における、各機能の実装方法を解説したものです。
リストビュー概要資料は下記リンクからご覧いただけます。
| プロジェクトファイル (作成バージョン:(10.0.13.0) | stepup_listview_before.fgcp stepup_listview_after.fgcp(実装済みプロジェクトファイル) |
1.プロジェクトを確認する
今回の演習で使用するプロジェクトを確認します。
手順1-1.テーブルを確認
プロジェクトには複数のテーブルが内蔵されています。
今回は受注テーブルと受注明細テーブルを使用します。
前提条件として「一覧表にデータ連結されたテーブル」と「更新したい異なるテーブル」がキーで関連づいた関係である必要がある点に注意してください。
今回は、受注番号がキーとなります。

手順1-2.ページを確認
プロジェクトには複数のページが内蔵されています。
そのうち、今回使用するページは「整合性を維持したデータ更新」ページです。

2. 受注テーブルの更新処理を確認する
今回のプロジェクトには、ページ上に受注テーブルがデータ連結されたリストビューと、受注テーブルを更新するためのボタンが用意されています。
受注明細テーブルの更新処理を追加する前に、この更新ボタンの処理を確認します。
手順2-1.テーブルデータの更新コマンドを確認
更新ボタンを選択した状態で、右ペインの[セル型]タブからコマンド…ハイパーリンクをクリックします。
するとコマンドウィンドウが開き、既にテーブルデータの更新コマンドがセットされていることが確認できます。
設定は下記の通りになっています。
| フィールド | 値 |
| 状態 | =M14 |

更新対象のレコードと条件も確認します。
今回の更新対象レコードには特定レコードを指定します。
条件は下記の通りです。
| フィールド | 条件 | 値 |
| [伝票番号] | =(等しい) | =M13 |

3. 受注明細テーブルの更新処理を追加する
受注テーブルの更新をしているテーブルデータの更新コマンドに、受注明細テーブルの更新処理も追加します。
コマンドウィンドウを閉じてしまった場合は、再度コマンドウィンドウを開いておきます。
手順3-1.トランザクション処理の設定
テーブルデータの更新コマンドのトランザクション処理を有効に設定します。
トランザクションを有効にすることで、何らかの問題により更新処理が失敗した場合でもデータの整合性を維持することができます。
コマンドウィンドウの下部にあるトランザクション処理を有効にするハイパーリンクをクリックします。

クリックすると複数のテーブルデータの更新コマンドを1つのコマンドで設定できるよう画面が変化します。

手順3-2.更新処理の追加
受注テーブルに続いて受注明細テーブルの更新を行うための処理を追加します。
左上の+ボタンを押下し、コマンドを追加します。
処理の種類を「更新」、対象テーブルで「受注明細テーブル」を指定します。
更新値は下記のように設定します。
| フィールド | 値 |
| 状態 | =M14 |

更新対象のレコードと条件も確認します。
今回の更新対象レコードには特定レコードを指定します。条件は下記の通りです。
| フィールド | 条件 | 値 |
| [伝票番号] | =(等しい) | =M13 |

これで設定は完了です。
4.デバッグを実行する
デバッグを行うには、動作確認したいページを開いた状態でリボンの[ホーム]>[デバッグ実行]>[▶]ボタン、またはForguncy Builderの左上にある▶ボタンを押下してプロジェクトをデバッグ実行します。

プロジェクトを実行すると、ページが表示されます。
伝票番号と状態をコンボボックスから選択して更新ボタンを押下すると、選択した伝票番号のレコードの「状態」の値が更新されます。
受注テーブルのデータ変化はリストビューから確認できますが、受注明細テーブルはページ上にデータ連結していないためここから確認することはできません。
Forguncy Builderに戻り、テーブルを確認するとデータが更新されていることが確認できます。
(Forguncy Builderに戻った際にポップアップウィンドウが表示された場合、変更を開発用データベースに反映するよう「はい」を選択してください。)

ForguncyのUI部品についてもっと知る
Forguncyの開発スタートガイドやオンラインヘルプでは、ユーザーがより使いやすいアプリを作成するのに便利なUI部品についてより詳しくご紹介しています。
こちらもぜひご活用ください。