【问题标题】:Applying different Visibility to each Tablix对每个 Tablix 应用不同的可见性
【发布时间】:2015-11-06 04:50:25
【问题描述】:

我有一份报告显示已注销的工时和美元。此报告的工作分为 NRB(不计费)和非 NRB(计费)。每个作业类型在报告中都有自己的 Tablix,我想根据一个位值填充每个 Tablix - IsNRB。

所有“0”IsNRB 行都应填充顶部 Tablix,“1”值应填充底部 Tablix。在大多数情况下,这是有效的。然而,正在发生的事情是,一些程序或客户端将同时具有 NRB 和非 NRB 作业,并且似乎每个 Tablix 在报表数据集的行中工作时,它将捕获并保留 IsNRB 的第一个值并将其应用于整个报告。

我在许多地方/方式尝试过类似于以下的逻辑:

=IIF(Fields!IsNRB.Value = False, Fields!CustProgram.Value, NOTHING)

报告的分组层次结构如下所示:

ProgramGroup
    ClientGroup
        Job/SubJobGroup
            Detail is here

我尝试在 TablixVisibility、GroupVisibility、RowVisibility 以及字段表达式本身中设置类似于上述的评估表达式。该行为似乎是一致的,因为该程序、客户或作业的第一行设置了整个报告的 IsNRB 值。

作为一个具体的例子,第一个程序“Cascadia”有三行 IsNRB = 1/True 和两行 IsNRB = 0/False,而后两行数据总是被误用,因为 1/True 的值正在覆盖 0/False 值的行。

什么是允许第一个 Tablix 接受并显示 IsNRB = 0 的数据行和第二个 Tablix 显示值为 1 的数据行的正确方法?我是否需要放弃 IsNRB 位数据类型,只为每个 Tablix 提供不同的数据集?这似乎是处理报告的一种笨拙方式。

【问题讨论】:

    标签: reporting-services ssrs-tablix


    【解决方案1】:

    在 IsNRB 字段上过滤每个表。右键单击 tablix 并选择 Tablix 属性。选择过滤器,然后选择您要过滤的字段 (IsNRB) 以及您希望它为 (1) 的值。

    这会将字段为 1 的所有记录放在一个表中,而将 0 放在另一个表中

    【讨论】:

    • 沙赞!!!那行得通。所以,与其设置 Visibility,解决方案是根据 IsNRB 的位值为整个 Tablix 设置一个过滤器。美丽的解决方案!谢谢乔纳斯。
    猜你喜欢
    • 2018-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-26
    • 1970-01-01
    相关资源
    最近更新 更多