本文共 3307 字,大约阅读时间需要 11 分钟。
Title 标题,在报表中只出现一次
Page Header 页头;Column header 列标题
Detail 放置用来循环的记录;Page footer 页脚;Summary 总结
1.线段,用来画线的
2.T,是静态文本框
3.F,是动态文本框,用来放变量
4.数据库,查看SQL语句,语句的where后面写成 1=$P!{ls_sql}(固定格式)
5.编译,编译后的文件默认在软件的安装目录下,Java项目里用编译文件。
6.执行报表,可以查看报表样式
在parameters处右键选择ADD添加参数,点执行报表按钮时给参数赋值。
选择链接/资料来源
弹出下图,点击new
填写相应信息,如果没有要选择的数据库链接,可能是缺少相应的ojdbc jar包
如下图,是我写的配置,连的是oracle数据库。
点击test按钮,测试链接是否成功,成功后点击save保存配置。
选择文本框,右键,选择属性
出现如下图框,所有文本框都要选择宋体,勾选PDF,右侧选择
UniGB-UCS2-H (Chinese Simplified)
注意文本框的类型,bigdecimal数字型,String字符型。
右键,选择编辑
出现下图,蓝色变量名是错误的,双击变量下面的变量名,上面会出现绿色的变量名,是正确的。
如不注意以上事项,在开发时会不显示内容。
//导出PDFfunction printpdf(){ var dw = "<%=dw%>"; var rq = "<%=rq%>"; var selected_id = $(".ck_qh_blue").attr("id"); var flag = selected_id.substring(selected_id.length-2); window.open("/popnet/tgjtAction.do?tgjtMethod=printpdf&dwbh="+dw+"&rq="+rq+"&flag="+flag,"newwindow", "height=500, width=1024, top=0,left=0, toolbar=yes, menubar=yes, scrollbars=yes, resizable=yes,location=yes,status=yes"); return false; }
/** * 特岗备案申报情况明汇总,导出PDF * @param mapping * @param form * @param request * @param response * @return */ public ActionForward printpdf(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response){ String dwbh=(String)request.getParameter("dwbh"); String rq=(String)request.getParameter("rq"); String flag=(String)request.getParameter("flag"); TgmdConn tgmdModel = null; try { tgmdModel = new TgmdConn(); tgmdModel.print(request, response,dwbh,rq,flag); } catch (SQLException e) { e.printStackTrace(); } finally { tgmdModel.close(); } return mapping.findForward(""); }model
/** * 特岗备案申报情况明汇总,导出PDF * @param request * @param response * @param sql * @param jasperUrl */ public void print(HttpServletRequest request,HttpServletResponse response,String dwbh,String rq,String flag){ Connection conn = new DBconn().getConnection(); String path = FileCom.getAppDiskPath(); String fileName = "jczxjthz.jasper"; if("mx".equals(flag)){ fileName = "yzxrmjczqgwjtba-mx.jasper"; } String pathMainJasper = path + "popnet/tgjt/pdf/" + fileName; Map parameters = new HashMap(); String sql = "1 and V_DWBH='"+dwbh+"' and V_ZZNY='"+rq+"'||'-01'"; parameters.put("ls_sql", sql); JasperPrint jasperPrint; try { jasperPrint = JasperFillManager.fillReport(pathMainJasper,parameters, conn); FileBufferedOutputStream fbos = new FileBufferedOutputStream(); JRPdfExporter exporter = new JRPdfExporter(); exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint); exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, fbos); try { exporter.exportReport(); if (fbos.size() > 0) { response.setContentType("application/pdf"); response.setContentLength(fbos.size()); ServletOutputStream ouputStream = response .getOutputStream(); try { fbos.writeData(ouputStream); fbos.dispose(); ouputStream.flush(); } finally { ouputStream.close(); } } } catch (JRException e) { throw new ServletException(e); } finally { fbos.close(); fbos.dispose(); conn.close(); } } catch (Exception e) { System.out.println("PDF打印错误!"); e.printStackTrace(); } }