/** * Renders the report for a given query to html * * @param sessionId * @param report * @param acceptedPage * @param template * @return * @throws Exception * @throws IOException * @throws ResourceException */ public void renderReportHtml( String sessionId, String templateName, HtmlReport report, Integer acceptedPage) throws Exception { SaikuMasterModel model = sessionHolder.getModel(sessionId); if (model == null) { throw new SaikuAdhocException( Messages.getErrorString("ReportGeneratorService.ERROR_0001_MASTERMODEL_NOT_FOUND")); } sessionHolder.materializeModel(sessionId); String path = prptManager.getTemplatePath(); String solution = prptManager.getSolution(); if (templateName != null && !templateName.equals("default")) { ReportTemplate template = prptManager.getTemplate(path, solution, templateName); model.setReportTemplate(template); } MasterReport output = processReport(model); ByteArrayOutputStream stream = new ByteArrayOutputStream(); generateHtmlReport( output, stream, ParamUtils.getReportParameters("", model), report, acceptedPage); String string = stream.toString(); // if(log.isDebugEnabled()){ // writeHtmlFile(string); // } report.setData(string); }
/** * Renders the report for a given query to pdf * * @param sessionId * @param report * @param acceptedPage * @param template * @return * @throws Exception * @throws IOException */ public void renderReportPdf(String sessionId, OutputStream stream) throws Exception { // html SaikuMasterModel model = sessionHolder.getModel(sessionId); sessionHolder.materializeModel(sessionId); MasterReport output = processReport(model); generatePdfReport(output, stream, ParamUtils.getReportParameters("", model)); }
protected ReportParameterValues getReportParameterValues(SaikuMasterModel model) { ReportParameterValues vals = new ReportParameterValues(); Map<String, Object> reportParameters = ParamUtils.getReportParameters("", model); if (null != model) { Collection<String> keyset = reportParameters.keySet(); for (Iterator<String> iterator = keyset.iterator(); iterator.hasNext(); ) { String key = (String) iterator.next(); vals.put(key, reportParameters.get(key)); } } return vals; }