0

我有这样的表达:

 (""" & 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 的表达式?

4

1 回答 1

0

问题(或至少一个)在您的 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"
于 2015-08-12T17:08:48.703 回答