Maison >base de données >tutoriel mysql >Comment transmettre une liste de paramètres variables au prédicat SQL « IN » de JasperReports ?

Comment transmettre une liste de paramètres variables au prédicat SQL « IN » de JasperReports ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-22 17:46:14923parcourir

How to Pass a Variable Parameter List to JasperReports' SQL

Passer une liste de paramètres de variables dans JasperReports à l'aide du prédicat SQL "IN"

Lorsque vous travaillez avec JasperReports et le prédicat SQL "IN", il est nécessaire pour transmettre dynamiquement une liste de paramètres à la requête. Cet article montre comment définir la valeur d'un paramètre contenant une liste de valeurs entières dans un programme Java.

La requête SQL ci-dessous nécessite une liste de paramètres "rôles" contenant une ou plusieurs valeurs entières :

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

Pour définir dynamiquement la valeur du paramètre "rôles" en Java, utilisez la variable "$X" fournie par 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 + "}");

L'utilisation de la syntaxe "$X{IN,column-name,parameter-name}" vous permet de spécifier la colonne à comparer, le nom du paramètre et la liste de valeurs.

Par exemple, la requête suivante utiliserait le paramètre « rôles » pour filtrer une colonne appelée « rôle_client » :

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

Cette solution vous permet de transmettre une liste de paramètres dynamiques au prédicat SQL "IN" dans JasperReports, garantissant que la requête filtre correctement les données en fonction des valeurs fournies.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn