RDLC Report & ReportViewer Control in C#

RDLC (Report Definition Language Client-side) is a powerful reporting tool in the Microsoft Visual Studio suite. It’s designed to create professional-looking reports embedded within your .NET applications. With RDLC, you can:

  • Present Data in a Structured Manner: Display data from various sources (databases, web services, etc.) in tabular, chart, or free-form layouts.
  • Customizable Formatting:  Control the appearance of your reports with fonts, colors, images, headers, footers, and more.
  • Flexible Deployment: Embed RDLC reports directly into your Windows Forms or ASP.NET applications.

Key Concepts

  • DataSources: Represent a connection to a data source (e.g., SQL Server database, XML file) and the specific data to be used in the report (tables, views, etc.).
  • Report Templates (.RDLC): Define the layout, structure, and data elements of your report.
  • ReportViewer Control:  A .NET control that renders and displays the RDLC report within your application.

Building a Sample Sales Report

Step-by-Step Guide

  1. Project Setup: Create a new Windows Forms Application project in Visual Studio.
  2. Add a DataSource:
    • Right-click your project in Solution Explorer, go to “Add” -> “New Item…”.
    • Select “Data” -> “Dataset” and provide a name (e.g., “SalesData”).
    • Follow the wizard to establish a database connection and select the necessary data (e.g., product details, sales figures)
  3. Create the Report Template:
    • Add a new RDLC report to your project (“Add” -> “New Item…” -> “Report”). Name it (e.g., “SalesReport.rdlc”).
      • Report Design View:Drag a “Table” control from the Toolbox onto the report body.
      • Right-click in the table’s detail row and add columns as needed.
      • Drag fields from your DataSource onto the table’s detail cells to populate them.
  4. Add Headers and Footers:
    • Right-click on the gray area outside the report body and select “Add Page Header/Footer”.
    • Insert images (e.g., company logo) or text boxes into the header.
    • In the footer, insert text boxes and use built-in expressions for page numbers and report title (e.g., =Globals!ReportName).
  5. Conditional Formatting (Optional):
    • Select a table cell containing data you want to highlight.
    • In the Properties window, expand “Font”.
    • Click the expression builder button “fx” next to font properties like color.
    • Use an expression like =IIF(Fields!Price.Value >= 20, “Red”, “Black”) to change the text based on the data value.
  6. Embed Report into Windows Form:
    • Add a ReportViewer control to your form.
    • In the ReportViewer’s smart tag, select “Choose Report” and select your designed RDLC file.
    • Code (Form Load Event):

C#

private void Form1_Load(object sender, EventArgs e)

{

    this.reportViewer1.LocalReport.DataSources.Clear(); 

    this.reportViewer1.LocalReport.DataSources.Add(new ReportDataSource(“SalesData”, salesDataTable)); // Adapt to your DataSource and data object

    this.reportViewer1.RefreshReport();

 

Tips and Considerations

  • User Experience: Design your reports with a focus on clarity and readability.
  • Complex Layouts: Explore grouping, subreports, and matrices for organizing more intricate data.
  • Interactivity: Consider adding parameters and drill-down capabilities for dynamic reports.