Dies funktioniert automatisch, wenn Sie Ihre Parameter und Datensätze zu bestellen richtig
- zunächst einen primären (Bericht)-Datensatz, dann einen Datensatz für jeden Parameter Dropdown einrichten. Codieren Sie die
WHERE
-Klausel in den Datasets, um die Abhängigkeiten zwischen den Parametervariablen zu korrigieren.
- Zweitens, ordnen Sie Ihre Parameter im Report | Parameter-Menü, so dass die erste Variable/Parameter, die der Benutzer ausfüllen soll, ist an der Spitze, und machen Sie den zweiten Datensatz abhängig von diesem Parameter. Folge dieser Reihenfolge durch die Parameter; Der letzte Parameter sollte derjenige sein, von dem der tatsächliche Berichtsdatensatz abhängt.
- Wiederholen für nachfolgende Parameter
Das funktioniert, wenn Ihre WHERE
Klausel in der zweiten und nachfolgenden Datensätze Variablen haben, die SSRS weiß aus früheren Parametern bestückt sind.
Als Beispiel habe ich drei Datensätze aus der ehrwürdigen pubs
Datenbank (Beispiel im Jahr 2000).
pubslist
wird verwendet, um den @p Parameter zu füllen, und sieht wie folgt aus:
select pub_id, pub_name from publishers
titleslist
füllt die @t Parameter und sieht wie folgt aus:
select title_id, title from titles where pub_id = @p
Schließlich reportdataset
sieht aus wie dies:
select title, price, ytd_sales from titles where title_id = @t
Die Reihenfolge der Parameter im Menü Report | Report Parameters
ist entscheidend; Da die Datasets in der oben angegebenen Reihenfolge ausgeführt werden müssen und der @ t-Parameter in einem Dataset enthalten ist, das darauf basiert, dass der @ p-Parameter zuerst festgelegt wird, verschieben wir @p an den Anfang der Liste.
Jetzt wertet SSRS den Datensatz aus, der benötigt wird, um das Dropdown für den ersten Parameter mit Beschriftungen zu füllen. Es beruht auf einem Dataset, das keinen Parameter benötigt und daher sofort erstellt werden kann.
Mit diesem Parameterwert kann dann das Dropdown-Menü des zweiten Parameters ausgefüllt werden. Dies wiederum führt dazu, dass der Bericht erstellt wird.
Jeremy, können Sie zeigen zu einem Beispiel, oder schließen Sie einen in Ihrer Antwort ein? Vielen Dank. –
Ok, das habe ich gemacht: Ich habe zwei Parameter, @SalesRep und @Distributor (beide sind Strings). Jetzt ist das Dataset für den Vertriebsmitarbeiter nur eine Abfrage.Aber der Datensatz für den Verteiler-Parameter ist eine Abfrage wie folgt: SELECT [Kundennummer] AS-ID, [Kundenname] AS-Name VON Distributors Wo [Sales Representative] = @ SalesRep- ORDER BY-Name Beachten Sie die Abhängigkeit auf dem Parameter @SalesRep. Stellen Sie in den Berichtsparametern sicher, dass @SalesRep über @Distributor angeordnet ist. –
Yup, du hast es. Der oberste Parameter muss der Datensatz ohne Abhängigkeiten sein. Es erzeugt das Dataset, um den zweiten Parameter zu füllen, und so weiter. –