【问题标题】:SSRS expression not working from tester tool for SQL Server 2008SSRS 表达式在 SQL Server 2008 的测试工具中不起作用
【发布时间】:2015-08-12 08:49:55
【问题描述】:

我有这样的表达:

 (""" & Join(Parameters!Projects.Value, """,""")  & """)

当我尝试使用“SQL Server 2008 的表达式测试器工具”对此进行评估时

缺少必需元素的一部分,例如括号。这有什么问题?

这是我的原始字符串(适用于报告):

=(IIf(Parameters!Projects.Count > 0, 
 "(project in (""" & 
    Join(Parameters!Projects.Value, """,""") 
 & """)", "(")
 &
  IIf(Parameters!Statuses.Count > 0,
 IIf(Parameters!Projects.Count > 0, " and ", "")
 &
 "status in ("'" & 
    Join(Parameters!Statuses.Value, "'",""")
 & """)", "")
  &
  IIf(Parameters!Issue_Types.Count > 0,
 IIf(Parameters!Projects.Count > 0 Or Parameters!Statuses.Count > 0, " and ", "") 
 &
 "issueType in ("'" &
    Join(Parameters!Issue_Types.Value, "'",""")
 & """))", ")")) & " or issueKey=""GRL-1"" order by Created asc"

我是这样改的:

=(IIf(Parameters!Projects.Count > 0, 
 "(project in ("'" & 
    Join(Parameters!Projects.Value, "'","'") 
 & "'")", "(")
  &
  IIf(Parameters!Statuses.Count > 0,
     IIf(Parameters!Projects.Count > 0, " and ", "")
     &
 "status in ("'" & 
    Join(Parameters!Statuses.Value, "'","'")
 & "'")", "")
  &
      IIf(Parameters!Issue_Types.Count > 0,
     IIf(Parameters!Projects.Count > 0 Or Parameters!Statuses.Count > 0, " and    ", "") 
 &
     "issueType in ("'" &
        Join(Parameters!Issue_Types.Value, "'","'")
     & "'"))", ")")) & " or issueKey=""GRL-1"" order by Created asc"    

让我的表达被评估为:

{"jql": "(project in ('Change Instructions')) and status in ('Open') and  issueType in ('Fees') or issueKey ='GR L-1' order by Created asc" }

但是,它显示一个错误:

未为公共函数 IFF 的参数“FalsePart”指定参数(表达式为布尔值,TruePart 为对象,FalsePart 为对象)作为对象。

如何获得所需的字符串?是否有任何其他工具可用于评估 SSRS 的表达式?

【问题讨论】:

    标签: ssrs-2008 ssrs-expression


    【解决方案1】:

    问题(或至少一个)在您的 JOIN 语句中。

    原来的JOIN使用Projects字段,以","为分隔符(双引号逗号双引号)

    Join(Parameters!Projects.Value, " "","" ")
    

    我添加了额外的空格来显示它是如何解释它的。连续的双引号解析为一个双引号。

    由于单引号分隔符后的额外参数,我认为原始中的第二个和第三个 JOIN 不应该工作。不知道为什么你没有收到错误。

    Join(Parameters!Statuses.Value, "'",""")
    

    我认为这是你需要的:

    =IIf(Parameters!Projects.Count > 0, 
        "(project in ('" & Join(Parameters!Projects.Value, "','") & "')", 
        "(")
    &
    IIf(Parameters!Statuses.Count > 0,
        If(Parameters!Projects.Count > 0, " and ", "")
            & "status in ('" & Join(Parameters!Statuses.Value, "','")& "')",
        "")
    &
    IIf(Parameters!Issue_Types.Count > 0,
        If(Parameters!Projects.Count > 0 Or Parameters!Statuses.Count > 0, " and ", "") 
            & "issueType in ('" & Join(Parameters!Issue_Types.Value, "','") & "'))", 
        ")") & " or issueKey = 'GRL-1' ORDER BY Created ASC"
    

    【讨论】:

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