【JPIERE-0014】1レコード複数行表示(フォームウィンドウ)

フォームウィンドウ概要

 Compiere Distributionの定型画面(標準画面)の特徴の1つに"単票表示"の画面と"グリッド表示(複数行表示/一覧表示)"の画面を切り替えて使用する事があります。

 参照:Compiere Distributionとは -> 業務機能概要 -> 2種類あるGUIとGUIの特徴

 iDempiere(アイデンピエレ)も、単票表示と一覧表示を切り替えて使用するのは、他のCompiere Distributionと同様です。

 参照:【iDempiere標準業務機能】単票表示とグリッド表示の切替とレコード検索

 そして、Compiere Distributionは基本的にグリッド表示の場合は1レコードは横一列で表示されます。 そのため、1レコードの情報量が多いと横スクロールをして確認するという事も良く行われます。

iDempiereの定型画面(標準画面)のグリッド表示:1レコードの情報が横一列で表示されています。
iDempiereの定型画面(標準画面)のグリッド表示:1レコードの情報が横一列で表示されています。

 iDempiereでは、このグリッド表示をより使いやすくするために、個人レベルで項目の並び順や表示する項目の幅を設定する事ができるようになっています。

 参照:【iDempiere Lab】グリッド表示の個別カスタマイズ

 グリッド表示を個人レベルでカスタマイズできるのは素晴らしい機能で、使いやすさを向上させる上で大いに貢献してくれる機能なのですが、それでも情報量が多いと横スクロールするのは避けられないと思います。

 でもマウスで操作する際には、横スクロールは"面倒くさい"と思う方が多いのではないでしょうか。

 そこで、なるべく横スクロールをしなくて済むように、JPiereジェイピエール)では1レコードの情報を複数行で表示できるようにプラグインを開発しました。1レコードを複数行で表示するために、画面に表示されているレコード数は減りますが縦スクロールすれば簡単に確認する事ができますので、横スクロールして確認するよりも使いやすい場面があるのではないかと思います。

1レコード複数行表示プラグイン使用例(1レコードの内容を3行表示した場合の例)
1レコード複数行表示プラグイン使用例(1レコードの内容を3行表示した場合の例)
受注伝票の明細行で、1明細の内容を2行にして表示している例
受注伝票の明細行で、1明細の内容を2行にして表示している例

 この機能は「ウィンドウ(Window)」の仕組みをプラグイン化してカスタマイズし、「フォーム(Form)」を使用して画面に表示しています。ウィンドウで作成されている画面ならどの画面でもこのプラグインを活用して1レコードの内容を複数行にして一覧表示する事ができます。

 そのため、例えば受注伝票ヘッダーの情報は3行表示にして、明細情報は2行表示にしてという事が可能です。

1レコード複数行表示プラグイン使用例(受注伝票ヘッダータブは3行で、明細タブは2行で表示した例)
1レコード複数行表示プラグイン使用例(受注伝票ヘッダータブは3行で、明細タブは2行で表示した例)

 現実的には2行もしくは3行表示、多くても4行表示できれば十分な気がしますが、機能的には何行でも表示する事ができます。タブ毎に何行表示するか設定できますので、情報量の多いタブでは5行以上の表示も可能です。

 そして、CSSも少し修正して、入力項目や行、列毎にラインを引いて、見やすくしています。

【補足説明】標準ウィンドウとの細かな仕様の違い

 iDempiere標準のウィンドウの機能は、基本的にこの1レコード複数行表示プラグインでも同じですが、下記の機能については仕様上異なります。

  • グリッド表示時のレコードソート機能は、最上位のタイトル項目のみ有効:一覧表示されているデータは、タイトル項目をクリックする事によりソートする事ができますが、複数列表示の場合は、一番上のタイトル項目でのみソートする事ができます。
  • グリッド表示の個別カスタマイズの機能の廃止:グリッド表示の個別カスタマイズの機能はとても便利な機能ですが、標準機能のままでは複数列の表示には使用する事はできないため廃止としています。1レコード複数行表示プラグインでは予めアプリケーション辞書のウィンドウの設定で使いやすいように並び替えておく事を前提としています。
  • CSVインポート機能の廃止

1レコード複数行表示の設定方法

ウィンドウの設定

 "【JPIERE-0014】1レコード複数行表示"のプラグインをインストールするとアプリケーション辞書のウィンドウ/タブ/フィールドのタブの設定に、「追加ヘッダ行数(Additional Header Line)」というカラムが追加されます。1レコード複数行で表示したいタブは、この"追加ヘッダ行数"の設定を行います。ヘッダー行は必ず1行はありますので、3列表示にしたい場合は"追加ヘッダ行数"を"2"と設定します。

ウィンドウ/タブ/フィールドの設定
ウィンドウ/タブ/フィールドの設定

 これでグリッド表示の並び順に従って、設定したヘッダ―数(1+追加ヘッダー行数の数)だけ、1レコードを複数行表示します。

 

 そして同じ列で表示したい項目については、フィールドの設定で「同一行」のフラグをONにします。このフラグはSwing-UI用の設定ですが、この"1レコード複数行のグリッド表示機能"はSwing-UIでは使用する事はないので、流用しています。

ウィンドウ/タブ/フィールドの設定-Swing-UIの同一行フラグの流用
ウィンドウ/タブ/フィールドの設定-Swing-UIの同一行フラグの流用

フォームの設定

 この"1レコード複数行のグリッド表示機能"は「フォーム(Form)」のプラグインとして実装しています。

フォームの設定
フォームの設定

 クラス名のフィールドに、"jpiere.plugin.webui.formwindow." + "AD_Window_ID"を設定します。AD_Window_IDは、1レコード複数行のグリッド表示をさせたいウィンドウのIDになります。このIDの設定で好きなウィンドウで1レコード複数行のグリッド表示を実現する事ができます。

メニューツリーへの割り当て

 作成した"フォーム"をメニューに割り当てます。1レコード複数行のグリッド表示を行ったウィンドウを直接メニューに割り当てるわけではありませんので注意して下さい。

 

 以上で、1レコード複数行のグリッド表示の設定は完了です。

技術情報

 このプラグインでは、「JPAdditionalHeaderLine(追加ヘッダー行数)」エレメントを登録し、AD_Tabテーブルにカラムとして追加しています。

 このプラグインを使用するための変更要素が非常にすくないため、2Packのデータは用意していません。このプラグインを使う人は、手で"JPAdditionalHeaderLine"カラムをAD_Tableに追加して下さい。

更新情報

JPiere3.1

 JPiere3.1より以下の機能を追加しています

2019年12月13日:JPiere7.1

【JPIERE-0450】デスクトップクラスのプラグイン化に伴い、フォームウィンドウへのズーム処理をJPMSからフォームウィンドウへ移管。

◆IFormWindowZoomFactoryをJPMSからフォームウィンドウへ移管

◆JPiereFormWindowZoomDesktopの追加

フォームウィンドウへズームする事のできるデスクトップクラス。

ソースコードのリポジトリ

関連するコンテンツ