【问题标题】:Filter data on Tablix based on value from another Dataset in Report Server根据报表服务器中另一个数据集的值过滤 Tablix 上的数据
【发布时间】:2018-11-23 21:02:40
【问题描述】:

在我的报告中,我有两个数据集。其中一个返回汽车名称,另一个返回汽车信息。

所以,为了说明真实数据有点复杂,第一个数据集有

[Car Name] [Row]
Honda       1
Toyota      2
BMW         3

第二个数据集是

[Car Name] [Color] [Weight]
Honda      Blue    1500kg
Toyota     Red     1650kg

我需要提一下,两个 DataSet 都是动态的,这意味着它们在所有列中都有不同的输出。我要找的最终结果是这样的

[Car Name]

[Color]
[Weight]
...

此数据将包含在将要动态创建的几个矩形中。最终结果中的 [Car Name] 列是动态的,并连接到 First Data Set 中的 [Row] 列。因此,例如,从 DataSet1 获取数据的第一个矩形的值具有表达式

=First(IIf(Fields!Row.Value = 1, Fields!CarName.Value, 0),"DataSet1")

由于此数据是动态的,因此我需要仅为来自 DataSet1 的动态 [汽车名称] 显示 [颜色] 和 [重量] 的以下数据。如何过滤 DataSet2 以仅显示动态设置的 [汽车名称]?我尝试在 Tablix 中使用过滤器,但我不能使用 ReportItems!TextBoxXX.Value 例如。

我无法在 SQL 级别解决这个问题。

【问题讨论】:

    标签: reporting-services ssrs-tablix


    【解决方案1】:

    以下表达式为两个数据集中的相同汽车名称提供第二个数据集的颜色。我不确定你想做什么,但这可能会对你有所帮助:

    'For the car color
    =Lookup(Fields!CarNameDataset1.Value, Fields!CarNameDataset2.Value, Fields!CarColorDataset2.Value, "Dataset2")
    

    您也可以将其放入过滤器表达式中。

    【讨论】:

    • 这是我考虑过的,但问题是,DataSet1 也被过滤了,所以我需要 DataSet2 中的特定值,而不是所有与 Dataset1 中的 CarName 匹配的值。因此,对于第一个“矩形”,我从第一个 DataSet(有时可能是 Honda,可能是 Toyota)过滤第一行,而对于颜色和重量,我从第二个 DataSet2 中获取该数据。我只需要匹配 dataset1 中的 Car 类型,仅匹配第一个 DataSet 中 Row1 上的 Car。
    猜你喜欢
    • 2019-01-17
    • 2019-07-08
    • 2019-06-12
    • 1970-01-01
    • 1970-01-01
    • 2018-11-12
    • 2018-10-25
    • 2021-08-22
    • 1970-01-01
    相关资源
    最近更新 更多