??褰?
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璇???
绗?浜?姝?宸?竟瀵艱????灞??т?缁? 濡???
1.Parameters ???????版?劇ず?ヨ〃?′歡锛?灏辨??ava涓??ヨ?㈡?′歡
2.Fileds 瀛?娈?灏辨??sql涓?????浜?瀛?娈典俊??
3.Variables ????瀵矽薄锛?璇ュ????涔?????宸辯??灞???
4.涓??㈠氨??妯℃?垮?矽薄锛?涓??㈡??璇????浠?缁?
绗?涓?姝??寵竟缁?浠堕?㈡?垮??т?缁? 濡???
1.Text Fleid ?ㄦ??瀛?娈??版?????ㄦ??
2. Static Text ????瀛?娈?灏辨???兼???哄??
3. java ???頒唬?? ????灞?浜?servlet???幫?涓??㈡????浜?涓?涓?ireportDemo 濡???
1.?版??杩??ユ????servlet杩???
2.ireport涓?瑕?浣跨?ㄧ??jar??
jar???誨?卞??涓轟?绫?
1.ireport涓?jar??
2.渚?璧?绗?涓???ar??
3.??瑕?寮??ㄥ??浣???jar
绗?涓?姝?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>