shy*_*kov 5 sql-server reporting-services
是否有可能以rdlc"在线"方式以某种方式在报表表达式中创建变量?
例如,我有以下表达式:
=IIf(First(Fields!BillingAccount_billtostateprovince.Value, "Invoice") <> "",
First(Fields!BillingAccount_billtostateprovince.Value, "Invoice") + " ",
"")
Run Code Online (Sandbox Code Playgroud)
我想我正在评估First(Fields!BillingAccount_billtostateprovince.Value, "Invoice")两次表达式.我不喜欢它,它看起来很难看......我宁愿在当前表达式的范围内创建变量并使用它.
可能吗?
小智 3
正如用户3056839所说,欢迎来到SSRS!
无论如何,你想要的东西是不可能的,因为你现在写的不是脚本,而只是一个表达式。它是返回一个值的单个语句,因此您不能声明变量、使用循环或脚本中的任何内容。
你必须准确地使用你所写的内容。
而且像您这样的 IIF 表达式并不罕见。我经常看到的是 IFF(IS NOT NULL, , 'N/A')。该字段实际上可能会被评估两次,但您无能为力。这很丑陋,但这是你能做到的唯一方法。
想想 CASE WHEN 子句:
SELECT
CASE WHEN MyField IS NOT NULL THEN
MyField ELSE 0
END
Run Code Online (Sandbox Code Playgroud)
您正在对该字段进行两次评估,但您无能为力:)