2009-05-15 10 views
6

Mam nieprzefiltrowany zestaw danych, aby poradzić sobie tak, aby wygenerować raport (SQL Server 2005 btw).W SQL Reporting Services, jak filtrować zestaw danych zgodnie z parametrem?

Załóżmy, że mam kolumnę Nazwa i chcę dodać parametr do mojego raportu, aby wybrać tylko nazwy zawierające niektóre znaki.

Czy wiadomo, jak sobie z nimi radzić?

Próbowałem bez powodzenia tych:

=Fields!Name.Value Like =Parameters!FilterName.Value 

=Fields!Name.Value = = "%" + Parameters!FilterName.Value + "%" 

Chciałbym, aby móc uzyskać nazwy 'foo' i 'foobar', jeśli dam parametru 'OO'

Edycja:Wiem, że filtrowanie powinno być wykonywane po stronie serwera SQL, ale nie kontroluję zbioru danych, który mam (usługa sieciowa udostępnia go przy użyciu metody bez parametrów), więc muszę filtrować strona raportu.

+0

[Praca z Reporting Services Filtry - Część 2: Operator LIKE] (http://blog.datainspirations.com/2010/12/30/working-with-reporting -services-filters-part-2-like-operator /) –

+0

Wolę filtrowanie na zapleczu. Napisałem serię na temat podstaw SSRS 2005 (i jest wciąż w toku). Aby zapoznać się z podstawowym parametrem, zobacz mój najnowszy wpis z serii (Using Parameter): http://dbalink.wordpress.com/2009/05/02/how-to-report-authoring-in-ssrs-2005-part-iv -adding-parameters/ – MarlonRibunal

Odpowiedz

16

mi odpowiedzieć na moje pytanie, wyrażenie filtr jest w rzeczywistości:

=Fields!Name.Value Like ="*"+ Parameters!FilterName.Value + "*" 

tj używać "*" zamiast "%" w rzeczywistości.

3

Preferowaną praktyką jest dopasowywanie ścisłe.

Można zbudować listę parametrów o wielu wartościach z zestawu danych zwróconych przez zapytanie lub zapytanie alternatywne, dzięki czemu można uzyskać dokładne dopasowanie.

Poniższe informacje mogą okazać się przydatne.

http://msdn.microsoft.com/en-us/library/ms155917.aspx

+0

Dzięki, ten link poprowadził mnie do strony przykładowego filtra raportu, którą dotychczas wyciągnąłem, co doprowadziło mnie do właściwej odpowiedzi. – Vinzz

+0

Nie problemo, cieszę się z pomocy. –

0

Idź do właściwości dla zestawu danych, przejdź do zakładki filtra. na liście rozwijanej wyrażenie kliknij pole, które chcesz filtrować według (Nazwa). kliknij operatora i wybierz opcję podobną. w polu wartości kliknij wybór wyrażenia. Otworzy się nowe okno. przejdź do listy parametrów i dodaj parametr do równania. Kliknij OK.

2

Proponuję zastosować filtr jako część instrukcji SQL, która jest wykonywana w celu przywrócenia DataSet zamiast próbować zastosować filtry w raporcie usług Reporting Services. Myślę, że silnik SQL jest znacznie bardziej zoptymalizowany do obsługi tego typu filtrów/zapytań.

+0

Wiem o tym i żałuję, że nie będę w stanie filtrować tak szybko, jak to możliwe, ale niestety, usługa sieciowa nie jest moja, a jej właściciel nie dba o nadmiar mydła i chce, żebym filtrował dane. – Vinzz

1

Twoja odpowiedź doprowadziła mnie do właściwego toru :)! Być może jest inaczej w SQL Server 2005; Ale następujące rozwiązanie pracował dla mnie:

=Fields!AppName.Value Like ="*" & Parameters!FilterApplication.Value & "*" 
Powiązane problemy