2016-04-14 13 views
0

まず、iReportにはこの質問が必要です。 ドット記号をカンマで置き換える必要があります。私の問題は、データベースからフィールドの型がBigDecimalであるため、replaceメソッドが存在しないことです。 だから私は型を文字列に変更しましたが、その後私は、このメッセージが表示されました:どのようにiReportのドットをコンマで置き換えることができますか?

[email protected] The type java.lang.CharSequence cannot be resolved. It is indirectly referenced from required .class files 

私のコードは次のようになります。

new String($F{gewicht}.toString()).replace(".",",") 

私は何ができますか?

+1

あなたは番号をフォーマットする必要がありますか? [xyの問題](http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)のように思えますが、ジャスパーのレポートでロケールとパターンを使用します –

答えて

0

あなたがテキストフィールドのパターンを使用することができます。この場合、これは€の値についてですが、あなたは€をスキップしたい場合は、よりdescimalsを追加することができます。

<textField pattern="#,####0.0000"> 

は別のアプローチがあることwhould:タイプのjava:

new DecimalFormat("#,##0.00 €", new DecimalFormatSymbols(Locale.GERMANY)). format(Double.parseDouble($F{gewicht}))

+0

ありがとう、私はこれを最初に試みました。しかしそれは何も変わらない。 @hering –

+0

私たちはこれを二重の値に使用しています。そのため、二重にキャストする必要があります。変数は二重値ですが、istをキャストする必要があります。 'Double.parseDouble($ F {gewicht})' – hering

+0

私はこの問題を2倍にしています。 cust_kost_gesフィールド型java.lang.Double; テキストフィールド式クラスjava.lang.Double; パターン#、## 0.00 と、私の出力は次のようになります。 120。00€120,00€ –

1

テキスト式として、次を入力してみてください:

$F{gewicht}.toString().replace(".",",") 

これが動作しない場合は、一つの代替は、あなたのJava層でフォーマットを扱うことであろう、例えばここで

BigDecimal bd = new BigDecimal(1.2345); 
NumberFormat nf = NumberFormat.getNumberInstance(Locale.GERMAN); 
DecimalFormat df = (DecimalFormat)nf; 
String gewicht = df.format(bd); 

私は小数点とカンマが、彼らは米国および他のいくつかの場所にあるものから、役割を逆に欧州のドイツ語のロケールを使用していました。カンマと小数点の両方を扱いたいと思うかもしれません。

<textField pattern="#,##0.00 €"> 

これはあなたのドイツ語の形式を与える:

+0

1.2345(javaによって決定可能な精度はありません)ではなく、 'new BigDecimal(1.2345"); '(精度4)になります。 –

+0

@Tim Biegeleisen私はそれを試して、それは動作しますが、エラーメッセージは同じです。 2番目のソルーションへ:Javaレイヤーはどこで見つけることができますか?おかげさまで –

+0

私はJasperレポートを生成するJavaコードを参照しています。 –

0

は、問題を回避するには.lang.CharSequenceを解決することはできません。 。 新しいのDecimalFormat( "#、## 0.00€"、新しいDecimalFormatSymbolsの(Locale.GERMANY))形式(Double.parseDouble($:これは、間接的に必要な.classファイル

あなたが設定できるような新しいのDecimalFormatから参照されていますF(gewicht)))

ありがとう@hering

関連する問題