Параметр отображения (многозначный) в отчете - PullRequest
78 голосов
/ 19 ноября 2008

Может ли кто-нибудь сказать мне, как отобразить все выбранные значения моего параметра нескольких значений в отчете SSRS. При указании опции parameter.value выдает ошибку.

Ответы [ 4 ]

150 голосов
/ 19 ноября 2008

Вы можете использовать функцию "Присоединиться", чтобы создать единственную строку из массива меток, например:

=Join(Parameters!Product.Label, ",")
11 голосов
/ 09 марта 2009

= Соединение (Параметры! Product.Label, vbcrfl) для новой строки

6 голосов
/ 09 марта 2009

Я не знал о функции соединения - Отлично! Я написал функцию, которую поместил в раздел кода (свойства отчета -> вкладка кода:

Public Function ShowParmValues(ByVal parm as Parameter) as string
   Dim s as String 

      For i as integer = 0 to parm.Count-1
         s &= CStr(parm.value(i)) & IIF( i < parm.Count-1, ", ","")
      Next
  Return s
End Function  
0 голосов
/ 21 декабря 2018

Надеюсь, кто-то найдет это полезным:

Использование объединения - лучший способ использования многозначного параметра. Но что, если вы хотите иметь эффективный вариант «Выбрать все»? Если есть 100s +, то запрос будет очень неэффективным.

Чтобы решить эту проблему, вместо использования SQL-запроса как есть, измените его на выражение (нажмите кнопку Fx в правом верхнем углу), а затем создайте запрос примерно так (необходимы речевые метки):

= "Select * from tProducts Where 1 = 1 " 
IIF(Parameters!ProductID.Value(0)=-1,Nothing," And ProductID In (" & Join(Parameters!ProductID.Value,"','") & ")")

В вашем параметре сделайте следующее:

    SELECT -1 As ProductID, 'All' as ProductName Union All
    Select  
    tProducts.ProductID,tProducts.ProductName
    FROM
    tProducts

Построение запроса как выражения означает, что вы можете сделать оператор SQL более эффективным, но также справиться с трудностями, с которыми SQL Server сталкивается при обработке значений в операторе «In».

...