报表,IReport+JasperReport进行Java报表开发。

一  相关基础知识

    1.关于JasperReport和iReport

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

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

2、下载iReport和jasperReport

官方网址:http://community.jaspersoft.com  

1) 下载 jasperreport

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

jasperreport 下载地址: 

 http://sourceforge.net/projects/jasperreports/files/jasperreports/JasperReports%205.1.0/

 jasperreports-5.1.0.jar对应的jar 包

 jasperreports-5.1.0-project.zip开发的源代码( 包含源码和lib 包)

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

2) 下载 ireport

http://community.jaspersoft.com/project/ireport-designer

二. 简单测试实例

这里以简单产生一个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,内容如下


报表,IReport+JasperReport进行Java报表开发。_第1张图片

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


报表,IReport+JasperReport进行Java报表开发。_第2张图片

        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;

    }


    

        

    

                

    

    






    

        

    

                

    

    

你可能感兴趣的:(报表,IReport+JasperReport进行Java报表开发。)