预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共65页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

RDLC报表随笔……(转载,感谢网友”蜡人张”)(一)VS.NET开发中,用什么做报表?可能的回答是CrystalReport,自.NET“紧密”集成CrystalReport后,这可能是开发人员比较单一的选择。但是,这种集成似乎并不非常紧密,网络上充斥着关于使用CrystalReport的抱怨,太复杂也许是其最为令人诟病的地方,自定义性比较差也不能为程序员们所容忍。当然,必须承认CrystalReport的功能还是非常强大的,被BusinessObject收购以后,商业职能的成分也在逐渐增加,也形成了一定规模的用户群。VisualStudio.NET进入2005版本以后,CrystalReport与IDE的结合更“紧密”了,至少我们看不到那个讨厌的注册窗口了。但是,Microsoft似乎并不容忍在自己的超级工具中竟然没有报表工具,于是ReportViewerControl出现了,我把它的报表称为RDLC报表。在VS.NET2005之前,SQLServerReportingServices中已经提供了一种被称为报表定义语言(ReportDefinitionLanguage,RDL)的语言;在VS.NET2005中,Microsoft提供了针对这种报表的设计器,并提供了在WinForm和WebForm中使用这种报表的能力。Microsoft将这种报表的后缀定为RDLC,RDL仍然是ReportDefinitionLanguage的缩写,那么C代表什么呢?C代表Client-sideprocessing,凸显了它的客户端处理能力。这种报表的易用性和可定制性让我们完全有理由放弃CrystalReport,让我们来看看它的强大功能吧:1、简单易用的控件,特别是Table控件,非常方便字段在报表上的排列;2、灵活的可定制性,用XML来描述一个报表相关的一切,不用说了吧?3、高度可编程性,在你的项目中,甚至不需要有一个报表文件,通过代码就可以实现报表生成、预览和打印等一系列操作;4、支持DrillThrough数据钻取功能;5、导出的Excel文件格式非常完美,任何其它报表在这方面都不能与之比拟,而且并不需要安装Excel;……[偷偷懒,其实我并不擅长总结某某的特点,我只能从实际经验中得到一点点结论,而且我也不原意去抄袭帮助中的NewFeatures,呵呵……]在以后的几篇随笔中,我将结合最近一段时间使用RDLC报表的经验继续探讨相关的一些问题,大致内容包括:报表设计器的使用、LocalReport的一些相关操作,如何自定义纸张等等,欢迎大家提出参考意见。(二)需要说明的是,现在关于VS.NET2005中的ReportViewerControl的内容非常少,我只能按照自己的理解来说一些东西,这其中肯定会有一些偏差,欢迎各位的批评指正。另外,我所涉及的内容都是关于LocalReport的,对于ServerReport没有进行研究。在这篇随笔中,我主要分析一下GotReportViewer上的几个经典例子,我们可以从中看到ReportViewerControl的强大功能:1、WebLogAnalyzer这是一个比较典型的OLAP应用,我们可以看到RDLC报表强大的Chart和Navigation功能。当然了,例子中解析W3C标准日志文件的代码也非常有借鉴意义。这个StarterKit在我的随笔HYPERLINK"http://waxdoll.cnblogs.com/archive/2006/01/19/320280.html"http://waxdoll.cnblogs.com/archive/2006/01/19/320280.html中曾经提到过,不再详述。2、子报表展示如何使用子报表显示主记录的详细信息,这种应用很像Access中的子报表功能。主要使用SubreportProcessing事件为子报表提供数据。3、钻取报表钻取报表是通过设置Navigation(HyperLink)和Parameters来实现的,通常在OLAP应用程序中很有用。4、具有子报表的钻取报表这个例子实现的功能类似Excel中数据透视表(PivotTable)的功能,在一个复杂的交叉表中可以进行时间和商品两个维度的向下钻取。这在别的报表中恐怕是很难实现的。如图所示,5、引用外部代码块此示例演示从另外一个类Util中读取函数返回值到报表中:首先,使用LocalReport的AddTrustedCodeModuleInCurrentAppDomain方法允许Util类中的方法在ReportViewer中执行,然后在报表中使用TextBox控件的Value节点调用Util中的静态方法Factorial在报表中显示其返回值。另外一个相关的示例基本上与此相同,只不过