レポートに表組みデータを表示する方法

ここではマイクロソフトのサンプルデータベース Northwind データベースを利用し、 レポートに表組みデータを表示する方法を紹介します。

表示するのは Customers テーブルの内容をレポートに表示します。

尚、ここで紹介する方法は必ずしも最良、最善の MS 推奨の方法ではないかもしれませんが、 僕がレポートを利用するにあたって、こうすると作成・変更が楽、と思えた方法です。

厳密に同じにする必要は無いかと思いますが、気楽に実績のある方法なんだなぁ、とみてもらえればと思います。

まずはデータセットを作成します。

その中にデータテーブルを作成しますが、この場合、Visual Studio のサーバーエクスプローラでデータベースに接続し、テーブルをドラッグアンドドロップするとテーブルが作成されます。

レポートに表組みデータを表示する方法

次にプロジェクトにレポートを追加します。

レポートに表組みデータを表示する方法

そこに Table を配置します。このとき関連付けるデータを聞かれるので、次のように指定します。

レポートに表組みデータを表示する方法

Name は分かりやすいように適当に変えておくと良いです。

データテーブルと関連付けされると、テーブルのカラムにカーソルを置いたときに、カラムの選択リストが表示されるようになります。

レポートに表組みデータを表示する方法

レポートに表組みデータを表示する方法

これをレポートに表示したいように選んでいきます。ここでは仮に次のように5個のフィールドを割り当てます。

レポートに表組みデータを表示する方法

レポートを表示する側は ReportViewer ウィジェットを使います。これをフォームに配置して Dock プロパティを Fill にしておきます。

レポートに表組みデータを表示する方法

以上、データテーブル、レポート、レポートビューアを準備した上で、次のコードでレポートにデータを渡します。

using Microsoft.Reporting.WinForms;
using System;
using System.Data;
using System.Windows.Forms;

namespace report2 {
  public partial class Form2 : Form {
    public Form2() {
      InitializeComponent();
    }

    private void Form2_Load(object sender, EventArgs e) {

      // Load Data to dt
      var dt = new DataSet1.CustomersDataTable();
      var da = new DataSet1TableAdapters.CustomersTableAdapter();
      da.Fill(dt);

      // Set Report Properties
      var rds = new ReportDataSource("CustomersTable", (DataTable) dt);
      this.reportViewer1.LocalReport.DataSources.Add(rds);
      this.reportViewer1.LocalReport.ReportPath 
        = @"C:\test\Report1.rdlc";
      
      // Refresh
      this.reportViewer1.RefreshReport();
    }

  }
}

尚、ここでは Strongly-Typed なデータセットを使っていますが、特にその必要はありません。 汎用の DataTable でデータを渡しても全く問題ありません。

これを実行すると、次のようにデータが表示されるのがわかります。

レポートに表組みデータを表示する方法

ここまでお読みいただき、誠にありがとうございます。SNS 等でこの記事をシェアしていただけますと、大変励みになります。どうぞよろしくお願いします。

© 2024 C# 入門