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
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!