Passer les paramètres de requête dans JasperReports
JasperReports vous permet de contrôler dynamiquement divers aspects de votre requête à l'aide de paramètres, tels que les clauses WHERE et ORDER BY. Ceci est utile lorsque vous souhaitez que les utilisateurs aient la flexibilité de spécifier la manière dont les données sont récupérées.
Syntaxe de référence des paramètres
La référence du paramètre a deux expressions syntaxiques : $P{}
et $P!{}
.
$P{paramName}
est utilisé pour remplacer les paramètres dans la clause WHERE. Par exemple, si vous avez un paramètre de type java.lang.String nommé "eventName", vous pouvez l'utiliser dans la clause WHERE comme ceci : <code class="language-sql">WHERE name=$P{eventName}</code>
$P!{paramName}
est utilisé pour remplacer des paramètres n'importe où dans la requête, y compris les clauses WHERE et ORDER BY. Par exemple, si vous avez un paramètre de type java.lang.String nommé "order", vous pouvez l'utiliser dans une clause ORDER BY comme ceci : <code class="language-sql">ORDER BY $P!{order}</code>
Gestion des types de paramètres
$P{}
La syntaxe est "intelligente" et gère correctement différents types de paramètres. Par exemple, si vous avez un paramètre de type java.lang.String, le moteur remplacera $P{paramName}
par une valeur entre guillemets. Si vous avez un paramètre de type java.lang.Integer, le moteur remplacera $P{paramName}
par une valeur numérique.
Exemple d'utilisation
Pour passer un champ de la base de données en paramètre, vous pouvez utiliser la syntaxe $P!{}
. Par exemple, la requête suivante utilise le paramètre $P!{clause}
pour spécifier la clause WHERE et le paramètre $P!{order}
pour spécifier la clause ORDER BY :
<code class="language-sql">SELECT name, phone, email FROM company WHERE $P!{clause} = $P{key} ORDER BY $P!{order}</code>
Dans cet exemple, le paramètre $P!{clause}
est de type java.lang.String et le paramètre $P!{order}
est de type java.lang.String.
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!