2009-05-15 8 views
6

Ich habe ein ungefiltertes Dataset zu behandeln, um einen Bericht zu erstellen (SQL Server 2005 BTW).Wie filtert man in SQL Reporting Services ein Dataset nach einem Parameter?

Sagen wir, ich habe eine Name Spalte, und ich würde einen Parameter zu meinem Bericht hinzufügen, um nur die Namen mit einigen Zeichen zu wählen.

Kann man mit diesen Filtern umgehen?

ich ohne Glück versucht haben, diese:

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

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

Ich möchte in der Lage sein, den Namen ‚foo‘ und ‚foobar‘ zu bekommen, wenn ich den Parameter ‚oo‘ geben

Edit:Ich weiß, die Filterung sollte auf der SQL-Server-Seite getan werden, aber ich kontrolliere nicht die Datenmenge, die ich gegeben habe (ein Webservice gibt es mit einer No-Parameter-Methode), also muss ich filtern die Berichtsseite.

+0

[Arbeiten mit Reporting Services Filter - Teil 2: Der LIKE-Operator] (http://blog.datainspirations.com/2010/12/30/working-with-reporting -services-filters-part-2-the-like-operator /) –

+0

Ich würde lieber die Filterung im Backend durchführen. Ich habe eine Serie über die Grundlagen von SSRS 2005 geschrieben (und sie ist noch in Arbeit). Für den grundlegenden Parameter, sehen Sie meinen neuesten Beitrag in der Serie (mit Parameter): http://dbalink.wordpress.com/2009/05/02/how-to-report-authoring-in-ssrs-2005-part-iv -Adding-Parameter/ – MarlonRibunal

Antwort

16

ich auf meine eigene Frage zu beantworten, ist der Filterausdruck in der Tat:

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

heißt "*" anstelle von "%", in der Tat.

3

Die bevorzugte Vorgehensweise ist, mit einer genauen Übereinstimmung zu gehen.

Sie können aus dem Datensatz, der von Ihrer Abfrage oder einer alternativen Abfrage zurückgegeben wird, eine Liste mit mehrwertigen Parametern erstellen und so sicherstellen, dass eine genaue Übereinstimmung erzielt wird.

Die folgende Referenz kann sich als nützlich erweisen.

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

+0

Danke, dieser Link führte mich zu der Beispielseite des Report-Filters, die ich bisher übertroffen habe, was mich zur richtigen Antwort geführt hat. – Vinzz

+0

Kein Problem, froh zu helfen. –

0

auf die Eigenschaften für den Datensatz gehen, auf die Registerkarte Filter gehen. Klicken Sie in der Dropdown-Liste Ausdruck auf das Feld, nach dem Sie filtern möchten (Name). Klicken Sie auf den Operator und wählen Sie wie. Klicken Sie im Wertfeld auf die Ausdrucksauswahl. Ein neues Fenster wird geöffnet. gehe zu deiner Parameterliste und füge den Parameter zur Gleichung hinzu. OK klicken.

2

Ich würde vorschlagen, dass Sie den Filter als Teil der SQL-Anweisung anwenden, die ausgeführt wird, um das DataSet zurückzubringen, anstatt zu versuchen, Filter im Reporting Services-Bericht anzuwenden. Ich denke, dass die SQL Engine viel besser für diese Art von Filtern/Abfragen optimiert ist.

+0

Ich weiß das, und ich wünschte, ich wäre in der Lage, so schnell wie möglich zu filtern, aber ach, der Webservice ist nicht meins, und es ist Besitzer kümmern sich nicht um Seife Blähung, und will mich Daten zu filtern. – Vinzz

1

Ihre Antwort brachte mich auf den richtigen Weg :)! Vielleicht ist es anders für SQL Server 2005; Aber die folgende Lösung für mich gearbeitet:

=Fields!AppName.Value Like ="*" & Parameters!FilterApplication.Value & "*"