Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Lulus Senarai Parameter 'IN' SQL Dinamik dalam JasperReports?

Bagaimana untuk Lulus Senarai Parameter 'IN' SQL Dinamik dalam JasperReports?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-31 08:15:10597semak imbas

How to Pass a Dynamic SQL

Meluluskan Senarai Parameter "IN" SQL dalam JasperReports

Apabila menjana JasperReports dengan pertanyaan SQL menggunakan predikat "IN", penetapan parameter dinamik boleh dicapai melalui pengaturcaraan Java. Mari kita terokai cara untuk menetapkan nilai parameter "peranan" secara dinamik.

Pertanyaan yang dimaksudkan:

SELECT customer_name AS NAME,
       id_customer AS ID
  FROM customer
 WHERE customer_role IN ($P{roles})

Penugasan Parameter dalam Java

JasperReports menyediakan pembolehubah khas, $X, untuk menetapkan parameter secara dinamik. Untuk memberikan senarai nilai kepada parameter "peranan", gunakan sintaks berikut:

select * from customer where $X{IN,customer_role,roles}

Berikut ialah contoh cara menetapkan nilai parameter secara pemprograman dalam Java:

// Get a JasperReports instance
JasperPrint jasperPrint = jasperReport.fill(parametersMap, dataSource);

// Create a new parameter list
java.util.List<JRParameter> updatedParameters = new ArrayList<>();

// Add the "roles" parameter with the updated value
updatedParameters.add(new JRParameter("roles", ArrayList.class, roles));

// Set the parameter list
jasperPrint.setParameters(updatedParameters);

Nota Tambahan

  • Senarai peranan hendaklah mengikut jenis ArrayList.
  • Rujuk dokumentasi JasperReports untuk mendapatkan butiran lanjut tentang pengendalian parameter.

Atas ialah kandungan terperinci Bagaimana untuk Lulus Senarai Parameter 'IN' SQL Dinamik dalam JasperReports?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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