【问题标题】:Control Column Visibility using DataSet values使用数据集值控制列可见性
【发布时间】:2012-10-13 00:43:09
【问题描述】:

我的客户希望能够根据参数 (ReportType) 在报告中显示/隐藏列。报告列是静态的,它们只会控制隐藏/显示哪些列,从而创建不同的“视图”。目前只有 2 个视图,但我们即将添加更多视图。

目前列的可见性由简单的表达式控制:=Parameters!ReportType.Value = "SOMEVALUE"

并且只有 1 种报告类型隐藏了列,所以这个表达式很好。

现在我们正在进入一个列可能隐藏在多个 ReportTypes 中的情况,我想避免进入:IF 报告类型 = VAL1 或 VAL2 或 VAL3 THEN HIDE,因为这将很难看到任何给定 ReportType 应该显示哪些列(因为所有逻辑都在每个列可见性表达式中)

我找到了一个帖子并使用了它的基本元素: http://sql-bi-dev.blogspot.co.uk/2010/10/displaying-dynamic-columns-in-ssrs.html

我想做的是定义一个数据集,比如:

SELECT * FROM
(
select 'Rpt Type1' ReportType, 'Units' ColumnName UNION
select 'Rpt Type1' ReportType, 'Price' ColumnName UNION
select 'Rpt Type2' ReportType, 'Units' ColumnName
) ReportColumns
WHERE ReportType = @ReportType

然后在 Column Visibility 表达式中检查数据集中是否存在列名。这样,报表类型的可见列在一个地方定义,易于管理/维护。

在我链接的帖子中,他让用户在参数中选择列名。我想根据所选的 ReportType 参数在我的数据集中查找名称。

我坚持将列名放入参数中,然后在列可见性表达式中使用它。任何帮助都会非常感激:)

【问题讨论】:

    标签: reporting-services ssrs-2008


    【解决方案1】:

    Doh,我几乎在那里。

    我创建了一个参数并将其默认值设置为“从查询中获取”,并选择了我的数据集和 ColumnName 字段...完成了!

    然后我只是使用我正在关注的文章中的代码为每一列编写可见性表达式。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-07-27
      • 2019-11-09
      • 2014-08-06
      • 2012-07-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多