Es gibt zwei Syntax Ausdrücke für Parameter Referenzierung in Jasper: $P{}
und $P!{}
.
- $ P {} paramName Syntax wird unter Verwendung hauptsächlich für die Einstellung WHERE Eingangswerte-Parameter. Der Ersatz-Algorithmus ist "smart", dessen Umsetzung verwendet java.sql.PreparedStatement: für java.lang.String Parameter der Motor $ P {} parameter mit Kurswert ersetzt, für java.lang.Integer - mit numerischen Wert und so weiter.
Die Probe:
| Parameter name | Parameter type | Parameter value |
|:---------------|-------------------|:---------------:|
| eventName | java.lang.String | Olympic Games |
| eventType | java.lang.Integer | 2 |
ursprünglichen Ausdruck (ersetzen):
SELECT startDate, endDate, rating FROM events WHERE name=$P{eventName} AND type=$P{eventType}
Das Ergebnis wird:
SELECT startDate, endDate, rating FROM events WHERE name='Olympic Games' AND type=2
- $ P! {ParamName} -Syntax wird meistens für das "einfache" Ersetzen verwendet.
Die Probe:
| Parameter name | Parameter type | Parameter value |
|:---------------|------------------:|:---------------:|
| tableName | java.lang.String | events |
| eventName | java.lang.String | Olympic Games |
| channel | java.lang.String | 'BBC' |
| type | java.lang.String | sport |
ursprünglichen Ausdruck (ersetzen):
SELECT startDate, endDate, rating FROM $P!{tableName} WHERE name='$P!{eventName}' AND channel=$P!{channel} AND type=$P!{type}
Das Ergebnis wird:
SELECT startDate, endDate, rating FROM events WHERE name='Olympic Games' AND channel='BBC' AND type=sport
Für weitere Informationen können Sie diese Using report parameters Post lesen und sich diese Query sample ansehen.
In Ihrem Fall der richtige Ausdruck, wie dies auch sein mag:
SELECT name, phone, email FROM company WHERE $P!{clause} = $P{key} ORDER BY $P!{order}
wo $ P {key} ist ein java.lang.String Parameter
oder wie folgt (es hängt von $ P! {Klausel} Wert)
SELECT name, phone, email FROM company WHERE $P!{clause} = $P!{key} ORDER BY $P!{order}
wo $ P {key} ist ein java.lang.String Parameter
@ Alex Wieso hast du das nicht als Antwort gepostet? Scheint, dass beide kombinierten Kommentare dem Benutzer die Antwort geben und Informationen folgen, um mehr zu erfahren. Besser geht es nicht. –