SSRS 2005 DataSet在表达式中的条件请求

时间:2013-08-21 15:21:37

标签: reporting-services reportingservices-2005

我对SSRS(BIDS)2005中的限制似乎有困难,升级到新版本对我来说还不是一个选择。

我有一个DataSet,它返回员工的一堆工资单扣留数据,我想根据我在字段“A”中找到的字段获得字段“B”的值。具体来说,我希望根据字段“Code”为“OptlLife”获得一美元金额。

所以,如果字段A =“OptLife”给我字段B的美元值。很简单,对吧?

我最接近的是:

=IIF(First(Fields!Code.Value, "Withholdings") = "OptLife", First(Fields!AmtPct.Value, "Withholdings"), " ")

杀死我的是“第一”指标。我不想要“第一”或“最后”或“最大”或“总和”。我希望任何数据行都具有值OptLife。如果我删除该指标,我会收到语法错误。我该如何解决这个问题?

我真正想要的是“选择来自WithholdingsDataSet的AmtPct,其中Code =”OptLife“,但它需要是一个SSRS表达式。

编辑每个问题:

所以,我有一个来自DataSet的结果集,看起来像这样。

Employee    Code        Method  AmtPct
1121        401K        A       400
1121        Roth        null    null
1121        FSAChild    A       96.15
1121        FSAHealth   A       192.31
1121        OptLife     A       28.84

在我的报告中,我有一个格式化为Currency的文本字段,需要一个表达式将28.84拉入该字段。因为我有多个与此报告关联的DataSet,所以我需要指定值来自哪个DataSet,因此(Fields!Code.Value,“Withholdings”)但是必须在括号内加上一些括号。我放在那里没有给我我需要的价值。

一旦我确定了这一点,同样的方法将用于区分Roth和传统的401K,以及FSA医疗保健的FSA儿童保育。

1 个答案:

答案 0 :(得分:1)

你应该可以使用类似的东西:

=Sum(IIF(Fields!Code.Value = "OptLife", Fields!AmtPct.Value, Nothing), "Withholdings")

如您所见,由于您在文本框中引用数据,因此需要使用聚合表达式。

上面的表达式会将Sum应用于数据集,但只考虑OptLife行,这似乎就是您所追求的。假设您在数据集中只有一个OptLife代码,那么您只会考虑聚合中的一行,我认为这是必需的。