【问题标题】:Using 'like' in ssrs expressions在 ssrs 表达式中使用 'like'
【发布时间】:2012-01-25 20:32:11
【问题描述】:

当值中包含“截止日期”一词时,我试图突出显示一个字段。我正在尝试使用表达式:

=IIf(Fields!Notes.Value like "%deadline%","Yellow","Transparent")

在 BackgroundColor 属性中。

它没有突出显示该字段(没有改变背景颜色)。 'Notes' 字段是文本数据类型,如果有区别,我正在使用 Report Builder 3.0。我做错了什么?

【问题讨论】:

    标签: sql reporting-services expression reportbuilder3.0 ssrs-expression


    【解决方案1】:

    就像在访问中:不是'%'而是'*':

    =Fields!Notes.Value Like "*deadline*"
    

    【讨论】:

    • 区分大小写。供参考。与小写一起使用 - =IIf(LCase(Fields!Notes.Value) Like "*deadline*","Yellow","Transparent")
    • 该表达式能否用于在字符串中查找短语,例如“带空格的文本”,还是仅适用于单个单词,例如“textwithoutspaces"?
    【解决方案2】:

    SSRS 确实使用 SQL 语法,而是使用 Visual Basic。

    使用如下内容:

    =IIf(Fields!Notes.Value.IndexOf("deadline") >= 0,"Yellow","Transparent")
    

    或 .Contains 而不是 .IndexOf

    =IIf(Fields!Notes.Value.ToLowerInvariant().Contains("deadline"),"Yellow","Transparent")
    

    【讨论】:

    • 我之前尝试过使用 Contains(),但缺少将其从文本转换为字符串的 tolower() 或 tolowerinvariant() 方法。谢谢:)
    • 将文本转换为字符串是什么意思?它们不是一回事吗?
    【解决方案3】:

    “InStr”对我有用:

    =IIF(InStr(Fields!Notes.Value,"deadline")>0, "Yellow", "Transparent") 
    

    请记住,比较值是区分大小写的,所以可以使用 UCASE:

    =IIF(InStr(UCASE(Fields!Notes.Value),"DEADLINE"))>0, "Yellow", "Transparent") 
    

    【讨论】:

      【解决方案4】:

      为什么不使用类似的东西:

      Fields!Notes.Value.Contains("deadline") 
      

      【讨论】:

        【解决方案5】:

        区分大小写。供参考。与小写一起使用 - =IIf(LCase(Fields!Notes.Value) Like "*deadline*","Yellow","Transparent")

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-01-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多