[無料でラクラクJava帳票作成] JasperReports使い集合
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNGそれなりの帳票ツールがないとテンテコ舞。
でも、帳票ツールは高い。
せっかくJavaとかTomcatとか無料で開発・運用できる環境があるのに
帳票も作りも無料でやりたいもんだ。
そんな救世主JasperReportsについて朝まで語り合いましょう。
http://jasperreports.sourceforge.net/
デザインツールiReportやJasperAssistantがなければ
ラクラクにはなりませんのでその話題も・・・。
http://ireport.sourceforge.net/
http://www.jasperassistant.com/index.html
1げっと。
0030デフォルトの名無しさん
NGNG乙!
デフォルトは縦になってるのか・・・。
0031デフォルトの名無しさん
NGNGMS明朝?
0032デフォルトの名無しさん
NGNG0033デフォルトの名無しさん
NGNGJasperReportsを使って直接プリンタに印刷したものとでは
直接印刷したほうがちょっと拡大されてででくるよね。
それっておれだけ?
0034デフォルトの名無しさん
NGNG0035デフォルトの名無しさん
NGNG特に縮小拡大の指定はしていないんですが、
印刷するアプリケーションが違うので多少の誤差は
あるとは思うけど・・・。
逆にチョット縮小させて出したいので縮小拡大の方法を
ご存知でしたらご存知でしたら教えてー。
003633,35
NGNGオレの勘違いでAcrobatReaderで印刷するときに縮小印刷に
なっていた。(default?)
JasperReportsで出た大きさが正解ってことでした。
>>34
そのことを言いたかったのか・・・
0037デフォルトの名無しさん
05/01/28 15:37:280038デフォルトの名無しさん
05/01/28 23:32:41・レポートを作る
・そのレポートを別のレポートからsubreport要素を使って呼び出す
ま、サンプルがあると思うから、それを見てみるこった。
0039デフォルトの名無しさん
05/01/31 17:17:49アドバイスに従って、サンプル(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:212ヶ月も前のレスにレスするのも何だけど・・・
XMLファイル内のJavaコードの記述に誤りがあるのではないかと。
要はサブレポートのjasperファイル(クラスファイルみたいなもの)が
コンパイルエラーで出来ていないということです。
0041デフォルトの名無しさん
2005/04/27(水) 22:55:21アプリで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必要だと聞いている。
0044デフォルトの名無しさん
2005/05/07(土) 01:08:590045デフォルトの名無しさん
2005/05/07(土) 06:40:14どうしても合計行だけが離れて紙の一番下にへばりついてしまうんですけど。
a 100
b 200
c 300
計 600
0046デフォルトの名無しさん
2005/05/07(土) 14:44:26レポート定義のXMLはどうなっているの?
0047デフォルトの名無しさん
2005/05/07(土) 14:48:22例えば、jasperReport要素のisFloatColumnFooter属性にtrueを設定するといいかも。
004845
2005/05/07(土) 17:09:13iReport上からは変えられないんですか?
って見てみると、iReportのプロジェクトのオプションのところで
Floating column footerにチェックを入れると一番下だったのが
a,b,cから3行ぐらい開けた下あたりに表示されました。
フローティングしたいわけではなくて、a,b,cのすぐ下に出したいんですけど。
普通の帳票でよくある様に。
0049デフォルトの名無しさん
2005/05/07(土) 22:08:14すぐ下に出すのがフローティングだと思うのだが。
3行ぐらい空いているのは別の要因だと思うが。
005048
2005/05/08(日) 09:55:05やっぱり分からない。
iReportで、detailのところでテキストフィールド1つおいて、detailの幅をそのテキストフィールドの高さにぴったりと合わせてます。
ボーダーつけて表示すると、データが5件あったら5つ箱が重なったみたいに表示されます。
ここまでは問題なし。
columnFooterもテキストフィールド1つおいて同様に、高さを上下の隙間無くぴったりと合わせてます。
すると5つの箱が重なったその下に2,3行分ぐらいの隙間をあけてぽつーんと1つ四角の箱が表示されます。
6つの重なった箱にしたいだけなのに、なんか設定が足りないんですかね。
設定する箇所もそんなにないんですけど。
0051デフォルトの名無しさん
2005/05/10(火) 21:04:06日本語が文字化けしてしまいます。
日本語を扱うための追加処理が必要なんでしょうか?
ちなみに、JasperExportManager#exportReportToPdf を
使用したPDFへのエクスポートでは、正しく日本語が出ています。
0052デフォルトの名無しさん
2005/05/10(火) 21:36:32逝ってきます。
0053デフォルトの名無しさん
2005/05/11(水) 11:51:09デモ、ニホンゴヒョウジデキタ
Windowsノフォントシカツカッテナイカラ?
0054デフォルトの名無しさん
2005/05/12(木) 01:39:35iReport で、テキストフィールドの Font の設定のところの
Report font、Font name、 PDF font name、TrueType font、
PDF Encoding は何を指定しているの?
0055デフォルトの名無しさん
2005/05/12(木) 01:59:45で、JasperReportsでフォントを埋め込まない日本語PDFを
生成する方法はわかるんだけど、
フォントを埋め込んで日本語PDFを生成するにはどうすればいいの?
0056デフォルトの名無しさん
2005/05/12(木) 02:07:350057デフォルトの名無しさん
2005/05/12(木) 20:30:520058デフォルトの名無しさん
2005/05/12(木) 22:57:32SELECT * FROM TABLENAME WHERE KEY = :variable
ようなバインド変数を使ったSQLを使用してレポート作ることができますか?
0059デフォルトの名無しさん
2005/05/12(木) 23:18:34Is for prompting ってなんなの?
チェック入れてもはずしても効果がないんだけど。
てっきり、パラメータを入力するダイアログかなんかが
出てくると思ったんだけど。
0060デフォルトの名無しさん
2005/05/12(木) 23:57:22無理ですか?
0061デフォルトの名無しさん
2005/05/13(金) 21:28:48どうすればいいのかな?
0062デフォルトの名無しさん
2005/05/13(金) 21:57:44テキストフィールドのプロパティでパターンを指定する。
0063デフォルトの名無しさん
2005/05/16(月) 10:31:37<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"/>
0064デフォルトの名無しさん
2005/05/16(月) 10:35:21できますよぉ〜。
0065デフォルトの名無しさん
2005/05/16(月) 10:38:41無理じゃないかしら。
レイアウトが見えないのでなんともだけど
JOINしてなんとか1クエリにまとめるか
サブレポート化するなどすればなんとかなるかも
0066デフォルトの名無しさん
2005/05/16(月) 13:30:11こんな感じだ
<parameter name="MaxOrderID" class="java.lang.Integer"></parameter>
<queryString><![CDATA[SELECT * FROM Orders WHERE OrderID <= $P{MaxOrderID} ORDER BY ShipCountry]]></queryString>
くわしくはdemoのFirstJasperなんかをLOOK
0067デフォルトの名無しさん
2005/05/16(月) 20:16:06できました。パターンをいろいろ指定できるんですね。
パターンを指定するところでCurrencyという¥#,##0.00の
パターンを選んだときにフォントを日本語にしないと
円マークってでないんですね。全角だから?
気付くのに時間がかかった。。。
0068デフォルトの名無しさん
2005/05/16(月) 20:52:27日本以外で円マークを使っている国はあるのか?
0069デフォルトの名無しさん
2005/05/16(月) 21:18:320070デフォルトの名無しさん
2005/05/16(月) 21:29:29改行いれながら調整するしかないんでしょうか?
0071デフォルトの名無しさん
2005/05/16(月) 21:39:31「テキストにあわせて描画オブジェクトのサイズを調整する」
ようなことってできますか?
ぽちぽちっと適度なサイズに変更したいんですけど。
0072デフォルトの名無しさん
2005/05/16(月) 22:04:09いけないんでしょうか?次のようなレポートだと、縦線が
6本必要になりますよね?もっとうまいやり方があるんでしょうか?
|氏名 |年齢|
−−−−−−−−−
|$F{name}|$F{age}|
0073デフォルトの名無しさん
2005/05/16(月) 23:32:48ワシも知りたい。
>>72
エリアごとに四角を配置してみるとか?
0074デフォルトの名無しさん
2005/05/17(火) 00:40:38円マークは使わないよ。
JPYとかが一般的じゃない?
アメリカドルならUSDとか。
0075デフォルトの名無しさん
2005/05/17(火) 02:16:48これって実用レベルに達しているのでしょうか?
それと、プロパティのBarcode expressionってStringで表現
しないとコンパイルが通らないです。でも、ダブルクオートで
表現したいコードを囲むと、iReport上のバーコードオブジェクトが
Barcode Errorで表示されてしまう。う〜ん。
0076デフォルトの名無しさん
2005/05/17(火) 02:23:36調整できないのかな?
0077デフォルトの名無しさん
2005/05/17(火) 12:19:351行だけなら縦長のフィールドを作成して
自動改行させればできるが、縦文字のフォント
を使わないと長音(ー)とか括弧なんかは変になってしまうよ
0078デフォルトの名無しさん
2005/05/17(火) 22:36:42複数クエリは無理なんですか。。。
メインで扱うデータを取得するSQLはレポートSQLクエリに、
それ以外のデータは、パラメータ化してレポートに渡すか、
サブレポートで、というのがお作法なんでしょうか。
レポートに複数SQLを埋め込めたほうが、SQLがまとまって
いいような気もするけど。
0079デフォルトの名無しさん
2005/05/17(火) 22:57:57できまつた。
それとJava 側からバインド変数へ値を渡すにはHashMapを使うんですね。
また、SQLの条件句自体をパラメータ渡ししたいときは$P!{hogehoge}
ってのが使えるんだね。
0080デフォルトの名無しさん
2005/05/17(火) 23:08:46作法というか
おかれている環境、状況で工夫するしかないと思います。
複数SQLを埋め込める帳票ツールがあってそれを導入することが
できるのならそれを用いればよいし。。。
メインのデータとそれ以外のデータに結合点があればJOINすればいいし
そうでなければストアドなどで無理やり1つのResultSetを作り出せば
いいんじゃないかと。
0081デフォルトの名無しさん
2005/05/17(火) 23:52:157.3章のXML Datasource Syntax を試しているんだけど、
+、@、*のシンボルがエラーになる。
例えば、次のように設定してid属性値を取得しようとしても
一番下のようなエラーが出る。
・XML Datasource
Name: Hello
XML file: C:\hello.xml
Select Expression: /hello
・Fields
Field Name, Field, Description Type
hello, /hello, java.lang.String ○ このフィールドは表示可能
id, /hello@id, java.lang.String × エラーになる
・hello.xml の内容
<hello id="id">hello</hello>
・iReport 上でのエラーメッセージ
Filling report...
Error?filling?print...
javax.xml.transform.TransformerException:?余分な不正トークン:?'@',?'id'
(エラーメッセージって日本語で出力されてたから
□□□になってたんですね。。。)
0082デフォルトの名無しさん
2005/05/21(土) 22:13:460083デフォルトの名無しさん
2005/05/24(火) 08:45:53PHPでPDF出力するようなソリューションってころがってないかにゃー。
0084デフォルトの名無しさん
2005/05/25(水) 23:53:15お、それいただき!
0085デフォルトの名無しさん
2005/05/26(木) 20:32:390086デフォルトの名無しさん
2005/06/06(月) 21:39:06XMLからJasperReportインスタンス(空のレポートインスタンス?)
を生成するところで、数秒かかってしまってます。
このインスタンスを再利用できれば、パフォーマンスが上がるかなって思ってます。
再利用は可能でしょうか?
JasperReportインスタンスは一つだけ作っておき、リクエスト毎にJasperPrint
インスタンスを作るって方法です。
要するに、JasperReportインスタンスはスレッドセーフに使えるのでしょうか?
APIやその他ドキュメントを見ても良く分かりませんでした。
宜しくお願いします。
0087デフォルトの名無しさん
2005/06/07(火) 00:10:19コンパイル済みjasper ファイルを実行時に読み込んでバインド→PDF出力、ということを、
サンプルの JasperPrintServlet.java でやってる。
008886
2005/06/07(火) 05:42:29サンクスです。
このjasperファイルってJasperReportインスタンスをシリアライズ
したものなんですよね?
ファイルの読み込みってシンクロナイズする必要ありましたっけ?
StrutsのActionはスレッドを意識しないで組みたいなって思ってますので。
自分ももうちょい調べてみます。
0089デフォルトの名無しさん
2005/06/07(火) 14:36:05Jasperはxml(jrxml)で定義したデザインファイルをJavaバイトコードに
コンパイルしたものだったと記憶してますが、
なのでPDFを出力するたびにアプリケーションでjasperを作り出すのは
どうかと思います。
わてはAntの段階でjasperにしてリリースしてまっせ。
そんためには、jrxml→jasperにするためのツールを
JAVAで作ってAntで実行せにゃいかんね。
0090デフォルトの名無しさん
2005/06/07(火) 22:57:35XMLからJasperReportインスタンス(空のレポートインスタンス?)
を生成するところで、数秒かかってしまってます。
このインスタンスを再利用できれば、パフォーマンスが上がるかなって思ってます。
再利用は可能でしょうか?
JasperReportインスタンスは一つだけ作っておき、リクエスト毎にJasperPrint
インスタンスを作るって方法です。
要するに、JasperReportインスタンスはスレッドセーフに使えるのでしょうか?
APIやその他ドキュメントを見ても良く分かりませんでした。
宜しくお願いします。
009186
2005/06/07(火) 23:17:22APIドキュメント見る限りではJasperReportのインスタンスっぽいですが?
JasperCompileManager#compileReportToFile()を見てみてください。
どっちにしろWebでやる場合、リクエスト毎にjasperファイルを読み込む
必要があるってことなんですか?
メモリ上に持ってきたインスタンスを使いまわせればいいんですがね〜
0092デフォルトの名無しさん
2005/06/09(木) 10:11:56Jasperは最終的にはインスタンス化しますが、インスタンスにする前に
インスタンスのクラスを作らなければなりませんよね。
クラスを作るにはレイアウト(jrxml)からコンパイルされるということです。
>どっちにしろWebでやる場合、リクエスト毎にjasperファイルを読み込む
>必要があるってことなんですか?
です。
jasperを読み込むのとjrxmlを読み込んでコンパイルするのとでは
前者のほうが明らかにパフォーマンスで勝るのは理解できると思います。
0093デフォルトの名無しさん
2005/06/09(木) 10:26:50>メモリ上に持ってきたインスタンスを使いまわせればいいんですがね〜
使いまわすかどうかは考え方次第。
消費メモリを気にしないのであれば、常駐化すればいいし
そうでなければ毎回Jasperファイルを読めばいいし、
というところでしょう。
少なくとも私の環境では毎回Jasperファイルを読んでも体感的には
変らないのでメンテナンスの楽な後者の方法を選択しました。
009486
2005/06/11(土) 09:41:20サンクスです。
jrxmlからJasperReportのサブクラスを作ってインスタンスをって流れですかね?
とりあえず、リクエスト毎にjasperファイルを読み込む方向で進めてみます。
さらに質問なんですが、jasperファイルを読み込むところは排他取らなくも
大丈夫ですか?
もし必要になるなら並行度上げる小細工を考える必要あるなって思いまして。
0095デフォルトの名無しさん
2005/06/13(月) 12:21:370096デフォルトの名無しさん
2005/06/13(月) 12:22:22Youがどのようなタイミングでやるかは解らないけど、
jasper(JasperReport)をスタック上に展開すれば問題ないはず
0097デフォルトの名無しさん
2005/06/13(月) 21:32:26JasperReport死亡かも
Eclipse Foundation,レポーティング・ツール「BIRT 1.0」を発表
ttp://itpro.nikkeibp.co.jp/free/ITPro/USNEWS/20050608/162307/
だれか試して!
0098デフォルトの名無しさん
2005/06/17(金) 06:52:47OpenFunXion for iText
ttp://www2.nobworks.co.jp/nobworks/productsTop.html
0099デフォルトの名無しさん
2005/07/27(水) 13:12:540100デフォルトの名無しさん
2005/07/27(水) 13:13:59ひさびさに使ってみたが、少し使いやすくなっていたかも。
0101デフォルトの名無しさん
2005/09/09(金) 12:03:44バーコードの高さ調整、オレも知りたい。
0102デフォルトの名無しさん
2005/09/09(金) 12:07:080103デフォルトの名無しさん
2005/09/13(火) 13:04:02指定された描画位置よりも若干上からレンダリングするようにすれば
見かけ上高さが調整されたようになる。対処療法的だけど。
0104デフォルトの名無しさん
2005/09/15(木) 18:34:200105デフォルトの名無しさん
2005/09/15(木) 18:43:390106デフォルトの名無しさん
2005/09/15(木) 20:38:35一定割合に収まってさえいれば
高かろうが低かろうが、単位幅がどれだけであろうが
全然かまわないという認識で合ってる?
(リーダーの性能とかは度外視して。)
0107デフォルトの名無しさん
2005/09/15(木) 23:12:100108デフォルトの名無しさん
2005/09/21(水) 14:46:34改ページの設定の仕方がわかりません。
例えばIDという項目があって
ID=1が15件
ID=2が5件
とあった場合
1ページに10件表示可能として、
2ページ目の5件まで表示したらID2は3ページ目に表示するという感じにしたいと思っています
これにはどうのような設定をしたらいいかわかる方いましたらご教授お願い致します。
0109デフォルトの名無しさん
2005/09/22(木) 09:03:40example 下に例題プロジェクトがあるから
それ試してみたらどうでしょう?
0110デフォルトの名無しさん
2005/09/22(木) 11:03:15group でできる。isStartNewPage を true にすればOK。
http://jasperreports.sourceforge.net/reference/indexel.html#group
0111108
2005/09/22(木) 17:21:53groupを使用して作成することができました。
ありがとうございました。
>>109
ご質問なのですが、exampleの下とはどこを指しているのでしょうか?
私の使ってるiReportのフォルダ内にはありませんでした
iReportは日本語の資料が少なくて結構大変ですね・・・
0112デフォルトの名無しさん
2005/09/22(木) 23:33:050113デフォルトの名無しさん
2005/09/23(金) 23:11:350114デフォルトの名無しさん
2005/09/24(土) 02:18:15ちゃんとしたリーダなら、
資料読んでフリーハンドで適当に書いたのでも
ある程度読めるからな。
0116デフォルトの名無しさん
2005/09/26(月) 21:27:18JasperReports では直接サポートせずに
Barbecue で云々しちゃってるのは何でだろう?
0117デフォルトの名無しさん
2005/09/29(木) 16:01:50これを出さないようにするにはどこを設定したらよろしいのでしょうか?
whenNoDataType="NoPages"
辺りだと思うのですが、うまくいかないので、
わかる方おられましたら、ご教授お願い致します。
0118デフォルトの名無しさん
2005/09/30(金) 16:28:37-------------------
$hoge
ここら辺に余白
-------------------
こんな感じになってると、$hoge がないにも関わらず
余白を出力するために、白紙がザックリ出力されますよ。
一応確認してみはいかがでしょう?
0119デフォルトの名無しさん
2005/10/03(月) 18:15:580120デフォルトの名無しさん
2005/10/03(月) 21:12:46適切なスレもないようだし
聞くだけ聞いてもいいんじゃないでしょうか。
あるいはPDF変換関連のスレを立てたら
需要があるかどうかをくだ質あたりで探りを入れてみるとか。
0121117
2005/10/05(水) 11:41:53返答ありがとうございます
1つずつ要素を調べていったところ
意味のない要素が操作ミスか何かでほかの要素と重なってたのが原因で
白紙が出てたようです。
たぶん気づかない間にペーストとかやってたのかな・・・
0122デフォルトの名無しさん
2005/11/01(火) 20:12:46これってJava系のプロジェクトとしては実はすごいことだよなあ・・・。
0123デフォルトの名無しさん
2005/11/20(日) 21:45:050124デフォルトの名無しさん
2005/11/29(火) 22:19:14公式サイトのFAQより
Q. DETAIL バンドの高さがページの高さを超えると、意図どおりに表示されない件について
A. DETAIL バンドの仕様で、高さチェックをしててどうしてもそうなる。
回避する方法は以下のとおり。
1. 複数のグループを作成し、DETAILバンドの中身を適宜そちらへ振り分ける。
2. 1.で作成したグループ全てに対して
<groupExpression>$V{REPORT_COUNT}</groupExpression>
を指定する。
3. 以上により1.で作成したグループが一つのカラムのように振るまう。
4. GROUPに対しては高さチェックは働かないため、上記の問題が消える。
ついさっきまでハマってた。しかも二ヶ月前に通った道だった。
0125デフォルトの名無しさん
2005/11/29(火) 22:21:010126デフォルトの名無しさん
2005/11/30(水) 23:40:08だねえ。前から違和感を覚えてた。
0127デフォルトの名無しさん
2005/12/02(金) 03:07:4511位になっていた。
0128デフォルトの名無しさん
2005/12/06(火) 20:34:23空白行を出力することはできないですか?
例えば5行出力したいとして、2行分の動的データが
存在する場合、残りの3行は空白レコード表示とか・・・
0129デフォルトの名無しさん
2005/12/07(水) 00:40:39いまいちよくわからないんだけど、次のうちのどれ?
(1) 各ページに5行出力したいが、2行の場合も残りを空白にしたい
(2) 各ページで2行出力して3行あけたい
(3) その他
■ このスレッドは過去ログ倉庫に格納されています