オープンソースのERP iDempiereのズーム機能は、関連するデータをすぐに確認する事ができるとても便利な機能です。ズームすると、フィールドに入力されているデータに絞り込まれてウィンドウで表示されます。
親タブへのズーム ※iDempiereの標準のズームの挙動説明
例えば、受注伝票(標準入力)ウィンドウから、契約書フィールドに入力されているデータにズームします。
契約書フィールドに入力されているデータに絞り込まれて、表示されます。
子タブへのズーム ※iDempiereの標準のズームの挙動説明
親タブへのズームと子タブへのズームは、iDempiereの内部処理が異なります。子タブへズームする場合は、同じ親タブに属する子タブのデータも一緒に表示されるようになっています。つまり、ズーム先のウィンドウに表示されるデータは"親タブのデータ"を基準として絞り込まれます。
例えば、「受注伝票(標準入力)」から契約内容フィールドに入力されているデータにズームします。契約内容タブは、契約書ウィンドウの子タブの位置にあります。
子タブの契約内容タブにズームしました。ズーム対象となっていたデータと一緒に、同じ契約書に属する契約内容も表示されています。
同じ親タブのデータに結びついているデータを確認できるので、とても便利だと思います。
親タブは1件に絞り込まれています。
孫タブへのズーム ※iDempiereの標準のズームの挙動説明
孫タブへのズームは、子タブへのズームとiDempiereの内部処理は同じです。そのため、同じ子タブに属する孫タブのデータは、孫タブに表示されますが、子タブのデータは1件に絞り込まれています。
例えば、受注伝票明細の契約内容明細フィールドをズームします。
孫タブのデータは、同じ子タブに属するデータがあれば一緒に表示されますが、子タブのレコードは1件にしぼりこまれています。※同じ親タブに属する子タブのレコードが複数件あっても、孫タブに表示しているデータに結びつく子タブのデータだけ表示されます。
これは、ズームの仕様としては理解できますし、検索アイコンを押して全件検索すれば、同じ親タブに属している子タブのデータをすべて表示する事はできます。
しかしながら、検索アイコンを押さなくても、できれば子タブのデータも、同じ親タブに属するデータははじめから一緒に表示して欲しいなと思います。
そこでJPiereでは、孫タブにズームした時の子タブのデータは、同じ親タブに属するレコードが表示されるようにカスタマイズしました。もし、孫タブ以下のタブにズームする事があった場合も、同様に一番上の親タブに属するデータはあらかじめ表示されるはずです。
言い換えると、ズームで絞り込まれるのは、一番上の親タブのデータだけで、子タブ以下は、親タブに属するデータがあらかじめ表示されている状態になっているはずです。
JPiereの孫タブ以下へのズーム処理(JPiere Detail Zoom)
孫タブ以下へのズーム処理は、iDempiere標準のズーム処理とJPiereのズーム処理とをシステムコンフィグ設定で切り替える事ができます。
システムコンフィグ設定:JPIERE_ZOOM_TO_DETAIL
◆Y
JPiereでカスタマイズした孫タブへのズーム処理になります。つまり絞り込まれているデータは、一番上の親タブのデータで子タブ以下のデータは、その親タブに結びつくデータが表示されます。※ウィンドウで普通に親タブのデータを選択したのと同じ状態で操作する事ができるようにしています。
◆N
iDempiere標準の孫タブへのズーム処理になります。つまりズームしたタブの1つ上のタブは1件のデータに絞り込まれている状態になります。
操作例(1)
試しに、受注伝票明細の契約内容明細をズームしてみます。
ズーム先の孫タブのデータは、同じ子タブのデータに結びつくデータが一緒に表示されています。ここまでは、iDempiereの孫タブのズームの場合でも一緒です。
子タブのデータは、同じ親タブに結びつくデータが表示されます。ここが、iDempiereの標準的な動きと、JPiereが異なる点です。
一番上の親タブのレコードは絞り込まれています。
孫タブにズームした時に、関連するデータを検索アイコンをいちいち押さなくても、確認できるので便利なのではないかと思います。
孫タブの契約内容明細にズームします。
ひとつ上の子タブに遷移すると、同じ親をもつデータが一緒に表示されます。具体的には、同じ契約書を親としてもつ契約内容が一覧表示されます。iDempiereの標準のズーム機能では、契約内容の1レコードに絞り込まれて表示されますが、JPiere Detail Zoomを使用する事により、同じ契約書に属する契約内容も表示されるので、便利なのではないかと思います。
カスタマイズ情報
クラス
◆org.adempiere.webui.adwindow.AbstractADWindowContent
- doZoomToDetail()メソッドのみカスタマイズしています。
カスタマイズしてある所には、”JPIERE-0464”と記述しています。