VS2010_RDLC自带报表使用手册要点.pdf
《VS2010_RDLC自带报表使用手册要点.pdf》由会员分享,可在线阅读,更多相关《VS2010_RDLC自带报表使用手册要点.pdf(46页珍藏版)》请在三一文库上搜索。
1、制表日期: 2011 年 08 月 01 日制表人: 潘梦军 地址 : 广东省中山市石岐区东明路23 号 TEL(0760)-8713353 FAX(0760)-8713354 1/46 RDLC 使用总结 1、为什么要使用 RDLC 报表(简介) VS .NET 开发中,用什么进行报表设计?可能的回答是Crystal Report,当然,必须承认 Crystal Report的功能还是非常强大的,被Business Object收购以后,商业的成分也在逐渐增 加,也形成了一定规模的用户群。 Visual Studio .NET 进入 2005版本以后, Crystal Report与 IDE
2、 的结合更“紧密”了,至少 我们看不到那个讨厌的注册窗口了。但是,Microsoft 似乎并不容忍在自己的超级工具中竟然 没有报表工具,于是Report Viewer Control 出现了,我把它的报表称为RDLC 报表。 在 VS .NET 2005 之前,SQL Server Reporting Services 中已经提供了一种被称为报表定义语 言(Report Definition Language, RDL)的语言;在 VS .NET 2005 中,Microsoft 提供了针对这 种报表的设计器,并提供了在WinForm 和 WebForm中使用这种报表的能力。Microsoft
3、 将这 种报表的后缀定为RDLC,RDL 仍然是 Report Definition Language的缩写,那么 C 代表什么 呢?C 代表 Client-side processing ,凸显了它的客户端处理能力。 这种报表的易用性和可定制性让我们完全有理由放弃Crystal Report ,让我们来看看它的强 大功能吧: 1)简单易用的控件,特别是Table控件,非常方便字段在报表上的排列; 2)灵活的可定制性,用XML 来描述一个报表相关的一切,不用说了吧; 3)高度可编程性,在你的项目中,甚至不需要有一个报表文件,通过代码就可以实现报 表生成、预览和打印等一系列操作; 4)支持 Dr
4、illThrough 数据钻取功能; 5)导出的 Excel 文件格式非常完美,而且并不需要安装Excel; 6)数据源处理极其方便,开发人员可以自己接管数据库连接、取数,然后将数据结果赋 值给 RDLC 的数据集即可。 7)展示和数据分离,程序员更是可以编写一个RDLC 设计器交有用户使用,这样用户 就可以自行设计 RDLC 报表格式,程序员只负责定制数据接口即可。 RDLC MSDN :http:/ 2、RDLC 简单 Demo 本文所有 RDLC 例子都是基于 VS2005 C# ,所有 ReportViewer 的处理模式都是 Local 模式。 本报表 Demo显示上文中提到的RDL
5、C 手册各节内容,下述为Demo 的详细 steps 。 1)新建项目,选择 Windows 应用程序项目类型,输入工程名称RDLCDev; 2)修改 Form1 窗体名称为FrmRdlcUserGuide,在工具箱 数据 Tab 选项卡中选择 ReportViewer 控 件 , 将 其 拖 入 到 FrmRdlcUserGuide, 默 认命 名为 reportViewer1, 调 整 ReportViewer 控件的大小和布局; 3)在解决方案资源管理器中选择RDLCDev 工程,鼠标右击 RDLCDev 工程,添加新建 制表日期: 2011 年 08 月 01 日制表人: 潘梦军 地址
6、 : 广东省中山市石岐区东明路23 号 TEL(0760)-8713353 FAX(0760)-8713354 2/46 项,在添加新项模板中选择“报表”,取名为rdlcuserguide.rdlc,单击添加按钮,然后在解决 方案资源管理器中 RDLCDev 工程下会增加一个 rdlcuderguide.rdlc文件, 并且会自动打开 RDLC 设计器; 4)在 RDLC 设计器中添加11 个 TextBox 控件, 1 个作为标题,其余10 个作为 RDLC 使用手册具体内容,对每个TextBox 控件进行TextAlign 、Color、BorderStyle、 Font 和 TextDe
7、coration等相关属性设置,设计完毕之后,大致如下图所示。 5)在FrmRdlcUserGuide 窗体 Load 事件中添加下述代码 privatevoid Form1_Load( object sender, EventArgs e) this .reportViewer1.ProcessingMode = Microsoft.Reporting.WinForms.ProcessingMode .Local; this .reportViewer1.LocalReport.ReportPath = “rdlcuserguide.rdlc“; this .reportViewer1.Re
8、freshReport(); 6)编译、运行 RDLCDev 工程,运行结果大致如下图所示。 制表日期: 2011 年 08 月 01 日制表人: 潘梦军 地址 : 广东省中山市石岐区东明路23 号 TEL(0760)-8713353 FAX(0760)-8713354 3/46 3、RDLC 常用控件介绍 RDLC 设计工具箱上总共有9 种控件:文本框 (TextBox)、折线 (Line)、表(Table)、矩阵 (Matrix)、矩形(Rectangle) 、列表(List)、子报表 (SubReport) 、图表控件 (Chart)、图像控件 (Image)。 下图 ctlsDemo.
9、rdlc 设计器所示为所有控件的设计演示。 制表日期: 2011 年 08 月 01 日制表人: 潘梦军 地址 : 广东省中山市石岐区东明路23 号 TEL(0760)-8713353 FAX(0760)-8713354 4/46 1)由于表格控件、矩阵控件、列表控件和图表控件必须填充数据集,因此把所有控件布 局完毕之后,创建一个数据集。解决方案资源管理器中,选中RDLCDev 工程,右击添加新建 项,在新建项类型模板里选择“数据集”,取名“ctlsDemo.xsd”,单击“添加”。 ctlsDemo.xsd添加完毕之后,在解决方案资源管理器中会增加一个ctlsDemo.xsd文件,并 前 V
10、S IDE 会自动打开 ctlsDemo.xsd设计页面。在设计页面中右击,添加Datatable ,将其命名 为 vSales ,该表描述的是产品的销售额信息,为vSales表添加列,列信息如下: ProdCat System.String SubCat System.String OrderYear System.Int32 OrderQtr System.String Sales System.Double 2)文本框控件、折线控件、矩形控件使用相对简单,这里不细说; 3)Image控件,现在 RDLC 设计器模式下,选择“报表”菜单,“嵌入图像”,在“嵌 入图像”对话框中,载入一个本地
11、图像文件即可。然后设置Image 控件的Source 属性为 Embedded ,设置 Value 属性为刚才处理的嵌入图像即可。当然还有别的方式可以显示图像, 大家可以 Google一下,关键字为RDLC、嵌入图像; 4)图表控件,使用图表控件的一个关键是要设置好图表属性页面中的数据TAB 页相关 内容。主要有值、类别组和序列组定义,大家可以参考Demo; 5)表格控件、矩阵控件和子报表控件,在后续内容中会详细介绍; 4.1 表格控件使用介绍 1)Table控件是 RDLC 报表显示数据的一个核心控件,关于Table 控件,在微软提供的 制表日期: 2011 年 08 月 01 日制表人:
12、潘梦军 地址 : 广东省中山市石岐区东明路23 号 TEL(0760)-8713353 FAX(0760)-8713354 5/46 RDLC 规范里有详细的介绍,其大致内容可以用下述的一张类UML 图来表示; 2)新建报表文件,命名为ctlTableDemo.rdlc; 3)在 ctlTableDemo.rdlc 设计器中,拖入Table控件,默认情况下是3 行 3 列,其中第 1 行为表头行 (我们理解为列标题行),第二行为详细信息行 (我们理解为报表内容展示区域) , 第三行为表尾行(我们理解为汇总区域) 。可以整行选中,然后右击鼠标添加行或者删除行, 也可以整列选中,然后右击鼠标添加或
13、者删除列。上文中提到的数据集合有5 个字段,因此需 要 5 列来显示,为此需要增加两列。 4)在数据源窗口中(如果没有显示的话,选择【数据】菜单下的【显示数据源】即可) 选择上文中创建的ctlsDemo.xsd数据集,将 ProdCat、SubCat、OrderYear 、OrderQtr 和 Sales 分别拖入到 Table控件的详细信息行的不同列中去。 5)设置标题行文字显示都居中 ,Sales的内容显示右对齐 ,ProdCat 、SubCat 、OrderYear 、 OrderQtr 和 Sales文本框的字体颜色全部设置成Blue,Sales文本框由于显示的内容为销售额, 因此需设
14、置数字显示格式,小数位数。鼠标右击Sales 文本框,选择【属性】 ,在文本框属性 窗口中,选择格式 Tab页,在格式代码处,选择数字1,234.00格式即可,选择完毕之后该文 本框的数字就以逗号千分位作为分割符,保留2 位小数显示,效果如下图所示。 制表日期: 2011 年 08 月 01 日制表人: 潘梦军 地址 : 广东省中山市石岐区东明路23 号 TEL(0760)-8713353 FAX(0760)-8713354 6/46 6)插入一个组实现分组统计功能。选中整行,鼠标右击,选择【插入组】,弹出分组和 排序属性对话框,设置分组名称、分组方式、是否显示组头或者组尾等属性即可,本文分组
15、设 置如下: 分组名称: table1_Group1 分组表达式: =Fields!ProdCat.Value ;=Fields!SubCat.Value ;=Fields!OrderYear.Value ,实现 产品年度销售额汇总统计功能。 不显示组头、显示组尾(至于组头、组尾是个什么样的东西,大家只要动手试一下就一目 了然了) 在 textbox15 中输入汉字“合计”,在textbox16 文本框中输入合计表达式 =Sum(CDbl(Fields!Sales.Value),设置完之后效果如下图所示。 7)新建窗体FrmCtlTableDemo ,然后在该窗体上添加ReportViewer
16、控件,在窗体FrmCtlTableDemo 代码窗口里 输入以下代码: privatevoid FrmCtlTableDemo_Load( object sender, EventArgs e) this .reportViewer1.ProcessingMode = Microsoft.Reporting.WinForms.ProcessingMode .Local; this .reportViewer1.LocalReport.ReportPath = “rdlcctlTableDemo.rdlc“; / reportViewer1.LocalReport.DataSources.Add
17、(new ReportDataSource ( “ctlsDemo_vSales“, LoadData(); / 制表日期: 2011 年 08 月 01 日制表人: 潘梦军 地址 : 广东省中山市石岐区东明路23 号 TEL(0760)-8713353 FAX(0760)-8713354 7/46 this .reportViewer1.RefreshReport(); privateDataTable LoadData() DataSet dataSet = new DataSet (); dataSet.ReadXml(“datactlsDemo.xml“); return dataSe
18、t.Tables0; 8)运行效果如下图所示 4.2 矩阵控件使用介绍 1)矩阵控件主要用于显示CrossTable之类的报表,因此其列数可以是Static的,也可以 是 Dynamic 并且 Can grow 的,关于矩阵控件,在RDLC 协议规范里也有介绍,其大致内容可 以用下图表示。 制表日期: 2011 年 08 月 01 日制表人: 潘梦军 地址 : 广东省中山市石岐区东明路23 号 TEL(0760)-8713353 FAX(0760)-8713354 8/46 2)新建报表文件,命名为ctlMatrixDemo.rdlc ; 3)在 ctlMatrixDemo.rdlc 设计器中
19、,拖入 Matrix 控件,默认情况下是2 行 2 列,左上角 单元格为空白区域(通常用来显示报表摘要信息如产品/年度等) ,右上单元格显示为“列”, 单击此处可以增加列分组,左下单元格显示为“行”,单击此处可以添加行分组,右下单元格 显示为“数据”,单击此处可以添加静态行、静态列。 4)在矩阵左上角单元格空白区域拖入矩形控件,然后在该矩形控件中拖入一个折线控件 和两个文本框控件,折线当做矩形的对角线,两个文本框内容为产品和年度分布在折线两侧。 5)增 加 两 个 行 分 组 , 分 别 为matrix1_RowGroup1和matrix1_RowGroup2 , matrix1_RowGro
20、up1 的 表 达 式 为 =Fields!ProdCat.Value, matrix1_RowGroup2 的 表 达 式 为 =Fields!SubCat.Value 。 6)增加 两 个 列 分 组 , 分 别 为 matrix1_ColumnGroup1 何 matrix1_ColumnGroup2, matrix1_ColumnGroup1 的表达式为 =Fields!OrderYear.Value ,matrix1_ColumnGroup2 的表达式 为=Fields!OrderQtr.Value。 7)在“数据”单元格中编辑表达式=Sum(CDbl(Fields!Sales.Va
21、lue) 8)设计完之后,效果如下图所示; 制表日期: 2011 年 08 月 01 日制表人: 潘梦军 地址 : 广东省中山市石岐区东明路23 号 TEL(0760)-8713353 FAX(0760)-8713354 9/46 9)新建窗体FrmCtlMatrixDemo ,然后在该窗体上添加ReportViewer控件,在窗体FrmCtlMatrixDemo代码窗口 里输入以下代码: privatevoid FrmCtlMatrixDemo_Load(object sender, EventArgs e) this .reportViewer1.ProcessingMode = Micr
22、osoft.Reporting.WinForms.ProcessingMode .Local; this .reportViewer1.LocalReport.ReportPath = “rdlcctlMatrixDemo.rdlc“; / reportViewer1.LocalReport.DataSources.Add(new ReportDataSource ( “ctlsDemo_vSales“, LoadData(); / this .reportViewer1.RefreshReport(); privateDataTable LoadData() DataSet dataSet
23、= new DataSet (); dataSet.ReadXml(“datactlsDemo.xml“); return dataSet.Tables0; 10) 运行效果如下图所示 4.3 子报表控件使用介绍 制表日期: 2011 年 08 月 01 日制表人: 潘梦军 地址 : 广东省中山市石岐区东明路23 号 TEL(0760)-8713353 FAX(0760)-8713354 10/46 子报表作为主报表的一个补充 ,在显示明细内容的时候比较管用,本文从如何填充子报表 数据,如何传递参数两方面介绍子报表如何使用。 1)新建 RDLC 报表,命名为 subReportDemo.rdl
24、c; 2)在 subReportDemo.rdlc设计器中,拖入一个文本框和一个子报表控件; 3)设置文本框的文本显示为“子报表控件演示”; 4)设置 子报 表 控 件 属 性 , 主要 设置 其 “ 子 报 表 ” 的值 ,这 里设 为 上 文 讲 到 的 ctlTableDemo报表,效果如下图所示; 5)新建一个窗体 FrmSubReportDemo ,添加如下代码 privatevoid FrmCtlSubReportDemo_Load( object sender, EventArgs e) reportViewer1.LocalReport.SubreportProcessing
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VS2010_RDLC 报表 使用手册 要点
链接地址:https://www.31doc.com/p-5198438.html