ACCESSのレポートで列AとBを足したい場合は非連結のテキストボックスを設けて
Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer)
テキストボックス = A + B
End Sub
とすればA+Bの計算結果をテキストボックスに表示する事が出来ましたが、
(式エディタは面倒なので使ってませんでした)
JasperReportsでやってみた所、うまくいかずはまりました。
まず、ACCESSと同じ感覚で以下の様にして
$F{A} + $F{B}
レポートのコンパイルを行うとこんなエラーが
The operator + is undefined for the argument type(s) java.lang.Integer, java.lang.Integer
Integerでは + 演算子が使えないという内容でしたので今度は
$F{A}.intValue() + $F{B}.intValue()
とした所
Cannot cast from int to Integer
というエラーに...
エラーの内容を元にWebで調べてみたのですが、英語での情報しかない上に、「データソースの段階で計算しておけばいいじゃない?」。というような内容であまり参考にはならずで、あきらめようとしていたのですが、どうやらJavaの文法が使えそうな気がしてきたので
Integer.valueOf($F{A}.intValue() + $F{B}.intValue())
の様にしてみた所うまく表示されるようになりました。
VariablesではIntegerのまま使えるのになぜ?という感じではありますが一応解決です。
Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer)
テキストボックス = A + B
End Sub
とすればA+Bの計算結果をテキストボックスに表示する事が出来ましたが、
(式エディタは面倒なので使ってませんでした)
JasperReportsでやってみた所、うまくいかずはまりました。
まず、ACCESSと同じ感覚で以下の様にして
$F{A} + $F{B}
レポートのコンパイルを行うとこんなエラーが
The operator + is undefined for the argument type(s) java.lang.Integer, java.lang.Integer
Integerでは + 演算子が使えないという内容でしたので今度は
$F{A}.intValue() + $F{B}.intValue()
とした所
Cannot cast from int to Integer
というエラーに...
エラーの内容を元にWebで調べてみたのですが、英語での情報しかない上に、「データソースの段階で計算しておけばいいじゃない?」。というような内容であまり参考にはならずで、あきらめようとしていたのですが、どうやらJavaの文法が使えそうな気がしてきたので
Integer.valueOf($F{A}.intValue() + $F{B}.intValue())
の様にしてみた所うまく表示されるようになりました。
VariablesではIntegerのまま使えるのになぜ?という感じではありますが一応解決です。
1 件のコメント:
この記事で救われました。ありがとうございます
コメントを投稿