Maison >base de données >tutoriel mysql >Comment transmettre une liste de paramètres Dynamic SQL « IN » dans JasperReports ?

Comment transmettre une liste de paramètres Dynamic SQL « IN » dans JasperReports ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-31 08:15:10576parcourir

How to Pass a Dynamic SQL

Transmission de la liste de paramètres SQL "IN" dans JasperReports

Lors de la génération de JasperReports avec des requêtes SQL à l'aide du prédicat "IN", l'affectation dynamique des paramètres peut être réalisé grâce à la programmation Java. Explorons comment définir dynamiquement la valeur du paramètre "rôles".

La requête en question :

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

Assignation de paramètres en Java

JasperReports fournit une variable spéciale, $X, pour définir les paramètres de manière dynamique. Pour attribuer une liste de valeurs au paramètre « rôles », utilisez la syntaxe suivante :

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

Voici un exemple de la façon de définir la valeur du paramètre par programme en 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);

Notes supplémentaires

  • La liste des rôles doit être de type ArrayList.
  • Référez-vous à la documentation JasperReports pour plus de détails sur la gestion des paramètres.

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