LoginSignup
3
5

C#でMicrosoft RDLC report Designerを使ってみる

Last updated at Posted at 2023-10-07

1. はじめに

  • C#の.NET 6で簡単な帳票を出力したい
  • WinForm上で帳票のプレビューを表示したい

2. 開発環境

  • C#
  • .NET 6
  • Visual Studio 2022 Community
  • Windows 11
  • Microsoft RDLC Report Desinger 2022
  • ReportViewerCore.WinForms (NuGet)

3. 事前準備

3.1. Microsoft RDLC Report Desinger 2022 のインストール

  • Visual Studioの拡張機能の管理からダウンロードして、インストールする
  • インストールが完了すると、下記画面が表示される
    image.png

3.2. ReportViewerCore.WinFormsのインストール

  • NuGetよりインストールする
    image.png

4. 簡単なサンプル帳票の作成

4.1. レポートファイル

4.1.1. 新規作成からレポートを追加する

image.png

4.1.2. 線を引く

image.png

4.2. Windowsフォームアプリの作成

4.2.1. Windowsフォームアプリ

image.png

4.2.2. ツールボックスよりReportViewerを追加する

  • ツールボックスから追加しただけでは.NET Framework版と違いフォームにビューワーが表示されないので注意
    image.png

4.2.3. Form1のコードを追加する

Form1.cs
using Microsoft.Reporting.WinForms;

namespace RDLCSample
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

            // ReportViewerコントロールを追加する
            this.Controls.Add(this.reportViewer1);

            // ReportViewerコントロールにレポートを設定する
            reportViewer1.LocalReport.ReportPath = @"C:\Users\user\source\repos\RDLCSample\RDLCSample\Report1.rdlc";
            
            // ディスプレイモードを設定する(Normal/PrintMode)
            reportViewer1.SetDisplayMode(DisplayMode.Normal);
            
            // レポートをリフレッシュする(これをしないと表示されない)
            reportViewer1.RefreshReport();
        }
    }
}

4.3. 動作確認

image.png

5. 動的に文字を切り替えなサンプル帳票の作成

5.1. レポートファイル

  • ツールブックスからテキストボックスを配置する(日本語は文字化けするので変更する)
  • レポートデータ > パラメータから新規パラメータを作成し、テキストボックスの上にドラッグ&ドロップする
    image.png

5.2. Windowsフォームアプリ

Form1.cs
using Microsoft.Reporting.WinForms;

namespace RDLCSample
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

            // ReportViewerコントロールを追加する
            this.Controls.Add(this.reportViewer1);

            // ReportViewerコントロールにレポートを設定する
            reportViewer1.LocalReport.ReportPath = @"C:\Users\user\source\repos\RDLCSample\RDLCSample\Report1.rdlc";
            
            // ディスプレイモードを設定する(Normal/PrintMode)
            reportViewer1.SetDisplayMode(DisplayMode.Normal);
)
            // レポートにパラメータを渡す (OrderNo = A001)
            var reportParams = new List<ReportParameter>();
            reportParams.Add(new ReportParameter("OrderNo", "A001"));
            this.reportViewer1.LocalReport.SetParameters(reportParams);


            // レポートをリフレッシュする(これをしないと表示されない)
            reportViewer1.RefreshReport();
        }
    }
}

5.3. 動作確認

image.png

6. 参考文献

3
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
5