Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Menghantar Parameter ke WHERE dan ORDER BY Klausa dalam Pertanyaan JasperReports?

Bagaimana untuk Menghantar Parameter ke WHERE dan ORDER BY Klausa dalam Pertanyaan JasperReports?

DDD
Lepaskan: 2025-01-18 06:37:09
asal
678 orang telah melayarinya

How to Pass Parameters to WHERE and ORDER BY Clauses in JasperReports Queries?

Apabila membina pertanyaan dalam JasperReports, anda mungkin perlu menghantar parameter dinamik daripada pengguna. Untuk tujuan ini, terdapat dua ungkapan sintaks untuk rujukan parameter: $P{} dan $P!{}.

$P{} Tatabahasa

Sintaks

$P{} digunakan terutamanya untuk menetapkan nilai parameter input dalam klausa WHERE. Ia menggunakan algoritma penggantian "pintar" serupa dengan java.sql.PreparedStatement. Contohnya, parameter java.lang.String akan digantikan dengan nilai yang disebut dan parameter java.lang.Integer akan digantikan dengan nilai angka.

Sebagai contoh, pertimbangkan parameter berikut:

参数名称 参数类型 参数值
eventName java.lang.String Olympic Games
eventType java.lang.Integer 2

Ungkapan asal (untuk diganti):

<code class="language-sql">SELECT startDate, endDate, rating
FROM events
WHERE name=$P{eventName} AND type=$P{eventType}</code>
Salin selepas log masuk

Hasilnya ialah:

<code class="language-sql">SELECT startDate, endDate, rating
FROM events
WHERE name='Olympic Games' AND type=2</code>
Salin selepas log masuk

$P!{} Tatabahasa

Sintaks

$P!{} digunakan terutamanya untuk penggantian mudah. Ia menggantikan nilai parameter secara verbatim, tanpa sebarang rawatan khas.

Sebagai contoh, pertimbangkan parameter berikut:

参数名称 参数类型 参数值
tableName java.lang.String events
eventName java.lang.String Olympic Games

Ungkapan asal (untuk diganti):

<code class="language-sql">SELECT startDate, endDate, rating
FROM $P!{tableName}
WHERE name='$P!{eventName}'</code>
Salin selepas log masuk

Hasilnya ialah:

<code class="language-sql">SELECT startDate, endDate, rating
FROM events
WHERE name='Olympic Games'</code>
Salin selepas log masuk

Penggunaan dalam kes anda

Mengikut soalan anda, anda perlu menetapkan WHERE dan ORDER BY klausa secara dinamik, anda boleh menggunakan ungkapan berikut:

<code class="language-sql">SELECT name, phone, email
FROM company
WHERE $P!{clause} = $P{key}
ORDER BY $P!{order}</code>
Salin selepas log masuk

di mana $P{key} ialah parameter java.lang.String. Jika nilai $P!{clause} memerlukan nilai yang disebut, anda boleh menggunakan ungkapan berikut sebagai ganti:

<code class="language-sql">SELECT name, phone, email
FROM company
WHERE $P!{clause} = '$P!{key}'
ORDER BY $P!{order}</code>
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Menghantar Parameter ke WHERE dan ORDER BY Klausa dalam Pertanyaan JasperReports?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan