Für die Neulinge bei NextReports erkläre ich die Erstellung von multiplen Parametern, die im Handbuch zum Nextreports Designer nicht beschrieben wird. -> Advantage Software Factory vertraut hier darauf, dass man sich mit der Demo-Datenbank beschäftigt, in der man sich das Thema erarbeiten kann.
Wozu multiple Parameter?
Parameter sind Werte, die vor Erstellung eines Reports vom Anwender festgelegt oder ausgewählt werden können und die Ergebnisse der Datenbankabfrage einschränken. Wie man einzelne Parameter anlegt, habe ich z.B. in -> Werte in NextReports Charts vergleichen gezeigt.
Diese einfachen Parameter übergeben genau einen Wert, was durch die Auswahl Single im Drop-Down-Menü bei Selection festgelegt wird. In vielen Fällen möchte man aber mehr als ein Kriterium übergeben und kann dazu ansatt Single auch Multiple auswählen. So können (um beim Beispiel der obigen Abbildung zu bleiben) mehrere Artikel ausgewählt werden.
Multiple Parameter anlegen
Arbeitet man im Query Designer, dann wird das Vorgehen im -> Video Tutorial Parameters gut erklärt. Um im Query Editor eine Mehrfachauswahl anzulegen, gibt man ebenfalls unter Selection bei der Anlage des Parameters Multiple an.
Hier möchte ich nach einem Flag filtern, so dass etweder ja oder nein oder ja und nein als Auswahlkriterien gewählt werden können. Bei der Column Selection wählt man in der Regel ein Wertepaar, indem man aus einer Tabelle die ID des Datensatzes als Parameterwert und einen für den Anwender aussagefähige Wert in der zweiten Spalte bestimmt. In der SQL-Abfrage wird immer die erste Spalte (also die ID) verwendet. Da ich für das Flag keine aussagefähige Beschreibung im Datensatz habe, gebe ich die Bedeutung des Flags für den Anwender im Feld Runtime name mit an (ja = 1, nein = 0).
Eine weitere Möglichkeit ist das Definieren von Default-Werten, die dem Anwender angezeigt werden. Dieser Liste kann er dann Werte für diese Abfrage hinzufügen oder auch daraus löschen.
Für den Beispielfall ist diese Variante eher ungeeignet, aber sie macht durchaus Sinn, wenn man z.B. nach Strings suchen möchte.
Verwenden des Parameters im Query Editor
Während ein Single parameter lediglich einen Wert übergibt, ist es beim Multiple parameter ein Array, also eine Menge von Werten. Technisch handelt es sich dabei um eine Unterabfrage, die man in MySQL so notieren würde:
SELECT ...
FROM ...
WHERE tabelle.spalte IN (
SELECT parameterwert
FROM tabelle
WHERE spalte.wert = parameterwert1
OR spalte.wert = parameterwert2
OR ...);
Der multiple Parameter ersetzt hier die Unterabfrage und man notiert im Query Editor:
SELECT ...
FROM ...
WHERE tabelle.spalte IN ${parameter}
Anstelle von IN ist natürlich auch NOT IN möglich.
Für den Anwender stellt sich die Auswahl der Parameter so dar:
3 Comments