Hello all,
I'm new in ireport and try to make my first report to display piechart using servlet.
I'm using netbeans 6.1 and ireport 3.7.0. I can display a simple tabular report but can't a piechart as pdf output.
There is not any warnings or errors to catch my implementation problems. Pls. help me with this....
Code: |
EmployeeServlet.java: protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); EmployeeReport employeeReport = new EmployeeReport(); try { String servletPath = getServletContext().getRealPath("/"); String reportSource =servletPath + "template/employee.jrxml"; String reportDestPDF =servletPath + "reports/EmployeeReport.pdf"; params.put("reportTitle", "Hello Report World"); params.put("author", "Umme Habiba"); params.put("startDate", (new java.util.Date()).toString()); params.put("employeeChart", employeeReport.createEmployeeChartImage()); jasperDesign = JRXmlLoader.load(reportSource); JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign); Connection conn; conn = dbConnection.getConnection(); JasperPrint jasperPrint =JasperFillManager.fillReport(jasperReport, params, conn); JasperExportManager.exportReportToPdfFile(jasperPrint, reportDestPDF); ServletOutputStream servletOutputStream = response.getOutputStream(); JasperExportManager.exportReportToPdfStream(jasperPrint, servletOutputStream); JasperViewer.viewReport(jasperPrint); response.setContentType("application/pdf"); servletOutputStream.flush(); servletOutputStream.close(); } catch (JRException ex) { Logger.getLogger(EmployeeSevlet.class.getName()).log(Level.SEVERE, null, ex); } } ------------------------------ createEmployeeChartImage(): ------------------------------ public java.awt.Image createEmployeeChartImage(){ java.util.Hashtable employeeData = getEmployeeData(); DefaultPieDataset data = new DefaultPieDataset(); for(java.util.Enumeration e = employeeData.keys(); e.hasMoreElements();){ String employeeName = (String)e.nextElement(); System.out.println("dataset key element... " + employeeName); data.setValue(employeeName, (Double)employeeData.get(employeeName)); } JFreeChart chart = ChartFactory.createPieChart("Employee Chart", data, true, true, true); return chart.createBufferedImage(500, 220); }</td></tr></tbody></table> |
0 Answers:
No answers yet