【问题标题】:Hide (Or Filter) some Columns of Columns Group隐藏(或过滤)列组的某些列
【发布时间】:2013-04-16 14:53:45
【问题描述】:

我正在使用 Report Builder 3 矩阵并指定行组和列组。基本上它是一个主细节类型的情况,在我的例子中,实体是继电器和联系人。每个继电器有多个触点。下面给出了两者的一些重要属性。

接力:
名称(简单字段),
类型(枚举字段),
联系人(联系人实体的导航字段。一对多)

联系人:
显示名称(简单字段)
AllotedToSheet(简单字段)。

这是报告的外观。列是使用列分组从联系人表的“显示名称”字段生成的。

现在问题来了。我在上面的报告中标记了 2 个区域。之所以如此,是因为我有两种类型的继电器(比如现在)。联系人表的“显示名称”字段对于特定的继电器类型是相同的,因此我在报告中得到两组列(如标记)。基于中继类型,我只想为整个报告生成或显示一组列,因为另一组对于中继类型没有意义,并且每个中继类型都有自己生成的报告 (rdl)。那么我该如何实现呢。

总而言之,对于使用列组生成的列,我如何根据某些数据库字段值条件过滤掉或隐藏报表中的某些列

编辑:报表设计器视图

【问题讨论】:

  • 我有几个问题。你的 SQL 是什么,因为如果你不希望这些列不应该通过?此报告是否仅适用于一种继电器类型?
  • 生成的SQL查询只对相关表的列进行JOIN。我在 DATASET 查询中为 Relay_Type 添加了 WHERE 子句,现在只生成相关列。所以现在,我不必添加可见性表达式来隐藏某些列。无论如何,生成列的可见性不会隐藏该列,而是将其变成该列的空白区域,因此对我没有任何用处。我遇到了几个博客,我可以在其中确认这一点。因此,您对应该在 SQL 本身中处理的评论是绝对正确的。我会将您的评论标记为有用

标签: reporting-services reportbuilder3.0


【解决方案1】:

您是否尝试将 列可见性 设置为基于表达式?

将表达式设置为:

=IIf(Fields!RelayType.Value = "Relay1", false, true)

根据不同继电器/列组合的需要进行更新。

【讨论】:

  • 实际上,我认为这是不可能的。列是根据“列组”动态生成的,我无法单独访问报表设计中生成的列。如果您看到我在问题中发布的图像,前三列是唯一可以真正设置可见性等属性的列。 “Relays_Name”列之外的所有列都是根据 Contacts 表数据动态生成的。
  • 请查看我在上面的原始问题中添加的设计器视图图像。这将使我的问题更清楚。
  • @Nirvan 我已经有一段时间没有使用动态列了,但我认为动态创建它们并不重要。您的报表生成器上有一个列,只需将 Ian 的解决方案应用于该列,它将对该组中的所有列有效。你测试了吗?
  • 是的,我实际上并不认为我可以将它们作为过滤器或可见性应用到组中。好点,我试试看。
  • @eestein,我尝试了可见性表达式,但报告服务并没有完全隐藏列,而是插入空格以匹配列值。报告标题仍然出现。如果此评论不清楚,我可以发布新生成的报告图片,请告诉我。
【解决方案2】:

我认为最好通过 SQL 中的连接来链接表。这将删除数据集中填充的额外列。

【讨论】:

  • 是的,我认为编写 SQL 而不是生成它可能是一个不错的选择。实际上,我有一些 IBM MAINFRAME 经验,我们经常使用原始 SQL,但我仍然对它有印象。但是,现在这个对象时代,我怀疑开发人员是否有扎实的 SQL 基础。因此,对于某些人来说,这并不是一个选择。谢谢
  • 明白了,在 sql 中执行此操作的额外好处是性能,因为报告必须检索所有数据,然后剪掉一些数据,它们会为您显示并根据需要隐藏列。跨度>
【解决方案3】:

受@glh 建议直接修改DataSet 查询的启发,我只能生成与特定Relay_Type 相关的记录(在我的例子中为列)。在查询中,我只需要添加一个 SQL WHERE 子句,该子句将加载仅特定 Relay_Type 的详细信息记录。这样,与特定 Relay_Type 相关的唯一列是由 DataSet 中的 Query 生成的。因此无需更改可见性表达式来隐藏列。事实上,可见性表达式并没有隐藏列,它只是“将其删除”在报告中占用空间。所以修改 SQL 对我来说似乎是更好的选择。

涅槃。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    • 2017-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多