中有两个用于参数引用的语法表达式。JasperReports: $P{}和$P!{}.$P{parame}语法主要用于设置
哪里输入参数值。替换算法是“智能”的,它的实现使用*为
java.lang.String参数,引擎将替换
$P{参数名}有报价,
java.lang.Integer-数值等等。
样本:| Parameter name | Parameter type | Parameter value |
|:---------------|-------------------|:---------------:|
| eventName | java.lang.String | Olympic Games |
| eventType | java.lang.Integer | 2 |
原文(取代):SELECT startDate, endDate, rating FROM events WHERE name=$P{eventName} AND type=$P{eventType}
其结果将是:SELECT startDate, endDate, rating FROM events WHERE name='Olympic Games' AND type=2$P!{parame}语法主要用于做“简单”替换。
样本:| Parameter name | Parameter type | Parameter value |
|:---------------|------------------:|:---------------:|
| tableName | java.lang.String | events |
| eventName | java.lang.String | Olympic Games |
| channel | java.lang.String | 'BBC' |
| type | java.lang.String | sport |
原文(取代):SELECT startDate, endDate, rating FROM $P!{tableName} WHERE name='$P!{eventName}' AND channel=$P!{channel} AND type=$P!{type}
其结果将是:SELECT startDate, endDate, rating FROM events WHERE name='Olympic Games' AND channel='BBC' AND type=sport
获取更多信息你可以看这个使用报表参数发邮件然后看这个查询样本.
在您的例子中,正确的表达式可能如下所示:SELECT name, phone, email FROM company WHERE $P!{clause} = $P{key} ORDER BY $P!{order}
哪里$P{KEY}是java.lang.String参数
或者像这样(这取决于$P!{子句}价值)SELECT name, phone, email FROM company WHERE $P!{clause} = $P!{key} ORDER BY $P!{order}
哪里$P{KEY}是java.lang.String参数