【发布时间】:2011-12-29 23:14:41
【问题描述】:
我对 Crystal 报表比较陌生,并且使用 Crystal Reports 2008 来满足我们的报表需求。
我们要求来自单一来源的数据需要以 3 种不同的方式呈现在报告中。
因此,按照我的设计方式,有 3 个不同的子报表,其数据源设置为来自数据库的相同过程,以及一个包含这些子报表的容器报表。根据用户选择单独或分组查看报告,我会抑制/不抑制容器报告中的子报告。
报告可以根据当前设计的要求完美运行。但是当用户选择同时查看所有 3 种演示模式时,即调用所有 3 个子报告时,我对报告的性能感到困扰。显而易见的原因是子报告单独从数据库中获取相同的数据,而不是一次性获取并在子报告中重复使用。我认为应该有一种方法可以在子报告之间共享来自源的数据集,而无需再次访问数据库。但是我还没有在 Crystal Reports 中找到一种方法来做到这一点。有没有办法我们可以明显地实现这一点以提高性能?
注意事项:
1) 我选择了 3 个单独的子报表的设计来呈现相同的数据 因为需求希望它是模块化的。但我知道, 通常不建议在使用的数据为 一样。
2) 每个子报表中的数据表示相当复杂。每个 子报告使用至少 4 到 5 个组部分,它们不是 在子报告中相同。所以基本上我不知道有什么办法 用多个组部分实现不同的演示 一个单独的报告而不使用子报告来解决这个问题 性能问题。
3) 我几乎优化了 DB 过程中的所有内容,它是 不是痛点。
我一直在使用 Google 环顾四周,据我了解,我正在寻找类似 Crystal Reports 中 SSRS 的数据区域的功能。我可能对此有误,因为我不了解 SSRS,也不了解我所读到的数据区域。
总而言之,Crystal Reports 是否支持我想象的功能,比如从主容器报表中的数据库中获取数据并在子报表中传递/使用它而无需再次访问数据库?
【问题讨论】:
标签: crystal-reports crystal-reports-2008 subreport