Paramètre de requête JasperReports passant
Dans les requêtes de base de données, il est courant de transférer dynamiquement des paramètres en fonction des entrées de l'utilisateur. Certains utilisateurs peuvent rencontrer des problèmes lors de la transmission de paramètres à l'aide de la syntaxe $P{}
.
JasperReports fournit deux syntaxes pour référencer les paramètres : $P{}
et $P!{}
.
$P{paramName}
Grammaire$P{paramName}
est principalement utilisé pour définir la valeur du paramètre d'entrée de la clause WHERE. L'algorithme de remplacement pour cette syntaxe est similaire à java.sql.PreparedStatement
. Il gère intelligemment différents types de paramètres :
java.lang.String
, le moteur remplace $P{parameterName}
par une valeur citée. java.lang.Integer
, le moteur remplacera $P{parameterName}
par une valeur numérique. 参数名称 | 参数类型 | 参数值 |
---|---|---|
eventName | java.lang.String | Olympic Games |
eventType | java.lang.Integer | 2 |
Expression originale :
<code class="language-sql">SELECT startDate, endDate, rating FROM events WHERE name=$P{eventName} AND type=$P{eventType}</code>
Résultat :
<code class="language-sql">SELECT startDate, endDate, rating FROM events WHERE name='Olympic Games' AND type=2</code>
$P!{paramName}
Grammaire$P!{paramName}
effectue une substitution simple, généralement utilisée pour remplacer la valeur exacte d'un argument.
参数名称 | 参数类型 | 参数值 |
---|---|---|
tableName | java.lang.String | events |
eventName | java.lang.String | Olympic Games |
channel | java.lang.String | 'BBC' |
type | java.lang.String | sport |
Expression originale :
<code class="language-sql">SELECT startDate, endDate, rating FROM $P!{tableName} WHERE name='$P!{eventName}' AND channel=$P!{channel} AND type=$P!{type}</code>
Résultat :
<code class="language-sql">SELECT startDate, endDate, rating FROM events WHERE name='Olympic Games' AND channel='BBC' AND type=sport</code>
Pour la requête donnée, les expressions suivantes peuvent s'appliquer :
$P{key}
est java.lang.String
tapez le paramètre : <code class="language-sql">SELECT name, phone, email FROM company WHERE $P!{clause} = $P{key} ORDER BY $P!{order}</code>
$P{key}
est un paramètre de type non-chaîne : <code class="language-sql">SELECT name, phone, email FROM company WHERE $P!{clause} = $P!{key} ORDER BY $P!{order}</code>
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!