打印或导出PDF:
JS: // 理赔通知打印
function printClaimNotify(){
if(mgrNo == \"\"){
alert(\"请选择要打印的记录!\");
return ;
}
if(clmNo==\"\"){
alert(\"此记录尚未产生赔案号,无法打印理赔通知!\");
return ;
}
var obj = document.getElementById(\"clmRsn\");
var rsn = obj.value; //obj.options[obj.selectedIndex].text;
// alert(\"理赔原因==\"+rsn);
var url =
\"<%=request.getContextPath()%>/claim/claimPrintController.do?cmd=printClaimNotify&clmNo=\"+clmNo+\"&plyNo=\"+plyNo+\"&merNo=\"+mgrNo+\"&clmRsn=\"+rsn;
window.open(url,\"打印预览\",\"toolbar=no, menubar=no, scrollbars=yes, resizable=yes, location=no, status=no\");
}
claimPrintController:
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.ServletContext;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperExportManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import org.apache.log4j.Logger;
import org.springframework.web.servlet.ModelAndView;
import com.isoftstone.hacdx.cb.web.controller.PrintController;
import com.isoftstone.hacdx.claim.dto.UndrClaimDto;
import com.isoftstone.util.DBConnection;
import com.sinosafe.commonsuite.web.controller.BaseController;
import com.sinosafe.huafa.app.dto.ServiceRequest;
import com.sinosafe.huafa.app.dto.ServiceResponse;
public class ClaimPrintController extends BaseController {
Logger logger = Logger.getLogger(PrintController.class);
protected ModelAndView service(HttpServletRequest request,
HttpServletResponse response) throws Exception {
String cmd = request.getParameter(\"cmd\");
if (\"printPlyCopy\".equals(cmd)) {// 打印保单抄件
return printPlyCopy(request, response);
} else {
return print(request, response); // 执行printClaimNotify方法
}
}
/**
* 打印保单抄件
* @param request
* @param response
* @return
* @throws Exception
*/
public ModelAndView printPlyCopy(HttpServletRequest request,
HttpServletResponse response) throws Exception {
Map model = null;
String plyNo = request.getParameter(\"plyNo\");
String clmNo = request.getParameter(\"clmNo\");
UndrClaimDto undrClaimDto = new UndrClaimDto();
undrClaimDto.setPolNo(plyNo);
undrClaimDto.setClmNo(clmNo);
ServiceRequest serviceRequest = new ServiceRequest();
serviceRequest.setCurrentRequestObject(undrClaimDto);
serviceRequest.setRequestedServiceID(\"undrClaimAction\");
serviceRequest.setRequestedMethodID(\"printPlyCopy\");
ServiceResponse serviceResponse = this.dispatchAction(serviceRequest,
\"hacdxAC\");
model = serviceResponse.getModel();
return new ModelAndView(\"printPlyCopy\", model);
}
//执行printClaimNotify方法
public ModelAndView print(HttpServletRequest request,
HttpServletResponse response) throws Exception {
Map model = new HashMap();
Connection conn = null;
JasperPrint jasperPrint = null;
ServletOutputStream ouputStream = null;
ServletContext sct = getServletContext();
//String clmNo = request.getParameter(\"clmNo\"); // 可以传多个参数
//String merNo = request.getParameter(\"merNo\");
// 身份证号码
String certid = request.getParameter(\"certid\"); //JSP传过来的值
try {
conn = DBConnection.getDBConnection();
jasperPrint = doFill(request, sct, conn, certid);
} catch (FileNotFoundException e) {
e.printStackTrace();
model.put(\"error\", \"打印出错,找不到模板文件!\");
return new ModelAndView(\"printView\", model);
} catch (JRException e) {
e.printStackTrace();
model.put(\"error\", \"打印出错,模板填充异常!\");
return new ModelAndView(\"printView\", model);
} finally {
try {
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
byte[] bytes = JasperExportManager.exportReportToPdf(jasperPrint);
response.setContentType(\"application/pdf\");
// response.setContentType(\"text/html\");
response.setContentLength(bytes.length);
try {
ouputStream = response.getOutputStream();
// 将字节数组bytes写到输出流ouputStream
ouputStream.write(bytes, 0, bytes.length);
ouputStream.flush();
} catch (IOException e) {
e.printStackTrace();
model.put(\"error\", \"打印出错,输出pdf字节流异常!\");
return new ModelAndView(\"printView\", model);
} finally {
try {
if (ouputStream != null) {
ouputStream.close();
}
} catch (IOException e) {
}
}
return null;
}
/**
* 填充报表
*
* @param sct
* @param conn
* @param clmNo
* @return
* @throws Exception
*/
public JasperPrint doFill(HttpServletRequest request, ServletContext sct, Connection conn, String certid) throws Exception {
File file = null;
Map map = new HashMap();
JasperPrint jasperPrint = null;
// String clmRsn = request.getParameter(\"clmRsn\");
//map.put(\"clmNo\
map.put(\"certid\", certid);
//map.put(\"clmRsn\
if (\"printClaimNotify\".equals(request.getParameter(\"cmd\"))) {
file = new File(sct.getRealPath(\"/report/ Untitled_report_1.jasper \")); 编译后生成文件的存放路径
}
// 报表
// 可以传多个参数
//else if (\"notWaterComput\".equals(request.getParameter(\"cmd\"))) {
// file = new //File(sct.getRealPath(\"/report/notWaterComput.jasper\"));
//} else if(\"replevyFee\".equals(request.getParameter(\"cmd\"))) {
// file = new //File(sct.getRealPath(\"/report/replevyFee.jasper\"));
// }
jasperPrint = JasperFillManager.fillReport(new FileInputStream(file), map, conn);
return jasperPrint;
}
}
(iReport) 报表查询语句:select * from tb_black_list where _CERT_ID = $P{certid}
写在最后:总之不难,要细心,哪里不明白的可以一起 讨论 , 谢谢!)
(
因篇幅问题不能全部显示,请点此查看更多更全内容