将返回的数据作为表达式执行

时间:2017-07-19 16:42:58

标签: reporting-services ssrs-2008 reportbuilder3.0

我有一个(共享)数据集,当通过

选择时
=First(Fields!TableColumn.Value, "DatasetName")

将返回类似于

的内容
=IIF(ROWNUMBER(NOTHING) MOD 2, "WHITE", "WHITESMOKE")

我正在尝试使用这个,以便我可以使用动态的,基于表达式的格式化(主要是行背景颜色)的多个报表,我可以通过修改数据集中的单个记录来更新。问题是报表生成器似乎不想执行此代码,而是将其解释为转义字符串。有没有办法指定这应该作为表达式执行?

我试过了:

=IIF(ROWNUMBER(NOTHING) MOD 2, "WHITE", "WHITESMOKE")
IIF(ROWNUMBER(NOTHING) MOD 2, "WHITE", "WHITESMOKE")
"=IIF(ROWNUMBER(NOTHING) MOD 2, "WHITE", "WHITESMOKE")" 
"IIF(ROWNUMBER(NOTHING) MOD 2, "WHITE", "WHITESMOKE")"

1 个答案:

答案 0 :(得分:2)

我不相信SSRS会将您的字段值解释为表达式,而是将其视为字符串。

然而,为了实现您的目标,将其分解为更小的部分。

名为" colors"的共享数据集:

SELECT 'WHITE' as color1, 'WHITESMOKE' as color

背景颜色的表达式:

=IIF(
   ROWNUMBER(NOTHING) MOD 2,
   First(Fields!Color1.Value, "Colors"), 
   First(Fields!Color2.Value, "Colors"))