メニュー最初の一歩基本的な仕組み機能サンプル
プログラム仕様デザイン仕様機能拡張その他関連製品開発・運営会社 |
帳票出力の仕組み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を実装したオブジェクトです。 レンダラの実装によって、帳票をどのような形式で出力するかが決まります。 現状で用意されている実装クラスを以下に示します。
それぞれのクラスは、固有の設定項目などを持っています。 詳しい説明は「レンダラの仕様」にあります。 直接印刷・プレビュー(.NET版のみ).NET版を利用している場合に限定されますが、 帳票の直接印刷とプレビューを行うことができます。 直接印刷を行うには、Printerオブジェクトを生成します。 そのコンストラクタにはReportPagesオブジェクトを渡します。 さらにプレビュー画面を表示するには、 FmPrintPreviewというフォームを生成して表示します。 そのコンストラクタには、Printerオブジェクトを渡します。 Printer、FmPrintPreviewについての詳しい説明は、 「レンダラの仕様」にあります。 |
||||||||
Copyright (c) 2013, SystemBase Co.,Ltd. All rights reserved. |