Maison > base de données > tutoriel mysql > Comment transmettre des paramètres aux clauses WHERE et ORDER BY dans les requêtes JasperReports ?

Comment transmettre des paramètres aux clauses WHERE et ORDER BY dans les requêtes JasperReports ?

DDD
Libérer: 2025-01-18 06:37:09
original
762 Les gens l'ont consulté

How to Pass Parameters to WHERE and ORDER BY Clauses in JasperReports Queries?

Lors de la création de requêtes dans JasperReports, vous devrez peut-être transmettre des paramètres dynamiques de l'utilisateur. A cet effet, il existe deux expressions syntaxiques pour les références de paramètres : $P{} et $P!{}.

$P{}Grammaire

La syntaxe

$P{} est principalement utilisée pour définir les valeurs des paramètres d'entrée dans la clause WHERE. Il utilise un algorithme de remplacement « intelligent » similaire à java.sql.PreparedStatement. Par exemple, les paramètres java.lang.String seront remplacés par des valeurs entre guillemets et les paramètres java.lang.Integer seront remplacés par des valeurs numériques.

Par exemple, considérons les paramètres suivants :

参数名称 参数类型 参数值
eventName java.lang.String Olympic Games
eventType java.lang.Integer 2

Expression originale (à remplacer) :

SELECT startDate, endDate, rating
FROM events
WHERE name=$P{eventName} AND type=$P{eventType}
Copier après la connexion

Le résultat sera :

SELECT startDate, endDate, rating
FROM events
WHERE name='Olympic Games' AND type=2
Copier après la connexion

$P!{}Grammaire

La syntaxe

$P!{} est principalement utilisée pour les substitutions simples. Il remplace textuellement les valeurs des paramètres, sans aucun traitement particulier.

Par exemple, considérons les paramètres suivants :

参数名称参数类型参数值
tableNamejava.lang.Stringevents
eventNamejava.lang.StringOlympic Games

Expression originale (à remplacer) :

SELECT startDate, endDate, rating
FROM $P!{tableName}
WHERE name='$P!{eventName}'
Copier après la connexion

Le résultat sera :

SELECT startDate, endDate, rating
FROM events
WHERE name='Olympic Games'
Copier après la connexion

Utilisation dans votre cas

Selon votre question, vous devez définir dynamiquement les clauses WHERE et ORDER BY, vous pouvez utiliser l'expression suivante :

SELECT name, phone, email
FROM company
WHERE $P!{clause} = $P{key}
ORDER BY $P!{order}
Copier après la connexion

$P{key} est un paramètre java.lang.String. Si la valeur $P!{clause} nécessite une valeur entre guillemets, vous pouvez utiliser l'expression suivante à la place :

SELECT name, phone, email
FROM company
WHERE $P!{clause} = '$P!{key}'
ORDER BY $P!{order}
Copier après la connexion

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 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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal