【JPIERE-0230】品目マスタ検索ウィンドウのFactoryクラスの制御

 品目マスタの検索ウィンドウは、特別な検索ウィンドウです。検索結果の下にタブが表示されており、品目マスタに関係する色々な情報を確認する事ができます。

品目マスタ検索ウィンドウ
品目マスタ検索ウィンドウ

 この品目マスタの検索ウィンドウでは、倉庫の情報が入力されていると、現在庫数量を表示する事ができます。そして、品目を選択すると下のタブに他の倉庫の在庫数量を確認する事ができます。

現在庫数を確認する事ができる品目マスタ検索ウィンドウ
現在庫数を確認する事ができる品目マスタ検索ウィンドウ

 しかし、この現在庫数量を表示する処理は、パフォーマンス的にそれほど軽い処理ではありません。検索結果に表示される品目マスタが少なかったり、子タブに表示される倉庫の数が少ない場合には、それほどパフォーマンスは気にならないかもしれませんが、表示する品目マスタが多くなったり、倉庫が多数あったりする場合には、その分処理が多くなりますのでレスポンスが悪くなってきます。

 一方で、品目マスタを検索する際に、現在庫数量の情報は必要ない場合も多々あります。iDempiereの標準機能では、現在庫数量の情報が必要なくても、子タブに倉庫毎の現在庫数量が表示されてしまいます。現在庫数量の情報が不要であれば、この子タブに表示される倉庫毎の在庫数量の情報を表示させる処理は、サーバーにとって無駄な負荷になってしまいます。

 そこでJPiereでは、他の倉庫の現在庫数量を確認したい場合には、基本的にツールバーの品目マスタ検索アイコンを押して確認してもらう事として、画面のフィールドの検索アイコンでは、品目マスタ検索ウィンドウの下部のタブを表示しないようにする事ができるようにしました。

ツールバーの品目マスタ検索アイコン
ツールバーの品目マスタ検索アイコン

 画面のフィールドの検索アイコンをクリックした際に、検索ウィンドウのエンジンで作成する検索ウィンドウの情報が取得できた場合には、JPiereでは他の検索ウィンドウと同様の処理で品目マスタの検索ウィンドウを作成するようにしました。そのため、画面下部にタブは表示されません。

下部にタブが表示されていない品目マスタ検索ウィンドウ
下部にタブが表示されていない品目マスタ検索ウィンドウ

 画面のフィールドの検索アイコンをクリックした際に、検索ウィンドウのエンジンで作成する検索ウィンドウの情報が取得できなかった場合には、これまで通り、下部にタブがある特別な品目マスタ検索ウィンドウが表示されます。

 画面のフィールドの検索アイコンをクリックした際に、検索ウィンドウのエンジンで作成する検索ウィンドウの情報が取得できるか、できないかは、アプリケーション辞書の設定で明示的に表示する"品目マスタの検索ウィンドウ"を指定しているか、していないかに依存します。

 例えばカラムのリファレンスキーの設定を通して表示する品目マスタの検索ウィンドウが特定できる場合には、検索ウィンドウのエンジン(検索ウィンドウのファクトリークラス)に検索ウィンドウのIDが渡されます。検索ウィンドウのIDが渡されればその情報をもとに、品目マスタの検索ウィンドウを他の検索ウィンドウと同じ処理で表示します(品目マスタの検索ウィンドウの下部にタブは表示されません)。

カスタマイズ情報

クラス

  • jpiere.base.plugin.factory.JPiereBasePluginInfoFactory

追加リファレンス

  • JP M_Product - Standard Search … iDempiereの標準で用意されている品目マスタの検索ウィンドウが設定されているリファレンスです。このリファレンスを品目マスタのカラムに設定すると、下部のタブが無い以外はこれまでと同じ品目マスタの検索ウィンドウが表示されます。