トップページ⇒tech
314コメント125KB

[無料でラクラクJava帳票作成] JasperReports使い集合

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
JAVAで帳票作成するとなると
それなりの帳票ツールがないとテンテコ舞。
でも、帳票ツールは高い。
せっかくJavaとかTomcatとか無料で開発・運用できる環境があるのに
帳票も作りも無料でやりたいもんだ。

そんな救世主JasperReportsについて朝まで語り合いましょう。
http://jasperreports.sourceforge.net/

デザインツールiReportやJasperAssistantがなければ
ラクラクにはなりませんのでその話題も・・・。
http://ireport.sourceforge.net/
http://www.jasperassistant.com/index.html


1げっと。
0002デフォルトの名無しさんNGNG
ほほう、よさげですな。
マツリバイト文字とか大丈夫なのかな?

2グッシ
00032NGNG
マルチバイトの間違い。。。

鬱age
0004デフォルトの名無しさんNGNG
横浜ベイキットやクリスタルレポートの帳票作成ツールとくらべどうなんだ?
0005デフォルトの名無しさんNGNG
>2
だいじょうぶだよ。
0006デフォルトの名無しさんNGNG
実際に使っている者だが
全角英字を項目名として使うとうまくないようだ。
DBと連携して帳票を出す際にテーブルの項目名が
全角英字だとそのままでは使えないのでSELECTの記述で
項目名に別名をつければいいよ。
0007デフォルトの名無しさんNGNG
おお、参考になるじゃねえか
0008デフォルトの名無しさんNGNG
JasperAssistantよさげだね。
でもフリーじゃないのね?
0009デフォルトの名無しさんNGNG
NuLabって会社が、JasperReportに関するPDF資料を公開してたんだけど、
サイトが落ちてるな。。。
ググったページ(PDF)のキャッシュのHTML版。
ttp://216.239.57.104/search?q=cache:pcmxkVssvzIJ:www.nulab.co.jp/docs/opensource-01-jasperreports.pdf+%22opensource-01-jasperreports%22+%22.pdf%22&hl=en&lr=lang_ja
画像全滅か。。。
元リンクは、これ。今はつながらない。
ttp://www.nulab.co.jp/docs/opensource-01-jasperreports.pdf
0010JasperReportsNGNG
>>8
iReportで充分だよ
自分は公開されているiReportに関するPDF資料で
なんとか使えるようになったよ。
0011デフォルトの名無しさんNGNG
ソースのdori/jasper/engine/util/JRQueryExecuter.java
の209行目の
pstmt = conn.prepareStatement(queryString);
を
if (!queryString.substring(0,5).toUpperCase().equals("EXEC ")) {
pstmt = conn.prepareStatement(queryString);
} else {
pstmt = (PreparedStatement)conn.prepareCall(queryString);
}
に変更すればストアド対応になるよ。

java.sql.CallableStatement;
のimportも忘れずに。

SQL-Server + jtds0.5.2にて確認。
0012デフォルトの名無しさんNGNG
XMLファイルからjasperファイルにコンパイルする時にクラスファイルがないと
言われる場合は、中間でコンパイルに使うJavaファイルのどこかがおかしい。

XMLファイルのクラス指定あたりをチェックしてみるとよいかも。
0013デフォルトの名無しさんNGNG
複雑なレポートを作るのには本当に疲れた。
いくつもサブレポートを作って、更にその中にサブレポートがあったり、
グループがいっぱいあったり・・・。
0014デフォルトの名無しさんNGNG
>>12
XMLファイルの中にクラス指定って
Javaでいうimportみたいなことですか?

自分もコンパイルで「クラスが見つからないエラー」が出たとき
クラス指定のやり方が解からず、結局はクラスのURLを
フルパスで入れて対処しました。

0015デフォルトの名無しさんNGNG
>>14
フルパスで入れてOKならいいけど、どこを指定してもダメな場合がある。
大概の場合、これでエラーが出ると定義ファイルを疑った方がよさそう。

典型的なのは<textFieldExpression>
class属性のデフォルトはjava.lang.Stringなので、Integer型の変数とかを表示する際に
class属性を指定しないと、>>12で上げたようなエラーになる。
0016デフォルトの名無しさんNGNG
>>15
>典型的なのは<textFieldExpression>
>class属性のデフォルトはjava.lang.Stringなので、Integer型の変数とかを表示する際に
>class属性を指定しないと、>>12で上げたようなエラーになる。
なるほど、そうゆうことですね。
自分の場合は、DBから取得したデータ(コード)を画面に表示する際に
コードに対応した日本語表現に変換するクラスを作成したしたのですが
そのクラスを印刷するときにも流用させようと思って試行錯誤しました。

最初、作成したクラスをJavaのimportみたいなことで定義するには
どうやればよいのか調べたのですが、結局見つからずにフルパスでやったのでした。
0017デフォルトの名無しさんNGNG
ver0.5.3と0.6.0でクラス名が変わっているけど、
dori.jasper.engine ⇒ net.sf.jasperreports.engine 等

iReportやその他サンプルによって利用しているverがまちまちだったりする
ので注意。
0018デフォルトの名無しさんNGNG
そうそう・・・
変わったんだよね。
0.6.0にしたとたん動かなくなったのでびっくりした。
なぜ変えたんだろ。

意味は分からないけどdoriよりnetの方がカッコいいから?
0019デフォルトの名無しさんNGNG
sourceforgeで管理始めたから?
それにしても、sourceforgeつかったらnet.sfっていうパッケージ名が使えて便利だね。
0020デフォルトの名無しさんNGNG
はじめまして、

JavaでPDF帳票をつくりたいですが、サイトでいくら調べてて、
iReportとJasperReports組み合わせるほうがいちばんよいらしいです。
サンプルにみるとほとんど DBと接続して帳票がつくるものですが。
XML電文式のデータで帳票をつくったケースがありますか。

ご教授。
0021デフォルトの名無しさんNGNG
>>20
そういうケースは知らないけど、
インプットがDBでなくXMLであるのなら、
JRXmlDataSourceを使ってみては如何?
0022デフォルトの名無しさんNGNG
>>20
XMLデータのレポートはやったことがないし、
いまのところニーズもないけど、
JasperReportsのソースをダウンロードして
\demo\samples\xmldatasource
を参考にしたらよろしいかと・・・。
0023デフォルトの名無しさんNGNG
>>20
fop
0024デフォルトの名無しさんNGNG
iReportの使い勝手ってどうよ?

位置合わせが難しいわ、
XMLにコメントとか細かい設定をしても、iReportで更新したらおじゃんになるわで、
結局XMLをEclipseプラグインのX-Menでシコシコ書いているわけですが・・・

おれだけ?
0025デフォルトの名無しさんNGNG
>>24
俺も俺も!
自動生成系の奴は元のコメント残してくれるだけでもありがたいんだけどなぁっていつも思う
0026デフォルトの名無しさんNGNG
A4横のPDFをservletから直接プリンタへ出力すると
縦で印刷されたかのように右側が切れて印刷されるんだけど
誰か教えて!!

PDFそのものはアップロードさせて見てみたけど問題ないのです。
0027デフォルトの名無しさんNGNG
>>26
むしろ、プリンターの設定の問題じゃないの?
0028デフォルトの名無しさんNGNG
>>27
プリンタの設定は確認してないけど
PDFファイルに落としてAcrobatReaderで開いて
普通に印刷すると問題ないのです。はい。
002926NGNG
JRPrintServiceExporter.javaの180行目を
下のようにしたら解決したのでご報告まで(<の部分を追加)

if (!printRequestAttributeSet.containsKey(MediaPrintableArea.class))
{
< if (printRequestAttributeSet.containsKey(OrientationRequested.class) && printRequestAttributeSet.containsValue(OrientationRequested.LANDSCAPE))
< printRequestAttributeSet.add(
< new MediaPrintableArea(
< 0f,
< 0f,
< (float)jasperPrint.getPageHeight() / 72f,
< (float)jasperPrint.getPageWidth() / 72f,
< MediaPrintableArea.INCH
< )
< );
< else
printRequestAttributeSet.add(
new MediaPrintableArea(
0f,
0f,
(float)jasperPrint.getPageWidth() / 72f,
(float)jasperPrint.getPageHeight() / 72f,
MediaPrintableArea.INCH
)
);
}

バージョン 0.6.2
0030デフォルトの名無しさんNGNG
>>29
乙!

デフォルトは縦になってるのか・・・。
0031デフォルトの名無しさんNGNG
Linuxサーバで帳票作るとき、フォントは何指定するの?
MS明朝?
0032デフォルトの名無しさんNGNG
0033デフォルトの名無しさんNGNG
AcrobatReaderで開いてから印刷したものと
JasperReportsを使って直接プリンタに印刷したものとでは
直接印刷したほうがちょっと拡大されてででくるよね。

それっておれだけ?
0034デフォルトの名無しさんNGNG
単純に縮小して印刷になってない?
0035デフォルトの名無しさんNGNG
>>34
特に縮小拡大の指定はしていないんですが、
印刷するアプリケーションが違うので多少の誤差は
あるとは思うけど・・・。

逆にチョット縮小させて出したいので縮小拡大の方法を
ご存知でしたらご存知でしたら教えてー。
003633,35NGNG
縮小のやり方はJasperReportsを改造することで可能になったけど
オレの勘違いでAcrobatReaderで印刷するときに縮小印刷に
なっていた。(default?)
JasperReportsで出た大きさが正解ってことでした。

>>34
そのことを言いたかったのか・・・
0037デフォルトの名無しさん05/01/28 15:37:28
サブレポートってどうやって作るんですか?
0038デフォルトの名無しさん05/01/28 23:32:41
>>37
・レポートを作る
・そのレポートを別のレポートからsubreport要素を使って呼び出す

ま、サンプルがあると思うから、それを見てみるこった。
0039デフォルトの名無しさん05/01/31 17:17:49
>>38
アドバイスに従って、サンプル(jasperreports-0.6.4/demo/samples/subreport)をまねてみたのですが、
以下のようなエラーが出ました。
Error filling print...
testdb $ testdb jdbc:mysql://localhost:3306/testdb
dori.jasper.engine.JRException: Could not load object from location : subReport.jasper
省略
print not filled. Try to use an EmptyDataSourse...!

環境は iReport-0.2.2 を使用しています。
御教授お願いします。
0040デフォルトの名無しさん2005/03/30(水) 20:42:21
>>39
2ヶ月も前のレスにレスするのも何だけど・・・

XMLファイル内のJavaコードの記述に誤りがあるのではないかと。
要はサブレポートのjasperファイル(クラスファイルみたいなもの)が
コンパイルエラーで出来ていないということです。
0041デフォルトの名無しさん2005/04/27(水) 22:55:21
iReport-0.4.1 上では日本語を表示できていたが、
アプリでPDFとしてエクスポートする機能を
使用したときに日本語を表示できない。

ttp://www.moriwaki.net/wiki/index.php?JasperReports
の「外部フォントを使用しない日本語表示」を参考に
iTextAsian.jar追加し、レポートのフィールドのプロパティを
変更してから実行すると日本語が表示できた。

日本語PDFを扱うのに iTextAsian.jar って必要なの?
iReport付属のライブラリだけではできないのかな?
やり方がおかしいのかな?
0042デフォルトの名無しさん2005/04/29(金) 14:29:16

>>41
で、結局出来たのか出来ないのか、どっちなんだ!
0043デフォルトの名無しさん2005/04/29(金) 21:15:09
>>41
必要だと聞いている。
0044デフォルトの名無しさん2005/05/07(土) 01:08:59
1000ページぐらいあるレポート作成できる?
0045デフォルトの名無しさん2005/05/07(土) 06:40:14
iReportで合計行を明細のすぐ下に出すにはどうしたらいいんですか?
どうしても合計行だけが離れて紙の一番下にへばりついてしまうんですけど。

a 100
b 200
c 300
計 600
■ このスレッドは過去ログ倉庫に格納されています