ウィンドウのプリンターアイコンを押した時に、印刷書式を選択するポップアップを表示して、選択した任意の印刷書式のレポートを表示できるプリンターアイコン専用の汎用レポートプロセスです。

必要性
IDEMPIERE-5973:Jasper Report does not allow to Change Print Format or Languageのチケットで、iDempiere ver12からウィンドウのプリンターアイコンを押してジャスパーレポートが表示された場合においても、印刷書式を変更して違うレイアウトのレポート(帳票)に切り替えることができるようになりました。
しかし、この機能が有効に働くのは、一部の特別な伝票だけであり、それ以外ではプリンターアイコンを押してジャスパーレポートを表示させた場合には、印刷書式を変更して違うレイアウトのレポートにするようなことはできません。
そのため一部の特別な伝票以外では、プリンターアイコンを押してジャスパーレポートを表示させようとした場合、1つのジャスパーレポートしか割り当てられません。
複数のジャスパーレポートを割り当てたい場合は、プロセスアイコンに割り当てる必要があります。プロセスアイコンには複数のジャスパーレポートを割り当てることができるので、業務的に困ることはないのですが、できればプリンタアイコンから出力できると、プリンタアイコンとプロセスアイコンの切り分けが明確になり、ユーザーもわかりやすいかなと思います。
そのためプリンターアイコンから複数のジャスパーレポートを選択して、色々なレイアウトのレポート(帳票)を出力することができるように、プリンターアイコン専用の汎用レポートプロセスを作成しました。
このプロセスを使用すると、プリンターアイコンを押した時に、任意の印刷書式を選択するポップアップウィンドウが表示され、選択した印刷書式のレポートを表示させることができます。
セットアップ方法
この「プリンターアイコン専用の汎用レポートプロセス」は全てのウィンドウのプリンターアイコンに対して使用することができます。
「売上請求伝票(全項目)」ウィンドウをサンプルにセットアップ方法を説明します。
Step1:プロセスの登録
「プリンターアイコン専用の汎用レポートプロセス」はレポートを出力したいプリンターアイコン毎に1つのプロセスを登録して使用する想定です。そのようにするのは、ウィンドウ毎に使用する印刷書式が異なるためです。「レポートとプロセス」の「パラメーター」の設定で特定の印刷書式だけ選択できるように制限する都合上、レポートを出力したいプリンターアイコン毎に1つのプロセスを登録することを想定しています。
ここでは、「売上請求伝票(全項目)」ウィンドウで使用する用のプロセスをサンプルとして登録します。
クラス名のフィールドにプリンターアイコン専用の汎用レポートプロセスのクラスを呼び出せるように設定します。
jpiere.base.plugin.org.adempiere.process.GenericReportProcessForPrintIcon
◆パラメーター1:AD_PrintFormat_ID ※必須入力
レポートとして表示したい印刷書式を選択するパラメーターの設定です。テーブルバリデーションもしくダイナミックバリデーションを使用して、ユーザーが選択できる印刷書式を制限して下さい。

ここでは売上請求伝票(全項目)ウィンドウで使用できる印刷書式を下記のダイナミックバリデーションのロジックを使用して制限しています。
AD_PrintFormat.AD_Table_ID =(SELECT AD_Table_ID FROM AD_Table WHERE TableName='JP_Invoice_Header_v')
◆パラメーター2:JP_ReportViewerType
iDempiereには汎用的な「標準レポートビューワー」と「ジャスパーレポート専用のレポートビュワー」の2種類のレポートビュワーがあります。どちらのビューワーを使用するのか選択することができます。
- "ZK" もしくは 空欄 … 「標準レポートビューワー」を使用してレポートを表示します。
- "JR" … 選択した印刷書式にジャスパーレポートのプロセスが割り当たっている場合に「ジャスパーレポート専用のレポートビュワー」を使用してレポートを表示します。印刷書式にジャスパーレポートのプロセスが割り当たっていない場合には、「標準レポートビューワー」を使用してレポートを表示します。
JP_ReportViewerTypeのパラメーターは固定値をデフォルトロジックに設定し非表示にしてユーザーには選択させないような運用を想定しています。非表示にする場合には表示ロジックに「1=2」のような式を入力して下さい。
Step2:「タブ」にプロセスとして割り当てる
Step1で登録したプロセスをタブに割り当てます。そうすることでプリンターアイコンを押した時にプロセスが呼び出されるようになります。
タブのプロセスフィールドに登録できるのは、「レポートとプロセス」の「レポート」フラグがONになってレコードだけに制限されています。そのためここに登録する際には、「レポートとプロセス」の「レポート」フラグはONにしておいて、登録後にはOFFにすることオススメします。
「レポートとプロセス」の「レポート」フラグがONかOFFかで、プリンターアイコンを押した時に表示されるポップアップウィンドウの下部の表示が異なります。「プリンターアイコン専用の汎用レポートプロセス」においてはOFFの方が適していると思います。
◆「レポートとプロセス」の「レポート」フラグがONの場合
◆「レポートとプロセス」の「レポート」フラグがOFFの場合
カスタマイズ情報
追加クラス
- jpiere.base.plugin.org.adempiere.process.GenericReportProcessForPrintIcon
追加エレメント
- JP_ReportViewerType
追加リファレンス(リストバリデーション)
◆JP_ReportViewerType
- JR:JasperReports(ジャスパーレポート専用ビュワー)
- ZK:Standard Viewer(標準レポートビュワー)

















