Выражение SSRS не работает из средства тестера для SQL Server 2008

У меня такое выражение:

 (""" & 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" }

Но он показывает ошибку:

Аргумент не указан для параметра «FalsePart» публичной функции IFF (Expression As Boolean, TruePart as Object, FalsePart as Object) As Object.

Как я могу получить желаемую строку? Есть ли другой инструмент для оценки выражения для SSRS?


person AskMe    schedule 12.08.2015    source источник


Ответы (1)


Проблема (или хотя бы одна) в вашем заявлении JOIN.

Исходное СОЕДИНЕНИЕ использует поле Проекты с ", в качестве разделителя (двойные кавычки, запятая, двойные кавычки).

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"
person Hannover Fist    schedule 12.08.2015