web-dev-qa-db-fra.com

Utiliser 'like' dans les expressions ssrs

J'essaie de mettre en surbrillance un champ lorsque la valeur contient la "date limite" de Word. J'essaie d'utiliser l'expression:

=IIf(Fields!Notes.Value like "%deadline%","Yellow","Transparent")

dans la propriété BackgroundColor.

Il ne met pas en surbrillance le champ (ne change pas la couleur d'arrière-plan). Le champ "Notes" est un type de données texte et j'utilise Report Builder 3.0 si cela fait une différence. Qu'est-ce que je fais mal?

18
blsub6

SSRS ne PAS utilise la syntaxe SQL, mais utilise à la place Visual Basic.

tilisez quelque chose comme ça:

=IIf(Fields!Notes.Value.IndexOf("deadline") >= 0,"Yellow","Transparent")

Ou .Contains au lieu de .IndexOf

=IIf(Fields!Notes.Value.ToLowerInvariant().Contains("deadline"),"Yellow","Transparent")
13
Oleg Dok

C'est comme dans l'accès: pas '%' mais '*':

=Fields!Notes.Value Like "*deadline*"
36
devarc

"InStr" fonctionne pour moi:

=IIF(InStr(Fields!Notes.Value,"deadline")>0, "Yellow", "Transparent") 

N'oubliez pas que la valeur de comparaison est sensible à la casse, alors utilisez peut-être UCASE autour de:

=IIF(InStr(UCASE(Fields!Notes.Value),"DEADLINE"))>0, "Yellow", "Transparent") 
9
JanBorup

Pourquoi ne pas utiliser quelque chose comme:

Fields!Notes.Value.Contains("deadline") 
2
Etch