Übergabe von Abfrageparametern in JasperReports
Mit JasperReports können Sie verschiedene Aspekte Ihrer Abfrage mithilfe von Parametern wie WHERE- und ORDER BY-Klauseln dynamisch steuern. Dies ist nützlich, wenn Sie möchten, dass Benutzer flexibel festlegen können, wie Daten abgerufen werden.
Parameterreferenzsyntax
Parameterreferenz hat zwei Syntaxausdrücke: $P{}
und $P!{}
.
$P{paramName}
wird verwendet, um Parameter in der WHERE-Klausel zu ersetzen. Wenn Sie beispielsweise einen Parameter vom Typ java.lang.String mit dem Namen „eventName“ haben, können Sie ihn in der WHERE-Klausel wie folgt verwenden: <code class="language-sql">WHERE name=$P{eventName}</code>
$P!{paramName}
wird verwendet, um Parameter an einer beliebigen Stelle in der Abfrage zu ersetzen, einschließlich WHERE- und ORDER BY-Klauseln. Wenn Sie beispielsweise einen Parameter vom Typ java.lang.String mit dem Namen „order“ haben, können Sie ihn in einer ORDER BY-Klausel wie folgt verwenden: <code class="language-sql">ORDER BY $P!{order}</code>
Umgang mit Parametertypen
$P{}
Die Syntax ist „intelligent“ und verarbeitet verschiedene Parametertypen korrekt. Wenn Sie beispielsweise einen Parameter vom Typ java.lang.String haben, ersetzt die Engine $P{paramName}
durch einen Wert in Anführungszeichen. Wenn Sie einen Parameter vom Typ java.lang.Integer haben, ersetzt die Engine $P{paramName}
durch einen numerischen Wert.
Beispielverwendung
Um ein Feld aus der Datenbank als Parameter zu übergeben, können Sie die $P!{}
-Syntax verwenden. Die folgende Abfrage verwendet beispielsweise den Parameter $P!{clause}
, um die WHERE-Klausel anzugeben, und den Parameter $P!{order}
, um die ORDER BY-Klausel anzugeben:
<code class="language-sql">SELECT name, phone, email FROM company WHERE $P!{clause} = $P{key} ORDER BY $P!{order}</code>
In diesem Beispiel ist der Parameter $P!{clause}
vom Typ java.lang.String und der Parameter $P!{order}
vom Typ java.lang.String.
Das obige ist der detaillierte Inhalt vonWie übergebe ich Parameter an Abfragen in JasperReports?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!