来北京两个多月了,算是基本安定下来了。虽然工作上有诸多不顺心,但还是要珍惜“现在”。第一个珍惜的表现,就是激活我的BLOG。以前也是不能坚持,零零星星写些没价值的东西。
刚进新公司的第一个任务就是看这个http://www.fyireporting.com/。头儿的想法是,因为它开源,可以在其基础上,搞个部门内部用的报表方案,统一一下各个项目处理报表的方式,节省掉做报表的重复工作。这种说法在领导那里自然是支持的,因为直接关系到节约成本。唉,我又有要开始抱怨的痕迹了,也许大家没发觉,但我还是控制一下,转到正题上吧!
RdlProject项目的特点是基于RDLS(报表定义语言规范,是微软为报表服务(Report Service)提供的基础规范)。与使用微软Report Service的解决方案相比,你无需花费高昂的许可费,就可以在你的.NET应用程序里使用Report Service 报表提供的诸多便利。
因为我既不是老板,也不是用户,所以省不省钱与己无关。我体会到的更实 际的好处是,伴随SQL SERVER 2005的大举造势,网络上有很多微软报表服务的资料,而这些资料绝大部分都适用于RdlProject。对标准(虽然是微软自己的标准)的支持以及大量的资料,都为使用RdlProject提供了坚实的基础。
另外,前不久,微软发布的两款免费的工具带来了更多。
在Microsoft SQL Server 2005 Express Edition with Advanced Services里,新提供了一个免费易用的管理工具 SQL Server 2005 Management Studio Express (SSMSE),以及全文索引功能。与本文相关的一个新功能是,可以在这个版本上,运行微软Report Service报表。不过,免费的代价是,它只能使用本地的关系数据。另外还有一些其他的功能限制。我还不大明白,这个限制的具体含义。暂时还没试用,所以不敢胡说了。
更有趣的是,如果安装了Microsoft SQL Server 2005 Express Edition Toolkit(以下简称Toolkit),就可以在VS2005里看到BI(Business Inteligence)的项目模板。与RdlProject提供的设计器相比,出现在VS2005里的报表设计工具要完善得多,而且更易使用。(顺便提一句,RdlProject的设计器,还有不少小问题,虽然大致能用,但是要想长期使用在项目中,最好还是自己去一下BUG,并做一些扩充。不过既然有了微软提供的这么好的免费工具,我可能就不考虑直接用RdlProject的设计器了:)
下面就简单介绍一下我对这种工作方式的一些粗浅经验:
1. 先在Toolkit中设计好报表;
2. 然后把生成的RDL文件的内容(xml)复制到RdlProject的设计器中。Toolkit与RdlDesinger生成的报表定义XML文件有一些差异。但一般只要将第二行的<xmlns .../>去掉就可以了。
3. 在RdlProject的设计器中预览报表会发现除了有一些警告外,报表可以正常显示。警告的原因基本上是因为,有些RDLS中的元素没有被RdlEngine(RdlProject的报表引擎)解析,可能设计RdlProject的人觉得是些无关紧要的信息吧。
另外,说明两点:
i. RdlProject对报表规范做了一些扩充。我会抽空整理一下,补充在文后。
ii. RDLS规范也有个更新,RdlProject还没更新到对新规范的支持,虽然变化很小,但可能还是会影响到您的工作,所以在您使用RdlProject之前,最好还是了解一下。
RdlProject的源代码包括的主要项目:
RdlEngine:上面提到过了,是最核心的模块。Rdl文件的解析、公式的计算、样式、输出多种格式等都是由其提供的。
RdlDesktop:一个小巧的使用浏览器访问的桌面报表服务器。
RdlAsp:B/S项目可以使用这个来提供报表功能。
RdlDesigner:所见既所得的Windows报表设计器。(要是有一个Web方式的报表生成向导就更好了)
RdlViewer:.NET控件
RdlReader:报表阅读器