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

Comment transmettre plusieurs valeurs à une clause SQL « IN » dans JasperReports ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-28 21:30:14859parcourir

How to Pass Multiple Values to an SQL

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

Lors de la construction de requêtes dans JasperReports, il est souvent nécessaire d'utiliser le prédicat "IN" de SQL pour filtrer les données en fonction d'une liste de valeurs. Ceci peut être réalisé en spécifiant dynamiquement les valeurs des paramètres dans le code Java.

Considérez le scénario dans lequel une requête utilise un prédicat « IN » pour filtrer les clients en fonction de leurs rôles :

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

Le Le paramètre "rôles" peut recevoir plusieurs valeurs entières, qui seront déterminées dynamiquement lors de la génération du rapport. Pour définir ce paramètre à l'aide du code Java, suivez ces étapes :

JasperReports fournit une variable spéciale, "$X", qui simplifie la gestion des paramètres "IN" :

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

Cette expression va effectivement inclure les valeurs spécifiées dans le paramètre « rôles » dans le prédicat « IN ». Comme souligné dans la documentation liée, cette approche est compatible avec les versions 3.5 et ultérieures de JasperReports et garantit la gestion correcte de plusieurs valeurs de 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