I am using the iReport to make the JRXML file. To export this data using Java Struts, I am using the following code.
public ActionForward reportExport(ActionMapping mapping, ActionForm form,
HttpServletRequest req, HttpServletResponse res) throws Exception {
String reportType2=req.getParameter("reporttype");
System.out.println("reportType2"+reportType2);
String filename = "slademofinalreport1.jrxml";
/*String reporttype = "pdf";*/
String reporttype = reportType2;
System.out.println(filename);
System.out.println(reporttype);
Class.forName("com.mysql.jdbc.Driver");
Connection con = (Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306/epim","", "");
String query="select projectname,processname,queuename,sladuedate,d.createddate,d.lastupdatedate,count(d.documentid)as numofdocuments,datediff(d.createddate,d.lastupdatedate)/count(d.documentid) as averagesla,datediff(d.sladuedate,d.createddate) as sladefined from epim.mstqueue mq,epim.userproject u,epim.documentqueuedetails d,epim.mstproject mproj,epim.mstprocess mproc where d.projectid=u.projectid and u.userid=13 and mproj.projectid=d.projectid and mproc.processid=d.processid and mq.queueid=d.queueid group by queuename ";
PreparedStatement stmt1=con.prepareStatement(query);
//stmt1.setInt(1,200);
java.sql.ResultSet rs3=stmt1.executeQuery();
/*Statement stmt1=(Statement) con.createStatement();
java.sql.ResultSet rs3= stmt1.executeQuery("select projectname,processname,queuename,sladuedate,d.createddate,d.lastupdatedate,count(d.documentid)as numofdocuments,datediff(d.createddate,d.lastupdatedate)/count(d.documentid) as averagesla,datediff(d.sladuedate,d.createddate) as sladefined from epim.mstqueue mq,epim.userproject u,epim.documentqueuedetails d,epim.mstproject mproj,epim.mstprocess mproc where d.projectid=u.projectid and u.userid=13 and mproj.projectid=d.projectid and mproc.processid=d.processid and mq.queueid=d.queueid group by queuename");*/
JRResultSetDataSource obj=new JRResultSetDataSource(rs3);
// String path = application.getRealPath("/");
JasperReport jasperReport = JasperCompileManager.compileReport("D:/subash/kmsnewwork/KMS_SUBASH/WebContent/jasperreport/"+ filename);
System.out.println("Report Compiled...");
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport,null,obj);
System.out.println("Report Created...");
ServletOutputStream ouputStream = res.getOutputStream();
JRExporter exporter = null;
if( "pdf".equalsIgnoreCase(reporttype) )
{
res.setContentType("application/pdf");
res.setHeader("Content-Disposition", "inline; filename=\"file.pdf\"");
exporter = new JRPdfExporter();
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, ouputStream);
}
else if( "rtf".equalsIgnoreCase(reporttype) )
{
res.setContentType("application/rtf");
res.setHeader("Content-Disposition", "inline; filename=\"file.rtf\"");
exporter = new JRRtfExporter();
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, ouputStream);
}
else if( "html".equalsIgnoreCase(reporttype) )
{
exporter = new JRHtmlExporter();
exporter.setParameter(JRHtmlExporterParameter.OUTPUT_STREAM,false);
exporter.setParameter(JRHtmlExporterParameter.IS_USING_IMAGES_TO_ALIGN, new Boolean(false));
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, ouputStream);
}
else if( "xls".equalsIgnoreCase(reporttype) )
{
res.setContentType("application/xls");
res.setHeader("Content-Disposition", "attachment; filename=\"file.xls\"");
exporter = new JRXlsExporter();
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, ouputStream);
}
else if( "csv".equalsIgnoreCase(reporttype) )
{
res.setContentType("application/csv");
res.setHeader("Content-Disposition", "inline; filename=\"file.csv\"");
exporter = new JRCsvExporter();
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, ouputStream);
}
try
{
exporter.exportReport();
}
catch (JRException e)
{
throw new ServletException(e);
}
finally
{
if (ouputStream != null)
{
try
{
ouputStream.close();
}
catch (IOException ex)
{
System.out.println("exception thrown");
}
}
}
/*return mapping.findForward("goLoginPage");*/
return mapping.findForward("goReportFilterPage");
}
All the exporting format is getting the chart except the HTML. Can anyone help me? Should I do anything extra for HTML because the chart is not getting displayed using the HTML format?