VS 2005 RDLC报表实现WEB客户端打印(1)
1 关于RDLC
1.1 概述
在VS .NET 2005中,Microsoft提供了针对报表的设计器,并提供了在WinForm和WebForm中使用这种报表的能力。Microsoft将这种报表的后缀定为RDLC,RDL仍然是Report Definition Language的缩写, C代表Client-side processing,凸显了它的客户端处理能力。
1.2报表的设计
1)添加报表设计文件
添加一个web项目,在项目文件中添加新项,选择报表,如图:
2)添加数据集
此报表在设计过程中需要一个Dataset数据集,当添加了报表项之后,将自动添加一个Dataset 数据集(也可以手动添加一个数据集),并进行配置向导链接到一个数据源。可以利用数据源生成向导中进行定制需要查询或返回的结果集的字段,并最终生成一个Dataset结果集。如图:
决定报表结果的关键因素是里面包含的DataTable,此数据集可以实现自定义,可以添加相应的数据字段来满足相应的要求。
3)报表设计
打开报表设计页,并在工具箱中找到相应的设计控件,如图所示:
如图所示,表头、详细信息和表尾。表头用于设计要显示出来的表头名称,详细信息则是显示报表的详细内容,而表尾可以用来进行对详细信息的一个统计,例如 总行数,总价格,最大数等等。
报表内容设计:
选择数据集Dataset,将对应要显示出来的字段拖入到详细信息行中,就自动进行了相关数据的绑定关联。如图所示:
自定义表头,将要显示的字段拖入到对应的表头下面,则完成了报表的初步设计。可以进一步设计报表的背景色,字体,以及每列宽度等。
2 关于ReportViewer
2.1 如何装载设计好的RDLC报表文件
添加一个新的web页面,选择工具箱中的ReportViewer控件,拖入到web页面中。
点击控件右上角小三角形进行报表文件的关联,在选择报表下拉框中选择上面介绍的报表文件即可。如图:
2.2 如何绑定数据源
1)绑定数据源
若在之前设计报表的时候没有保留想到自动生成的Datasource,则在该操作中要自定义一个数据源。此数据源与之前定义的数据集中的Datatable中的字段对应即可。
如下:在后台代码中定义方法LoadReport
private void LoadReport(DataTable dt)
{
ReportDataSource rds = new ReportDataSource("DataSet1_Customers", dt);
// DataSet1_Customers为之前添加的数据集以及对应的数据包,dt就是我们自定义的数据源
ReportViewer1.LocalReport.ReportPath = "Report.rdlc";
//此处就是对应要关联的报表,当然在前台设计的时候也可以直接选择
ReportViewer1.LocalReport.DataSources.Clear();
ReportViewer1.LocalReport.DataSources.Add(rds);
ReportViewer1.LocalReport.Refresh();
}
2)传递参数
报表设计的时候也可以实现参数的传递,例如报表名称,打印人等等。
在报表设计页面之外的空白处点击鼠标右键,选择“报表参数”,添加相应的要添加的参数,将出现如下图示:
在报表设计页面中拖入一个文本框控件,鼠标单击右键选择“fx表达式”,并在参数项目中选择所要绑定的参数,如图所示:
接下来实现如何传递参数的值到报表中,再后台代码中定义方法,LoadParam():
private void LoadParam()
{
ReportParameter[] param = new ReportParameter[1];
param[0] = new ReportParameter("Report_Parameter_0", "Report's Name");
ReportViewer1.LocalReport.SetParameters(param);
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 单线程的Redis速度为什么快?
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 展开说说关于C#中ORM框架的用法!
· SQL Server 2025 AI相关能力初探
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库