11

Próbuję zaznaczyć pole, gdy wartość zawiera słowo "deadline". Próbuję użyć wyrażenia:Używanie wyrażenia "like" w wyrażeniach SSRS

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

w nieruchomości BackgroundColor.

Nie podświetla pola (nie zmienia koloru tła). Pole "Uwagi" to typ danych tekstowych i korzystam z programu Report Builder 3.0, jeśli ma to znaczenie. Co ja robię źle?

Odpowiedz

9

Usługa SSRS ma wartość NOT używa składni SQL, ale zamiast tego używa języka Visual Basic.

użyć czegoś takiego:

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

Albo .Contains zamiast .IndexOf

=IIf(Fields!Notes.Value.ToLowerInvariant().Contains("deadline"),"Yellow","Transparent") 
+0

Próbowałem za pomocą Zawiera() wcześniej, ale Brakowało mi metody tolower() lub tolowerinvariant(), aby przekonwertować ją z tekstu na ciąg. Dzięki :) – blsub6

1

Dlaczego nie używać coś takiego:

Fields!Notes.Value.Contains("deadline") 
28

To jest jak w dostępie : nie "%", ale "*":

=Fields!Notes.Value Like "*deadline*" 
7

"InStr" działa dla mnie:

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

Pamiętaj, że porównanie wartości jest wielkość sentive, więc może używać UCase wokół:

=IIF(InStr(UCASE(Fields!Notes.Value),"DEADLINE"))>0, "Yellow", "Transparent") 
Powiązane problemy