Heim >Datenbank >MySQL-Tutorial >Wie übergebe ich eine Variablenparameterliste an das SQL-„IN'-Prädikat von JasperReports?

Wie übergebe ich eine Variablenparameterliste an das SQL-„IN'-Prädikat von JasperReports?

Susan Sarandon
Susan SarandonOriginal
2024-12-22 17:46:14950Durchsuche

How to Pass a Variable Parameter List to JasperReports' SQL

Übergabe einer Variablenparameterliste in JasperReports mithilfe des SQL-Prädikats „IN“

Bei der Arbeit mit JasperReports und dem SQL-Prädikat „IN“ ist dies der Fall ist erforderlich, um eine Parameterliste dynamisch an die Abfrage zu übergeben. In diesem Artikel wird gezeigt, wie Sie den Wert eines Parameters festlegen, der eine Liste ganzzahliger Werte in einem Java-Programm enthält.

Die folgende SQL-Abfrage erfordert eine Parameterliste „Rollen“, die einen oder mehrere ganzzahlige Werte enthält:

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

Um den Wert des Parameters „roles“ in Java dynamisch festzulegen, verwenden Sie die von bereitgestellte Variable „$X“. JasperReports:

// Assume the "roles" parameter is a list of integers
List<Integer> roles = ...;

// Convert the list to a comma-separated string
String roleString = roles.stream().map(String::valueOf).collect(Collectors.joining(","));

// Set the parameter value using the "$X" variable
parameters.put("roles", "$X{IN,customer-role," + roleString + "}");

Mit der Syntax „$X{IN,column-name,parameter-name}“ können Sie die zu vergleichende Spalte, den Parameternamen und die Werteliste angeben.

Zum Beispiel würde die folgende Abfrage den Parameter „roles“ verwenden, um eine Spalte namens „customer_role“ zu filtern:

SELECT * 
  FROM customer 
 WHERE $X{IN,customer_role,roles}

Dies Mit der Lösung können Sie eine dynamische Parameterliste an das SQL-Prädikat „IN“ in JasperReports übergeben und so sicherstellen, dass die Abfrage die Daten basierend auf den bereitgestellten Werten korrekt filtert.

Das obige ist der detaillierte Inhalt vonWie übergebe ich eine Variablenparameterliste an das SQL-„IN'-Prädikat von 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