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
Linda Hamiltonoriginal
2024-12-22 02:55:10932parcourir

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}

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);

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!

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