RDLC报表.doc_第1页
RDLC报表.doc_第2页
RDLC报表.doc_第3页
RDLC报表.doc_第4页
RDLC报表.doc_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

RDLC报表1.1简介 在visual studio 2005之前,微软提供了一个报表服务(Reporting Service),其中也提供了报表自定义语言Report Definition Language, RDL语言),其报表定义为.rdl文件;Microsoft提供了针对这种报表的设计器,并且提供了在并提供了在WinForm和WebForm中使用这种报表的能力.微软定义了RDLC(Report Definition Language Client)也就是报表定义语言的客户端也称本地报表,该报表的后缀为.rdlc.本地报表和服务器报表存在一定的区别。服务器报表rdl是指那些针对报表服务部署在服务器端的报表。当报表被许多用户访问、报表以发布在报表服务器上,将其包含在所创建和部署的应用程序中、报表中有复杂的查询或者包含数据量大导致应用程序所在计算机的系统资源超载时,用报表的远程处理比较合适。本地报表rdlc是指在本地的一些报表,在使用报表不一定要依赖于SQL Server,而是可以自主生成一些数据源然后以报表的方式显现出来。本地处理模式的功能不及远程处理功能强大,适合中小型好报表和数据集的应用程序。如果和rdl比较,rdlc可以看成是一个轻量级的报表。在展现报表的时候我们需要使用到的一个控件叫ReportViewer,这种控件可以展现rdl报表,也可以展现rdlc报表。从其属性可以看出,ReportView.ServerReport是针对rdl报表的,而ReportViewer.LocalReport是针对rdlc报表的。1.2RDLC功能RDLC报表提供了以下主要功能:1、含有简单易用尤其是Table控件,非常方便字段在报表上的排列。2、灵活的可定制性,用XML来实现通用的报表打印,可以用XML完全可以实现一个基于RDLC的报表设计器,这样可以让终端用户参与到报表的设计中,至少可以使他们能够修改报表中一些标题、表头等3、高度可编程性,在你的项目中,甚至不需要有一个报表文件,通过代码就可以实现报表生成、预览和打印等一系列操作; 4、支持数据钻取功能;钻取报表是通过设置Navigation(HyperLink)和Parameters来实现的,而具有子报表的钻取报表实现的功能类似Excel中数据透视表(Pivot Table)的功能,在一个复杂的交叉表中可以进行时间和商品两个维度的向下钻取。这在别的报表中恐怕是很难实现的。5、导出的Excel文件格式非常完美,任何其它报表在这方面都不能与之比拟,而且并不需要安装Excel; 6、交互排序 在RDLC报表的众多交互功能中,终端用户可以通过报表中列标题上的图标进行数据的排序,而预览及打印的效果完全取决于用户的排序。1.3 RDLC报表相关类Microsoft.Reporting.WinForms 命名空间类说明BackEventArgs 为 Back 事件提供数据。BookmarkNavigationEventArgs 为 BookmarkNavigation 事件提供数据。DataSourceCredentials 表示数据源凭据。DocumentMapNavigationEventArgs 为 DocumentMapNavigation 事件提供数据。DocumentMapNode 表示文档结构图中的单个节点。DrillthroughEventArgs 为 Drillthrough 事件提供数据。HyperlinkEventArgs 包含有关 Hyperlink 事件的信息。LocalProcessingException 表示查看本地处理的报表时发生的错误。LocalReport 表示不用连接到报表服务器而在本地处理和呈现的报表。MissingDataSourceCredentialsException 表示在没有为报表使用的数据源提供凭据时发生的异常。MissingDataSourceException 表示在没有提供报表所需数据源时出现的错误。MissingEndpointException 表示无法访问 ReportViewer 控件使用的 SOAP 端点时出现的错误。MissingParameterException 表示在没有提供报表所需参数时发生的异常。MissingReportSourceException 表示没有指定报表资源时发生的异常。PageNavigationEventArgs 为 PageNavigation 事件提供数据。RenderingCompleteEventArgs 为 RenderingComplete 事件提供数据。RenderingExtension 封装可与报表查看器的报表一起使用的呈现扩展插件。Report 包含可应用于本地报表和服务器报表的方法和属性。ReportDataSource 表示报表的数据源。ReportDataSourceCollection 包含 ReportDataSourceCollection 对象的集合。ReportDataSourceInfo 表示有关报表数据源的信息。ReportDataSourceInfoCollection 表示 ReportDataSourceInfo 对象集合。ReportErrorEventArgs 为 ReportError 事件提供数据。ReportExportEventArgs 为报表 ReportExport 事件提供数据。ReportPageSettings 表示报表的页设置。ReportParameter 表示报表的参数。ReportParameterInfo 封装有关报表参数的信息。ReportParameterInfoCollection ReportParameterInfo 对象的集合。ReportSecurityException 表示报表包含安全冲突时出现的错误。ReportServerCredentials 指定 ReportViewer 控件连接到报表服务器时要使用的凭据。ReportServerException 表示查看服务器报表时出现的错误。ReportViewer 封装用于 ReportViewer 控件的方法和属性。ReportViewerException 表示查看报表时发生的错误。SearchEventArgs 为 ReportViewer 控件中的 Search 事件提供数据。ServerReport 表示在报表服务器上处理和呈现的报表。SoapVersionMismatchException 表示当报表服务器版本与报表控件不兼容时发生的异常。SortEventArgs 为 Sort 事件提供数据。SubreportProcessingEventArgs 为 SubreportProcessing 事件提供数据。ValidValue 表示可能有效的参数值。Warning 表示在呈现或处理报表时返回的错误或警告列表。ZoomChangeEventArgs 为 ZoomChange 事件提供数据。接口 接口说明IReportServerCredentials 允许对象提供用于连接到报表服务器的凭据。IReportViewerMessages 允许应用程序提供自定义的用户界面消息。委托 委托说明BackEventHandler 表示将用来处理 ReportViewer 的 Back 事件的方法。BookmarkNavigationEventHandler 表示将用来处理 ReportViewer 的 BookmarkNavigation 事件的方法。CreateStreamCallback 为 ReportViewer 控件提供流以进行呈现。 DocumentMapNavigationEventHandler 表示用来处理 ReportViewer 的 DocumentMapNavigation 事件的方法。DrillthroughEventHandler 表示将用来处理 ReportViewer 的 Drillthrough 事件的方法。ExportEventHandler 表示用来处理 Export 事件的方法。HyperlinkEventHandler 表示用来处理 Hyperlink 事件的方法。PageNavigationEventHandler 表示将用来处理 ReportViewer 的 PageNavigation 事件的方法。RenderingCompleteEventHandler 表示将用来处理 ReportViewer 的 RenderingComplete 事件的方法。ReportErrorEventHandler 表示用来处理 ReportError 事件的方法。SearchEventHandler 表示将处理 Search 事件的方法。SortEventHandler 表示将用来处理 ReportViewer 的 Sort 事件的方法。SubreportProcessingEventHandler 表示将用来处理 ReportViewer 的 SubreportProcessing 事件的方法。ZoomChangedEventHandler 表示将用来处理 ReportViewer 的 ZoomChange 事件的枚举 枚举说明DisplayMode 表示 ReportViewer 控件的可能显示模式。ParameterDataType 指定参数的数据类型。ParameterState 指定参数的状态。ProcessingMode 设置 ReportViewer 控件的处理模式。Severity 指定警告的严重性。SortOrder 指示排序操作的方向。ZoomMode 指定 ReportViewer 控件的缩放模式。1.4 RDLC报表应用程序1.4.1简单RDLC报表制作本节主要介绍嵌入式的报表程序的编写,示例数据库为图书管理系统的配套数据库book,并依托其中的“图书信息表”作为报表的数据源。“图书信息表”中包括以下字段:图书编号、图书名称、条形码、图书类别、库存、存放位置、图书单价、出版社、作者、出版时间、入库时间。步骤一:创建数据集。在项目上右键“添加新项”-“数据”-“数据集”来创建你的数据了。打开刚建立的数据集,有从服务器资源管理器和数据集工具箱中建立数据集两种方式,从工具箱中拖出数据集可以使自己建立的数据表,可以右键建立数据列等操作。这里重点讲一下绑定数据库的数据集,从服务器资源管理器中找到图书信息表并拖到设计视图中,其效果图如下所示步骤二:建立报表。首先新建项目命名为ReportView,在“解决方案资源管理器”上右键点击项目-“添加新项目”-”报表”- “Report1.rdlc”,如下图所示。建好报表以后要在报表属性中“复制到输出目录”选为始终复制,因为有时候会出现找不到数据文件导致加载失败。步骤三:为报表绑定数据源。在rdlc报表文件的设计视图,VS2005中是通过菜单“报表”-“数据源”,可以找到数据源。这里的数据源刚刚创建的数据集里面的表数据,所以它的名称为“数据集名_表名(视图名)”,如果表名或者视图名称有空格的话,会用下划线”_”替代。在VS2010中是从工具箱拖动表格呈现下列表数据集属性,其中为报表数据源就要求填写数据名称,数据源,可用数据源了,其中数据名称是为了在写程序时方便记忆数据源的简写,这里我用“Ds”来表示“DataSet1_图书信息表”,已绑定数据源。建好表后可以右键添加列,以及通过右键选择表达式,出现表达式框后,选择字段中的值,双击就会出先=Fields!图书编号.Value当然你也可以设置输出格式 也可以通过表格中得占位符来设置显示的数据列。从工具箱中把”MicrosoftReportViewer”拖到视图上,”MicrosoftReportViewer”在“工具箱”的“报表”分类下。报表浏览器可以直接通过设计视图,点击Viewer控件右上方的小三角,从菜单上选择rdlc报表文件进行绑定,也可以通过后台代码实现绑定。其中reportView报表浏览器的名称,”ReportView.Report1.rdlc”为报表相对于项目根目录所在的位置.在后台写入报表数据源,其相应代码如下所示: DataTable dt; private void Form1_Load(object sender, EventArgs e) /绑定数据库中的图书信息表信息 bing(); /建立报表数据源对象 Microsoft.Reporting.WinForms.ReportDataSource rsource = new Microsoft.Reporting.WinForms.ReportDataSource(); /获取报表数据源据集名称,注:如果绑定数据源时未重新命名则在此处必须设数据源名称为 数据集名_表名 rsource.Name = Ds; /封装绑定的数据集给报表数据源 rsource.Value = dt; /清除本地缓存中的报表数据 this.reportViewer1.LocalReport.DataSources.Clear(); /加载设置的新报表数据源 this.reportViewer1.LocalReport.DataSources.Add(rsource); /刷新报表数据 this.reportViewer1.RefreshReport(); private void bing() SqlConnection con = new SqlConnection(Data Source=.;Initial Catalog=book;Integrated Security=True); SqlDataAdapter da = new SqlDataAdapter(select * from 图书信息表, con); DataSet ds = new DataSet(); da.Fill(ds); dt = ds.Tables0; con.Dispose(); 点击运行,其效果图如下所示:1.2数据排序可以通过右键点击文本框的属性来对数据进行排序,其设置视图如下所示:下图是按照图书单价来进行增序的,其效果图如图所示:图1.5报表排序显示1.3公式与函数如果要打印时间为某刻,则表示方式为: “打印时间:” Now。输出行号为=RowNumber(Nothing)。 RDLC报表也设置了很多函数,这里通过举例介绍一下使用方法,在数据库中对时间进行格式设置,在常见函数中点击出每一项,右方示例均写有函数方式,这里复制到表达式中做一下简单修改即可。 1.4数据分组处理点击右键“行组”中的“组属性”,选择添加组表达式来设置其表达式设为可以按行分组Fields!图书类别.Value,效果图如下所示1.5数据图表步骤一:右击插入图标饼图。步骤二:点图表两下会提示拖放字段。步骤三:将数据源中的字段拖放到对应的位置,其中数据字段为Count(Fields!图书类别.Value),类别字段为设置为Fields!图书类别.Value,右键选中“显示数据标签”,点击图表标题进行图表标题设置。步骤四:显示百分比,右键单击“序列标签属性”,设置序列标签数据中的表达式输入“=FormatPercent(Count(Fields!图书类别.Value)/Count(Fields!图书类别.Value, Ds),2)”1.4报表标题设置在打开的报表设计器中,选择工具栏里视图中的“报表数据”,新建一个报表参数设置其名称为ID,数据类型为文本类型点击确定。 在报表设计器的页面上放入一个文本框,在文本框上按鼠标右键-文本框属性,在“文本框属性”窗口中,选择“常规”选项卡内下部的“值”后面的“编辑表达式”按钮(Fx),在此窗口内,左下框内选择参数,在右下框将会出现在上一步中设置的参数,双击此参数,在上面的框内将出现所需要的表

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论