帳票ツールFineReport:動的条件によるテーブルの検索
最終更新日:2020-2-24

1.説明
FineReportにおいて、条件検索によって帳票のテーブル、データ列の検索を行えます。以下は、動的条件によるテーブルの検索を説明します。
2.実現のアイデア
データセットを定義する際に、if関数でパラメータの値を判断し、異なるテーブルの呼び出しを実現します。たとえば、SQL文を直接にSELECT * FROM ${if(table=’Orders’,’Orders’,’販売量’)}と定義すると、パラメータtable=’Orders’の場合、「Orders」が検索されます。table!=’販売量’の場合、「販売量」が検索されます。
3.実例
(1)データセット新規作成
新しいデータセットds1を作成します。
SELECT * FROM ${if(table=’Orders’,’Orders’,’販売量’)}
(2)テンプレート設計
データ列をセルにドラッグするして、以下のように帳票を設計します。
注:「Orders」には多くのフィールドがあるので、紙のサイズを調整する必要があります。そうすると、プレビュー時にページが分けられません。
(3)パラメータウィジェットを追加する
パラメータ設定パネルで「すべて追加」をクリックします。
3つのウィジェットがパラメータパネルに自動的に追加されます。
真ん中のウィジェットをクリックし、テキストウィジェットを選択します。
(4)条件属性追加
A1セルを右クリックし、「条件属性」を選択し、条件属性を追加します。行の高さを0、タイプを数式と設定し、数式LEN(A3)=0を入力し、「追加」をクリックします。
A2、A3セルも上記のように設定します。A4、A5、A6セルにも条件属性を追加し、数式LEN(A6)=0を入力してください。
2.3効果プレビュー
テンプレートを保存し、ページ別プレビューをクリックし、テキストウィジェットで「Orders」あるいは「販売量」と入力し、「クエリ」をクリックすれば対応する表が見られます。