【问题标题】:IsNothing not working as expected in SSRS expressionIsNothing 在 SSRS 表达式中没有按预期工作
【发布时间】:2019-03-12 18:39:19
【问题描述】:

我有一个文本框,其中包含 2 个带有名称的字段,但第二个字段可以为空。如果有 2 个名称,我希望它显示如下:

[name1], [name2]

如果有 1 个名字,我想这样显示:

[name1]

我试过这两种表达方式:

=IIF(Fields!name2.Value Is Nothing, "", (", " + Fields!name2.Value))

=IIF(IsNothing(Fields!Joint_Name.Value), "", (", " + Fields!Joint_Name.Value))

但是,在这两种情况下,如果第二个名称为空,则会显示:

[name1],

任何想法如何摆脱那个逗号?

【问题讨论】:

  • 字段值是NULL还是空字符串? IsNothing() 适用于 NULL,但不捕获空白/空字符串值。试试IIF(IsNothing(Fields!Joint_Name.Value) OR Fields!Joint_Name.Value = "", ...
  • 要扩展汉诺威的评论,您可能还想TRIM 该字段以防有任何空格。 ...OR Trim(Fields!Joint_Name.Value) = "",...
  • 我经常使用LEN(TRIM(Fields!myField.Value))=0 之类的东西来测试“空值”的空白。技术上并不完美,但简洁且适合我。

标签: reporting-services sql-server-2012 ssrs-2016


【解决方案1】:

数据集中的 NULL 通常以“”形式出现。

=IIF(Fields!name2.Value = "", "", (", " + Fields!name2.Value))

我始终建议将您的字段转换为您打算使用的数据类型。很多时候,这些值以意外的数据类型出现并导致脚本错误。

=IIF(CSTR(Fields!name2.Value) = "", "", (", " + CSTR(Fields!name2.Value)))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-04
    • 1970-01-01
    • 2012-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多