トップページ⇒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げっと。
0267デフォルトの名無しさん2008/09/03(水) 00:52:31
>>266
どんな条件で表示判定しようとしてる?
incrementType とか設定してる?
0268デフォルトの名無しさん2008/09/03(水) 19:57:26
>>267
<variableExpression>と<initialValueExpression>に
[new Boolean($V{PAGE_NUMBER} == 1)]を
resetTypeは"Page"にしてその他は何も設定していません。(iReportのデフォルト)
0269デフォルトの名無しさん2008/09/04(木) 04:52:54
症状として、
・1ページ目には表示されている。
・2ページ目の pageHeader に表示、pageFooter に非表示
・3ページ目以降はどちらも非表示
で、2ページ目の pageHeader のみおかしいと。

pageHeader 表示の判定で、variable が評価されるタイミングが、
$V{PAGE_NUMBER} がインクリメントするタイミングより早いとか?
pageHeader/pageFooter 使わずに
group の header/footer 使ったら、評価の順序が調整されるかも。
まるっきり希望的観測ですけど。
0270デフォルトの名無しさん2008/09/04(木) 19:26:14
>>269
症状はそうです。
3.0.0でやっても同様の動作でした。

1帳票に同じ条件のprintWhenExpressionが最大40箇所あって
Variablesでなんとかなれば動作的にも若干軽くなるところなのですが・・・
とりあえずVariablesでのフラグ化はあきらめておとなしく全部の項目に条件式を入れました。

さんくすした。
0271デフォルトの名無しさん2008/09/05(金) 01:55:57
役に立てなくてすまんかった。

ところで、今更でもうしわけないんだけど
Integer を引数にして Boolean を返す static メソッド持つ
適当なクラス作って、クラスパス通しといて
printWhenExpression の中でそのメソッド呼ぶのが
手っ取り早かったかも知れない・・・
Variables と違って評価順も明快だろうし。

動作的に軽く云々はまた別の話かも。
0272デフォルトの名無しさん2008/10/24(金) 10:55:08
JDK1.5、Eclipse3.2でjasperReports2.0.5使ってます。
携帯からの書き込みのため、正確でない部分がありましたらすみません。

数種類の帳票をexportReportToPdfStreamで作成してますが、同じページ数でもデータ量の多い帳票は、このメソッドですごく時間がかかってしまいます。

開発環境がAMD Sempron1GHz、メモリが1.5GHz、JVMのオプションでメモリの最小最大とも512MHzを指定していますが、600ページ程のPDFにするのに15分、場合によってはOutOfMemoryErrorで作成できないことがあります。
上記メソッド実行中、CPU100%になります。

速度とメモリエラーとCPU100%になるのを改善したいです。
アドバイスいただけないでしょうか?
02732722008/10/24(金) 11:15:25
さっそくメモリの単位間違えてました。
Hzじゃないですね。すみません。
0274デフォルトの名無しさん2008/10/29(水) 08:02:43
フィールドの背景をjavaで動的に変更したいのですが
なにかいい方法はあるでしょうか
アドバイスよろしくお願いします。
0275デフォルトの名無しさん2008/11/13(木) 11:59:44
>>272
亀レスだが

直接ファイルに出力する(FileOutputStream)とか、
パイプする(PipedOutputStream)とか、

あとは中身みてみないとわかるわけないね。

>>274
背景に使う画像ファイルのパスを変数にすればおk
0276デフォルトの名無しさん2008/11/20(木) 07:48:23
275さん、ありがとうございます。
自分の説明不足で申し訳ありません。
フィールドの背景色を動的に変更する方法はないですしょうか
02772752008/11/23(日) 14:29:45
>>276
書き込んだ後、そうかなーって思ったwww

ちょっと調べてみたけど、情報みつかんない。
本家のフォーラムに同じ事やりたいって書いてある人にレスついてないし

無理矢理やるとすれば、未コンパイル(jrxml)のままファイルを置いておいて編集してからコンパイルするってのが出来るかもしれないけど、非現実的だな

あとは、できあがったPDFを編集するとかかなー

Jasperreportsだけじゃ無理っぽいス
0278デフォルトの名無しさん2008/11/28(金) 09:39:53
JasperReportsに限った話ではないと思いますが
例えば発注書を作成するとして
長い品名があるとき皆さんはどう対応してますか?

やむを得ず印字できるところまでであきらめますか
それともデータを加工して改行したりしてますか
0279デフォルトの名無しさん2008/11/28(金) 12:54:17
自分で考えろ
0280デフォルトの名無しさん2008/12/01(月) 18:22:05
>>278
大抵、jakarta commons で省略する

一回だけタックシールの印刷の時に全文字はいるようにフォントサイズの調整をした事があるなー
VB6だったけど。
0281デフォルトの名無しさん2009/02/19(木) 12:05:49
3.0.0で特定のキー項目をレポートグループとして定義し、「新規ページで開始」にしてあります。
さらに「ページ番号のリセット」にもチェックを付けておけば
$V{PAGE_NUMBER}(評価時間:今すぐ)がグループ中ページ番号、
$V{PAGE_NUMBER}(評価時間:レポート)がグループページ数という扱いになりますが、
全体のページ番号・ページ数も同時に表示させたい場合にはどうすればよいでしょうか?

イメージとしては以下のような感じです。
グループ:1 グループページ:1/2 ページ:1/6
  〜改ページ〜
グループ:1 グループページ:2/2 ページ:2/6
  〜改ページ〜
グループ:2 グループページ:1/3 ページ:3/6
  〜改ページ〜
グループ:2 グループページ:2/3 ページ:4/6
  〜改ページ〜
グループ:2 グループページ:3/3 ページ:5/6
  〜改ページ〜
グループ:3 グループページ:1/1 ページ:6/6
0282デフォルトの名無しさん2009/03/05(木) 22:44:18
日本語のイタリック、ボールドが効きません。
なにか方法ありますか?
0283デフォルトの名無しさん2009/03/17(火) 03:09:50
パチもんのことをバッタもんと言わないでください
パチもん→コピー商品
バッタもん→倒産した会社から安く買い叩いた正規品
0284デフォルトの名無しさん2009/03/17(火) 05:24:35
Excelで言えば
パチもん→OpenOffice
バッタもん→秋葉原でガイジンが売ってる緑のCDのExcel
ということか。

で、誤爆は何になるんだ?
0285デフォルトの名無しさん2009/04/18(土) 21:42:31
>>282
もう解決しているかもしれんが、
HeiseiKakuGo-W5,Bold
HeiseiKakuGo-W5,Italic
でおk
0286デフォルトの名無しさん2009/05/17(日) 07:17:22
>>261
  ∧,,∧
 ( `・ω・) ウーム…ここは?
 / ∽ |
 しー-J
0287デフォルトの名無しさん2009/07/21(火) 10:57:11
POIでのExcelファイル出力で、
漢数字フォーマットの数値セルって不可能?

日本語版Excelは"[DBNum1][$-411]G/標準"みたいにして
漢数字フォーマットを扱えるんだけど、
POIのHSSFDataFormatは"[DBNum1]"に対応してない気がするんだが。。。
0288デフォルトの名無しさん2009/09/28(月) 13:50:56
iReport3.0.0/pdf出力がしたいです
サブレポートを使った帳票を作成しています。
mainのdetailにサブレポートを指定していますが、
出力した時に、インデントがずれて右よりになってしまいます。
レイアウト上はサブレポートもdetailの左端に揃えているのですが…。

解決方法はありますでしょうか。
0289デフォルトの名無しさん2009/10/01(木) 03:06:14
サブレポート側で上下左右のマージン潰してある?
0290デフォルトの名無しさん2009/10/02(金) 10:12:25
>>289
余白「0」設定してませんでした。。。
無事、揃えて出力ができました。
ありがとうございます。

すいません。さらに別件で質問です。
グループ指定についてです。
一覧表で、「ユーザー名」または「登録日」の
どちらか一方が変わるごとに、金額合計を表示したく、
「ユーザー名」と「登録日」の2つのグループを作成し、
各フッターに「一覧合計」の欄を設定しました。
しかし、「ユーザー名」と「登録日」の両方が同時に変わると
一覧合計が2つ表示されてしまいます。

上記の場合は、一覧合計の表示は1つで良いのですが、
そのためにはどのように設定したらよろしいでしょうか。
0291デフォルトの名無しさん2009/11/26(木) 22:54:50
>>290
亀だけど、ユーザ名と登録日を結合したフィールドを使えば良いかと

用紙サイズの違う2つの単票をJasperPrint1.addPage((JRPrintPage)JasperPrint2.getPages().get(0))
で、1つのPDFファイルにまとめています。
1ページ目はA3、2ページ目はA4のようにiReportで指定した用紙サイズで印刷したいのですが
2ページ目もA3になってしまいます。
設定方法をご存知の方教えてください。
0292デフォルトの名無しさん2010/02/04(木) 22:34:25
Webアプリと帳票出力処理(JasperReport)が別サーバの場合、
画面からの同期処理でPDFするには、どういう方法がいいですか?
0293デフォルトの名無しさん2010/02/14(日) 10:13:00
アプリから別サーバに投げて、その結果をアプリが返せば良いんじゃない?
0294デフォルトの名無しさん2010/02/14(日) 12:04:07
具体的な実装方法は?
0295デフォルトの名無しさん2010/02/14(日) 13:47:05
HTTPでもなんでもいいじゃん。
0296デフォルトの名無しさん2010/02/14(日) 17:39:44
webサービスだな
0297デフォルトの名無しさん2010/02/25(木) 11:58:41
JasperReports3.5.3で自動改行できないのですが、自動改行のためのプラグインなどが必要なのでしょうか?
0298デフォルトの名無しさん2010/02/26(金) 05:07:02
3.5.3固有の挙動なのか、そうじゃないのかが分からないので、
JasperReports 使ったことがほとんどないならそう書いた方が
適切な回答が期待できると思う。

後者だと仮定して、
stretch with overflow を指定しない場合、
確保した矩形領域分しかテキストは出力されませんよ。
02992972010/02/27(土) 21:03:42
>>298
ありがとうございます。
stretch with overflowを設定したら解決しました。

JasperReportsは勉強始めたばかりです。
「JasperReports 3.5 for Java Developers」という参考書に掲載されていた
サンプルコードをそのまま利用したけど、実行結果が違ってて悩んでいました。

サンプルコードにはstretch with overflowの設定は書かれていませんでした、
参考書のコードが間違っていたようです。
0300デフォルトの名無しさん2010/03/03(水) 04:48:33
その本は読んだことないので推測になりますが、
最初の一歩的な例として、細かい話はあえて省略してるのかも。
0301デフォルトの名無しさん2010/04/18(日) 18:39:10
ページリセットでどうやるんですか?
0302デフォルトの名無しさん2010/06/12(土) 02:25:29
JasperPeports と言うよりは、iText に関する質問になるかも知れません。
スレ違いでしたらすみません。

花園フォントまたは花園明朝OTを PDF に埋め込みたいと考えています。

JDK7 の M3 から Unicode 5.1 に対応しているそうですが、IVS を使った異体字の PDF 出力を試した方はいらっしゃいませんか?
一応、テキストファイルとしてなら異体字が正しく出力できていることを Windows7 のメモ帳などで確認しているのですが、PDF への埋め込みには成功していません。
なお、開発環境は、JDK7 build95、iReport 3.7.3(JasperReports3.7.3/iText2.1.7) です。

または、JasperReports を使って、CID コードを直接指定して CID フォントを PDF に出力することが可能かどうかご存じな方はいらっしゃいませんか?
0303デフォルトの名無しさん2010/07/28(水) 17:42:13
JasperPeportsで色々試して、結果 FastPDFGenで解決ってことになりました。
0304デフォルトの名無しさん2010/07/28(水) 18:42:22
理由は?
0305デフォルトの名無しさん2010/07/28(水) 18:49:32
あ、302が結局無理だったのか
0306デフォルトの名無しさん2010/08/03(火) 19:54:52
iReport 3.7.4
Java: 1.6.0_20; Java HotSpot(TM) Client VM 16.3-b01

上記の環境で帳票を作成し、完成した帳票をJasperServerCEに登録、PHPで用意した画面から
SOAPを通してJasperServerのrunReportを呼び出しって感じで運用しようとしております。
ちゃんと帳票自体は表示されるのですが、EXCEL出力しようとすると全然ダメに・・・

帳票の中の表を、iReportのTextFieldとStaticテキストにstyleで枠線を付け、これを組み合わせて
表現しているのですが(つまり、セルの集合で「表」を表現してます)、EXCEL形式で出力すると
罫線が全部消えてしまうのです
iReportのPreviewを使って表示すると罫線までちゃんと出るのに、何故ブラウザから表示すると
ダメなのか・・・大分調べたのですが原因不明です。

どなたか、ご存知の方いらっしゃいましたらよろしくお願いします。
03073022010/09/04(土) 13:48:22
規制を食らって書き込めませんでした。

>>303 は私ではありません。

半ば諦め気味ですが、相変わらず試行錯誤してます。
花園フォント側で尋ねた方がいいのでしょうか...
0308デフォルトの名無しさん2010/11/18(木) 11:47:06
iReport3.6.1で帳票作成してます。

このスレをざっと流し読みしてて、ついさっきBackground Bandの存在を知りました。
羅線をBackgroundに描けたらいいなと思っているのですが、位置合わせがめんどくさいです。

Backgroundはデザイン時にPage HeaderやDetail等と重ねて表示出来ないのでしょうか?
0309デフォルトの名無しさん2010/12/28(火) 17:08:59
定期あげ
0310デフォルトの名無しさん2011/02/09(水) 21:53:06
A4縦の用紙でラベル印刷用に2列×5行の帳票レイアウトを作成しました。データソースはJDBCです。
フェッチしたデータ
Data1, Data2, Data3, Data4
上記データを例えばレイアウトの2番目の位置からセットしたいのですがやり方が分かりません。
下記のように出力したいのですが、PDF生成時にパラメータで印字開始位置を指定する方法はないのでしょうか?

[ブランク][Data1]
[Data2][Data3]
[Data4][ブランク]
[ブランク][ブランク]
[ブランク][ブランク]
0311デフォルトの名無しさん2011/02/09(水) 21:58:03
age
0312デフォルトの名無しさん2011/04/30(土) 13:45:01.19
iReportで画像埋め込むのどうすればよいでしょうか?
どこにもそれっぽいアイコンが見当たりません
0313デフォルトの名無しさん2011/04/30(土) 14:24:39.97
>312

パレットにありました。すいません。
0314デフォルトの名無しさん2011/08/15(月) 17:29:07.76
iReport-nb-3.6.1使用しています。
JasperReportsに限ったことではありませんが。。。

作成したPDFをページ表示させず、
クライアントの「通常使うプリンタ」で印刷させる方法はないでしょうか?

■ このスレッドは過去ログ倉庫に格納されています