Heim >Datenbank >MySQL-Tutorial >Wie übergebe ich eine dynamische SQL-Parameterliste „IN' in JasperReports?

Wie übergebe ich eine dynamische SQL-Parameterliste „IN' in JasperReports?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-31 08:15:10576Durchsuche

How to Pass a Dynamic SQL

Übergabe der SQL „IN“-Parameterliste in JasperReports

Beim Generieren von JasperReports mit SQL-Abfragen unter Verwendung des „IN“-Prädikats kann eine dynamische Parameterzuweisung erfolgen durch Java-Programmierung erreicht werden. Lassen Sie uns untersuchen, wie Sie den Wert des Parameters „roles“ dynamisch festlegen.

Die betreffende Abfrage:

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

Parameterzuweisung in Java

JasperReports bietet eine spezielle Variable, $X, zum dynamischen Festlegen von Parametern. Um dem Parameter „roles“ eine Liste von Werten zuzuweisen, verwenden Sie die folgende Syntax:

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

Hier ist ein Beispiel für das programmgesteuerte Festlegen des Parameterwerts in 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);

Zusätzliche Hinweise

  • Die Rollenliste sollte vom Typ sein ArrayList.
  • Weitere Informationen zur Parameterbehandlung finden Sie in der JasperReports-Dokumentation.

Das obige ist der detaillierte Inhalt vonWie übergebe ich eine dynamische SQL-Parameterliste „IN' in JasperReports?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn