【问题标题】:Sharing dataset between parent report and sub-reports in Crystal reports 2008?在 Crystal 报表 2008 中的父报表和子报表之间共享数据集?
【发布时间】: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


    【解决方案1】:

    子报表与主报表一样绑定到数据源。主报告中的数据通常作为参数传递。据我所知,绑定过程中不会发生数据缓存。如果您通过自定义报告查看器显示报告,您可以将子报告的数据源绑定到与主报告相同的数据源,并为自己节省到服务器的额外往返行程。否则,根据您的描述,如果主报表和子报表的数据来自同一个存储过程,您可以创造性地使用条件格式来隐藏/显示组部分。

    【讨论】:

    • 感谢您的回复。我不明白您关于将子报表的数据源与主报表的相同数据源绑定的解释。这正是我所需要的。但不幸的是,从您的回复中不确定如何做到这一点。谢谢。如果您能指出我的方向,将会有所帮助。
    • 您需要使用java或.net水晶报表查看器,并通过代码绑定报表数据源。最终用户如何查看报告?
    • 我们只是从应用程序启动一个浏览器窗口,链接到带有参数的报告 URL。我们的应用中没有自定义报告查看器。
    • 然后您将访问每个报表和子报表的数据库。如果不重新设计报表并删除子报表,就无法使用报表服务器来解决这个问题。
    • 那么如何在没有数据集的情况下构建子关系?因为我们希望报表的创建者仍然能够将数据拖放到子报表中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-06
    相关资源
    最近更新 更多