Heim >Datenbank >MySQL-Tutorial >Wie übergebe ich in JasperReports mehrere Werte an eine SQL-„IN'-Klausel?
Übergabe der SQL-„IN“-Parameterliste in JasperReports
Beim Erstellen von Abfragen in JasperReports ist es häufig erforderlich, das „IN“-Prädikat von SQL zu verwenden Filtern Sie Daten basierend auf einer Werteliste. Dies kann durch die dynamische Angabe der Parameterwerte im Java-Code erreicht werden.
Stellen Sie sich das Szenario vor, in dem eine Abfrage ein „IN“-Prädikat verwendet, um Kunden basierend auf ihren Rollen zu filtern:
SELECT customer_name AS NAME, id_customer AS ID FROM customer WHERE customer_role IN ($P{roles})
Die Der Parameter „roles“ kann mehrere ganzzahlige Werte erhalten, die während der Berichtserstellung dynamisch ermittelt werden. Um diesen Parameter mithilfe von Java-Code festzulegen, führen Sie die folgenden Schritte aus:
JasperReports stellt eine spezielle Variable „$X“ bereit, die die Handhabung von „IN“-Parametern vereinfacht:
select * from customer where $X{IN,customer_role,roles}
Dieser Ausdruck wird effektiv Fügen Sie die im Parameter „roles“ angegebenen Werte in das Prädikat „IN“ ein. Wie in der verlinkten Dokumentation hervorgehoben, ist dieser Ansatz mit JasperReports-Versionen 3.5 und höher kompatibel und gewährleistet die korrekte Handhabung mehrerer Parameterwerte.
Das obige ist der detaillierte Inhalt vonWie übergebe ich in JasperReports mehrere Werte an eine SQL-„IN'-Klausel?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!