Istnieją dwa wyrażenia składnię dla parametru odniesienie w JasperReports: $P{}
i $P!{}
.
- $} P {ParamName składni stosuje się głównie do ustawiania GDZIE wejście wartości parametrów. Algorytm wymiana jest "inteligentny", jego realizacja wykorzystuje java.sql.PreparedStatement: dla java.lang.String parametrów silnik zastąpi $ p {ParameterName} z cytowanego wartości, dla java.lang.Integer - z wartością numeryczną i tak dalej.
Próbka:
| Parameter name | Parameter type | Parameter value |
|:---------------|-------------------|:---------------:|
| eventName | java.lang.String | Olympic Games |
| eventType | java.lang.Integer | 2 |
pierwotnego wyrażenia (wymienić)
SELECT startDate, endDate, rating FROM events WHERE name=$P{eventName} AND type=$P{eventType}
Wynik będzie:
SELECT startDate, endDate, rating FROM events WHERE name='Olympic Games' AND type=2
- $ P! {ParamName} składnia używa głównie do robienia "prostego" zamiany.
Próbka:
| 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 |
pierwotnego wyrażenia (wymienić)
SELECT startDate, endDate, rating FROM $P!{tableName} WHERE name='$P!{eventName}' AND channel=$P!{channel} AND type=$P!{type}
Wynik będzie:
SELECT startDate, endDate, rating FROM events WHERE name='Olympic Games' AND channel='BBC' AND type=sport
Aby uzyskać więcej informacji, można przeczytać ten post Using report parameters i spojrzeć na to Query sample.
W Twoim przypadku prawo wyrażenie może być tak:
SELECT name, phone, email FROM company WHERE $P!{clause} = $P{key} ORDER BY $P!{order}
gdzie $ P {klucz} jest java.lang.String parametr
lub coś podobnego (zależy od wartości $ P! {Klauzula})
SELECT name, phone, email FROM company WHERE $P!{clause} = $P!{key} ORDER BY $P!{order}
gdzie $ P {klucz} jest java.lang.String parametr
@ Alex Dlaczego nie napisałeś tego jako odpowiedzi? Wydaje się, że oba połączone komentarze dają użytkownikowi odpowiedź i informacje uzupełniające, aby dowiedzieć się więcej. Nie ma nic lepszego. –