マトリクスウィンドウは、正規化されていない表形式の画面を汎用的に作成する事ができます。マトリクスウィンドウは、正規化されているテーブルに対して、 縦軸(X軸/列)と横軸(Y軸/行)、そして編集する対象となるカラムを選択する事でパラメータ設定のみで作成する事ができます。
マトリクスウィンドウのイメージ
マトリクスウィンドウの構成
キーボード操作
マトリクスウィンドウの”編集領域”は、tabキーでカーソルを横移動し、Enterキーでカーソルを縦移動させる事ができます。
マトリクスウィンドウはシステムクライアントでパラメータ設定により作成する事ができます。
事前準備
マトリクスウィンドウを作成するためには次の準備が必要です。
◆ウィンドウの作成
マトリクスウィンドウを作成するためには、マトリクスウィンドウのもととなるウィンドウをあらかじめ作成しておく必要があります。
◆ユニーク制約の定義
マトリクスウィンドウで編集するデータが格納されているテーブルには、適切にユニーク制約が定義されている必要があります。マトリクスウィンドウの設定が画面では、適切なユニーク制約が設定されているかどうかチェックしています。
すくなくとも、縦軸となる項目、横軸となる項目、検索フィールドで必須入力とする項目に対しては複合ユニーク制約を設定する必要があります。
適切なユニーク制約が設定されていないとマトリクスウィンドウは正しく動作しませんので、ユニーク制約の設定は特に気を付けて下さい。
マトリクスウィンドウの設定
◆マトリクスウィンドウの設定概要
マトリクスウィンドウの設定は、マトリクスウィンドウタブと編集フィールドタブ、検索フィールドタブの3タブから構成されています。
◆マトリクスウィンドウタブ
- 検索キー…マトリクスウィンドウの設定を一意に識別するためのキー情報です。
- 名称…マトリクスウィンドウの名称を設定します。
- ウィンドウ…マトリクスウィンドウを適用するウィンドウを選択入力します。
- タブ…選択したウィンドウの中から、マトリクスウィンドウで編集したいタブを選択します。
- ページ行数…1ページに表示する行数を指定します。
- 列キー…マトリクスウィンドウの縦軸(X軸/列)となるフィールドを選択します。
- 行キー…マトリクスウィンドウの横軸(Y軸/行)となるフィールドを選択します。
- 長さ…行キーのフィールドを表示する長さを設定します。
- クィック入力ウィンドウ…マトリクスウィンドウでデータを新規登録したい場合に、そのデータをクイック入力する設定がされているウィンドウを選択します。
- クイック入力引継情報設定…連続してクリック入力ウィンドウでデータを登録する際に、直前で入力した値を引き継いで入力するかどうか設定する事ができます。
【補足説明】マトリクスウィンドウエンジンが動的に作成するSQLについて
マトリクスウィンドウは、マトリクスウィンドウエンジンがパラメータ設定をもとに自動作成します。その際にSQLも動的に作成しているわけですが、マトリクスウィンドウがどのようなSQLを作成するのか理解する事は、マトリクスウィンドウを正しく活用するために重要です。
- ”主たるテーブル”は”タブ”フィールドに設定したタブに対応するテーブルになります。※SQLのFrom句の直後に記述されるテーブルを”主たるテーブル”として説明します。
- マトリクスウィンドウエンジンが動的に作成するSQLは、エイリアスは使用していません。この事は”SQL JOIN句”フィールド、”SQL WHERE句”フィールドを入力する際にとても重要です。
- ”SQL JOIN句”フィールドでは、主たるテーブルにJOINするテーブルをSQLで記述する事ができます。この際に、主たるテーブルのデータが重複するようなOUTER JOINは使用しないで下さい。”SQL JOIN句”に記述する結合は”INNER JOIN”を前提にしており、主たるテーブルのデータが重複するような結合はマトリクスウィンドウが正しく動作しない原因になります。
- ”SQL WHERE句”フィールドでは、マトリクスウィンドウに表示するデータをフィルタリングするための条件をSQLで記述する事ができます。SQLの記述は主たるテーブルと”SQL JOIN句”で結合したテーブルのカラムを使用する事ができます。エイリアスは使用せずに記述して下さい。
◆編集フィールドタブ
-
シーケンスNo…編集対象となる項目の表示順番を制御します。値が小さい順に並びます。
-
フィールド…編集対象となりフィールドを選択します。
-
長さ…表示フィールドの幅を設定します。
◆検索フィールドタブ
列キーフィールド、行キーフィールド、編集フィールドで使用されていないフィールドを検索フィールドとして使用する事ができます。
-
シーケンスNo…検索フィールドの表示順番を制御します。値が小さい順に並びます。
- タブ…検索フィールドとしたいフィールドが属するタブを選択します。タブはマトリクスウィンドウタブのタブフィールドに設定されているタブか、”SQL JOIN句”で結合しているテーブルに対応するタブを設定して下さい。それ以外のタブを選択した場合には、マトリクスウィンドウは正しく動作しません。
-
フィールド…検索フィールドを選択します。
-
必須…検索条件の入力を必須にするかどうか設定します。
フォームの設定
マトリクスウィンドウの設定後、フォームの設定を行う必要があります。フォームをメニューツリーに割り当てる事によりマトリクスウィンドウが使用できます。
クラス名には、 "jpiere.plugin.matrix.window.form."+"マトリクスウィンドウの検索キー"を設定します。
リポジトリ
追加メッセージ
- JP_CanNotUseAasB:You Can not use {0} as {1}:{2}
-
- ({0}は{1}として使用できません。{2})
- JP_UniqueConstraintNecessary:unique constraint necessary:{0}
-
- 必要なユニーク制約:{0}
- JP_SameDataError:Same data:{0}
-
- 同じデータ:{0}
- JP_NoRelation:No Relation:{0}
-
- 関係なし:{0}
- JP_TableName_ID:Table must have 'TableName+_ID' Column
-
- テーブルにはテーブル名+_IDのカラムが必要です。
- JP_TableName_ID_Reference:Reference of 'TableName+_ID' Column must be 'ID'.
-
- 'TableName+_ID' のカラムのリファレンスはIDにして下さい。
2021年1月17日 : SQLのメンテナンス
IDEMPIERE-4254において、MRole#getOrgWhere()の戻り値が変更になったためSQLのメンテナンスを実施しました。
JPiere7.1における改善
- 2020/09/01 : マトリクスウィンドウのデータをエクセル形式(xls)でダウンロードできるように改善。
- 2020/08/23 : マトリクスウィンドウのWhere句の記述で、@変数@が使えるように改善。
- 2020/08/23 : マトリクスウィンドウで表示されるデータが無い場合は、背景色がグレーになるように改善。
- 2020/08/23 : マトリクスウィンドウのヘッダーカラムからズームが可能。
- 2020/08/23 : マトリクスウィンドウのヘッダーカラムにツールティップの設定。
- 2020/08/22 : 読取専用のマトリクスウィンドウのパフォーマンス向上。
Improve to judge Read only logic of field
マトリクスウィンドウのフィールドに、読取専用ロジックの判定が有効になるように改善しました。