在rdlc表达式中设置局部变量

时间:2014-03-24 14:25:58

标签: sql-server reporting-services

是否有可能以“在线”的方式以某种方式在rdlc报表表达式中创建变量?

例如,我有以下表达式:

=IIf(First(Fields!BillingAccount_billtostateprovince.Value, "Invoice") <> "", 
First(Fields!BillingAccount_billtostateprovince.Value, "Invoice") + " ", 
"")

我想我正在评估以下表达式First(Fields!BillingAccount_billtostateprovince.Value, "Invoice")两次。我不喜欢它,它看起来很难看......我宁愿在当前表达式的范围内创建变量并使用它。

有可能吗?

2 个答案:

答案 0 :(得分:3)

正如用户3056839所说,欢迎使用SSRS!

无论如何,你想要的是不可能的,因为你现在所写的不是一个剧本,而是一个表达。它是一个返回值的单个语句,因此您不能声明变量,使用循环或任何属于脚本的内容。

你必须准确使用你所写的内容。

同样,看到像你这样的IIF表达并不罕见。我经常看到的是IFF(IS NOT NULL,'N / A')。该字段实际上可以被评估两次,但是你无能为力。这很难看,但这是你能做到的唯一方法。

想想CASE WHEN条款:

SELECT 
CASE WHEN MyField IS NOT NULL THEN
   MyField ELSE 0
END

您正在评估该字段两次,但您无能为力:)

答案 1 :(得分:0)

可以在SQL Server 2008及更高版本中执行此操作。您可以创建一个Report Variable,可以通过报告访问该NSNumber

Creating Report variable

参考:sqlchick.com