use of org.pentaho.reporting.engine.classic.core.MasterReport in project head by mifos.
the class PentahoReportsServiceImpl method loadReport.
private MasterReport loadReport(String reportName) {
ResourceManager manager = new ResourceManager();
manager.registerDefaults();
URL url = PentahoReportLocator.getURLForReport(reportName);
try {
Resource res = manager.createDirectly(url, MasterReport.class);
MasterReport report = (MasterReport) res.getResource();
return report;
} catch (Exception e) {
throw new MifosRuntimeException(e);
}
}
use of org.pentaho.reporting.engine.classic.core.MasterReport in project head by mifos.
the class PentahoReportsServiceImpl method getReport.
@Override
public PentahoReport getReport(Integer reportId, Integer outputTypeId, Map<String, AbstractPentahoParameter> params) {
ByteArrayOutputStream baos = null;
if (!checkAccessToReport(reportId)) {
throw new AccessDeniedException("Access denied");
}
try {
String reportFileName = getReportFilename(reportId);
// load report definition
ResourceManager manager = new ResourceManager();
manager.registerDefaults();
URL url = PentahoReportLocator.getURLForReport(reportFileName);
Resource res = manager.createDirectly(url, MasterReport.class);
MasterReport report = (MasterReport) res.getResource();
PentahoReport result = new PentahoReport();
List<PentahoValidationError> errors = new ArrayList<PentahoValidationError>();
try {
addParametersToReport(report, params);
validate(report, errors);
} catch (ReflectionException ex) {
errors.add(new PentahoValidationError(ex.getMessage()));
}
result.setErrors(errors);
if (errors.isEmpty()) {
baos = new ByteArrayOutputStream();
PentahoOutputType outputType = PentahoOutputType.findById(outputTypeId);
switch(outputType) {
case XLS:
ExcelReportUtil.createXLS(report, baos);
break;
case RTF:
RTFReportUtil.createRTF(report, baos);
break;
case HTML:
HtmlReportUtil.createStreamHTML(report, baos);
break;
case CSV:
CSVReportUtil.createCSV(report, baos, "UTF-8");
break;
case XML:
XmlTableReportUtil.createFlowXML(report, baos);
break;
default:
// PDF
PdfReportUtil.createPDF(report, baos);
break;
}
result.setContentType(outputType.getContentType());
result.setFileExtension(outputType.getFileExtension());
result.setName(getReportName(reportId));
result.setContent(baos.toByteArray());
}
return result;
} catch (Exception e) {
throw new MifosRuntimeException(e);
} finally {
closeStream(baos);
}
}
use of org.pentaho.reporting.engine.classic.core.MasterReport in project head by mifos.
the class PentahoReportsServiceImpl method getParametersForReport.
@Override
public List<AbstractPentahoParameter> getParametersForReport(Integer reportId, HttpServletRequest request, Map<String, AbstractPentahoParameter> selectedValues, boolean update) {
if (!checkAccessToReport(reportId)) {
throw new AccessDeniedException("Access denied");
}
String reportName = getReportFilename(reportId);
MasterReport report = loadReport(reportName);
return paramParser.parseReportParams(report, request, selectedValues, update);
}
use of org.pentaho.reporting.engine.classic.core.MasterReport in project head by mifos.
the class PentahoReportsServiceImpl method getAdminReport.
@Override
public PentahoReport getAdminReport(Integer adminReportId, Integer outputTypeId, Map<String, AbstractPentahoParameter> params) {
ByteArrayOutputStream baos = null;
try {
// load report definition
ResourceManager manager = new ResourceManager();
manager.registerDefaults();
String reportName = legacyAdminDocumentDao.getAdminDocumentById(adminReportId.shortValue()).getAdminDocumentName();
String filename = legacyAdminDocumentDao.getAdminDocumentById(adminReportId.shortValue()).getAdminDocumentIdentifier();
File file = new File(viewOrganizationSettingsServiceFacade.getAdminDocumentStorageDirectory(), filename);
StringBuilder path = new StringBuilder("file:");
path.append(file.getAbsolutePath());
URL url = new URL(path.toString());
Resource res = manager.createDirectly(url, MasterReport.class);
MasterReport report = (MasterReport) res.getResource();
PentahoReport result = new PentahoReport();
List<PentahoValidationError> errors = new ArrayList<PentahoValidationError>();
try {
addParametersToReport(report, params);
validate(report, errors);
} catch (ReflectionException ex) {
errors.add(new PentahoValidationError(ex.getMessage()));
}
result.setErrors(errors);
if (errors.isEmpty()) {
baos = new ByteArrayOutputStream();
PentahoOutputType outputType = PentahoOutputType.findById(outputTypeId);
switch(outputType) {
case XLS:
ExcelReportUtil.createXLS(report, baos);
break;
case RTF:
RTFReportUtil.createRTF(report, baos);
break;
case HTML:
HtmlReportUtil.createStreamHTML(report, baos);
break;
case CSV:
CSVReportUtil.createCSV(report, baos, "UTF-8");
break;
case XML:
XmlTableReportUtil.createFlowXML(report, baos);
break;
default:
// PDF
PdfReportUtil.createPDF(report, baos);
break;
}
result.setContentType(outputType.getContentType());
result.setFileExtension(outputType.getFileExtension());
result.setName(reportName);
result.setContent(baos.toByteArray());
}
return result;
} catch (Exception e) {
throw new MifosRuntimeException(e);
} finally {
closeStream(baos);
}
}
Aggregations