詳細に複数のレイアウト(サブレポート)を配置する方法
対象製品
Elixir Report 8.7J
詳細
ElixirReportでは詳細のレイアウトを条件に応じて切り替えることが可能です。3つの詳細レイアウトをサブレポートとして作成し、データ種別(format)に応じて切り替える場合の設定手順を示します。なお、使用するデータは次の図ようになっており、SubReportFormatKirikaeデータソースとして定義されています。
設定完了後に作成されるレポートの出力イメージは次の図のようになります。
作成したサンプルはこちらからダウンロード可能です。
サンプル
ダウンロード した zipファイルを解凍してできるSubreportフォルダごと、以下のディレクトリに配置し、デザイナを起動してください。
■サンプルの配置先ディレクトリ
<インストールルート>/templates/samples/
| ||||||||||||||||||
SubReportFormatKirikaeデータソース |
設定完了後に作成されるレポートの出力イメージは次の図のようになります。
1.サブレポートの作成 データ種別に応じて切り替えるレイアウトをサブレポートとして作成します。 (1)データ種別(formatの値)が1の場合に[詳細]レポートパーツへ表示するサブレポート (SubReport1.rml)を作成します。 ア.サブレポートを作成するリポジトリの右クリックで表示されるコンテキストメニューの [追加]‐[レポートテンプレート]をクリックし、サブレポートを追加します。 このとき、[レポートウィザード]ダイアログボックスでデータソースを選択する必要は ありません。 イ.追加したレポートテンプレートをデザイナにて開きます。 ウ.[セクションヘッダ]レポートパーツにデータ種別が1の場合に出力したい内容をレイア ウトします。
(ア)ラベルエレメントを配置します。表示する文字列は“Format1”と設定します。 (イ)value項目のデータを表示するために、フィールドエレメントを追加します。 このとき、[フィールドエレメント]ダイアログボックスの[フィールド]タブでは、 [フィールドタイプ]ボックスにて「スクリプト」を選択し、下に配置されている テキストエリアに”value_data”と入力します。 (2)(1)と同様の手順にてデータ種別(formatの値)が2の場合に[詳細]レポートパーツへ 表示するサブレポート(SubReport2.rml)を作成します。 (3)(1)と同様の手順にてデータ種別(formatの値)が3の場合に[詳細]レポートパーツへ 表示するサブレポート(SubReport3.rml)を作成します。 2.メインレポートの作成 サブレポートの呼び出し元となるレポートテンプレート(MainReport.rml)を作成します。 (1)メインレポートを作成するリポジトリの右クリックで表示されるコンテキストメニューの、 [追加]‐[レポートテンプレート]から、メインレポートを追加します。 このとき、[レポートウィザード]ダイアログボックスでSubReportFormatKirikaeデータソ ースを選択します。 (2)追加したレポートテンプレートを開きます。 (3)サブレポートにデータを渡すためのスクリプトを追加します。 [詳細]レポートパーツの[On Render Bebin]に次のスクリプトを入力します。 var value_data =""; value_data = Data.getObject("value"); (4)[詳細]レポートパーツにサブレポートエレメントを追加します。 ア.SubReport1.rml を追加します。 (ア)ワークスペースのツールバーからサブレポートエレメントを追加します。 (イ)[サブレポートウィザード]ダイアログボックスの[サブレポート]タブを選択し、 次のように設定します。 a [レポート]ボックスで[…]ボタンからSubReport1.rmlを選択します。 b [セクション]ボックスで”Section 1”(デフォルト値)を選択します。 c [データソース]ボックスで空白(デフォルト値)を選択します。 (ウ)[サブレポートウィザード]ダイアログボックスの[スクリプト]タブを選択し、 次のように設定します。 a [Render If:]ボックスに次のスクリプトを入力します。 Data.getObject("format")=="1" (エ)[OK]ボタンをクリックします。 (オ)ワークスペースに追加されたサブレポートを選択します。 プロパティペインにて、[Can Grow]チェックボックスと[Can Shrink]チェックボ ックスがチェックされていることを確認します。 ※[Can Grow]、[Can Shrink]は、 出力内容を全て出力できるようにエレメント の高さを自動拡張/縮小するプロパティです。
イ.アと同様の手順にて、SubReport2.rml を追加します。 [Render If:]ボックスに入力するスクリプトは次のようになります。 Data.getObject("format")=="2" ウ.アと同様の手順にて、SubReport3.rml を追加します。 [Render If:]ボックスに入力するスクリプトは次のようになります。 Data.getObject("format")=="3" (5)ワークスペースに配置した3つのサブレポートエレメントの配置位置を重ねます。上記設定を行ったのち、MainReport.rmlを出力([Render…]ボタンをクリック)すると、詳細に複数のレイアウトが配置されたレポートが作成されます。
作成したサンプルはこちらからダウンロード可能です。
サンプル
ダウンロード した zipファイルを解凍してできるSubreportフォルダごと、以下のディレクトリに配置し、デザイナを起動してください。
■サンプルの配置先ディレクトリ
<インストールルート>/templates/samples/
キーワード
HowTo