Dans la fenêtre du générateur Expression de SQL Server Reporting Services 2008 R2, sous Fonctions communes -> Texte -> Élément, il existe une expression appelée Filtre. Cela semble correspondre à Strings.Filter method dans le cadre .NET. La description de Filter est la suivante:Comment utiliser String.Filter avec des paramètres à valeurs multiples
Renvoie un tableau basé sur zéro contenant un sous-ensemble d'un tableau de chaînes basé sur des critères de filtre spécifiés.
L'exemple est le suivant:
=Filter(Parameters!MultivalueParameter.Value, "3", True, CompareMethod.Binary)
L'exemple et la description implique que vous pouvez consulter un paramètre multi-valeur pour voir si au moins l'une des valeurs sélectionnées est égal au paramètre de match. Je n'ai pas pu obtenir ceci pour renvoyer autre chose que #Error qui implique que le paramètre multi-valeur n'est pas un tableau unidimensionnel. Paramètres! MultivalueParameter.Value.GetType(). ToString() renvoie System.Object [].
Est-ce que quelqu'un sait comment faire fonctionner ça? J'utilise les travaux suivants autour de vérifier si les valeurs ont été sélectionnées dans le paramètre multi-valeur:
=IIF(InStr(" " + JOIN(Parameters!MultivalueParameter.Value, " ") + " ", " 3 ", CompareMethod.Text), false, true)
Le code ci-dessus fonctionne, mais il est assez laid. Je préférerais utiliser la fonction Filtre si elle supporte ce genre de vérification. Quelqu'un peut-il donner un exemple de code qui fonctionne?
Que 'Paramètres! MultivalueParameter.Value.GetType(). ToString()' vous donner? –
Bonne question. Je vais vérifier cela quand je rentre à la maison aujourd'hui et je vous le ferai savoir. –
Il a renvoyé System.Object []. J'ai ajouté ceci à la question. –