使用Visual Studio 2019打印报表

76 篇文章 1 订阅

之前也使用VS2019创建过rdlc报表,但是都没有系统的记录,将创建过程具体记录下来,如果有人刚好有类似的需求,按照如下步骤就可以轻松实现,一来能帮助需要之人,二来梳理知识点。

1. 创建一个WPF App

这个常规操作,创建一个WPF的项目,项目名称自己随便取。

2. 创建报表的数据模型

这些数据绑定到rdlc报表上展示的或打印的数据

创建一个数据模型类:

namespace WpfApp_Create_Report

{

public class Model

{

    public int Id { get; set; }

    public string TestPoint { get; set; }

    public double TestValue { get; set; }

}

}

编译整个项目!

3.添加RDLC报表文件

名称

报表名称可以默认,也可以修改为自己喜欢的名称。

添加数据集

报表数据,新建

选数据源:对象

选择创建的数据模型类

4. 设计报表内容

在这里插入图片描述

5.添加必要的组件的引用

Microsoft.ReportViewer.WinForms,System.Windows.Forms,WindowsFormsIntegration

这个3个组件的添加到项目中

6.WPF UI设计

WPF 中需要引入.NET 组件的名称空间

xmlns:wf=“clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms”

xmlns:wfi=“clr-namespace:System.Windows.Forms.Integration;assembly=windowsformsintegration”

xmlns:rv=“clr-namespace:Microsoft.Reporting.WinForms;assembly=Microsoft.ReportViewer.WinForms”

布局设计如下:

    <Grid.RowDefinitions>

        <RowDefinition Height="Auto"/>

        <RowDefinition Height="\*"/>

    </Grid.RowDefinitions>

    <StackPanel Grid.Row="0" Margin="5">

        <Button x:Name="btnLoadReportData" Click="btnLoadReportData\_Click">加载报表数据</Button>

    </StackPanel>

    <Grid Grid.Row="1" Margin="3">

        <wfi:WindowsFormsHost >

            <rv:ReportViewer x:Name="reportViewer"></rv:ReportViewer>

        </wfi:WindowsFormsHost>

    </Grid>

</Grid>

效果:

在这里插入图片描述

后台代码添加数据

private void btnLoadReportData_Click(object sender, RoutedEventArgs e)

    {

        this.reportViewer.LocalReport.ReportPath = "Report1.rdlc";

        ReportDataSource reportData = new ReportDataSource("DataSet1", get\_DataSource());

        this.reportViewer.LocalReport.DataSources.Add(reportData);

        this.reportViewer.RefreshReport();

    }

    private List<Model> get\_DataSource()

    {

        return new List<Model>

      {

          new Model{Id=1, TestPoint="Voltage", TestValue=3.21},

          new Model{Id=2, TestPoint="Current", TestValue=0.21},

          new Model{Id=3, TestPoint="Vcc2", TestValue=0.987},

          new Model{Id=4, TestPoint="LED", TestValue=1.23},

          new Model{Id=5, TestPoint="Unload", TestValue=2.99}

        };

    }

运行:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

flysh05

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值