ActiveReports for .NET 18.0J
計算フィールド サンプル
ActiveReportsユーザーガイド > サンプルとチュートリアル > サンプル > Samples > APIのサンプル > セクションレポートのサンプル > 計算フィールド サンプル

本サンプルでは、レポート上で計算フィールドとDataFieldプロパティに設定したフィールド式を使用して計算を行う方法を紹介します。 

フォルダ

Visual Basic.NET

<User Folder>\ActiveReportsNET18\Samples\API\Section\Summary\VB.NET

C#

<User Folder>\ActiveReportsNET18\Samples\API\Section\Summary\C#

実行時の機能

サンプルを実行すると、Viewerコントロールが開き、[レポートの選択]ドロップダウンリストが表示されます。ドロップダウンリストからOrdersReportまたはDataFieldExpressionsReportのいずれかを選択します。[レポートの読み込み]ボタンをクリックすると、ビューワにレポートが表示されます。

OrdersReportは、レポート上で計算フィールドを使用する方法を示します。DataInitializeイベントでFieldsコレクションに計算フィールドを追加し、FetchDataイベントで計算フィールドの値を計算します。

DataFieldExpressionsReportは、DataFieldプロパティで式を使用して計算を行う方法を紹介します。

メモ:サンプルを実行するには、NorthWindデータベース(..\Samples\Data\Nwind.mdb)へのアクセス権限が必要です。データファイルにアクセスできない場合は、上記フォルダを作成して各データファイルをその中に配置するか、またはお客様の環境に合わせてプロジェクト内のデータファイルへの参照パスを変更してください。

プロジェクトの構造

このサンプルには以下のプロジェクトが含まれます。

StartForm

ViewerコントロールのDockプロパティがFillに設定されています。この設定により、ビューワはフォームのサイズ変更に応じて自動で変更されます。コードの詳細を確認するには、フォームを右クリックし、[コードの表示]オプションを選択します。           

OrdersReport

レポートで各受注毎の商品ID、単価、数量、割引率、明細金額、および合計が表示されます。明細金額には、FetchDataイベントで算出した計算フィールドの値を表示します。
OrdersReportレポートは、ghOrderID(グループヘッダ)セクション、Detail(詳細)セクション、gfOrderID(グループフッタ)セクション、およびPageFooter(ページフッタ)セクションを使用しています。  

メモ:Detailセクション以外のセクションは、すべてヘッダとフッタのペアで構成されています。使用しないセクションは、Heightプロパティが0、または、VisibleプロパティがFalseに設定されています。

ghOrderIDセクション

セクションのDataFieldプロパティをOrderIDに設定しグループ化しています。また、各グループにOrderIDを表示するために、データベースに連結したTextBoxコントロールを配置しています。

Detailセクション

各レコードの情報を表示するために、TextBoxコントロールを配置しています。

gfOrderIDセクション

受注ID毎の合計を表示します。DataFieldプロパティに明細金額の計算フィールド(ExtendedPrice)を指定し、以下のプロパティを使って集計しています。
SummaryFunc: Sum(デフォルト値)
値の加算を行います。
SummaryGroup: ghOrderID
現在のOrderIDに含まれている値を対象に集計します。
SummaryRunning: Group
同一グループレベルで累計を計算します。
SummaryType: SubTotal
現在のグループの集計を行います。

PageFooterセクション

各ページに注意書きを表示します。

DataFieldExpressionsReport

OrderDetailクラスを使用してデータを表示します。明細金額は、txtExtendedPriceテキストボックスのDataFieldプロパティに設定したフィールド式(=UnitPrice*Quantity)によって計算されます。レポートのデータはOrderDetailクラスを利用して、DataInitializeおよびFetchDataイベントを使用して設定しています。

PageHeaderセクション

商品名等のラベルを配置しています。

Detailセクション

txtExtendedPriceテキストボックスのDataFieldプロパティに、フィールド式(=UnitPrice*Quantity)を設定しています。

OrderDetail

レポートに使用するデータのクラスです。