【问题标题】:Execute Returned Data as Expression将返回的数据作为表达式执行
【发布时间】:2017-07-19 16:42:58
【问题描述】:

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

选择时选择
=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")"

【问题讨论】:

  • 我很好奇,是什么让您认为这些都可以按照您的描述进行?您是否使用过其他一些可以执行此操作的报告工具?
  • @R.Richards 好吧,目前如果它返回诸如“WHITE”或“GREEN”之类的内容,它将相应地为背景着色。似乎这将包括功能(因为它不是那么大的一步),并且我想象一个万人公司不希望每次都通过手动更改所有一万份报告的公式有人决定更新格式指南。话虽如此,我以前错了!据您所知,这是不受支持的功能吗?
  • 在您获得 10,000 个报告存储库之前尝试整理格式是一个具有前瞻性的想法。我曾经有过希望我过去能更多地执行这样的事情
  • 我同意 Daniel 的观点,试图超越这一点是一个很好的思路。但是,您在此处尝试的功能在 SSRS 中不受支持。我倾向于在 SQL 中通过返回带有颜色名称的bg 列来做这种事情(很像丹尼尔的回答)。您可以随心所欲地灵活处理,而无需稍后更改任何 RDL。

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


【解决方案1】:

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

但是,为了实现您想要做的事情,如何将其分解成更小的部分。

名为“colors”的共享数据集:

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

背景颜色表达式:

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

【讨论】:

  • 这是一个很好的解决方法,并且似乎是我能获得的最接近所需功能的方法。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-13
  • 2015-10-14
  • 2020-09-01
  • 2018-10-24
  • 1970-01-01
相关资源
最近更新 更多