天天看点

jasperreport java数据,报表,IReport+JasperReport进行Java报表开发。

一  相关基础知识

1.关于JasperReport和iReport

Jasperreport是一个报表制作程序,用户需要按照它制定的规则编写一个XML文件,然后得到用户需要输出的格式文件。它支持输出的文件格式包括PDF,HTML,XML,XLS,CVS等等.

而iReport就是一个可以帮助我们制作Jasperreport的XML文件的可视化开发工具。他的作用和dreamware的作用是类似的.

2、下载iReport和jasperReport

1) 下载 jasperreport

截至 2013/12/13, 最新版本是 5.1

jasperreport 下载地址:

建议是两个都下载。(需使用包和相应的依赖包)

2) 下载 ireport

二. 简单测试实例

这里以简单产生一个pdf文件为例。 (在 pdf 中输入一行文字)

1. 在Eclipse 新建一个java Project。 并导入以下lib包(从以上的下载中可以找到)

castor-1.2.jar

commons-beanutils-1.8.0.jar

commons-collections-2.1.1.jar

commons-digester-2.1.jar

commons-logging-1.1.1.jar

iText-2.1.7.js2.jar

jasperreports-5.1.0.jar

如果嫌麻烦, 可以将下载的jasperreports jar 包和开发源码包中所有的lib 到导入

2. 在项目根路径下新建 HelloJasperReport.jrxml,内容如下

jasperreport java数据,报表,IReport+JasperReport进行Java报表开发。

3. 在com.oscar999包下,新建 HelloJasperReport.java

jasperreport java数据,报表,IReport+JasperReport进行Java报表开发。

4. 运行之后, 会发现在项目根路径下会多出一个 HelloJasperReport.pdf 的文件。打开就可以看到效果。三. 总结

这里只是一个最简单的实例。

1. 除了可以导出pdf 格式之外,还可以导出很多其他的格式。

2. 可以取数据库数据进行展现

3. jrxml 该如何写? 使用iReport 这个工具就可以很容易的通过界面的方式画出这个文件。

//打印预览 文件名 参数map 表模型

public static void printPreview(String fileName, Map parameters, TableModel model) {

try {

//建立---->Jasper表模型

JRTableModelDataSource ds = new JRTableModelDataSource(model);

//填充报表数据

JasperPrint jasperPrint = fillReport(fileName, ds, parameters);

//JasperPrintManager.printReport(jasperPrint, false);

//打印

//打印预览,模态框

final JDialog dialog = new JDialog(new JFrame(), "打印预览", true);

//报表视图

ReportViewer jp = new ReportViewer(jasperPrint);

//设置关闭监听

jp.setCloseAction(new ActionListener() {

public void actionPerformed(ActionEvent e) {

dialog.dispose();

}

});

//获取对话框 内容面板 边框布局居中

dialog.getContentPane().add(jp, BorderLayout.CENTER);

dialog.setSize(850, 600);

//--------+++++++++++++++++关闭时销毁 不知道有没有作用(youyong)+++++++++++++++++++++++++--------

//对话框设置默认关闭选项

dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);

//adjust调整

adjustToCenter(dialog);

dialog.setVisible(true);

} catch (JRException e) {

e.printStackTrace();

} catch (ClassNotFoundException e) {

e.printStackTrace();

}

catch (SQLException e) {

e.printStackTrace();

}

}

//默认打印机

public static boolean printStart(String fileName, Map parameters, TableModel model) {

try {

JRTableModelDataSource ds = new JRTableModelDataSource(model);

JasperPrint jasperPrint = fillReport(fileName, ds, parameters);

JasperPrintManager.printReport(jasperPrint, false);//打印

//      //预览

//      final JDialog dialog = new JDialog(new JFrame(),"列印預覽", true);

//      ReportViewer jp = new ReportViewer(jasperPrint);

//      jp.setCloseAction(new ActionListener(){

//          public void actionPerformed(ActionEvent e) {

//            dialog.dispose();

//          }

//      });

//

//      dialog.getContentPane().add(jp, BorderLayout.CENTER);

//      dialog.setSize(850, 600);

//      //--------+++++++++++++++++关闭时销毁 不知道有没有作用(youyong)+++++++++++++++++++++++++--------

//      dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);

//      adjustToCenter(dialog); //SwingUtils.

//      dialog.setVisible(true);

return true;

} catch (JRException e) {

e.printStackTrace();

} catch (ClassNotFoundException e) {

e.printStackTrace();

} catch (SQLException e) {

e.printStackTrace();

}

return false;

}