我需要将多个类似的存储过程的结果合并到一个Tablix中。
我正在使用多个存储过程来返回相同的数据,但是对于不同的单位。所以在一个“单元格”中(我不知道这是否是Tablix中数据字段的正确术语)我有一个像这样的表达式:
=IIF((Fields!Week.Value="WK1"),Fields!Price.Value,"")
...当“周”字段的值为“WK1”并且单位值为“BARNEY”的存储过程为数据集时,有条件地显示数据。
之后(在同一行,在Tablix右侧的一列中)我需要显示来自不同存储过程的相同数据,其中使用的单位值是“RUBBLE”。我需要Expression从第一个存储过程引用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,"")
答案 0 :(得分:2)
如果您使用的Tablix的主数据集是BARNEY,那么这是您应该从RUBBLE数据集中获取数据的基本查找表达式。
=Lookup(Fields!ItemCode.Value, Fields!ItemCode.Value, Fields!Price.Value, "RUBBLE")
在这种情况下,当ItemCode值在BARNEY和RUBBLE数据集之间匹配时,将返回Price。
这个表达式可以帮助您隐藏或显示辅助数据集中的值。
=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数据集中的Price;否则没什么。
如果您不必检查RUBBLE数据中的Week值,那么这可能会有效,只需检入BARNEY数据集即可。
=IIf((Fields!Week.Value="WK1"),Lookup(Fields!ItemCode.Value, Fields!ItemCode.Value, Fields!Price.Value, "RUBBLE"),"")