Jasperreports極簡単チュートリアルとピットガイド

3338 ワード

JasperreportでJavaBeanをデータソースとしてhtmlレポートを出力する


ツール:


Jasperreports.JAr javaプログラムからレポートを出力するapi
Ireport-3.7.0レポートテンプレートを作成するソフトウェア

手順:


1 JavaBeanが表示するフィールドを準備し、beanのフィールドがnameとageであると仮定し、beanの値をlist 1にロードする
Test test1  = new Test();
Test test2  = new Test();
Test test3  = new Test();
list1.add(test1);
list1.add(test2);
list1.add(test3);

いくつかのmapを準備していくつかのフィールドone two threeを読み込みlist 2に再読み込み
map1.put("one","I'm");
map2.put("two","so");
map3.put("three","pretty");
list2.add(map1);
list2.add(map2);
list2.add(map3);

List 1とlist 2はhtmlレポートにデータソースとして出力されます
2空白のreportファイルhelloを新規作成します.jrxmlは、mapに対応するパラメータParametersとjavabeanに対応するフィールドFieldを作成します.
3 ParametersとFieldに対応するコンポーネントの作成
注意:ParametersのコンポーネントP{"one"},P{"two"},P{"three"}はtitle brandに,FieldのコンポーネントF{"name"},F{"age"}はtable内容としてDetail brandに,tableの列ヘッダはcolumn brandに置かれる(static textコンポーネントで文字を入力).FieldとParametersの違いは本人がまだ検討していないが、現在知っている用法の違いは、Parametersが唯一のパラメータ展示、すなわちmap中のキー値対に用いられることである.Fieldは、表の内容の表示、すなわち、複数の列のデータ、すなわちlistのjavabeanを表示するために使用されます.
4 hello.jrxmlをhelloにコンパイルする.JAsperは、私たちのプログラムに必要なファイルを取得します.
5簡単に言えば、list 1、list 2、helloが必要です.jasper
6コール
List jaspers = new ArrayList<>();
for (int i = 0; i < list2.size(); ++i) {// map 
    JasperPrint jasperPrint = JasperFillManager.fillReport(new File(hello.jasper), list2.get(i), new JRBeanCollectionDataSource(list1));
    jaspers.add(jasperPrint);         
}

JRHtmlExporter exporter = new JRHtmlExporter();
// 
exporter.setParameter(JRHtmlExporterParameter.IS_WHITE_PAGE_BACKGROUND, Boolean.TRUE);
exporter.setParameter(JRHtmlExporterParameter.JASPER_PRINT_LIST, jaspers);
exporter.setParameter(JRHtmlExporterParameter.OUTPUT_WRITER, out);
exporter.setParameter(JRExporterParameter.CHARACTER_ENCODING, characterEncoding);
exporter.setParameter(JRHtmlExporterParameter.BETWEEN_PAGES_HTML, "
"); exporter.setParameter(JRHtmlExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS, Boolean.TRUE); exporter.setParameter(JRHtmlExporterParameter.SIZE_UNIT, "pt"); exporter.exportReport();// HTML

ピットガイド


1低バージョンireportではjasperファイルをjrxmlファイルに変換できません
2低バージョンのireportでは、高バージョンのjrxmlファイルを開くことができますが、高バージョン(4.6以降)のireportではjrxmlファイルを作成する際にuuidプロパティ(表示可能)が追加されるため、uuidプロパティをすべて削除する必要があります.低バージョンのireportでは、高バージョンのjrxmlファイルと互換性があります.
3  ClassDefFound/ClassNotFound....groove....CompilerExceptionエラーは、jrxmlファイル(実はxml)の最初の行に、language=「groove」という属性があります.これはデフォルトの動作です.javaプログラムで呼び出すときにlanguage=「java」に変更するか、直接この属性を削除する必要があります.このエラーはjavaのコンパイルと実行に連絡して考えてみてください.大体の考えでは、jrxmlファイルのコンパイル環境(ireport)が実行環境(javaプログラム)と一致しません.JAvaプログラムは、実行時にjrxmlファイルのコンパイル時のクラスを見つけることができません.要するにlanguageプロパティがキーです.
4 languageプロパティを変更して再コンパイルした後もエラーが発生する場合があります.インタフェースに戻ってコンポーネントを少し移動することができます.それからコンパイルすればいいです.反応が遅いと理解できます.
続行するかもしれない...