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

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

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

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


1げっと。
NGNG
ほほう、よさげですな。
マツリバイト文字とか大丈夫なのかな?

2グッシ
32
垢版 |
NGNG
マルチバイトの間違い。。。

鬱age
4デフォルトの名無しさん
垢版 |
NGNG
横浜ベイキットやクリスタルレポートの帳票作成ツールとくらべどうなんだ?
5デフォルトの名無しさん
垢版 |
NGNG
>2
だいじょうぶだよ。
6デフォルトの名無しさん
垢版 |
NGNG
実際に使っている者だが
全角英字を項目名として使うとうまくないようだ。
DBと連携して帳票を出す際にテーブルの項目名が
全角英字だとそのままでは使えないのでSELECTの記述で
項目名に別名をつければいいよ。
NGNG
おお、参考になるじゃねえか
8デフォルトの名無しさん
垢版 |
NGNG
JasperAssistantよさげだね。
でもフリーじゃないのね?
9デフォルトの名無しさん
垢版 |
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
10JasperReports
垢版 |
NGNG
>>8
iReportで充分だよ
自分は公開されているiReportに関するPDF資料で
なんとか使えるようになったよ。
11デフォルトの名無しさん
垢版 |
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にて確認。
12デフォルトの名無しさん
垢版 |
NGNG
XMLファイルからjasperファイルにコンパイルする時にクラスファイルがないと
言われる場合は、中間でコンパイルに使うJavaファイルのどこかがおかしい。

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

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

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

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

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

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

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

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

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

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

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

PDFそのものはアップロードさせて見てみたけど問題ないのです。
NGNG
>>26
むしろ、プリンターの設定の問題じゃないの?
28デフォルトの名無しさん
垢版 |
NGNG
>>27
プリンタの設定は確認してないけど
PDFファイルに落としてAcrobatReaderで開いて
普通に印刷すると問題ないのです。はい。
2926
垢版 |
NGNG
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
NGNG
>>29
乙!

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

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

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

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

ま、サンプルがあると思うから、それを見てみるこった。
39デフォルトの名無しさん
垢版 |
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 を使用しています。
御教授お願いします。
40デフォルトの名無しさん
垢版 |
2005/03/30(水) 20:42:21
>>39
2ヶ月も前のレスにレスするのも何だけど・・・

XMLファイル内のJavaコードの記述に誤りがあるのではないかと。
要はサブレポートのjasperファイル(クラスファイルみたいなもの)が
コンパイルエラーで出来ていないということです。
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付属のライブラリだけではできないのかな?
やり方がおかしいのかな?
2005/04/29(金) 14:29:16

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

a 100
b 200
c 300
計 600
2005/05/07(土) 14:44:26
>>45
レポート定義のXMLはどうなっているの?
2005/05/07(土) 14:48:22
補足。
例えば、jasperReport要素のisFloatColumnFooter属性にtrueを設定するといいかも。
4845
垢版 |
2005/05/07(土) 17:09:13
>>46,47
iReport上からは変えられないんですか?
って見てみると、iReportのプロジェクトのオプションのところで
Floating column footerにチェックを入れると一番下だったのが
a,b,cから3行ぐらい開けた下あたりに表示されました。

フローティングしたいわけではなくて、a,b,cのすぐ下に出したいんですけど。
普通の帳票でよくある様に。
2005/05/07(土) 22:08:14
>>48
すぐ下に出すのがフローティングだと思うのだが。
3行ぐらい空いているのは別の要因だと思うが。
5048
垢版 |
2005/05/08(日) 09:55:05
>>49
やっぱり分からない。
iReportで、detailのところでテキストフィールド1つおいて、detailの幅をそのテキストフィールドの高さにぴったりと合わせてます。
ボーダーつけて表示すると、データが5件あったら5つ箱が重なったみたいに表示されます。
ここまでは問題なし。

columnFooterもテキストフィールド1つおいて同様に、高さを上下の隙間無くぴったりと合わせてます。
すると5つの箱が重なったその下に2,3行分ぐらいの隙間をあけてぽつーんと1つ四角の箱が表示されます。

6つの重なった箱にしたいだけなのに、なんか設定が足りないんですかね。
設定する箇所もそんなにないんですけど。
51デフォルトの名無しさん
垢版 |
2005/05/10(火) 21:04:06
日本語を含むレポートをJRHtmlExporterでエクスポートしたけど
日本語が文字化けしてしまいます。
日本語を扱うための追加処理が必要なんでしょうか?

ちなみに、JasperExportManager#exportReportToPdf を
使用したPDFへのエクスポートでは、正しく日本語が出ています。
2005/05/10(火) 21:36:32
JSP で contentType の指定が抜けていました。。。
逝ってきます。
53デフォルトの名無しさん
垢版 |
2005/05/11(水) 11:51:09
オレiTextAsian.jarツカッテナイ
デモ、ニホンゴヒョウジデキタ
Windowsノフォントシカツカッテナイカラ?
2005/05/12(木) 01:39:35
>>53

iReport で、テキストフィールドの Font の設定のところの
Report font、Font name、 PDF font name、TrueType font、
PDF Encoding は何を指定しているの?
55デフォルトの名無しさん
垢版 |
2005/05/12(木) 01:59:45
ttp://www.aware.jp/pdf/jasper_jp.html

で、JasperReportsでフォントを埋め込まない日本語PDFを
生成する方法はわかるんだけど、
フォントを埋め込んで日本語PDFを生成するにはどうすればいいの?
2005/05/12(木) 02:07:35
iReport 0.4.1 ってメニューを日本語で表示でけたのね。。。。
2005/05/12(木) 20:30:52
でもメニューだけって感じで中途半端だよね。
2005/05/12(木) 22:57:32
iReport で

SELECT * FROM TABLENAME WHERE KEY = :variable

ようなバインド変数を使ったSQLを使用してレポート作ることができますか?
59デフォルトの名無しさん
垢版 |
2005/05/12(木) 23:18:34
iReport でパラメータの追加/修正のところの
Is for prompting ってなんなの?
チェック入れてもはずしても効果がないんだけど。
てっきり、パラメータを入力するダイアログかなんかが
出てくると思ったんだけど。
60デフォルトの名無しさん
垢版 |
2005/05/12(木) 23:57:22
iReport でレポートSQLクエリを複数入力したいんですけど、
無理ですか?
2005/05/13(金) 21:28:48
金額表示を3桁カンマ区切りで表示したいんだけど、
どうすればいいのかな?
2005/05/13(金) 21:57:44
>>61
テキストフィールドのプロパティでパターンを指定する。
63デフォルトの名無しさん
垢版 |
2005/05/16(月) 10:31:37
>>54 コンナカナジデス。
<reportFont name="STD_FONT" isDefault="false" fontName="MS ゴシック"
size="10" isBold="false" isItalic="false" isUnderline="false"
isStrikeThrough="false" pdfFontName="C:\WINNT\FONTS\MSGothic.ttc,0"
pdfEncoding="Identity-H" isPdfEmbedded="false"/>

64デフォルトの名無しさん
垢版 |
2005/05/16(月) 10:35:21
>>58
できますよぉ〜。
65デフォルトの名無しさん
垢版 |
2005/05/16(月) 10:38:41
>>60
無理じゃないかしら。
レイアウトが見えないのでなんともだけど
JOINしてなんとか1クエリにまとめるか
サブレポート化するなどすればなんとかなるかも
66デフォルトの名無しさん
垢版 |
2005/05/16(月) 13:30:11
>>58

こんな感じだ
<parameter name="MaxOrderID" class="java.lang.Integer"></parameter>
<queryString><![CDATA[SELECT * FROM Orders WHERE OrderID <= $P{MaxOrderID} ORDER BY ShipCountry]]></queryString>

くわしくはdemoのFirstJasperなんかをLOOK
2005/05/16(月) 20:16:06
>>62
できました。パターンをいろいろ指定できるんですね。

パターンを指定するところでCurrencyという¥#,##0.00の
パターンを選んだときにフォントを日本語にしないと
円マークってでないんですね。全角だから?
気付くのに時間がかかった。。。
■ このスレッドは過去ログ倉庫に格納されています