水晶报表开发中的一点建议

1:如果你是嵌入程序开发,而不是使用CR Enterprise 或 BOE Infoview的话,建议你使用自定义字段方式
而不是直接连数据库
可参考以下的几篇文章

创建不受数据库限制的报表
VB版本
http://www.cnblogs.com/babyt/archive/2005/03/11/116878.html
http://www.cnblogs.com/babyt/archive/2005/03/11/116880.html

VB.Net(2003)版本
http://www.cnblogs.com/babyt/archive/2005/03/13/118097.html
http://www.cnblogs.com/babyt/archive/2005/03/13/118098.html

C#(2005)版本
http://www.cnblogs.com/babyt/archive/2008/01/03/1024941.html

使用该方法的好处是便于控制,无论是数据集的规整或者是各种参数条件的获取,都可从程序界面接管控制
通过SQL语句拼接或者参数隐式传递到报表

对于如何进行参数交互,我这里说一下
首先参数大致可分为两类,
一是页面呈现类的,比如说输入个制表人啊(这个可以使用水晶报表自带参数),或者参数控制节的显示与隐藏啦(可实现按权限显示内容)
另一类就是作为SQL过滤条件的
这两种参数在制作模板的过程时如何应用我想就不用多说了,说一下如何交互这个部分

也可以分为两种情况
一是水晶报表直接做的,CR11之后的版本显示为以下样式

不过一般与程序整体风格一般都不怎么搭调,呵呵

另外一种是程序直接接管的,就是在程序Form中由用户输入
对于SQL过滤类的,可以传给水晶报表,如果你采取前面所提到的报表实现方法,那么这一层也可以直接通过SQL语句的拼接
对于程序中参数的传递,可以参考
http://www.cnblogs.com/babyt/archive/2005/03/11/116880.html
中的代码,当然可能因为水晶版本的不同,提供的方法也会有差异

2:如果使用上面的方法,水晶报表的一些比较高级的功能就用不上了。
我想说的是,对于10万级别以上的明细表,如果再关联其他的表,会产生相当多的数据
(可能更不幸的是,为了显示格式的需要,你还要使用外链接)
这样的话,除了建基本的索引外,我建议使用中间汇总表,如日汇总,月汇总,年度汇总
以空间换效率(这些汇总表甚至可以部署在不同的数据库、服务器上)。
指定数据库的Job,每天数据库空闲时可安排自动作业
使用中间表的好处是,可以排除一些大数据报表的操作影响整体性能


3:有了基础数据,那么水晶报表就可以来呈现了,同样的数据,既可以呈现成数据列表,也可以呈现为丰富的图表
两者不是互斥的,这是个基本概念,但是还是说一下吧(因为...)

4:在保存报表时,请注意

如果你不是为了交换数据,而是嵌在程序中的,请务必去掉此选项。防止影响报表的实际展现。

5:有时候,有些报表用水晶报表实现起来很困难。
也别老较劲,尽量跟用户协商一下,如果一定要用水晶报表来实现的化,就把报表改造一下,呵呵

posted @ 2008-01-12 20:42  阿泰  阅读(2844)  评论(3编辑  收藏  举报