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:
<code class="language-sql">SELECT startDate, endDate, rating FROM events WHERE name=$P{eventName} AND type=$P{eventType}</code>
Hasil:
<code class="language-sql">SELECT startDate, endDate, rating FROM events WHERE name='Olympic Games' AND type=2</code>
$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:
<code class="language-sql">SELECT startDate, endDate, rating FROM $P!{tableName} WHERE name='$P!{eventName}' AND channel=$P!{channel} AND type=$P!{type}</code>
Hasil:
<code class="language-sql">SELECT startDate, endDate, rating FROM events WHERE name='Olympic Games' AND channel='BBC' AND type=sport</code>
Untuk pertanyaan yang diberikan, ungkapan berikut mungkin digunakan:
$P{key}
ialah java.lang.String
jenis parameter: <code class="language-sql">SELECT name, phone, email FROM company WHERE $P!{clause} = $P{key} ORDER BY $P!{order}</code>
$P{key}
ialah parameter jenis bukan rentetan: <code class="language-sql">SELECT name, phone, email FROM company WHERE $P!{clause} = $P!{key} ORDER BY $P!{order}</code>
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!