真正地全动态报表rdlc和reportviewer

真正地全动态报表rdlc和reportviewer

ID:16297014

大小:142.90 KB

页数:5页

时间:2018-08-09

真正地全动态报表rdlc和reportviewer_第1页
真正地全动态报表rdlc和reportviewer_第2页
真正地全动态报表rdlc和reportviewer_第3页
真正地全动态报表rdlc和reportviewer_第4页
真正地全动态报表rdlc和reportviewer_第5页
资源描述:

《真正地全动态报表rdlc和reportviewer》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、阅读本文需要有XML解析及ADO.net相关经验。本文编译器使用VisualStudio2005 数据库采用XML格式 ReportView版本为2.0 .net版本为2.0一、水晶报表的缺陷  CrystalRepotrs的功能固然很强大,但是对我们写程序的人来说,是否支持动态生成才是最重要的。如果报表只能静态生成再嵌入到程序中,实在有些没意思。  不巧的是强大的水晶报表这一点做的很不好,我们可以在程序中动态修改数据源,也可以动态修改文本和字段,但是报表的一大特色,数据图表,却只能静态生成。也就是说,假如我设计报表时添加了一个图表,用户希望能在多个字

2、段中选择自己想显示的,动态显示到图表中,水晶报表就做不到。对它来说,我们至多只能在程序中得到一张位图,这样就没有意义了。  这个时候我发现了ReportViewer,它用来显示RDLC语言表述的报表。RDLC最初被用在SQLServerforXML上。它实际上是一个XML文本,这就意味着我们在程序中很容易更改它的构架。ReportViewer是RDLC的浏览器,本身没什么好说的,需要注意的是它的数据源必须是DataTable对象。二、结构模型猛的一看有点复杂呵呵,其实还是挺简单的。数据源  可以是传统数据库,也可以是XML表格DataAdapter及C

3、onnection等  用来连接传统的数据库DataSet  用来存储数据,同时可以直接操作XML文件BindingSource  利用DateSet来填充BindingSource,这一步数据中转逻辑上有点多余,但是必不可少ReportDataSource  利用BindingSource来填充ReportDataSource,......-_-!!ReportViewer利用ReportDataSource填充的数据及指定给它的RDLC报表文件来显示报表三、示例代码请大家注意:1. 这里我呈现给大家的只是如何实现报表,报表本身的制作及RDLC描述语

4、言不在讨论范围。ADO.net同样不在讨论范围,感兴趣的读者可以参考这篇文章:《用VC轻松实现ADO.net》。2.如果按照MSDN上介绍的步骤,可以在VB或C#等语言中实现报表显示,但不能用在VC中,因为向导可能产生中文变量,而VC目前还不支持中文变量。请使用VC的读者按照我介绍的步骤来实现。1.制作报表  新建一个空项目,在解决方案资源管理器中右键点项目名,添加新建项,找到Report,起个名字,点确定。  具体的制作不在这里说了,请参考相关的文章,或者下载我的示例代码,里面有两个做好的报表文件。  2.制作XML数据库文件  ADO.net连接传

5、统数据库这里就不多说了,参见上面那篇链接文章。  方法1:   安装了SQLServerforXML的话,直接建立数据库模型生成XML文件即可。  方法2:  如果没有安装SQLServerforXML,需要绕个弯子:   1.先使用SQLServer或其他数据库建立传统的数据库模型。   2.写个临时程序,利用ADO.net将数据库模型导入DataSet中。   3.利用DataSet::WriteXml("文件名");的方法生成XML数据库文件。  方法3:  同样没有安装SQLServerforXML时:   1.先写一个程序,在DataSet中

6、建立数据库模型,当然编程建立要比方法1中的向导建立麻烦一些。   2.利用DataSet::WriteXml("文件名");的方法生成XML数据库文件。 3.连接数据库  ADO.net不再多说。//连接XML文件DataSet^DateSet1=gcnewDataSet();DataSet1->ReadXml("XML文件");4.一系列的数据填充BindingSource^aBindingSource;ReportDataSource^reportDataSource1;//根据DateSet1设置BindingSourceaBindingSour

7、ce=gcnewBindingSource();aBindingSource->DataMember="Table1";//注意,表名要同创建报表时用的相同aBindingSource->DataSource=DataSet1;//根据BindingSource设置ReportDataSourcereportDataSource1=gcnewReportDataSource();reportDataSource1->Name="DataSet1_Table1";reportDataSource1->Value=aBindingSource;//根据Re

8、portDataSource设置ReportViewer控件的数据源,ReportViewer

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。