(※このトピックスは、Valence開発元(米CNX社)のブログ記事を翻訳・再編集したものとなります。原文記事は、コチラとなります。)
ビジネス・システムにはデータのリストがたくさんあり、その多くは、ユーザーが1つまたは複数の物理ファイルのレコードを編集、追加、削除する必要があります。従来、例えば基本的な顧客情報のメンテナンスアプリは、最初はグリッドの形でユーザーに表示されます。次に、ユーザーは行をクリックしてポップアップウィンドウを表示し、そこで各データを編集できるように配置します。
近年、オンライン・スプレッドシートは、そのコラボレーションとユーザー・フレンドリーな性質から、リストを管理する仕組みとしてより一般的になってきています。このようなシステムでは、ユーザーは編集したい情報を見つけたら、そのセルをクリックするだけで、その場で情報を変更することができます。このため、ポップアップウィンドウから該当するフィールドを探し出すよりも、はるかに少ない労力で編集が可能です。
Valence 6から、このようなセル編集がEdit Gridアプリで可能になり、設定も超簡単になりました。
例として、Valence に含まれる DEMOCMAST ファイルに対して Edit Grid アプリを作成することにします。最初のステップは、App Builder にアクセスして、ファイルに対してデータソースを作成することです。データソースの作成にまだ慣れていない場合は、この 1 分間のビデオで簡単なチュートリアルをご覧ください。すべてのカラムを選択する単純な SQL ベースのデータソースで十分です。(例:SELECT * FROM DEMOCMAST)
次に、データ・ソース上に “Edit Gridウィジェット“を作成します。(このプロセスに関するクイック・チュートリアルとして、1分間のビデオをご覧ください。)[編集]タブに移動して、適切なカラムの編集を有効にします。このような構成になります。
このウィジェットを保存して、新しいアプリに組み込むと、ユーザがレコードをクリックして変更を加えたときに、次のような結果が得られます。
Valence の以前のバージョンでは、この「ポップアップウィンドウ」アプローチでレコードを編集することが唯一の選択肢でした。しかし、Valence 6 では、ユーザーがポップアップを経由して移動するのではなく、インラインで個々のセルや行を編集できるようにグリッドを設定することができるようになりました。では、その方法を見てみましょう。
[編集]タブの設定に戻りますが、インライン編集は右上のドロップダウン式コンボボックスで有効にすることができます。これを「セル編集」に設定すると、ユーザーが個々のセルを編集できるようになります。
編集可能なセルをダブルクリックすると、このようなアプリが出来上がります。
この構成では、ユーザーがセルを変更して ENTER または TAB を押すたびに、基礎となるレコードが即座に変更されます。従って、5つのセルを変更すると、5つの別々のファイルに保存されることになります。
場合によっては、ユーザが行の編集を終了することを明示的に示すまで、レコードの更新を延期することができます。この場合、設定ドロップダウンで「行編集」を選択すると、次のような編集モードになります。
App Builderの設定で “Row Edit”を選択した場合、”Auto Update”チェックボックス オプションがあることに注意してください。このボックスをオンにすると、ユーザーが行の最後の列からタブで移動するたびに、行の更新が自動的に適用されます。そうでない場合は、ユーザーが更新ボタンをクリックして、レコードの調整をトリガーする必要があります。
すべての構成で、[編集]タブの右上にある[チェックプログラム]フィールドにプログラム名を入れることで、ユーザーが入力したものに対して編集チェックを行うRPGプログラムを指定することができます。サンプル・ソース・メンバEXNABVALには、それに従うことができるRPGテンプレートが用意されています。
Valence 6で導入されたGridおよびEdit Grid機能の詳細については、最近のDeveloper Diariesビデオでご確認ください。