Frage:
Wie kann ich den Wert eines SQL festlegen? Prädikatparameter „IN“ dynamisch in Java beim Generieren eines JasperReports? Der Parameter kann mehrere ganzzahlige Werte haben, die zur Laufzeit ermittelt werden.
Antwort:
JasperReports stellt eine spezielle Variable, $X, zur Verfügung, um dieses Szenario zu bewältigen. Durch die Verwendung von $X{IN,customer_role,roles} wird Ihre Abfrage wie folgt übersetzt:
select * from customer where $X{IN,customer_role,roles}
wobei customer_role der Spaltenname und Roles der Parametername ist.
Beispiel :
Map<String, Object> parameters = new HashMap<>(); parameters.put("roles", Arrays.asList(1, 2, 3)); JasperReport jasperReport = JasperCompileManager.compileReportToFile(templatePath); JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, dataSource);
Durch Festlegen des Rollenparameters als Array von Ganzzahlen generiert die Abfrage nur Ergebnisse für Kunden mit Rollen-IDs in dieser Liste.
Referenzen:
Das obige ist der detaillierte Inhalt vonWie übergebe ich dynamisch mehrere ganzzahlige Werte an eine SQL-„IN'-Klausel in JasperReports?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!