[size=medium][size=medium]1.鏁版嵁婧?JRDataSource)
import java.util.ArrayList;
import java.util.List;
import lbc.report.basequery.QueryData;
import lbc.report.bean.VioWritJycfjds;
import lbc.report.bean.base.BaseVioWritJycfjds;
import org.hibernate.Session;
import net.sf.jasperreports.engine.JRDataSource;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JRField;
public class ReportDataSource implements JRDataSource {
private int index = -1;
private static QueryData queryData=new QueryData();
private static List list=new ArrayList();
static
{
String SQL="select * from VIO_WRIT_JYCFJDS";
list=queryData.sqlQuery(SQL, VioWritJycfjds.class);
}
public Object getFieldValue(JRField field) throws JRException {
String fieldName=field.getName();
if(fieldName.equals("bh"))
{
return ((VioWritJycfjds)list.get(index)).getId();
}
if(fieldName.equals("bt"))
{
return ((VioWritJycfjds)list.get(index)).getJybt();
}
if(fieldName.equals("sfjg") && (((VioWritJycfjds) list.get(index)).getJysfjg())!=null && (((VioWritJycfjds) list.get(index)).getJysfjg()).equals("1"))
{
return "\u221A";
}
}
2.JasperPrintWithJRDataSource绫?
import java.io.File;
import java.util.Map;
import net.sf.jasperreports.engine.JRDataSource;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.util.JRLoader;
public class JasperPrintWithJRDataSource {
private Map params;
private String jrxmlFilePath;
private String reportFilePath;
private JRDataSource dataSource;
public JRDataSource getDataSource() {
return dataSource;
}
public void setDataSource(JRDataSource dataSource) {
this.dataSource = dataSource;
}
public String getJrxmlFilePath() {
return jrxmlFilePath;
}
public void setJrxmlFilePath(String jrxmlFilePath) {
this.jrxmlFilePath = jrxmlFilePath;
}
public Map getParams() {
return params;
}
public void setParams(Map params) {
this.params = params;
}
public String getReportFilePath() {
return reportFilePath;
}
public void setReportFilePath(String reportFilePath) throws Exception {
if(reportFilePath==null || !reportFilePath.endsWith(".jasper"))
throw new Exception("浼犲叆鐨勬ā鏉挎枃浠舵牸寮忎笉瀵癸紝璇蜂紶鍏ヤ互.jasper涓哄悗缂€鐨勬枃浠?");
this.reportFilePath = reportFilePath;
}
public JasperPrintWithJRDataSource () {
super();
}
public JasperPrintWithJRDataSource(String jrxmlFilePath,String reportFilePath,Map params,JRDataSource dataSource) throws Exception {
if(jrxmlFilePath==null || !jrxmlFilePath.endsWith(".jrxml"))
throw new Exception("妯℃澘鏂囦歡鏍煎紡涓嶅锛岃浼犲叆浠?jrxml涓哄悗缂€鐨勬枃浠訛紒");
if(dataSource==null)
throw new Exception("dataSource涓嶅簲褰撲負null!");
this.setJrxmlFilePath(jrxmlFilePath);
this.setReportFilePath(reportFilePath);
this.setParams(params);
this.setDataSource(dataSource);
}
public JasperPrint getJasperPrint() throws Exception {
//缂栬瘧鎴?Jasper鏂囦歡
JasperCompileManager.compileReportToFile(this.jrxmlFilePath);
File reportFile=new File(this.reportFilePath);
if(!reportFile.exists())
throw new Exception("浼犲叆鐨勬ā鏉挎枃浠朵笉瀛樺湪锛?);
try {
//LOAD 缂栬瘧濂界殑妯℃澘
JasperReport jasperReport=(JasperReport) JRLoader.loadObject(reportFile.getPath());
//杩涜鏁版嵁濉厖
JasperPrint jasperPrint=JasperFillManager.fillReport(jasperReport, this.params, this.dataSource);
return jasperPrint;
} catch (JRException jre) {
jre.printStackTrace();
throw new Exception("鏁版嵁濉厖鍙戠敓閿欒锛岃妫€鏌ユ暟鎹簱婧愬拰鐢ㄦ潵濉厖鐨勫弬鏁癿ap鏄惁鏈夎!");
}
}
}
3.瀵煎嚭HTML鏍煎紡鎶ヨ〃
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.jsp.JspWriter;
import net.sf.jasperreports.engine.JRDataSource;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JRExporterParameter;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.export.JRHtmlExporter;
import net.sf.jasperreports.engine.export.JRHtmlExporterParameter;
import net.sf.jasperreports.j2ee.servlets.ImageServlet;
public class HTMLExport {
public void export(HttpServletRequest request,HttpServletResponse response,String jrxmlFilePath,String reportFilePath,Map params,JRDataSource dataSource) throws Exception {
try {
response.reset();
response.setContentType("text/html; charset=GBK");
PrintWriter writer=response.getWriter();
try {
JasperPrint jasperPrint=new JasperPrintWithJRDataSourceNew(jrxmlFilePath,reportFilePath,params,dataSource).getJasperPrint();
//浣跨敤JRHtmlExporter瀵煎嚭Html鏍煎紡
JRHtmlExporter exporter=new JRHtmlExporter();
request.getSession().setAttribute(ImageServlet.DEFAULT_JASPER_PRINT_SESSION_ATTRIBUTE, jasperPrint);
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
exporter.setParameter(JRExporterParameter.OUTPUT_WRITER, writer);
//鎶ヨ〃杈規鍥劇墖璁劇疆"report/image?image="锛宺eport涓轟綘鐨勬姤琛ㄥ強PX鍥劇墖鎵€鍦ㄧ洰褰?
//exporter.setParameter(JRHtmlExporterParameter.IMAGES_URI, "report/image?image=");
//鎶ヨ〃杈規鍥劇墖璁劇疆IS_USING_IMAGES_TO_ALIGN,Boolean.FALSE锛屼笉浣跨敤鍥劇墖
exporter.setParameter(JRHtmlExporterParameter.IS_USING_IMAGES_TO_ALIGN,Boolean.FALSE);
exporter.setParameter(JRExporterParameter.CHARACTER_ENCODING, "GBK");
//瀵煎嚭
exporter.exportReport();
} catch (Exception e) {
e.printStackTrace();
throw new Exception("瀵煎嚭HTML鏍煎紡鎶ヨ〃鏃跺彂鐢熼敊璇紒");
}finally{
if(writer!=null)
{
try {
writer.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
} catch (IOException ioe) {
ioe.printStackTrace();
}
throw new Exception("浣跨敤JRHtmlExporter瀵煎嚭Html鏍煎紡鏃跺彂鐢熼敊璇紒");
}
4.瀵煎嚭Pdf鎶ヨ〃
import java.io.IOException;
import java.io.PrintWriter;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.ServletOutputStream;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import net.sf.jasperreports.engine.JRDataSource;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JRExporterParameter;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperRunManager;
import net.sf.jasperreports.engine.export.JRHtmlExporterParameter;
import net.sf.jasperreports.engine.export.JRPdfExporter;
import net.sf.jasperreports.engine.export.JRPdfExporterParameter;
public class PDFExport {
public void exportToPDF(HttpServletRequest request,HttpServletResponse response,String jrxmlFilePath,String reportFilePath,Map params,JRDataSource dataSource) throws Exception
{
try{
response.reset();
response.setContentType("application/pdf;charset=GBK");
//PDF瀵煎嚭璺緞鍙婂悕绉?
String destFileName = reportFilePath.substring(0,reportFilePath.lastIndexOf(".")) + ".pdf";
//瀵煎嚭PDF鏂規硶涓€
//JasperExportManager.exportReportToPdfFile(jasperPrint, destFileName);
//瀵煎嚭PDF鏂規硶浜?
//寰楀埌jasperPrint瀵矽薄
JasperPrint jasperPrint=new JasperPrintWithJRDataSource(jrxmlFilePath,reportFilePath,params,dataSource).getJasperPrint();
JRPdfExporter pdfexporter = new JRPdfExporter();
pdfexporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
pdfexporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, destFileName);
pdfexporter.exportReport(); System.out.println("Done!");
}catch(IOException e){
e.printStackTrace();
}
}
}
5.瀵煎嚭RTF鎶ヨ〃
import java.io.IOException;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.jsp.JspWriter;
import net.sf.jasperreports.engine.JRDataSource;
import net.sf.jasperreports.engine.JRExporterParameter;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.export.JRRtfExporter;
public class RTFExport {
public void exportToRtf(HttpServletRequest request,HttpServletResponse response,String jrxmlFilePath,String reportFilePath,Map params,JRDataSource dataSource) throws Exception {
try {
JasperPrint jasperPrint=new JasperPrintWithJRDataSourceNew(jrxmlFilePath,reportFilePath,params,dataSource).getJasperPrint();
JRRtfExporter rtfExporter=new JRRtfExporter();
rtfExporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
//璁劇疆瀵煎嚭鏂囦歡鍚?
rtfExporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, "c://myrtf.rtf");
rtfExporter.setParameter(JRExporterParameter.CHARACTER_ENCODING, "GB2312");
rtfExporter.exportReport();
System.out.println("Done!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
6.瀵煎嚭XML鎶ヨ〃
import java.io.IOException;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import net.sf.jasperreports.engine.JRDataSource;
import net.sf.jasperreports.engine.JRExporterParameter;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.export.JRXmlExporter;
public class XMLExport {
public void exportToXml(HttpServletRequest request,HttpServletResponse response,String jrxmlFilePath,String reportFilePath,Map params,JRDataSource dataSource) throws Exception {
try {
JasperPrint jasperPrint=new JasperPrintWithJRDataSourceNew(jrxmlFilePath,reportFilePath,params,dataSource).getJasperPrint();
JRXmlExporter xmlExporter=new JRXmlExporter();
xmlExporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
xmlExporter.setParameter(JRExporterParameter.OUTPUT_STREAM, response.getOutputStream());
xmlExporter.exportReport();
response.setContentType("text/xml");
System.out.println("Done!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
鐢變簬鍦ㄦ祻瑙堝櫒涓墦寮€Xml鏃訛紝鍦ㄩ〉闈㈣缃噷闇€杩涜鍐呭绫誨瀷鐨勮缃紝鍥犳鏈€濂藉湪JSP椤甸潰涓姞涓婂涓嬩唬鐮侊細
<%@ page contentType="text/xml;charset=GBK"%>
7.瀵煎嚭Excel鎶ヨ〃
import java.io.IOException;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import net.sf.jasperreports.engine.JRDataSource;
import net.sf.jasperreports.engine.JRExporterParameter;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.export.JRXlsExporter;
import net.sf.jasperreports.engine.export.JRXlsExporterParameter;
public class EXCELExport {
public void exportToExcel(HttpServletRequest request,HttpServletResponse response,String jrxmlFilePath,String reportFilePath,Map params,JRDataSource dataSource) throws Exception {
try {
response.reset();
response.setContentType("application/vnd.ms-excel;charset=GBK");
JasperPrint jasperPrint=new JasperPrintWithJRDataSourceNew(jrxmlFilePath,reportFilePath,params,dataSource).getJasperPrint();
JRXlsExporter jrXlsExporter=new JRXlsExporter();
jrXlsExporter.setParameter(JRExporterParameter.JASPER_PRINT,jasperPrint);
//璁劇疆杈撳嚭娴?
jrXlsExporter.setParameter(JRExporterParameter.OUTPUT_STREAM,response.getOutputStream());
jrXlsExporter.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET,Boolean.FALSE);
jrXlsExporter.setParameter(JRExporterParameter.CHARACTER_ENCODING, "GB2312");
jrXlsExporter.exportReport();
System.out.println("Done!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
鐢變簬鍦ㄦ祻瑙堝櫒涓墦寮€Excel鏃訛紝鍦ㄩ〉闈㈣缃噷闇€杩涜鍐呭绫誨瀷鐨勮缃紝鍥犳鏈€濂藉湪JSP椤甸潰涓姞涓婂涓嬩唬鐮侊細
<%@ page contentType="application/vnd.ms-excel;charset=GBK"%>
8.ACTION璋冪敤锛屽鍑烘姤琛?
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import lbc.report.report.EXCELExport;
import lbc.report.report.HTMLExportNew;
import lbc.report.report.PDFExport;
import lbc.report.report.RTFExport;
import lbc.report.report.ReportDataSource;
import lbc.report.report.XMLExport;
import net.sf.jasperreports.engine.JRDataSource;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;
public class jycfjdsAction extends DispatchAction {
public ActionForward loadReport(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws Exception {
Map params = new HashMap();
JRDataSource dataSource = new ReportDataSource();
//瀵煎嚭HTML鎶ヨ〃
HTMLExportNew htmExportNew=new HTMLExportNew();
htmExportNew.export(request,response,request.getRealPath("/report/jycfjds.jrxml"), request.getRealPath("/report/jycfjds.jasper"), params, dataSource);
//瀵煎嚭PDF鎶ヨ〃
//PDFExport pdfExport=new PDFExport();
//pdfExport.exportToPDF(request, response, request.getRealPath("/report/jycfjds.jrxml"),request.getRealPath("/report/jycfjds.jasper"), params, dataSource);
//瀵煎嚭EXCEL鎶ヨ〃
//EXCELExport excelExport=new EXCELExport();
//excelExport.exportToExcel(request, response, request.getRealPath("/report/jycfjds.jrxml"), request.getRealPath("/report/jycfjds.jasper"), params, dataSource);
//瀵煎嚭XML鎶ヨ〃
//XMLExport xmlExport=new XMLExport();
//xmlExport.exportToXml(request, response, request.getRealPath("/report/jycfjds.jrxml"), request.getRealPath("/report/jycfjds.jasper"), params, dataSource);
//瀵煎嚭RTF鎶ヨ〃
//RTFExport rtfExport=new RTFExport();
//rtfExport.exportToRtf(request, response,request.getRealPath("/report/jycfjds.jrxml"), request.getRealPath("/report/jycfjds.jasper"), params, dataSource);
return null;
}
}
9.璋冪敤JSP椤甸潰瀵煎嚭鎶ヨ〃
<%@ page language="java" contentType="text/html; charset=GBK" pageEncoding="GBK"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@page import="lbc.report.basequery.QueryData"%>
<%@page import="java.util.List"%>
<%@page import="java.util.ArrayList"%>
<%@page import="lbc.report.report.ReportDataSource"%>
<%@page import="java.util.HashMap"%>
<%@page import="java.util.Map"%>
<%@page import="lbc.report.report.HTMLExportNew"%>
<%@page import="lbc.report.report.PDFExport"%>
<%@page import="net.sf.jasperreports.engine.JRDataSource"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>瀵煎嚭HTML鏍煎紡鎶ヨ〃</title>
</head>
<body>
<%
//璁劇疆JRDataSource杩炴帴
JRDataSource dataSource=new ReportDataSource();
//璁劇疆澶栭儴鍙傛暟瀵?
Map parameters=new HashMap();
parameters.put("rptToday","2009-06-04");
parameters.put("rptMan","lbc");
PDFExport pdfExport=new PDFExport();
pdfExport.exportToPDF(request,response,request.getRealPath("/reports/jycfjds.jrxml"),request.getRealPath("/reports/jycfjds.jasper"),parameters,dataSource);
%>
</body>
</html>
鏈枃鏉ヨ嚜CSDN鍗氬锛岃漿杞借鏍囨槑鍑哄锛歨ttp://blog.csdn.net/AlleanLee/archive/2010/04/23/5519750.aspx[/size][/size]