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

Execute Returned Data as Expression

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

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

将 return 类似于

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

我正在尝试使用它,这样我就可以拥有多个具有动态的、基于表达式的格式(主要是行背景色)的报告,我可以通过修改数据集中的单个记录来更新这些报告。问题是 Report Builder 似乎不想执行此代码,而是将其解释为转义字符串。有什么方法可以指定它应该作为表达式执行吗?

我试过:

=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")"

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

但是,要实现您的目标,将其分解成更小的部分如何。

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

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

背景色表达式:

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