RapidReport 製品ドキュメント

帳票出力の仕組み

RapidReportを用いた帳票出力の仕組みを、手順に沿って説明します。

ReportDesignオブジェクトの生成

帳票を出力する際に、まず行う必要があるのはReportDesignオブジェクトの生成です。 そのコンストラクタは以下の2つの引数を受け取ります。

1つ目の引数には、レポートデザイナで作成した帳票定義ファイル(拡張子RRPT)の内容をデコードして得られるオブジェクトを渡します。 この引数は省略できません。なお、帳票定義ファイルの内容はJSON形式となっています。

2つ目の引数には、ReportSettingというオブジェクトを渡します。 ReportSettingは、帳票の機能に関わる設定項目を管理するためのオブジェクトです。 デフォルトの設定を利用するならば、この引数は省略できます。

ReportSettingやReportDesign、 そして後述するReportオブジェクトについての詳しい説明は「Reportの仕様」にあります。

Reportオブジェクトの生成

ReportDesignオブジェクトが生成できたら、それを元にしてReportオブジェクトを生成します。 コンストラクタは以下の2つの引数を受け取ります。

1つ目の引数には、ReportDesignオブジェクトを渡します。 この引数は省略できません。

2つ目の引数には、カスタマイザというオブジェクトを渡します。 カスタマイザを用いると、帳票の内容を動的に変更することができます。 例えば、データの内容に応じて表示項目を修正したり、 明細行や集計行などの高さを変更したり、 グループが切り替わるたびに他のデザインから生成したページを差し込むなどといったことが可能です。 動的カスタマイズが必要ないということであれば、この引数は省略できます。 カスタマイザについての詳しい説明は「カスタマイザの仕様」にあります。

実際には、ReportDesignオブジェクトの生成と、 Reportオブジェクトの生成は同時にできます。 Reportクラスのコンストラクタには、 帳票定義ファイルから得られるオブジェクト(と、ReportSetting、カスタマイザ)を受け取るオーバーロードがあり、 これを利用すれば、ReportDesignオブジェクトは内部で自動的に生成されます。

Reportにデータを渡す

続いて、作成したReportオブジェクトに対してデータを渡すためにReport.Fillメソッド呼び出します。 Fillメソッドが受け取る引数は以下の2つです。

1つ目の引数には、データソースというオブジェクトを渡します。 帳票上に出力されるデータは、このデータソースを通じてReportに渡されます。 この引数は省略できません。

2つ目の引数には、データプロバイダというオブジェクトを渡します。 データプロバイダを用いることで、Report内の特定のグループ以下に個別のデータを与えることができます。 その必要がなければ、この引数は省略できます。

データソースやデータプロバイダについての詳しい説明は「帳票にデータを渡す方法」にあります。

ページ分割

Reportの内容を先頭からスキャンし、ページ分割を行います。 GetPagesメソッドを呼び、戻り値としてReportPagesというオブジェクトを得ます。

ページは、以下の条件のいずれかを満たすたびに分割されます。

  • (サブコンテント以外の)コンテントのサイズが最大値を超えた
  • ([許容ウエイト]が設定されていた場合)ページ内に表示されるコンテントの[ウエイト]総和が[許容ウエイト]を超えた
  • ([配置]の[並べる最大数]が設定されていた場合)ページ内に表示されるグループの数が[並べる最大数]を超えた
  • [改ページ]にチェックの付いたグループが開始された

ReportPagesについての詳しい説明は「ReportPageの仕様」にあります。

レンダリング

ReportPagesが生成できたら、いよいよレンダリングを行うことができます。 Renderメソッドをレンダラオブジェクトを渡して呼び出します。

レンダラはIRendererを実装したオブジェクトです。 レンダラの実装によって、帳票をどのような形式で出力するかが決まります。 現状で用意されている実装クラスを以下に示します。

出力形式 レンダラの実装クラス
PDF PdfRenderer
XLS XlsRenderer
XLSX XlsxRenderer

それぞれのクラスは、固有の設定項目などを持っています。 詳しい説明は「レンダラの仕様」にあります。

直接印刷・プレビュー(.NET版のみ)

.NET版を利用している場合に限定されますが、 帳票の直接印刷とプレビューを行うことができます。

直接印刷を行うには、Printerオブジェクトを生成します。 そのコンストラクタにはReportPagesオブジェクトを渡します。

さらにプレビュー画面を表示するには、 FmPrintPreviewというフォームを生成して表示します。 そのコンストラクタには、Printerオブジェクトを渡します。

Printer、FmPrintPreviewについての詳しい説明は、 「レンダラの仕様」にあります。


Copyright (c) 2013, SystemBase Co.,Ltd. All rights reserved.