【问题标题】:How can I create an expression in an SSRS report similar to an Excel formula?如何在 SSRS 报告中创建类似于 Excel 公式的表达式?
【发布时间】:2016-06-07 23:19:15
【问题描述】:

我需要将多个类似存储过程的结果合并到一个 Tablix 中。

我正在使用多个存储过程,它们返回相同的数据,但用于不同的单元。所以在一个“单元格”中(我不知道这是否是 Tablix 中数据字段的正确术语)我有一个这样的表达式:

=IIF((Fields!Week.Value="WK1"),Fields!Price.Value,"")

...当“Week”字段的值为“WK1”且 Unit 值为“BARNEY”的存储过程是数据集时,有条件地显示数据。

之后(在同一行,在 Tablix 右侧的列中)我需要显示来自不同存储过程的相同数据,其中使用的 Unit 值为“RUBBLE”。我需要表达式从第一个存储过程中引用 Tablix 中的现有值 (ItemCode),以便行上的两个单元格都显示相同 ItemCode(但不同单位)的值。

该单元格/字段是指向从存储过程返回的 ItemCode 值的简单指针:

=Fields!ItemCode.Value

如何使用公式显示初始存储过程在该行上显示数据的 ItemCode 的数据。像这样的:

=IIF((Fields!Week.Value="WK1" AND Fields.ItemCode=[Existing Item Code value in this row]),Fields!Price.Value,"")

?

IOW,我需要什么来代替“此行中的现有项目代码值”来完成这项工作?会不会是这样的:

=IIF((Fields!Week.Value="WK1" AND Fields.ItemCode=TextboxItemCodeData.Value),Fields!Price.Value,"")

?

【问题讨论】:

  • 如果我是正确的,您需要在 ItemCode 上加入两个数据集。 Lookup(Fields!ItemCodeFromDataSet1.Value,Fields!ItemCodeFromDataSet2, Fields!PriceFromDataset2,"DataSet2")。前面的表达式将为您提供数据集 2 中数据集 1 中的项目代码的价格,该价格等于数据集 2 中的项目代码。数据集和预期 tablix 的详细示例可能很有用。

标签: reporting-services formula rdl


【解决方案1】:

如果您正在使用的 tablix 的主要数据集是 BARNEY,那么这是您应该从 RUBBLE 数据集中获取数据的基本查找表达式。

=Lookup(Fields!ItemCode.Value, Fields!ItemCode.Value, Fields!Price.Value, "RUBBLE")

在这种情况下,当 BARNEY 和 RUBBLE 数据集之间的 ItemCode 值匹配时,将返回价格。

这个表达式可以帮助您隐藏或显示辅助数据集中的值。

=IIf(Lookup(Fields!ItemCode.Value, Fields!ItemCode.Value, Fields!Week.Value, "RUBBLE")="WK1", Lookup(Fields!ItemCode.Value, Fields!ItemCode.Value, Fields!Price.Value, "RUBBLE"), "")

IIf 的第一部分是检查 RUBBLE 数据集中的 Week 字段。如果值为 WK1,则显示来自 RUBBLE 数据集的价格;否则什么都没有。

如果您不必检查 RUBBLE 数据中的周值,这可能会起作用,而只需检查 BARNEY 数据集即可。

=IIf((Fields!Week.Value="WK1"),Lookup(Fields!ItemCode.Value, Fields!ItemCode.Value, Fields!Price.Value, "RUBBLE"),"")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多