Migaro. 技術Tips

                       

ミガロ. 製品の技術情報
IBMiの活用に役立つ情報を掲載!


両方の長所を融合: 編集グリッド + フォーム

(※このトピックスは、Valence開発元(米CNX社)のブログ記事を翻訳・再編集したものとなります。原文記事は、コチラとなります。)

活発なビジネスの場では、ユーザーがテーブルや物理ファイルのデータを追加・更新できるアプリが必要になることがよくあります。たとえば、シンプルに一覧を管理したい場合や、複数のテーブルがリンクし複雑な処理が必要な場合などがあります。このような用途に対応するアプリは、App Builder の EditGrid ウィジェットを使えば、非常に素早く作成して使えるようにすることができます。
EditGrid を使ったアプリでは、メイングリッド上で直接データを編集するスプレッドシートのような形式か、行をダブルクリックしてポップアップウィンドウで編集する形式のどちらかを選ぶことができます。
すべての項目がグリッドに表示されていない場合や、縦方向の入力インターフェースの方が使いやすい場合は、ポップアップ形式がよく使われます。
ただし、これまではこのポップアップウィンドウの設定に制限がありました。

それが今回の最新ビルド(6.1.20221219.0)で改善され、Edit Grid にフォームウィジェットを連携させて、より柔軟な入力画面を実現できるようになりました。

Edit(編集)タブで設定画面を右側にスライド表示すると、「Form」という新しいセクションがあり、EditGrid と同じデータソースを使っているフォームがあれば、そこで選択して連携させることができます。

EditGrid で使用しているデータソースに対してフォームが定義されていない場合は、フォームをリンクするオプションは表示されません。また、EditGrid にリンクするフォームには、ユーザーがレコードの追加や編集時に設定・変更できるすべての項目を含めておく必要があります。

もし EditGrid が「インライン編集」を許可する設定になっている場合(つまり、「Inline(インライン)」の設定が空欄ではない場合)、リンクされたフォームは新規レコードの追加時にのみ使用されます。

なお、EditGrid 側で列に「Read Only(読み取り専用)」の設定がされている場合は、リンクされたフォームでその項目が「Editable(編集可能)」になっていても、グリッドの設定が優先されます。

この仕組みを示すために、以下は顧客ID(CUSNO)が編集不可に設定されたフォーム定義の例です。

ただし、EditGrid 側では、レコード追加時に CUSNO 列が「読み取り専用(Read Only)」にならないように設定されているため、「Add(追加)」ボタンをクリックしたときには、Formウィジェット側で CUSNO が編集不可になっていてもその設定は上書きされ、ユーザーは実際に CUSNO の値を入力できるようになります。

もちろん、このように入力された値については、バックエンドの Helper RPG プログラム側で適切にバリデーション(検証)を行う必要があります。

また、EditGrid の設定パネルでは、編集/追加用フォームウィンドウの幅を指定したり、ウィンドウのタイトルやサブタイトルを設定したりすることができるようになっています。

これらのタイトルは、「編集モード」と「追加モード」とで別々の内容を表示することが可能です。
さらに、編集モードでは、現在編集しているレコードの列の値をタイトル内に含めることもできます。