Quelqu'un peut-il indiquer la syntaxe à utiliser lors de l'utilisation de l'opérateur IN dans un filtre de tableau ..__ J'ai essayé ce qui suit, mais la syntaxe est incorrecte:
Si vous ne modifiez que la propriété Value et ajoutez simplement une liste de valeurs séparées par des virgules qui devraient fonctionner:
Cela a fonctionné pour moi dans un test rapide, de toute façon.
Books Online semble être assez léger sur les exemples, mais j'ai trouvé une référence; voir l'exemple In
dans Filtres utilisés couramment . Ce serait bien si cela était mieux expliqué.
J'ai eu quelques problèmes avec celui-ci aussi. Microsofts propre documentation indique qu'une simple liste de valeurs délimitées par des virgules dans la zone Valeur devrait fonctionner. C'est déroutant parce que CE N'EST PAS. Au moins, ce n’est pas le cas pour moi et j’utilise SSRS 2012 avec Visual Studio 2010.
Il s'avère que lorsque vous utilisez l'opérateur IN, SSRS attend un tableau de valeurs. Vous pouvez utiliser ce filtre de différentes manières. Les exemples suivants sont destinés à être tapés dans l'éditeur d'expression.
La première méthode (également expliquée dans le blog lié ci-dessous) consiste à taper simplement votre liste délimitée par des virgules dans une valeur de chaîne, puis à utiliser la fonction split.
=split("2B,2C",",")
Ou vous pouvez dériver votre liste d'un paramètre multi-valeur. Le paramètre multivaleur étant déjà un tableau, il vous suffit de le référencer via l'expression du paramètre, comme indiqué ci-dessous.
=Parameters!MultiValueParam.Value
J'ai découvert cette information via le blog suivant. http://sqlblogcasts.com/blogs/simons/archive/2007/11/20/RS-Howto--Use-the-IN-operator-in-a-filter-expression.aspx
Cela fonctionne réellement:
=CStr("Value1,Value2,Value3,Value4,etc").Split(",")
Ceci est testé dans SSRS 2012.
Si la solution recommandée ne vous convient pas, essayez d’utiliser un semicon comme séparateur.
Exemple: critère un; critère deux
Cela a fonctionné pour moi.
Cela a fonctionné pour moi dans SSRS 2012.
"critères un", "critères deux"
Pour les valeurs entières, vous pouvez utiliser:
Type: Texte
Opérateur: In
Valeur: = Nouvel Integer () {8800,8820}
Devrait fonctionner sur 2008 R2 et les versions plus récentes
Supprimez le =
initial de l'expression, c'est-à-dire.
"criteria one" , "criteria two"
"value1" "value2"
avec un espace et aucune virgule a fonctionné pour moi. Ce qui est amusant, c’est que lorsqu’on revient aux tests, c’est comme
value1, value2
avec une virgule et sans guillemets. Si je coupe ça, puis le colle directement dans le même champ, ça ne marche pas. Ceci est un buggy s ** t ici.
Le type de données sous-jacent est nvarchar (10) et non null
Testé avec VS 2017 et SSRS 2016
Je suis probablement avec une version plus récente de SSRS. Les types de valeurs sont text . Pour moi travaillé comme
"criteria 1";"criteria 2";...;"criteria N"
Les guillemets sont obligatoires.
Mon problème a finalement été résolu après de nombreuses tentatives, en utilisant uniquement cette méthode.
Expression:
= InStrRev (chaîne complète avec délimiteur, valeur à rechercher)
Type: Entier
Opérateur: <>
Valeur: 0
OMG tant de réponses ...
Je sais que cela fonctionne:
1) MY SP returns VARCHAR(n) for the field I will filter in the tablix. Returning INT DOES NOT WORK in my solution. I don't know why (yet).
2) report.param.allow multiple values = true
3) tablix.filter.expression.datatype = text
4) tablix.filter.operator = IN
5) tablix.filter.value = =SPLIT(JOIN(Parameters!id.Value,","),",")
En utilisant cette méthode, j’ai pu appeler le SP une fois, l’utiliser dans un paramètre pour obtenir les valeurs disponibles, exécuter le rapport et la table de tableau matricielle lire les données sélectionnées à l’étape 5 ci-dessus et afficher les valeurs correctes. Nombre de rangées.
Мои ценности включают косые черты. Динственный способ получить SSRSIn ▼Оператор для их правильной обработки был с выражением =
CStr("google / cpc,bing / cpc").Split(",")
Entrez cette requête dans l'expression:
=Join(Parameters!MultiValueParam.Value)