2016-06-07 89 views
1

我需要将多个类似的存储过程的结果合并到一个Tablix中。如何在类似于Excel公式的SSRS报告中创建表达式?

我使用多个存储过程返回相同的数据,但对于不同的单位。因此,在一个“细胞”(我不知道这是否是在Tablix的数据字段正确的术语),我有一个表达,像这样:

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

...这显示有条件时的数据值“Week”字段的值是“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,"") 

+1

如果我是正确的,你需要加入两个数据集上ItemCode。 'Lookup(Fields!ItemCodeFromDataSet1.Value,Fields!ItemCodeFromDataSet2,Fields!PriceFromDataset2,“DataSet2”)'。以前的表达式会为您提供数据集1中ItemCode的Price from Datat 2,它等于数据集2中的itemcode。数据集和预期Tablix的详细示例可能很有用。 –

回答

2

如果您正在使用的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"),"")