是否可以以“在线”方式在rdlc
报告表达式中创建变量?
例如,我有以下表达式:
=IIf(First(Fields!BillingAccount_billtostateprovince.Value, "Invoice") <> "",
First(Fields!BillingAccount_billtostateprovince.Value, "Invoice") + " ",
"")
我想我正在评估以下表达式 First(Fields!BillingAccount_billtostateprovince.Value, "Invoice")
两次。我不喜欢它,而且它看起来很难看...我更愿意在当前表达式的范围内创建变量并使用它。
可能吗?
最佳答案
正如用户3056839所说,欢迎来到SSRS!
无论如何,你想要的都是不可能的,因为你现在写的不是脚本,而只是一个表达式。它是返回一个值的单个语句,因此您不能声明变量、使用循环或脚本中的任何内容。
你必须准确地使用你所写的内容。
而且,像您这样的 IIF 表达式并不罕见。我经常看到的是 IFF(IS NOT NULL, , 'N/A')。该字段实际上可能会被评估两次,但您无能为力。这很丑陋,但这是你能做到这一点的唯一方法。
想想 CASE WHEN 子句:
SELECT
CASE WHEN MyField IS NOT NULL THEN
MyField ELSE 0
END
您正在对该字段进行两次评估,但您无能为力:)
关于sql-server - 在 rdlc 表达式中设置局部变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22612190/