2017-09-12 14 views
1

ジャスパー報告書にお金(ユーロ)の値を表示するときに自分のJavaクラス(型)を作成しました。JasperReportサーバー - 独自のJavaデータ型を使用した対話的なフィルタリングが機能しません

public class Euro extends Number implements Comparable<Euro> { 

    @Override 
    public String toString() {...} 

    @Override 
    public boolean equals(Object obj) {...} 

    @Override 
    public int hashCode() {...} 

} 

データが表形式で表示され、すべて正常に動作します。列全体を並べ替えるだけでもうまくいきます。しかし、私は "より大きい"のような列をフィルタリングしたい場合 - フィルタリング後にデータが表示されません。

データの型をBigDecimalソートの動作に変更したとき。私が間違ってやっている何

?または、データをフィルタリングしようとすると、exacltyジャスパーが何をするのか誰にでも教えてください。

+1

あなたはJasperReportsのサーバーについて尋ねていますか? –

+0

@AlexKはい、対話的フィルタリングはJasperReportサーバで行われます。 [link](https://community.jaspersoft.com/documentation/tibco-jasperreports-server-user-guide/v630/interactively-filtering-report-output)。私はタイトルを変更しました。ヒントありがとう – Dirk

+0

カスタムNumber実装を作成する理由は何でしょうか? – Narcis

答えて

0

問題はハスジャスパーがフィルタリングする必要がある列の正しいデータ型を知らないことでした。

だから、あなたはフィルタリングすべきフィールドまたは変数を定義する必要があります。

ソート可能でも濾過可能でもないテーブルの列は、その詳細なテキストフィールド式で複雑な数式が含まれています。 JIVEは詳細テキストフィールドの式を調べて、並べ替えとフィルタリングに必要なデータソースフィールドまたは変数が何であるかを理解します。テキストフィールドでフィールドや変数の名前だけを持つ単純な式を使用すると、処理が円滑になります。

もう1つのアプローチは、列に設定できる次の2つのカスタムプロパティのいずれかを使用して、ソートとフィルタリングに使用するフィールドまたは変数であるテーブルコンポーネントの列レベルで指定することです[タグ/対象:

net.sf.jasperreports.components.table.column.field 
net.sf.jasperreports.components.table.column.variable 

How to make JIVE filtering/soring feature work on column in the table that contains expression

関連する問題