首先我们要了解一下ReportViewer是什么:
ReportViewer是一个用于展示和生成报表的控件,可以直接在Visual Studio工具箱中找到。它可以与多种数据源连接,包括SQL Server、Access、Excel、Oracle等。使用ReportViewer可以帮助我们轻松地生成各种报表,如图表、列表、矩阵等。
下面是在C#中利用ReportViewer生成报表的完整攻略:
步骤一:添加ReportViewer到工具箱
在Visual Studio的工具箱中,右键空白处选择"Choose Items",在弹出的"Choose Toolbox Items"对话框中选择".NET Framework Components"选项卡,在中间区域找到"ReportViewer"控件,选中它并点击"OK"按钮即可将ReportViewer控件添加到工具箱中。
步骤二:设计ReportViewer
1.在要使用ReportViewer的窗体中拖拽ReportViewer控件,并设置控件的Dock属性为Fill,使得它充满整个窗体。
2.在Solution Explorer中右键单击该项目,选择"Add"->"New Item"->"Report",并在弹出的"Add New Item"对话框中选择"Report Wizard",按照向导的指示逐步完成报表的设计。
步骤三:连接数据源
在报表设计向导的某一步中,需要选择数据源。可以选择如下几种数据源:
- SQL Server
- Microsoft Access
- Oracle
- ODBC
- OLE DB
在这里我们以SQL Server为例说明。
在选择"SQL Server"数据源后,填写SQL Server的连接信息,并测试连接是否成功。接下来可以选择要使用的表或视图,并对它们进行数据筛选和排序。
步骤四:设置报表的布局和样式
在向导中,你可以对报表的每一个部分进行布局和样式的设置,包括标题、页眉、页脚、数据区域、图例、数据标签等。可以选择表格、矩阵、图表等布局方式,并对每一个元素进行自定义的设置。
步骤五:绑定报表数据
在报表的绑定过程中,需要指定数据源,并选择要显示的字段。在设计向导的某一步中,选择"Specify the datasets and fields to use in the report"选项,它将显示已选择的表或视图,可以指定数据集的名称和关系,然后设置要显示的每一个字段。
步骤六:运行报表
完成报表的设计以后,可以在窗体中直接实时预览报表。在窗体代码中调用ReportViewer控件的Refresh()方法即可。如下:
this.reportViewer1.RefreshReport();
示例一:以SQL Server为数据源
在选择SQL Server作为数据源时,需要输入SQL Server的登录信息和要连接的数据库名称。在选择数据表或视图时可以选择多个表或视图,也可以写入自定义的SQL语句来获取数据源。
接下来我们以一个示例说明如何绑定数据和显示数据。
1.在ResumeReport.rdlc报表上右键,选择"Dataset",创建一个新的数据集,并在弹出的Dataset Properties窗口中指定数据源的位置和类型,这里 我们选择"New"->"Adhoc..."来指定自定义的SQL语句。
2.在弹出的Query Designer中输入SQL语句,以查询"Resume"表中的数据为例:
SELECT * FROM Resume
3.在Report Designer中拖拽表格控件,输入控件内的列名和数据集的名称即可完成数据与表格的绑定,最后将ReportViewer控件与报表绑定,即可显示数据。
this.reportViewer1.LocalReport.ReportEmbeddedResource = "ReportDemo.Report1.rdlc";
this.reportViewer1.LocalReport.DataSources.Clear();
this.reportViewer1.LocalReport.DataSources.Add(new Microsoft.Reporting.WinForms.ReportDataSource("ResumeDataSet", dt));
this.reportViewer1.RefreshReport();
示例二:以XML为数据源
如果没有数据库可以使用为报表提供数据,可以将数据保存为XML格式以使用ReportViewer,而不必连接到数据源。
接下来我们看一个简单的示例,以XML文件作为数据源。
1.先准备一份XML格式的数据文件,比如ResumeList.xml:
<?xml version="1.0" encoding="utf-8"?>
<ResumeList>
<Resume>
<Name>张三</Name>
<Age>30</Age>
<Sex>男</Sex>
<Telephone>13888888888</Telephone>
</Resume>
<Resume>
<Name>李四</Name>
<Age>25</Age>
<Sex>女</Sex>
<Telephone>13999999999</Telephone>
</Resume>
</ResumeList>
2.在Visual Studio中选择"Add New Item" -> "Report" -> "Report Wizard",按照向导的指示完成报表的创建,选择"Embedded XML"作为数据源。
3.在报表设计向导的某一步中,填写XML文件的路径和要使用的XML数据集的名称。 ReportViewer会根据指定的XML数据文件的路径自动推断出数据源,然后使用指定的XML数据集名称创建一个数据集。
4.设计报表的布局和样式,绑定报表数据,使用智能标记语言 (XML的脚注) 对数据值进行引用等。
this.reportViewer1.LocalReport.ReportEmbeddedResource = "ReportDemo.Report2.rdlc";
XmlReader reader = XmlReader.Create("ResumeList.xml");
DataSet dataSet = new DataSet();
dataSet.ReadXml(reader);
this.reportViewer1.LocalReport.DataSources.Clear();
this.reportViewer1.LocalReport.DataSources.Add(new Microsoft.Reporting.WinForms.ReportDataSource("ResumeDataSet", dataSet.Tables[0]));
this.reportViewer1.RefreshReport();
以上两个示例就是使用C#利用ReportViewer生成报表的完整过程,可以在Visual Studio中进行尝试。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#利用ReportViewer生成报表 - Python技术站