我正在用SQL server在vb.net中开发一个工资单项目,在这个项目中,我使用希捷水晶报表来记录报表,如果我在单个报表中使用超过10个子报表,这是否会影响我的项目效率或将花费更多的时间
发布于 2010-11-30 23:15:03
是的,这将花费更多的时间,因为您实际上可能正在运行10个不同的查询,并且报告工具可能必须链接所有这些查询的结果。
我已经写了3或4个子报告,但通常更多是不必要的。我会试着为这么多的子报表想一种变通的办法--通常是有办法的。(例如,使用列作为显示/隐藏或分组数据的切换。)
发布于 2010-12-01 03:23:52
实际上,很难说你的子报表是如何影响性能的。我设计过报表,使用子报表可以让整个报表运行得更快--有时候,要构建比许多更简单的子报表查询更高效的底层查询并不那么容易。
一个例子是A-B-A-C型报表,其中有许多从主表/查询(A)到子表/查询(B,C)的一对多关系,并且用户希望一次看到所有BC类型的数据(而不是按需)。对于单个查询,需要处理A*B*C行(并实现显示-隐藏部分的复杂逻辑),使用子报表可以处理A*(B+C)要处理和显示的总行。
但是,当您使用子报表仅显示一些总值时,通常将其聚合在主视图中会更有效-在服务器上和传输数据时都需要更少的时间。与查询执行时间相比,Crystal Reports格式化时间通常可以忽略不计。
与往常一样,最佳策略取决于特定的报告需求。
https://stackoverflow.com/questions/4314400
复制相似问题