アプリケーションのクエリを作成しようとしていますが、いくつか問題があります。次のように、データベースの1つのフィールドをパラメーターとして渡す必要があります。
SELECT name, phone, email
FROM company
WHERE $P{clause} = $P{key}
ORDER BY $P{order}
WHERE句とORDER BY句は、ユーザーが動的に選択できるためです。
$P{}
を使用しても機能しませんでした。
JasperReportsのパラメーター参照には2つの構文式があります:$P{}
および$P!{}
。
標本、見本:
|パラメータ名|パラメータタイプ|パラメータ値| |:------------ ------------------- |:--- ------------:| | eventName | Java.lang.String |オリンピック| | 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
標本、見本:
|パラメータ名|パラメータタイプ|パラメータ値| |:--------------- | ------------------:|:--- ------------:| | tableName | Java.lang.String |イベント| | eventName | Java.lang.String |オリンピック| |チャンネル| Java.lang.String | 'BBC' | |タイプ| Java.lang.String |スポーツ|
元の式(置き換える):
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!{clause}の値に依存します)
SELECT name, phone, email FROM company WHERE $P!{clause} = $P!{key} ORDER BY $P!{order}
ここで$ P {key}はJava.lang.Stringパラメータ