【问题标题】:IsNothing() in VS2012 SSRS report causes an errorVS2012 SSRS 报告中的 IsNothing() 导致错误
【发布时间】:2013-08-16 15:48:11
【问题描述】:

我正在 VS 2012(ASP.net,C#)中制作 RDLC 报告并尝试显示是/否字段。我们的测试数据在该字段中有空值,我想将其显示为否。根据我发现的所有研究(包括 SO),此代码是:

=iif( IsNothing(Fields!prior_supplier.Value), "No", iif(Fields!prior_supplier.Value = "Y", "Yes", "No"))

(这将在报告中显示为:“我们以前使用过这个供应商吗?没有”。)

但是,IsNothing() 调用的内容不断出错。我在表达式生成器中有“编译失败”指示符,报告中的结果是#Error

如何修复 IsNothing() 表达式?我误会了什么?

ETA:也许这与表达式在 VB 中运行并且不会短路有关?

ETA2:我将字段prior_supplier 放到一个文本框中只是为了确保。结果表达式=Fields!prior_dod_supplier.Value 也无法编译。 :困惑:

【问题讨论】:

  • 您是否要在同一个文件中混合使用 VB.NET 和 C#?
  • 我不知道。此表达式位于 RDLC 文件中。
  • 以前没有使用过 SSRS,但是 RDLC 文件的其余部分使用什么语言? C# 中的上述内容相当于=Fields!prior_supplier.Value == null ? "No" : Fields!prior_supplier.Value == "Y" ? "Yes" : "No";
  • 如果您使用的是 2010 或更高版本,您还可以使用 VB If operator,它确实提供短路功能 - 类似于:=If(IsNothing(Fields!prior_supplier.Value), "No", If(Fields!prior_supplier.Value = "Y", "Yes", "No"))跨度>
  • 您是否使用向导获取报表数据?您是否使用查询、表或过程来获取填充 tablix 的“数据”?

标签: c# asp.net sql reporting-services rdlc


【解决方案1】:

我将视图中的字段更改为表达式

ISNULL(prior_supplier, 'N') AS prior_supplier

然后在报表中使用表达式

=iif(Fields!prior_supplier.Value = "Y", "Yes", "No")

这解决了#Error 问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多