【问题标题】:use expression to dynamically decide which subreport to open使用表达式动态决定打开哪个子报表
【发布时间】:2014-05-06 10:48:35
【问题描述】:

我有一份报告,其中包含几页图表、表格等。 该报告供总是希望对报告进行小的修改的不同客户使用。目前,如果客户希望在第 5 页上进行更改,则整个报告会通过修改重新创建,即使唯一的更改是在第 5 页上的图表中。

更重要的是,有些客户不想看到第 3 页,而另一些客户希望看到第 6 页的自定义表格。 我的老板希望报告是模块化的,这样他就可以根据客户的需求简单地打开/关闭零件。目前,报告中的更改意味着先开发后部署。

我的想法是创建一个包含多个子报表的报表。每个图表/表格都是一个子报表,因此如果需要更改,我们只需要更改特定的子报表即可。

理想情况下,数据集应附加到主报告,详细说明要显示的子报告:对于客户 X,我们将显示 SubreportX,客户 Y 将看到 subreportY。

我知道这可以通过将所有可能的子报表添加到主报表并切换每个子报表的可见性来完成,但更优雅的是动态决定要显示哪个子报表。在钻取报表上,这可以通过使用表达式来确定要打开的报表;

例如IIF(customer = X, "subreportX", "SubreportY")

但是子报表可以做到这一点吗?

明确一点:我正在寻找一种方法来在打开报表时动态决定要显示哪些子报表。类似于使用表达式来获取所需子报表的名称。

我一直在寻找这个(在 VS2012 中并通过 Google),但我似乎无法找到明确的答案,是否可以决定在打开报告时显示哪些子报告......

我发现以下内容似乎只是在使用切换可见性:

Dynamic subreport in SSRS 2008

我非常希望得到建议、答案甚至是大方向。感谢您与我一起思考!

【问题讨论】:

    标签: reporting-services sql-server-2012 subreport ssrs-2012 ssdt-bi


    【解决方案1】:

    我将创建一个数据集,该数据集返回所选客户的有效子报表列表。我会将所有可能的子报告添加到主报告中。我将使用查找表达式设置每个子报表的 Visibility 属性,以该数据集为目标。

    【讨论】:

    • 经过大量搜索后,我必须得出结论,在运行时无法确定报告的名称。所以我正在使用你的建议。只需将所有报告(+可能的变体)放在主报告上,然后使用数据集来切换可见性。另外,我会确保不可见的报告没有任何数据,否则性能会很糟糕:s
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-12
    • 2015-05-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多