[無料でラクラク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げっと。
2006/03/15(水) 21:09:35
>>151
JavaBeanのCollectionでなければJRBeanCollectionDataSourceは
使えないと思います。

資料は本家サイトにいくつかあります。
あと、サンプルって、ソースコードも含んだZIPファイル(jasperreports-1.2.0-project.zipかな?)
をダウンロードして展開した中にあるやつ?
154デフォルトの名無しさん
垢版 |
2006/03/15(水) 21:55:24
151です。
>>153
しまった、それではないですね。
今日は退社してしまったので、明日試して見ます。
ありがとうございました。
2006/03/16(木) 14:23:40
151です。
サンプルを参考に、
JRDataSourceをインプリメントした独自クラスを作って放り込んだら、
うまくいきました。
ありがとうございました。
2006/03/18(土) 19:57:59
TextSS のWindowsXP(Professional)64bit化おながいします

もしくは64bitにネイティブ対応したテキスト置換ソフトありますか?
157デフォルトの名無しさん
垢版 |
2006/03/23(木) 16:00:34
すいません、JasperReportsで1/4Pointの線を引くには
どうしたらよいのでしょうか?
もしかして_?
2006/03/24(金) 01:24:18
無理じゃなかろうか。
俺は thin で OK が出たから良かったものの
任意の数値が入れられるようにならんかな。
CSS 並の表現力とまでは言わずとも。
159157
垢版 |
2006/03/24(金) 14:26:19
>>158
やはりそうですか、
無理そうなので、ソースいじって、最細の線を引けるようにして解決しました。
任意で設定できればいいのに・・・。
2006/03/25(土) 00:18:24
>>159
パッチを本家に投げるんだ!
2006/03/25(土) 01:40:10
Open Discussion フォーラムで提議してみてはどうか。
拙い(俺だけ?)英語で盛り上げようぜ。
2006/03/26(日) 12:25:27
>>161
お前だけじゃないので心配するなw
2006/03/27(月) 16:32:00
Java でレポート作るなら JasperReports が一番?
2006/03/28(火) 00:13:19
用途によりけりだろうが JasperReports が最適、
JasperReports で十分、JasperReports で妥協できる、
な範囲はそれなりに広いと感じる。
157氏みたいにスキルが許せば、足りない部分を付け足すことも出来るし。

試してみる価値はあるよ。オープンソースだから
気に食わなければ使わなければいい。
時間は戻ってこないが、金はかからん。
2006/03/28(火) 15:36:18
>>164
ありがと
166デフォルトの名無しさん
垢版 |
2006/04/25(火) 07:08:15
JRDataSourceをimplementsして値をレポートに渡すのは
わかったけどさらにサブレポートに値を渡すという方法がわかりません
それぞれの方法はわかるんだけど・・・

同時、というのは無理?
2006/04/25(火) 17:41:49
どこで詰まってるのか今ひとつ分からないので
もっと詳しく聞かせてもらえないだろうか。
168デフォルトの名無しさん
垢版 |
2006/04/26(水) 20:52:30
> 167
レスありがとうです

なかなか伝えにくいんですが
1. JRDataSourceを使用した連続帳票(自動改ページ) --> 成功
2. 1. のレポートにサブレポートを追加 --> うまくできない

2. でサブレポートを追加したんだけど
Javaクラスからどうやってデータを渡したら良いかわからないのです
JRDataSourceにはサブレポートを渡せるような実装は
できないし・・・
ただサブレポートのみ、であれば
JRBeanCollectionDataSource
を使えばうまく出力できました
これを同時にできないか、というところです

たとえば
fillReportxxxxx
を2回続けて発行できれば、なんて思うけど
fillReportxxxxx(); ---> 明細マップのフィル
fillReportxxxxx(); ---> サブレポートへのフィル
あら、もしかしてこれって可能なのかな???

伝え方が悪くてすみません
2006/04/26(水) 22:56:45
>>168
以前、JRDataSourceからサブレポート用のデータソースを返すようにしてうまくいった。

かなり前のバージョンのJasperRepoortsでの話だけど、
今手元にあるソースコードではだいたい以下のようになってます。

public class RootJRDataSource implements JRDataSource {

  public Object getFieldValue(JRField jrField) {
    String name = jrField.getName();

    // some code

    if (name.equals("subReport")) {
      SubData subData = ...
      return new SubJRDataSource(subData);
    }

    // some code
  }

}

jrxmlの方はもうよく覚えてないので、適当に試してみて。
170デフォルトの名無しさん
垢版 |
2006/04/27(木) 06:12:00
> 169
ありがとうございます、すごく助かります
確認してまた報告します
2006/04/27(木) 13:23:28
>168
親レポートオブジェクトが子レポートオブジェクトのリストを持つような構造を定義して、
それを親の JRDataSource が返すようにする。

ではダメですか?
2006/05/20(土) 14:23:46
すいません。JasperAssistantってライセンス購入必要でしょうか。
173デフォルトの名無しさん
垢版 |
2006/05/20(土) 15:24:59
Crosstabの列名を可変にしたいとおもっています。
列名にJavaでセットする予定のパラメータを割り当てて帳票を出力してみたところ
1列目だけ値が置換されて2列目以降にパラメータ名がそのままでてしまいました。
どのようにすればよいか教えていただけないでしょうか。
174デフォルトの名無しさん
垢版 |
2006/05/23(火) 09:21:12
連続帳票をひとしきり出力した最後のページに
別レイアウトのページを1ページ追加するような
pdfを作成することはできますでしょうか?
175デフォルトの名無しさん
垢版 |
2006/05/23(火) 09:58:11
JavaDocを調べてみたら
2つのJasperReportを作成して
JasperReport1.addPage((JRPrintPage)JasperReport2.getPages().get(0))
で出来るかな?
とメモしてみました。
176デフォルトの名無しさん
垢版 |
2006/05/23(火) 10:07:04
まだ正式に要望があった訳ではないので試してませんが・・・
訂正:JasperPrint1.addPage((JRPrintPage)JasperPrint2.getPages().get(0))
2006/05/24(水) 19:43:54
>>174
一番てっとり早いのは、<summary>タグじゃないか?
2006/05/27(土) 10:46:27
jrxmlファイルを、Linux上でAntを実行してjasperファイルにコンパイルしようとすると
以下のようなエラーになります。

java.lang.UnsatisfiedLinkError: /usr/lib/j2sdk1.4-sun/jre/lib/i386/libawt.so:
libXp.so.6: cannot open shared object file: No such file or directory

同じビルドファイルで、Windows上では正常にコンパイルできます。
antの設定等で、これを回避することは可能でしょうか?
2006/05/28(日) 15:04:00
>>178
ちょっとぐぐってみましたが、AntとかJasperReportsとは関係なさそうですね。

ひょっとしたら役に立つかも・・・。
ttp://bbs.fedora.jp/read.php?FID=2&TID=364
180178
垢版 |
2006/06/04(日) 00:38:49
>>179
遅レスすみません。
XWindow関連かと思い、それならAntの設定で回避できるのではと
考えていたんですが、やっぱりlibXp.so.6を入れないと無理ですかね。
jdk1.5では出ないという話もどこかで見かけた気がするんですが
それもまた影響範囲が大きい……。

入れる方向で検討します、ありがとうございました。
2006/06/05(月) 12:11:58
JVM の起動パラメータを操作可能なら、
-Djava.awt.headless=trueを指定してはどうでしょうか。
ネイティブなAWT実装を使用しなくなるため、
libawt.so に依存しなくなる、と期待したい。

詳しくはググってくれ。
2006/06/28(水) 14:56:47
現在java+iReport+JasperReportで帳票を作成しております
普通の帳票は問題なく作成できましたが
次のような行可変のテーブルが2つある場合の
帳票の作り方が解らず困っております
よろしくお願いします

[作成予定]

算数
--------------------------
| No | 名前 | 点数 |
|-------------------------
| 01 | あああ | 100 |
|-------------------------
| 02 | いいい | 80 |
--------------------------
国語
--------------------------
| No | 名前 | 点数 |
|-------------------------
| 01 | あああ | 100 |
|-------------------------
| 02 | いいい | 80 |
|-------------------------
| 03 | ううう | 70 |
--------------------------

固定文字列のしたに可変行のテーブルを表示したいと思っています
この場合どのようなグループの設定をすればよろしいのでしょうか?
またJAVA側からどんなCollectionを送ればよろしいのでしょうか?
よろしくお願いします。
2006/06/28(水) 21:23:49
科目ごとのグループにすればいいんじゃない?
グループごとに票を分けるのはサンプルをごらんあれ
2006/06/29(木) 16:04:52
一つの科目に限れば普通の帳票になるので、
それを Subreport とした帳票を作ってはどうか。

/demo/samples/subreport とか参考にして。
AddressReport.jrxml ← 全科目帳票
ProductReport.jrxml ← 科目別サブレポート
にそれぞれ対応すると思えばいい。
185182
垢版 |
2006/06/29(木) 18:29:43
>>183,184
ご意見ありがとうございます、やってみます。
186デフォルトの名無しさん
垢版 |
2006/07/04(火) 21:12:26
時給1000円でJava教えてくださるかたを募集します
場所 所沢(池袋・高田馬場から直通)

i−want−to−study−java@hotmail.co.jp
(アドレスは全角で書いてあるので半角に直してください)
よろしくおねがいします
187デフォルトの名無しさん
垢版 |
2006/07/12(水) 00:45:35
明細が2列のレポートを作成した場合、最終ページが2列目で終了すると
空白ページが差し込まれるという現象が発生するんですが何か対策はないでしょうか?
サブレポートを使用してサブレポート内で2列明細を使用した場合も同じような
感じです。
2006/07/12(水) 10:31:20
117 から数レスほど読んで、該当しなければ
もう少し詳しく説明してみるヨロシ。

あと列じゃなくて行だよね。
189187
垢版 |
2006/07/12(水) 12:08:41
2列というのは、jasperreportタグのcolumncountを2にした場合の事です
2列目で終了した場合、サマリーバンドを新しいページで追加しようとしているようです
2006/07/12(水) 16:16:09
失礼しました。
段組はやったことないのでなんとも。。

Forum を 「columnCount blank」で検索すると
・サマリーバンドを高さ0にする。
・サマリーバンドを消す。
・サマリーバンドのprintWhenExpressionにBoolean.FALSEを指定する。
など書かれてるようですが、
2003年頃から言われてて2006年でもごにょごにょやってるんで
完璧なバグフィックスはされてないのかも知れないですね。
よう分からんです。
191デフォルトの名無しさん
垢版 |
2006/07/17(月) 20:54:46
時給1000円でJava教えてくださるかたを募集します
場所 所沢(池袋・高田馬場から直通)
よろしくおねがいします
i−want−to−study−java@hotmail.co.jp
教える対象は超初心者です。

専門学校などでJavaを勉強されていて夏休みだけ教えたいという方も歓迎です
192デフォルトの名無しさん
垢版 |
2006/08/02(水) 20:15:09
仕事でJasperReportsを使ってPDF出力をやるって話になっているのですが、
調べてもわからない事が多いので質問をさせてください。

●やりたいこと
iReportを使って1人分の雛形を作っておいて
1つPDFファイルの中に人数分同じ雛形を動的に作成したい。

調べている途中なので変なソースかもしれませんが

にしてあります。
これで単純に同じ1つの雛形を作っておけば1つのPDFファイルの中に同じ雛形のデータが2つできるのかなと
思っていたのですが、上書きをされてしまって1つ分のデータしか出来ません。
実現方法がわからないので何かアドバイスがあったらお願いします。

※ソースは後述
193192
垢版 |
2006/08/02(水) 20:15:57
String filename = "sampleReport";
JasperPrint jPrint = null;
JasperReport jReport = JasperCompileManager.compileReport("sampleReport.jrxml");
Map parameters = new HashMap();
for (int i=0;i<2;i++) {
jReport = JasperCompileManager.compileReport("sampleReport.jrxml");
parameters.put("ReportTitle", "タイトル");
parameters.put("name", "名前");
parameters.put("affiliation", "会社名");
parameters.put("initiation", "2006/05/01");
parameters.put("portrait", getImageFile("images\\Sunset.jpg"));
jPrint = JasperFillManager.fillReport(jReport, parameters, (JRDataSource)null);
jPrint.setLocaleCode(Locale.JAPANESE.toString());
jPrint.setTimeZoneId(TimeZone.getDefault().toString());
}
JasperExportManager.exportReportToPdfFile(jPrint, filename + ".pdf");


jrxmlの isTitleNewPage="true"
isSummaryNewPage="true">
のようにしています。
2006/08/02(水) 20:50:33
for の囲いを取り払って、fill してる行を以下の4行にしたらどうなります?

JRDataSource dataSource = new JRBeanArrayDataSource(
  new Object[10]
);
jPrint = JasperFillManager.fillreport(jReport, parameters, dataSource);
195デフォルトの名無しさん
垢版 |
2006/08/02(水) 23:54:22
font.propertiesで指定している論理フォントを埋め込みたいんだけど
どういう風に指定すればいいか、誰か知っていたら教えてください。
2006/08/03(木) 12:27:16
物理フォント名じゃダメなの?
197195
垢版 |
2006/08/03(木) 22:44:08
テストサーバと本番サーバで、
フォントの入ってるディレクトリのパスが違うので
それが解決できればいいんだけど、
それには論理フォント指定が出来ればいいかなと。
少なくとも、ネットで見つかるフォントの埋め込みをやってるサンプルは
どれもフルパスで指定してたので、
そうではなく相対パスで指定したいと思ってます。
プロパティファイルを読みこんでくれればそれでも解決なんだけど。

サンプルにあったFontってのが、なんだかそれっぽい事をしてたけど
真似しても上手くいきませんでした。
ただ、font.propertiesとかいじったの初めてなので、サーバ設定の方が悪いのかもしれない……。
2006/08/09(水) 18:55:50
>197
サンプル見てみたけど、FONT_MAP に put してる
フォントオブジェクト作成する際の物理フォントのファイルパスを
プロパティファイルか何かで取得するようにすれば
それで用件が満たせそうな気がする。

・デザインファイル(*.jrxml)は一つ
・コンパイル済みデザインファイル(*.jasper)は一つ
・プログラムは一つ
・プロパティファイルは開発用と本番用の二つ

実際に試してみてないのでこれで行けるとは断言できんけど。

>それっぽい事
具体的にどんな事をしたんでしょうか。
199195
垢版 |
2006/08/09(水) 23:54:16
>>198
それは、jrxmlからjasperを作るときに、プロパティファイルを読み込んで
値を変更するって事でしょうか。
そうではなくて、jasperからプロパティファイルを読み込ませる方法があるのかな?

それっぽいことと言うのは、
今、サンプルも自分のソースも手元に無いから詳細は違うかもしれないけど。
確かサンプルの方では、fontNameがSerif、
pdfFontNameがフォント名(Times New Romanだったかな?)
になってる部分があったと思います。
また、Serif等の論理フォント名はfont.propertiesを見て決めていると
Linux上の日本語フォントの扱いを調べていて知りました。
なので、上記の構成を真似て
font.propertiesのSerifにマッピングするフォントを日本語TrueTypeフォントに変更し、
fontNameにSerif、pdfFontNameに使用した日本語フォントの名前
(Windowsで、ダブルクリックした時のフォント画面で表示される名前)を
設定した、のだったと思います。
しばらく前の記憶を頼りに書いているので、詳細は違うかも。
2006/08/10(木) 07:19:50
> それは、jrxmlからjasperを作るときに、
> プロパティファイルを読み込んで値を変更するって事でしょうか。
そうっす。
開発用・本番用のプロパティファイルの振り分けは
ant とかでやればいいだけの話なんで
これで困ることはないと思うんですよ。

FontApp.java で
> FontKey key = new FontKey("sansserif", false, true);
(中略)
> exporter.setParameter(JRExporterParameter.FONT_MAP, fontMap);
って部分があって、ここで sanserif を COMICBD.TTF にマップしてると思われ。
で、作成される PDF の sansserif 指定されてる部分が
愉快なフォント(COMICBD.TTF)になってる、と。
font.properties から引っ張ってくるところを
プログラム側から上書きしてるイメージ。

FONT_MAP を *.jrxml 内部で指定できるかどうかは
ちょっと試してみないと分からないです。
201195
垢版 |
2006/08/16(水) 19:53:37
>>200
レス遅くなってすみません。
それでやってみます。
他にも何かやり方がありそうだったら、また報告します。
2006/08/17(木) 10:25:02
ttp://www.thinkit.co.jp/free/tech/4/4/1.html
のサンプルを試そうとしたら
JasperReport jasperReport =
  JasperCompileManager.compileReport(templatePath);

java.lang.NoClassDefFoundError:
org/apache/commons/digester/SetNestedPropertiesRule
が発生しました。
このクラスはどこにあるのですか。
2006/08/17(木) 11:04:30
>202
です。
自己解決しました。
TomcatPlugin内のDevLoader.zipを解凍して
Tomcatのlibフォルダに入れることで解決しました。
ですが、次は
java.lang.NoClassDefFoundError:
org/apache/commons/javaflow/bytecode/Continuable
が発生してしまいました。
解決方法を教えてください。
2006/08/17(木) 14:26:59
>>203
NoClassDefFoundErrorが起こっているクラスのパッケージ名から、
どのライブラリが欠けているか、想像できない?



<チラシの裏>
それにしても、Commons JavaFlowなんてものがあるのか・・・。
そしてJasperReportsで使ってたのか・・・。
</チラシの裏>
2006/08/18(金) 00:47:14
>>202-203
どういう環境でやろうとしてるのか良く分からないけど、要するに
jasperreports.jarだけをlibに突っ込んで帳票を出そうとして、
NoClassDefFoundErrorが出たところだけ順番に潰しているという前提で。

> TomcatPlugin内のDevLoader.zipを解凍して
まずここからして解せない。そんな事する必要は無いはずなんだが。
それに、Tomcat自体のlibフォルダに、特定のモジュール用のファイルを入れると、
いずれ他のモジュールとバッティングして混乱するからやめた方がいいぞ。
それと、一つずつ聞いていくと、君はこのスレであと5回ぐらい質問する事になる。

まず、
ttp://sourceforge.net/project/showfiles.php?group_id=36382&package_id=28579
ここでjasperreports-1.2.5-project.zipを落として来るといい。
そして、その直下の「lib」ディレクトリの中から
あとはNoClassDefFoundErrorが出ているパッケージ名に、名前が似てるjarを探して
Tomcatではなくモジュールのlibディレクトリにコピーしろ。
全部コピーすれば一発で動くが、要らないjarまで入るから鬱陶しい。
1つ入れては動かして、次のNoClassDefFoundErrorを確認して……って手順でやれば
jasperReports自体は、確か7つぐらいのjarで動く。
2006/08/18(金) 00:56:34
書いてから気づいた、TomcatPluginって
eclipseからTomcat立ち上げるための設定なのかな?
そうだとしたらスマソ、中段はちょっと的外れだったかも。
207デフォルトの名無しさん
垢版 |
2006/08/30(水) 11:48:07
┌──────────┐
│┌───┐┌───┐│
││リスト││リスト││
││ ││   ││
││   ││   ││
│└───┘└───┘│
└──────────┘

こんな感じの帳票を作りたいんですが、
どうすればできますでしょうか。
208デフォルトの名無しさん
垢版 |
2006/08/30(水) 11:49:39
ずれまくってる・・・
1枚に明細が2つある帳票です。
2006/08/30(水) 19:14:14
左の明細と右の明細は同じ構造?(段組なのか、違う構造を並べるのか)
段組ならサブレポートのサンプルがまさにそんな感じ。
違う構造並べる場合は、高さ調整とかどうなるのか分からない。
210208
垢版 |
2006/08/31(木) 09:39:26
>>209
回答ありがとうございます。
同じ構造でいいです。
ご指摘のサンプルを動かしてみましたが、
サブレポートが表示されないんですが。

レポート実行時のDIRをどう指定しても表示されません。
211デフォルトの名無しさん
垢版 |
2006/09/04(月) 00:28:08
ちょっとレスの内容と違うが、
帳票って知ってる人って少ないと思わない?
212デフォルトの名無しさん
垢版 |
2006/09/05(火) 02:12:54
ついに1000体突破かよ
アイロボットみたいだな
株ロボもいつか夢を見るようになるのかなぁ
213デフォルトの名無しさん
垢版 |
2006/09/11(月) 11:10:42
外字を含むデータを出力することは出来るのでしょうか。
2006/09/11(月) 12:26:03
外字使うフィールドと通常文字使うフィールドが分かれてるなら出来る。

同一フィールドに混在させるなら制限付きになりそう。
絶対に使わないコードポイントを外字に割り当てて、
かつ、そういうフォントを用意する、とか。
215デフォルトの名無しさん
垢版 |
2006/09/14(木) 15:01:34
iReportのeclipseプラグインがリリースされてた。
rmi使ってeclipseからiReportや新規ウィザードを起動させてるみたいなんだけど正常に動かない(><)
試された方います?
2006/10/18(水) 01:58:52
XLSで出力するときに、印刷範囲の指定って出来ますか?

JExcelAPIのSheetSettingで設定できるというところまでは調べたのですが、
JasperReportsからアクセスするメソッドが見当たらないんです。
やっぱりJExcelAPIを単独で呼び出すしかないんでしょうか。
217デフォルトの名無しさん
垢版 |
2006/12/17(日) 23:06:33
帳票って英語でなんていうの?

2006/12/18(月) 03:39:01
>>217
なぜこんなところで聞く?
2006/12/19(火) 10:17:00
>>217
http://www.excite.co.jp/dictionary/japanese_english/?search=%E9%A6%AC%E9%B9%BF&match=beginswith&block=64793&offset=1064
220デフォルトの名無しさん
垢版 |
2007/04/22(日) 23:56:51
 
2007/05/06(日) 00:56:13
簿記の正式な書式って結構うるさいけど、
その正式な帳簿として出力含めてできますか?
2007/05/08(火) 11:37:12
簿記の正式な書式知らないので分かりません。
2007/05/16(水) 23:22:38
正式な書式に合わせてレイアウトすればいいさ。
224デフォルトの名無しさん
垢版 |
2007/05/27(日) 19:02:22
レコードを横方向に伸びる形で表示することは簡単にできますか?
2007/05/28(月) 11:33:17
縦方向に伸ばすのは楽だが
横方向に伸ばすのは無理だと思ったほうが。
2007/06/06(水) 23:50:57
横方向はnullスペース埋めでやるしかない!!
227デフォルトの名無しさん
垢版 |
2007/07/22(日) 18:48:25
excelで出力するときにバージョン指定ってできる?
execl2000,excel Xp で出力するみたな。
2007/07/23(月) 10:32:14
Excel 出力は jakarta-poi の 2.0-final を使ってて、
POI 自体は 97(-2000) 互換のファイルを作れます、だそうで。
POI について詳しく調べてないけど、
出力バージョンの制御ってなかった気がする。

そもそも Excel のフォーマットが 97/2000/XP でどれだけ違うのかが分からない。
2007/07/31(火) 23:40:06
>>228
なんかOSとごっちゃになっているみたいだが、
ExcelのフォーマットはOffice 97からOffice 2003まで変わっていない。

2007で変わってしまったみたいだが。
2007/08/04(土) 14:04:43
レスthx。
私は2000をつかっているのですが、昔XPとかをつかったときに
保存形式に2003とかあったような気がしたので。。。勘違いしていたようです。

ありがとうございました。
231デフォルトの名無しさん
垢版 |
2007/12/11(火) 10:00:36
おそレスだがいつの間にか2.0.0出てた。
232デフォルトの名無しさん
垢版 |
2008/02/23(土) 17:31:20
Windows2003サーバに環境を上げて
某複合機に印刷したらTomcatサービスごと落ちた。
他のプリンタでは問題ないし旧環境でも問題なかったので
ドライバのせいだと思うのでスレチガイ失礼。
233デフォルトの名無しさん
垢版 |
2008/04/26(土) 02:11:04
iReport-2.0.5、JasperReport-2.0.5を使ってます。

IMAGEフォルダのサンプルを使ってPDFファイルの作成を試していますが、iReportでは問題ないのに、プログラムからファイルを作ると画像が表示されません。
ファイルサイズも小さいので、画像が組み込まれていないようです。
画像のパスを絶対パスにしても駄目でした。

以下はコードです。

String xmlPath = "c:/ImagesReport.jrxml";

String destPath = "c:/ImagesReport.pdf";

JasperReport jasperReport =JasperCompileManager.compileReport(xmlPath);

JasperPrint print = JasperFillManager.fillReport(jasperReport, new HashMap());

JasperExportManager.exportReportToPdfFile(print, destPath);
何が問題なんでしょう?
アドバイスお願いします。
2008/04/26(土) 09:10:47
状況説明の仕方に問題がありそうだが。

> iReportでは問題ないのに
サンプルでは問題なく動いたのに、の意味なのか?
2008/04/26(土) 10:53:37
iReport上の環境で実行したら問題ないの意では?
236233
垢版 |
2008/04/26(土) 11:10:42
>>234
携帯から書き込んだので、端折った書き方をしてしまいました。
わかりづらくて申し訳ありません。

>>235さんが書かれている通り、iReport上で「空のデータソースで実行」すると正常に
表示がされます。

なのでXMLファイルには問題ないと思うのですが(サンプルですし)、かといってコードに問題あるとも思えず・・・。

iTextのバージョンが2.1.0なんですが、バージョンの組み合わせが悪いとかあるでしょうか?
2008/04/26(土) 19:20:05
> バージョンの組み合わせが悪いとか
特定の組み合わせのどれがとかって、
商用プロダクトでもロクに調べないわけで。
とりあえず JasperReport 添付のバージョンで試してみてはどうだろう。

あとは空の Map の代わりに JREmptyDataSource 使ってみるとか。

パス指定で問題起こした場合(=自分のミス)を除けば
プログラムからのPDF作成で
画像が出なかったことってなかったですよ。
238233
垢版 |
2008/04/27(日) 02:29:58
>>237
JasperReport 添付のバージョンですか?
現在がそれぞれの最新のバージョン使用なので、iReport-2.0.5、JasperReport-2.0.5、iText-2.1.0の
組み合わせで使用しています。

iReport-2.0.5がJasperReport-2.0.5、iText-1.3.1の組み合わせを使っているようなので、こちらの環境も
iText-2.1.0→iText-1.3.1にしてみたんですが、かわらず・・・。
逆に、iReportのiTextのバージョンを1.3.1→2.1.0にしたら、同じように真っ白なPDFになったので
これだ!と思ったのですが・・・。

・・・と今ふと思いついて、iText-1.3.1に入れ替えた後に、Eclipceのworkフォルダ削除、プロジェクトクリーン、
Eclipce終了してEclipce -cleanで再起動してから再度試したところ、無事に画像が表示されました!

私の環境だけかもしれないですが、バージョンの組み合わせにより問題が出るようです。

お騒がせしました。ありがとうございました。
239デフォルトの名無しさん
垢版 |
2008/06/12(木) 07:49:49
メインレポートにサブレポートを動的に(javaで)変更する
方法はあるのでしょうか
240デフォルトの名無しさん
垢版 |
2008/06/25(水) 18:55:03
>>239

おそくなったが、
iReportでサブレポートのプロパティ → サブレポート(その他)
のサブレポート表現をパラメータで渡せば出来るんじゃないか?

試したことないけど、
241デフォルトの名無しさん
垢版 |
2008/07/02(水) 07:57:20
フィールドにjavaから値を設定しています。
テキストを右寄せ、左寄せ、中央寄せはできるのですが
均等割りみたいなことは出来ないのでしょうか。
242デフォルトの名無しさん
垢版 |
2008/07/04(金) 19:47:36
>>241
できないと思う。

例えば 固定幅のフォントにして文字列に対してスペースを入れ込んでいくとか。。。
ちょい無茶か
243デフォルトの名無しさん
垢版 |
2008/07/07(月) 16:42:43
いつの間にか3.0.0出てた。
この前2.0.0が出たばっかりたったのに・・・
244デフォルトの名無しさん
垢版 |
2008/07/10(木) 09:07:54
>>243

ほんとだ
っつかiReport3.0出てるのな。。。
2008/07/12(土) 00:04:13
知ってる人いたら教えてください。ググったんだけどレスついている書き込み
が無くて、お手上げToT
iReportでサブレポートを使ってみたんだけど、サブレポートの部分が表示され
ないんです。2.0.4/2.0.5/3.0.0で試しました。
物としては、StaticTextを貼り付けただけのサブレポートをメインのレポート
に貼り付けただけ。それでJRViewerでプレビューしてみたけど何も表示されない。
メインにStaticTextを貼り付けるとそれだけ表示される。
何か設定が足りない?不具合?
2008/07/12(土) 16:49:09
サンプルのサブレポートは表示される?
247デフォルトの名無しさん
垢版 |
2008/07/13(日) 07:51:28
>>245
「サブレポート表現」のパスの指定が間違ってるとか
「データないとき」プロパティに「no-data section」指定してるとか

みないとわからんね
2008/07/13(日) 21:33:02
>246
サブレポートを使っているサンプルをいくつかダウンロードしたけどみんなダメです。

>247
レポートの作成にはiReportを使ってます。「データ無いとき」に「no-data section」
を指定しているつもりはないんですけど、ちょっと見てみます。

っていうことは、みんなの環境ではサブレポートを使っているレポートを作れてる?
2.0.4/2.0.5/3.0.0/で動作情報あれば教えてください。
249デフォルトの名無しさん
垢版 |
2008/07/14(月) 15:29:38
>>248
ずーっと 出来てますよ。(っても触りだしたが2.0.xからだけど
この間3.0.0に上げたけど問題なく出来てます。

環境は
ウェブアプリ、全体的には EclipseRCP×HttpInvoker なんだけど
PDFの出力だけ内部ブラウザからアクセスさせてるから
Jasper部はウェブアプリ

僕がサブレポートで躓いたときは
「サブレポート表現」に絶対パスを渡すのがミソだった
250245&248
垢版 |
2008/07/14(月) 22:28:17
>249さん
確認ありがとうございます。
それと原因わかりました。作成していたサンプルはサブレポートにデータソースもなにも
ないレポートをつけていたのですが、そうだと表示されないみたい。
Tutorial SWFのサブレポートを真似してDB(レポートクエリ)からデータをとってくるように
したらサブレポートが表示されました。
実際は、Java(Webアプリ)から配列で情報を渡して配列の内容を一覧してくれるような
サブレポートを作りたいのですがどうしたらよいか・・・。もうちょいサンプルをググって見ます。
ともあれ、サブレポートの動作確認はできました。有難うございました。
251デフォルトの名無しさん
垢版 |
2008/07/15(火) 14:58:55
参考までに

jrxml側
1.サブレポートに渡す為のパラメータを追加
(例:パラメータ名:summary、 パラメータクラスタイプ:net.sf.jasperreports.engine.JRDataSource

2.サブレポートのプロパティに1.で作成したパラメータを設定
(例:サブレポートタブの「接続/データソース表現」で「データソース表現の使用」を選択して $P{summary} と書き込む

java側
3.パラメータに データソースを "summary"でぶち込む
List list = new ArrayList();
...
JRBeanCollectionDataSource ds4mainreport = new JRBeanCollectionDataSource(list);
JRBeanCollectionDataSource ds4subreport = new JRBeanCollectionDataSource(list);
Map param = new HashMap();
param.put("summary", ds4subreport);
JasperPrint print = JasperFillManager.fillReport
("somewhere/some.jasper", param, ds4mainreport);

こんな感じかな?
252251
垢版 |
2008/07/15(火) 15:00:29
>>251
メインとサブで 同じデータソース(list)になっちゃってるけど気にするなwww
253デフォルトの名無しさん
垢版 |
2008/07/22(火) 17:24:32
環境を0.6.7から2.0.5にバージョンアップを試行中なのですが
2.0.5にしたらcompileReportToFileでjrxml→jasperにプリコンパイルすると
次のようなエラーが出てしまいます。

net.sf.jasperreports.engine.design.JRValidationException: Report design not valid :
 1. Warning : Element bottom reaches outside band area : y=30 height=11 band-height=39
 at net.sf.jasperreports.engine.design.JRAbstractCompiler.verifyDesign(JRAbstractCompiler.java:260)
 at net.sf.jasperreports.engine.design.JRAbstractCompiler.compileReport(JRAbstractCompiler.java:144)
 at it.businesslogic.ireport.IReportCompiler.run(IReportCompiler.java:591)
 at java.lang.Thread.run(Thread.java:595)


どうやらバンド領域をはみ出したエレメント(表示項目)があるとこのような
エラーが出るようです。0.6.7でははみ出してもプリコンパイルも表示もうまく
いっていたのですが・・・。
元々なぜバンド領域をはみ出してレイアウトしているかを説明すると長くなるので
割愛させていただきますが、現状のままバージョンアップをしたいと考えています。
何か回避方法はありますでしょうか?
■ このスレッドは過去ログ倉庫に格納されています