Melalui parameter pertanyaan dalam JasperReports
JasperReports membolehkan anda mengawal pelbagai aspek pertanyaan anda secara dinamik menggunakan parameter, seperti klausa WHERE dan ORDER BY. Ini berguna apabila anda mahu pengguna mempunyai fleksibiliti dalam menentukan cara data diambil semula.
Sintaks rujukan parameter
Rujukan parameter mempunyai dua ungkapan sintaks: $P{}
dan $P!{}
.
$P{paramName}
digunakan untuk menggantikan parameter dalam klausa WHERE. Contohnya, jika anda mempunyai parameter jenis java.lang.String bernama "eventName", anda boleh menggunakannya dalam klausa WHERE seperti ini: <code class="language-sql">WHERE name=$P{eventName}</code>
$P!{paramName}
digunakan untuk menggantikan parameter di mana-mana dalam pertanyaan, termasuk klausa WHERE dan ORDER BY. Contohnya, jika anda mempunyai parameter jenis java.lang.String bernama "order", anda boleh menggunakannya dalam klausa ORDER BY seperti ini: <code class="language-sql">ORDER BY $P!{order}</code>
Mengendalikan jenis parameter
$P{}
Sintaks adalah "pintar" dan mengendalikan jenis parameter yang berbeza dengan betul. Contohnya, jika anda mempunyai parameter jenis java.lang.String, enjin akan menggantikan $P{paramName}
dengan nilai yang disebut. Jika anda mempunyai parameter jenis java.lang.Integer, enjin akan menggantikan $P{paramName}
dengan nilai berangka.
Contoh penggunaan
Untuk menghantar medan daripada pangkalan data sebagai parameter, anda boleh menggunakan sintaks $P!{}
. Sebagai contoh, pertanyaan berikut menggunakan parameter $P!{clause}
untuk menentukan klausa WHERE dan parameter $P!{order}
untuk menentukan klausa ORDER BY:
<code class="language-sql">SELECT name, phone, email FROM company WHERE $P!{clause} = $P{key} ORDER BY $P!{order}</code>
Dalam contoh ini, parameter $P!{clause}
ialah jenis java.lang.String dan parameter $P!{order}
ialah jenis java.lang.String.
Atas ialah kandungan terperinci Bagaimana untuk Lulus Parameter kepada Pertanyaan dalam JasperReports?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!