Maison > base de données > tutoriel mysql > Comment transmettre dynamiquement plusieurs valeurs entières à une clause SQL « IN » dans JasperReports ?

Comment transmettre dynamiquement plusieurs valeurs entières à une clause SQL « IN » dans JasperReports ?

Linda Hamilton
Libérer: 2024-12-22 02:55:10
original
859 Les gens l'ont consulté

How to Dynamically Pass Multiple Integer Values to a SQL

Passer la liste des paramètres SQL "IN" dans JasperReports

Question :

Comment puis-je définir la valeur d'un SQL Paramètre de prédicat « IN » dynamiquement en Java lors de la génération d'un JasperReport ? Le paramètre peut avoir plusieurs valeurs entières déterminées au moment de l'exécution.

Réponse :

JasperReports fournit une variable spéciale, $X, pour gérer ce scénario. En utilisant $X{IN,customer_role,roles}, votre requête se traduira par :

select * 
from customer 
where $X{IN,customer_role,roles}
Copier après la connexion

où customer_role est le nom de la colonne et rôles est le nom du paramètre.

Exemple :

Map<String, Object> parameters = new HashMap<>();
parameters.put("roles", Arrays.asList(1, 2, 3));
JasperReport jasperReport = JasperCompileManager.compileReportToFile(templatePath);
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, dataSource);
Copier après la connexion

En définissant le paramètre rôles comme un tableau d'entiers, la requête générera uniquement des résultats pour les clients avec des ID de rôle dans cette liste.

Références :

  • [Documentation JasperReports - Opérateur IN](https://community.jaspersoft.com/ wiki/IN-opérateur)
  • [Opérateurs JasperReports : $X et $P](https://wiki.pentaho.com/display/BAD/JasperReports Opérateurs : $X et $P)

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!

source:php.cn
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