web-dev-qa-db-fra.com

Paramètre d'affichage (valeur multiple) dans le rapport

Quelqu'un peut-il me dire comment afficher toute la valeur sélectionnée de mon paramètre de valeur multiple dans le rapport SSRS. En donnant parameter.value _ option cela donne une erreur.

79
suni

Vous pouvez utiliser la fonction "Join" pour créer une seule chaîne à partir du tableau d'étiquettes, comme ceci:

=Join(Parameters!Product.Label, ",")
151
Matt Hamilton

= Join (Parameters! Product.Label, vbcrfl) pour la nouvelle ligne

11
nadiObi

Je ne connaissais pas la fonction join - Nice! J'avais écrit une fonction que j'avais placée dans la section de code (propriétés du rapport-> onglet code:

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  
6
Booji Boy

Espérons que quelqu'un d'autre trouve cela utile:

L'utilisation de la jointure est la meilleure façon d'utiliser un paramètre à valeurs multiples. Mais que se passe-t-il si vous voulez avoir un "Select All" efficace? S'il y a plus de 100, la requête sera très inefficace.

Pour résoudre ce problème au lieu d'utiliser une requête SQL telle quelle, modifiez-le en utilisant une expression (cliquez sur le bouton Fx en haut à droite), puis construisez votre requête comme suit (des marques de signe sont nécessaires):

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

Dans votre paramètre, procédez comme suit:

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

En construisant la requête en tant qu'expression, vous pouvez rendre l'instruction SQL plus efficace, mais également gérer la difficulté que SQL Server rencontre avec la gestion des valeurs dans une instruction "In".

0
Markive