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
Libérer: 2024-12-22 17:46:14
original
956 Les gens l'ont consulté

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})
Copier après la connexion

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 + "}");
Copier après la connexion

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}
Copier après la connexion

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 de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal