天津最新楼盘价格排行:JasperReports安装配置和制作

来源:百度文库 编辑:偶看新闻 时间:2024/05/03 10:46:28

一、JasperReports简要介绍
^JasperReports is a powerful open source Java reporting tool that has the ability to deliver rich content onto the screen, to the printer or into PDF, HTML, XLS, CSV and XML files.

It is entirely written in Java and can be used in a variety of Java enabled applications, including J2EE or Web applications, to generate dynamic content.

Its main purpose is to help creating page oriented, ready to print documents in a simple and flexible manner.

二、以下为JasperReports安装配置和制作步骤,希望能对初学者有所帮助。

1、JasperReport和iReport的资源,最新版本可以到下面官方网站得到。

iReport官方网站:
http://ireport.sourceforge.net

JasperReports官方网站:
http://jasperreports.sourceforge.net

2、安装
1)、JDK的安装,并配置JAVA_HOME。比如我的JAVA_HOME路径如下:
JAVA_HOME  D:\Program Files\j2sdk1.4.2_03

2)、由于中文的问题,所以还需要下载:itext-1.02b.jar和iTextAsian.jar包。下载地址:http://itext.sourceforge.net/downloads/iTextAsian.jar
并在CLASSPATH中设置。例如我的CLASSPATH如下:
CLASSPATH E:\Program Files\Apache Group\Tomcat4.1\webapps\testreport\WEB-INF\lib\itext-1.02b.jar;E:\Program Files\Apache Group\Tomcat 4.1\webapps\testreport\WEB-INF\lib\iTextAsian.jar;E:\Program Files\Apache Group\Tomcat 4.1\webapps\testreport\WEB-INF\lib;D:\tools\iReport0.2.3\lib

3)、iReport的安装iReport只要解压就OK,如果没有安装Ant,可以直接在iReport下的noAnt目录下,
运行startup.bat就可以了,这样iReport就可以启动了。

4)、JasperReport
Jasperreport不需要任何配置,你只需将下载以后的jar包放到classpath下即可。

5)、数据库的JDBC驱动包
加入到CLASSPATH中

3、详细资源
iReport官方提供了一些关于iReport视频,对于初学者很有帮助:
地址:http://ireport.sourceforge.net/docs.html

JasperReport官方提供的使用指南
地址:http://jasperreports.sourceforge.net/tutorial/index.html

JasperReport提供的一些例子:
地址:http://jasperreports.sourceforge.net/samples/index.html

4、常见问题
1)、iReport中提示框输入中文是不能正常显示,请将iReport下lib中的这个包删除tinylaf.jar
2)、在iReport中运行报表时如果出现乱码问题,请检查itext-1.02b.jar和iTextAsian.jar这两个包是否加到CLASSPATH
3)、在jsp或servlet高度报表时出现乱码或不显示,请检查你在报表设计过程中所设置的字体及其编码。比如:pdfname、pdfencoding

5 、 下面是两个调试例子    
Servlet :
import javax.servlet.*;
import javax.servlet.http.*;
import dori.jasper.engine.*;
import java.io.*;
import java.util.*;
import java.sql.*;

/**
* @author Administrator
*
* To change the template for this generated type comment go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/
public class TestReport extends HttpServlet {

 public void doGet(HttpServletRequest request, HttpServletResponse response)
  throws ServletException, IOException {
  Connection conn = null;

  try {

   Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
   conn =
    DriverManager.getConnection(
     "jdbc:microsoft:sqlserver://192.168.0.10:1433;DatabaseName=pm;user=sa;password=sa");

   ServletContext servletContext = this.getServletContext();
   File reportFile =
    new File(servletContext.getRealPath("test/iteminfo.jasper"));
   Map parameters = new HashMap();
   Integer i = new Integer(8);
   parameters.put("pjId", i);
   byte[] bytes =
    JasperRunManager.runReportToPdf(
     reportFile.getPath(),
     parameters,
     conn);
   response.setContentType("application/pdf");
   response.setContentLength(bytes.length);
   ServletOutputStream ouputStream = response.getOutputStream();
   ouputStream.write(bytes, 0, bytes.length);
   ouputStream.flush();
   ouputStream.close();
  } catch (JRException jre) {
   System.out.println("JRException:" + jre.getMessage());
  } catch (Exception e) {
   System.out.println("Exception:" + e.getMessage());
  }

 }

 public void doPost(
  HttpServletRequest request,
  HttpServletResponse response)
  throws ServletException, IOException {

  doGet(request, response);

 }

}

JSP:
< %@ page contentType="text/html;charset=GBK" % >
< %@ page import="dori.jasper.engine.*" % >
< %@ page import="java.util.*" % >
< %@ page import="java.io.*" % >
< %@ page import="java.sql.*" % >

< %
//数据库连接
Connection conn=null;
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
conn=DriverManager.getConnection("jdbc:microsoft:sqlserver://192.168.0.10:1433;DatabaseName=pm;user=sa;password=sa");

//取到编译后的jasper文件
File reportFile = new File(application.getRealPath("test/iteminfo.jasper"));

//向报表中定义的参数赋值
Map parameters = new HashMap();
Integer i=new Integer(8);
parameters.put("pjId", i);

byte[] bytes =
JasperRunManager.runReportToPdf(
reportFile.getPath(),
parameters,
conn
);

response.setContentType("application/pdf");
response.setContentLength(bytes.length);
ServletOutputStream ouputStream = response.getOutputStream();
ouputStream.write(bytes, 0, bytes.length);
ouputStream.flush();
ouputStream.close();
% >