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

标签 sql-server reporting-services

是否可以以“在线”方式在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/

相关文章:

sql-server - 我可以使用部署后脚本更改现有表架构吗?

reporting-services - SSRS 2008 图表 - 数据字段聚合?

reporting-services - 从开始点到下一个逗号报告生成器的子字符串

sql-server - 在不丢失任何数据的情况下更新数据库结构的最佳实践

sql-server - 如何将存储过程转换为 View ?

excel - 如何避免excel,SSRS报告中较粗的边框宽度?

reporting-services - 问题在 SSRS 报告中重新部署更新的默认参数

sql-server - SSRS 电子邮件订阅配置

sql-server - 如何将 SQL Server Express 实例从 2012 升级到 2014

sql - SQL Server 2005 中的 "select * from table"与 "select colA, colB, etc. from table"有趣的行为