簡単なRDLレポートの作成
それでは、簡単なRDLレポートを作ってみましょう。以前の記事(5分でわかるActiveReports帳票(2013年度版)-ページレポート)で、簡単なページレポートを作成しました。これと同じものをRDLレポートで実現してみます。なお、RDLレポートの作成は、ページレポートと共通する部分が多いため、適宜こちらの記事をご参照ください。
はじめに、RDLレポートをプロジェクトに追加します。ソリューションエクスプローラーでプロジェクトを右クリックして、[追加]-[新しい項目]から[ActiveReports 9.0J RDLレポート(XML)]を選択します。RDLレポートがプロジェクトに追加され、レポートのデザイン画面が開きます。
付属のサンプルは、「01_簡単なRDLレポートの作成.rdlx」をご参照ください。
データセットの追加
レイアウトを作成する前に、データソースとデータセットを追加します。これは、ページレポートと同様、レポートエクスプローラから追加します。
レイアウトの作成
次に、レポート上にデータ領域を配置します。以前の記事のページレポートではListデータ領域を使いましたが、今回はBandedListデータ領域を使用します。これは、BandedListのヘッダ/フッタをページヘッダ/ページフッタとして使用するためです。
BandedList上にTextBoxを配置し、それぞれのValueプロパティを設定してデータソースと結びつけます。
プレビュー表示
レポートをプレビュー表示するには、ViewerコントロールのLoadDocument()メソッドでPageDocumentオブジェクトを読み込みます。この手順も、ページレポートと同様です。
ゲラモード
RDLレポートでは、印刷時の用紙サイズを考慮した従来の印刷プレビューモードに加えて、すべてのデータを1ページとして閲覧できるゲラモードを用意しています。改ページなしですべてのデータを確認できるため、Matrixデータ領域を使用した横に伸びるレポートの閲覧や、データ件数の多いレポートのプレビューに適しています。
印刷プレビューモードでは、印刷時の用紙サイズに合わせて、ページ余白の追加および改ページがされた状態で表示されます。
一方、ゲラモードでは、改ページなしですべてのデータを1ページに表示します。なお、印刷プレビューモードとゲラモードは、Viewerコントロールのツールバーで簡単に切り替えできます。
上記サンプルは、ActiveReportsのオンラインデモを使用しています。[RDLレポートギャラリー]-[クロス集計表]から実際の動作をご確認いただけます。
マルチデータソース
RDLレポートでは、複数のデータソースおよびデータセットを使用できます。
ここでは、マルチデータソースのレポートサンプルとして、異なる2つのデータセットを表示するレポートを作成します。
付属のサンプルは、「02_マルチデータソース.rdlx」をご参照ください。
データセットの作成
RDLレポートを追加し、レポートエクスプローラから、[データソースの追加]を選択します。データソースには、製品付属のNwind.mdbデータベースを使用します。次に、[データセットの追加]を選択し、Productsテーブルから商品一覧を抽出するSQLクエリを記述します。
SELECT Products.ProductName, Products.CategoryID, Categories.CategoryName FROM Products INNER JOIN Categories ON Products.CategoryID = Categories.CategoryID
さらに、もう一つのデータソースを追加します。同様に、Nwind.mdbデータベースを使用します(注1)。また、データセットを追加し、商品種類(カテゴリ)ごとの品数を抽出するSQLクエリを記述します。
SELECT Categories.CategoryName, COUNT(ProductID) AS Item FROM Products INNER JOIN Categories ON Products.CategoryID = Categories.CategoryID GROUP BY Products.CategoryID, Categories.CategoryName
注1
この場合はデータソースとしては同じであるため、1つのデータソースに2つのデータセットを追加してもかまいません。
レポートのデザイン画面を開き、2つのTableデータ領域を横に配置します。
データセットの設定
データセットが複数あるレポートでは、データ領域ごとにどのデータセットを使うかを指定する必要があります。各Tableデータ領域を選択した状態でプロパティダイアログを開き、「データセット名」に使用するDataSetの名前を設定します。
データセット名を指定したら、デザイン画面でTableデータ領域の各セルにバインドするフィールドを設定します。