レポート エンジンに渡される前にレポート パラメーター (入力コントロール) を変換する方法はありますか?
例を挙げます。XML をデータ ソースとして使用しています。
<Results>
<Object Id="0042" Val="dfg0bb" DateTime="2011-09-30T22:00:04Z" />
<Object Id="0097" Val="abf0cc" DateTime="2011-09-30T22:00:06Z" />
...
</Results>
これは私のXPathクエリです:
//Object[translate(translate(translate(translate(@DateTime, '-', ''), ':', ''), 'T', ''), 'Z', '') <= $P{dateTimeValue}]
フィールドの説明は次のとおりです。
@Id, @DateTime, @Val
これは正常に機能しています。必要なものは得られますが、比較のために数値として表す必要があるため、日付属性は一種の問題です。ご覧のとおり、日付を単純な数値として比較するには、数値以外のすべての文字を削除する必要があります (Java の XPath 1.0 の制限)。さらに、JasperServer でこのパラメーターの入力コントロールを定義し、ユーザーがカレンダーから選択できるように日付型にしたいと考えています。
では、レポート エンジンに渡される前に、提供されたパラメータを変換する方法 (スクリプトレットなど) はありますか? (この場合、XPath が機能するように日付を数値に変換します)