天天看點

ireport簡單報表列印

??褰?

1. ireport杩???racle?版??搴?

2. ireport绠????ヨ〃????

1.ireport?㈡?垮???

1.title:???ㄦ?翠釜?ヨ〃??绗?涓?椤電????涓??㈤?ㄥ???劇ず锛??や?绗?涓?椤靛?锛?涓?绠℃?ヨ〃????涓?椤甸????朵???椤甸?㈤?戒?浼????虹?拌?ラ?ㄥ??????瀹廣??

2.pageHeader:灏?浼??ㄦ?翠釜?ヨ〃涓???姣?涓?涓?椤甸??腑?戒??虹?幫??劇ず?ㄤ?缃??ㄩ〉?㈢??涓????濡??????ヨ〃??绗?涓?椤碉?pageHeader 涓?????瀹瑰??劇ず??itle娈典?????や?绗?涓?椤典互澶????朵?????椤甸??腑pageHeader 涓?????瀹瑰??ㄦ?劇ず?ㄩ〉?㈢????涓?绔???

3.columnHeader:??瀵?etail娈電??琛ㄥご娈碉?涓??????典??ㄨ?涓?娈典腑?繪?ヨ〃涓?????????棰???姣?椤靛??浼??虹?頒?娆°??浠?瀛??㈡????灏卞??浠ョ??瑙h???涓?涓?琛ㄦ?肩??琛ㄦ?煎ご??

4.detail:?ヨ〃??瀹規?碉??ㄨ?涓?娈典腑璁捐?℃?ヨ〃涓???瑕???澶??虹?扮????瀹癸?detail 娈典腑????瀹規??椤甸?戒??虹?般??

5. columnFooter:detail娈電??缁?灏撅?姣?椤靛??浼??虹?頒?娆°??

6.pageFooter:?劇ず?ㄦ???ㄩ〉?㈢????涓?绔?锛?姣?椤甸?芥?劇ず锛?????涓?椤電??astPageFooter?誇唬??

7.lastPageFooter:????涓?椤甸〉灏炬?靛??瀹癸????ㄦ????涓?椤靛?虹?頒?娆°??

8. summary:琛ㄦ?肩????璁℃?碉??虹?闆?ㄦ?翠釜?ヨ〃??????涓?椤典腑??detail娈電???????涓????ㄦ?ョ?璁℃?ヨ〃涓???涓???????涓?瀛?娈電????璁″?箋??

2. ????浠?缁???report涓???sql璇??ワ?娌℃????缃?javaBean 濡???

绗?涓?姝???report涓?缂???sql璇???

ireport簡單報表列印
ireport簡單報表列印

绗?浜?姝?宸?竟瀵艱????灞??т?缁? 濡???

1.Parameters ???????版?劇ず?ヨ〃?′歡锛?灏辨??ava涓??ヨ?㈡?′歡

2.Fileds 瀛?娈?灏辨??sql涓?????浜?瀛?娈典俊??

3.Variables ????瀵矽薄锛?璇ュ????涔?????宸辯??灞???

4.涓??㈠氨??妯℃?垮?矽薄锛?涓??㈡??璇????浠?缁?

ireport簡單報表列印

绗?涓?姝??寵竟缁?浠堕?㈡?垮??т?缁? 濡???

1.Text Fleid ?ㄦ??瀛?娈??版?????ㄦ??

2. Static Text ????瀛?娈?灏辨???兼???哄??

ireport簡單報表列印

3. java ???頒唬?? ????灞?浜?servlet???幫?涓??㈡????浜?涓?涓?ireportDemo 濡???

1.?版??杩??ユ????servlet杩???

2.ireport涓?瑕?浣跨?ㄧ??jar??

ireport簡單報表列印

jar???誨?卞??涓轟?绫?

1.ireport涓?jar??

2.渚?璧?绗?涓???ar??

3.??瑕?寮??ㄥ??浣???jar

ireport簡單報表列印

绗?涓?姝?web.xml ??缃? 濡?涓?浠g??

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
    <!--ireportservlet ?у?跺?? -->
    <servlet>
        <servlet-name>ireportServlet</servlet-name>
        <servlet-class>com.zlp.ireport.IreportServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>ireportServlet</servlet-name>
        <url-pattern>/ireport</url-pattern>
    </servlet-mapping>

   <!--??杞借?塊??椤甸?? -->
    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>

</web-app>
           

绗?浜?姝??版??搴?杩???濡?涓?浠g??

package com.zlp.util;

import java.sql.Connection;
import java.sql.DriverManager;


/**
 *  ??杩?: 杩??ユ?版??搴?椹卞?? *  @author zlp 
 *  @date 2017骞?2??29??0:39:47
 */
 public class ConnectionUtils {

     private static Connection connection = null;

     public static Connection getConnection() {
            try {
                Class.forName("oracle.jdbc.driver.OracleDriver");// ??杞?racle椹卞?ㄧ?搴?
                System.out.println("寮?濮?灏?璇?杩??ユ?版??搴?锛?");
                String url = "jdbc:oracle:thin:@127.0.0.1:1521:orcl";// 127.0.0.1?????哄?闆??锛?orcl??Oracle??sid
                String user = "dms_pro";// ?ㄦ?峰??,绯葷?榛?璁ょ??璐??峰??
                String password = "dms_pro";// 浣?瀹?瑁??堕??璁劇疆??瀵???
                connection = DriverManager.getConnection(url, user, password);// ?峰??杩???                System.out.println("杩??ユ????锛?");
            } catch (Exception e) {
                e.printStackTrace();
            }
            return connection;
        }

     // 娴?璇?001
     public static void main(String[] args) {
         //connection = getConnection();
    }

}
           

绗?涓?姝?ireportServlet?у?跺?ㄤ唬?? 濡?涓?浠g??

package com.zlp.ireport;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.util.HashMap;
import java.util.Map;

import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import net.sf.jasperreports.engine.JRExporterParameter;
import net.sf.jasperreports.engine.JasperExportManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.export.JRHtmlExporter;
import net.sf.jasperreports.engine.export.JRHtmlExporterParameter;
import net.sf.jasperreports.engine.util.JRLoader;
import net.sf.jasperreports.j2ee.servlets.ImageServlet;

import org.apache.commons.lang.StringUtils;

import com.zlp.util.ConnectionUtils;
/**
 * ??杩?:ireport ???? * @date : 2017骞?2??30??5:34:03
 * @author : zlp
 * 
 */
@SuppressWarnings("serial")
public class IreportServlet extends HttpServlet {




    @Override
    public void init(){

    }
    /**
     * ??杩?:???拌??ㄦ?規?
     * @date : 2017骞?2??30??5:34:03
     * 
     */
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        // 璋??ㄤ??????規?
        if("EMPLOYEE".equals(req.getParameter("report").toUpperCase())){
            printEmployee(req,resp);
        }   

    }
     /**
     * ??杩?:????DF??宸ヤ俊??(??涓?????
     * @date : 2017骞?2??30??5:34:03
     * 
     */
    private void printEmployee(HttpServletRequest req, HttpServletResponse resp) {

        String rpt=req.getParameter("rpt");

        if(StringUtils.isNotBlank(rpt)){
            if("PDF".equals(rpt.toUpperCase())){
                try {
                    //?峰???版??搴?杩???                    Connection connection = ConnectionUtils.getConnection();
                    java.io.InputStream is = this.getServletContext().getResourceAsStream("/WEB-INF/ireportfiles/employee.jasper");
                    Map<String, Object> parameters = new HashMap<String, Object>();
                    String code = req.getParameter("code").toString();
                    parameters.put("CODE", code);
                    JasperReport jasperReport = (JasperReport) JRLoader.loadObject(is);
                    JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, connection);
                    resp.setContentType("application/pdf");
                    ServletOutputStream ouputStream = resp.getOutputStream();
                    JasperExportManager.exportReportToPdfStream(jasperPrint,ouputStream);
                    ouputStream.flush();
                    ouputStream.close();
                } catch (Exception ex) {
                    ex.printStackTrace();
                }
            }if("HTML".equals(rpt.toUpperCase())){
                try{
                    Connection connection = ConnectionUtils.getConnection();
                    java.io.InputStream is = this.getServletContext().getResourceAsStream("/WEB-INF/ireportfiles/employeeToHtml.jasper");
                    Map<String, Object> parameters = new HashMap<String, Object>();
                    String code = req.getParameter("code").toString();
                    parameters.put("CODE", code);

                    JasperReport jasperReport = (JasperReport) JRLoader.loadObject(is);
                    JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, connection);
                    resp.setContentType("text/html; charset=GB2312");
                    PrintWriter printWriter = resp.getWriter();
                    JRHtmlExporter jRHtmlExporter = new JRHtmlExporter();
                    HttpSession session = req.getSession();
                    Map imagesMap = new HashMap();
                    session.setAttribute("IMAGES_MAP", imagesMap);
                    req.getSession().setAttribute(ImageServlet.DEFAULT_JASPER_PRINT_SESSION_ATTRIBUTE, jasperPrint);
                    jRHtmlExporter.setParameter(JRExporterParameter.JASPER_PRINT,jasperPrint);
                    jRHtmlExporter.setParameter(JRExporterParameter.OUTPUT_WRITER,printWriter);
                    jRHtmlExporter.setParameter(JRHtmlExporterParameter.IMAGES_MAP, imagesMap);
                    jRHtmlExporter.setParameter(JRExporterParameter.CHARACTER_ENCODING, "GB2312"); 
                    jRHtmlExporter.setParameter(JRHtmlExporterParameter.IMAGES_URI,"image?image=");
                    jRHtmlExporter.setParameter(JRHtmlExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS,Boolean.TRUE);
                    jRHtmlExporter.exportReport();      
                    printWriter.close();

                }catch(Exception ex){
                    ex.printStackTrace();
                }
            }
        }
    }

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        this.doPost(req, resp);
    }

}
           

绗???姝????頒唬??ireportDemo.jsp 濡?涓?浠g??

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
 <%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script type="text/javascript" src="../js/jquery-2.1.1.js"></script>
</head>

 <script type="text/javascript">
          function clicke(){
                 var code = $("#code").val();
                 var path = "http://localhost:8090/iReprotDemo/ireport"
                 window.open(path+'?rpt=pdf&report=employee&code='+code);
         }

         function clickeHtml(){
                 var code = $("#code").val();
                 var path = "http://localhost:8090/iReprotDemo/ireport"
                 window.open(path+'?rpt=html&report=employee&code='+code);
         }
</script>
<body>
      <div>
             <span>??宸ョ??鳳?</span>
             <input type="text" name="fname" id= "code"/>
      </div>
      <input type="button" onClick="clicke()" value="PDF????/>
       <input type="button" onClick="clickeHtml()" value="HTML????/>

</body>
</html>