Melalui parameter pertanyaan JasperReports
Dalam pertanyaan pangkalan data, adalah keperluan biasa untuk memindahkan parameter secara dinamik berdasarkan input pengguna. Sesetengah pengguna mungkin menghadapi masalah apabila menghantar parameter menggunakan sintaks $P{}
.
JasperReports menyediakan dua sintaks untuk parameter rujukan: $P{}
dan $P!{}
.
$P{paramName}
Tatabahasa$P{paramName}
digunakan terutamanya untuk menetapkan nilai parameter input bagi klausa WHERE. Algoritma penggantian untuk sintaks ini adalah serupa dengan java.sql.PreparedStatement
. Ia mengendalikan jenis parameter yang berbeza dengan bijak:
java.lang.String
, enjin menggantikan $P{parameterName}
dengan nilai yang disebut. java.lang.Integer
, enjin akan menggantikan $P{parameterName}
dengan nilai angka. 参数名称 | 参数类型 | 参数值 |
---|---|---|
eventName | java.lang.String | Olympic Games |
eventType | java.lang.Integer | 2 |
Ungkapan asal:
SELECT startDate, endDate, rating FROM events WHERE name=$P{eventName} AND type=$P{eventType}
Hasil:
SELECT startDate, endDate, rating FROM events WHERE name='Olympic Games' AND type=2
$P!{paramName}
Tatabahasa$P!{paramName}
melakukan penggantian mudah, biasanya digunakan untuk menggantikan nilai tepat argumen.
参数名称 | 参数类型 | 参数值 |
---|---|---|
tableName | java.lang.String | events |
eventName | java.lang.String | Olympic Games |
channel | java.lang.String | 'BBC' |
type | java.lang.String | sport |
Ungkapan asal:
SELECT startDate, endDate, rating FROM $P!{tableName} WHERE name='$P!{eventName}' AND channel=$P!{channel} AND type=$P!{type}
Hasil:
SELECT startDate, endDate, rating FROM events WHERE name='Olympic Games' AND channel='BBC' AND type=sport
Untuk pertanyaan yang diberikan, ungkapan berikut mungkin digunakan:
$P{key}
ialah java.lang.String
jenis parameter: SELECT name, phone, email FROM company WHERE $P!{clause} = $P{key} ORDER BY $P!{order}
$P{key}
ialah parameter jenis bukan rentetan: SELECT name, phone, email FROM company WHERE $P!{clause} = $P!{key} ORDER BY $P!{order}
Atas ialah kandungan terperinci Bagaimana untuk Meluluskan Parameter ke Pertanyaan JasperReports Dengan Betul Menggunakan Sintaks $P{} dan $P!{}?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!