use of net.sf.jasperreports.engine.JasperReport in project opennms by OpenNMS.
the class JasperReportServiceTest method testEvaluateToString.
@Test
public void testEvaluateToString() throws JRException {
final JasperReport report = JasperCompileManager.compileReport(getClass().getResourceAsStream("/etc/report-templates/subreport-expression-visitor-test.jrxml"));
Assert.assertEquals("/home/ulf/opennms-reports", JasperReportService.evaluateToString(report, new JRDesignExpression("$P{ONMS_REPORT_DIR}")));
Assert.assertEquals("/home/ulf/opennms-reports/subreports/", JasperReportService.evaluateToString(report, new JRDesignExpression("$P{SUBREPORT_DIR}")));
Assert.assertEquals("This is a test with number 10", JasperReportService.evaluateToString(report, new JRDesignExpression("$P{COMPLEX}")));
}
use of net.sf.jasperreports.engine.JasperReport in project opennms by OpenNMS.
the class AbstractMeasurementQueryExecutorTest method createReport.
protected void createReport(String reportName, ReportFiller filler) throws JRException, IOException {
JasperReport jasperReport = JasperCompileManager.compileReport(getClass().getResourceAsStream("/reports/" + reportName + ".jrxml"));
JasperPrint jasperPrint = fill(jasperReport, filler);
createPdf(jasperPrint, reportName);
createXhtml(jasperPrint, reportName);
createCsv(jasperPrint, reportName);
// this is ugly, but we verify that the reports exists and have a file size > 0
verifyReport(reportName, "pdf");
verifyReport(reportName, "html");
verifyReport(reportName, "csv");
}
use of net.sf.jasperreports.engine.JasperReport in project midpoint by Evolveum.
the class TestReport method f.
@Test
public void f() throws Exception {
OperationResult initResult = new OperationResult("generate report");
JasperDesign jd = JRXmlLoader.load(new File("src/test/resources/reports/report-users-ds.jrxml"));
JasperReport jr = JasperCompileManager.compileReport(jd);
Task task = taskManager.createTaskInstance();
Map<String, Object> params = new HashMap<String, Object>();
// params.put(MidPointQueryExecutorFactory.PARAMETER_MIDPOINT_CONNECTION, modelService);
// params.put(MidPointQueryExecutorFactory.PARAMETER_PRISM_CONTEXT, prismContext);
// params.put(MidPointQueryExecutorFactory.PARAMETER_TASK_MANAGER, taskManager);
// params.put(MidPointQueryExecutorFactory.PARAMETER_EXPRESSION_FACTORY, expressionFactory);
params.put("userName", new PolyString("administrator"));
reportTaskHandler.run(task);
// byte[] reportTemplatebase64 = "".getBytes();
// byte[] reportTemplate = Base64.decodeBase64("UEdwaGMzQmxjbEpsY0c5eWRDQU5DaUFnSUNBSkNYaHRiRzV6UFNKb2RIUndPaTh2YW1GemNHVnljbVZ3YjNKMGN5NXpiM1Z5WTJWbWIzSm5aUzV1WlhRdmFtRnpjR1Z5Y21Wd2IzSjBjeUlnRFFvSkNRbDRiV3h1Y3pwNGMyazlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURFdldFMU1VMk5vWlcxaExXbHVjM1JoYm1ObElpQU5DZ2tKQ1hoemFUcHpZMmhsYldGTWIyTmhkR2x2YmowaWFIUjBjRG92TDJwaGMzQmxjbkpsY0c5eWRITXVjMjkxY21ObFptOXlaMlV1Ym1WMEwycGhjM0JsY25KbGNHOXlkSE1nYUhSMGNEb3ZMMnBoYzNCbGNuSmxjRzl5ZEhNdWMyOTFjbU5sWm05eVoyVXVibVYwTDNoelpDOXFZWE53WlhKeVpYQnZjblF1ZUhOa0lpQU5DZ2tKQ1c1aGJXVTlJbkpsY0c5eWRGVnpaWEpCWTJOdmRXNTBjeUlnRFFvSkNRbGpiMngxYlc1RGIzVnVkRDBpTWlJZ0RRb0pDUWx3WVdkbFYybGtkR2c5SWpFNE1DSWdEUW9KQ1Fsd1lXZGxTR1ZwWjJoMFBTSXhPQ0lnRFFvSkNRbDNhR1Z1VG05RVlYUmhWSGx3WlQwaVFXeHNVMlZqZEdsdmJuTk9iMFJsZEdGcGJDSWdEUW9KQ1FsamIyeDFiVzVYYVdSMGFEMGlPRGtpSUEwS0NRa0pZMjlzZFcxdVUzQmhZMmx1WnowaU1TSWdEUW9KQ1Fsc1pXWjBUV0Z5WjJsdVBTSXdJaUFOQ2drSkNYSnBaMmgwVFdGeVoybHVQU0l3SWlBTkNna0pDWFJ2Y0UxaGNtZHBiajBpTUNJZ0RRb0pDUWxpYjNSMGIyMU5ZWEpuYVc0OUlqQWlJQTBLQ1FrSmRYVnBaRDBpTmpkbE5EWTFZelV0TkRabFlTMDBNR1F5TFdKbFlUQXRORFk1WXpaalpqTTRPVE0zSWo0TkNna0pDVHh3Y205d1pYSjBlU0J1WVcxbFBTSnVaWFF1YzJZdWFtRnpjR1Z5Y21Wd2IzSjBjeTVoZDNRdWFXZHViM0psTG0xcGMzTnBibWN1Wm05dWRDSWdkbUZzZFdVOUluUnlkV1VpTHo0TkNna0pDVHh3Y205d1pYSjBlU0J1WVcxbFBTSnVaWFF1YzJZdWFtRnpjR1Z5Y21Wd2IzSjBjeTVsZUhCdmNuUXVjR1JtTG1admNtTmxMbXhwYm1WaWNtVmhheTV3YjJ4cFkza2lJSFpoYkhWbFBTSjBjblZsSWk4K0RRb0pDUWs4YzNSNWJHVWdabTl1ZEU1aGJXVTlJa1JsYW1GV2RTQlRZVzV6SWlCbWIyNTBVMmw2WlQwaU1UQWlJR2hCYkdsbmJqMGlUR1ZtZENJZ2FYTkVaV1poZFd4MFBTSjBjblZsSWlCcGMxQmtaa1Z0WW1Wa1pHVmtQU0owY25WbElpQU5DZ2tKQ1FrZ0lDQnVZVzFsUFNKQ1lYTmxJaUJ3WkdaRmJtTnZaR2x1WnowaVNXUmxiblJwZEhrdFNDSWdjR1JtUm05dWRFNWhiV1U5SWtSbGFtRldkVk5oYm5NdWRIUm1JaUIyUVd4cFoyNDlJazFwWkdSc1pTSStEUW9KQ1FrOEwzTjBlV3hsUGcwS0NRa0pQSE4wZVd4bElHbHpRbTlzWkQwaVptRnNjMlVpSUdselJHVm1ZWFZzZEQwaVptRnNjMlVpSUc1aGJXVTlJa1JsZEdGcGJDSWdjM1I1YkdVOUlrSmhjMlVpTHo0TkNna0pDVHh3WVhKaGJXVjBaWElnYm1GdFpUMGlkWE5sY2s5cFpDSWdZMnhoYzNNOUltcGhkbUV1YkdGdVp5NVRkSEpwYm1jaUx6NE5DZ2tKQ1R4d1lYSmhiV1YwWlhJZ2JtRnRaVDBpYUhGc1VYVmxjbmxCWTJOdmRXNTBjeUlnWTJ4aGMzTTlJbXBoZG1FdWJHRnVaeTVUZEhKcGJtY2lMejROQ2drSkNUeHhkV1Z5ZVZOMGNtbHVaeUJzWVc1bmRXRm5aVDBpYUhGc0lqNDhJVnREUkVGVVFWc2tVQ0Y3YUhGc1VYVmxjbmxCWTJOdmRXNTBjMzFkWFQ0OEwzRjFaWEo1VTNSeWFXNW5QZzBLQ1FrSlBHWnBaV3hrSUc1aGJXVTlJbUZqWTI5MWJuUk9ZVzFsSWlCamJHRnpjejBpYW1GMllTNXNZVzVuTGxOMGNtbHVaeUl2UGcwS0NRa0pQR1pwWld4a0lHNWhiV1U5SW5KbGMyOTFjbU5sVG1GdFpTSWdZMnhoYzNNOUltcGhkbUV1YkdGdVp5NVRkSEpwYm1jaUx6NE5DZ2tKQ1R4a1pYUmhhV3crRFFvSkNRa0pQR0poYm1RZ2FHVnBaMmgwUFNJeE9DSWdjM0JzYVhSVWVYQmxQU0pUZEhKbGRHTm9JajROQ2drSkNRa0pQR1p5WVcxbFBnMEtDUWtKQ1FrSlBISmxjRzl5ZEVWc1pXMWxiblFnZFhWcFpEMGlNMlU0Wm1Sa05tUXRZVFptWmkwME5EQTNMVGxoTVdVdE5XUTJZalEzTURZek1EQmhJaUJ3YjNOcGRHbHZibFI1Y0dVOUlrWnNiMkYwSWlCemRIbHNaVDBpUkdWMFlXbHNJaUJ0YjJSbFBTSlBjR0Z4ZFdVaUlIZzlJakFpSUhrOUlqRWlJSGRwWkhSb1BTSXhPREFpSUdobGFXZG9kRDBpTVRjaUx6NE5DZ2tKQ1FrSkNUeHNhVzVsUGcwS0NRa0pDUWtKQ1R4eVpYQnZjblJGYkdWdFpXNTBJSFYxYVdROUlqUTNaamt4T0RBeExXTm1OV1l0TkdKbFpDMWlNVGxqTFdOaE16a3pNV05pWmprNFpDSWdjRzl6YVhScGIyNVVlWEJsUFNKR2FYaFNaV3hoZEdsMlpWUnZWRzl3SWlCNFBTSXdJaUI1UFNJd0lpQjNhV1IwYUQwaU1UZ3dJaUJvWldsbmFIUTlJakVpSUdadmNtVmpiMnh2Y2owaUl6TXpNek16TXlJK0RRb0pDUWtKQ1FrSkNUeHdjbWx1ZEZkb1pXNUZlSEJ5WlhOemFXOXVQandoVzBORVFWUkJXMjVsZHlCcVlYWmhMbXhoYm1jdVFtOXZiR1ZoYmlnb2FXNTBLU1JXZTFKRlVFOVNWRjlEVDFWT1ZIMHVhVzUwVm1Gc2RXVW9LU0U5TVNsZFhUNDhMM0J5YVc1MFYyaGxia1Y0Y0hKbGMzTnBiMjQrRFFvSkNRa0pDUWtKUEM5eVpYQnZjblJGYkdWdFpXNTBQZzBLQ1FrSkNRa0pDVHhuY21Gd2FHbGpSV3hsYldWdWRENE5DZ2tKQ1FrSkNRa0pQSEJsYmlCc2FXNWxWMmxrZEdnOUlqQXVOU0lnYkdsdVpVTnZiRzl5UFNJak9UazVPVGs1SWk4K0RRb0pDUWtKQ1FrSlBDOW5jbUZ3YUdsalJXeGxiV1Z1ZEQ0TkNna0pDUWtKQ1R3dmJHbHVaVDROQ2drSkNRa0pDVHgwWlhoMFJtbGxiR1FnYVhOVGRISmxkR05vVjJsMGFFOTJaWEptYkc5M1BTSjBjblZsSWo0TkNna0pDUWtKQ1FrOGNtVndiM0owUld4bGJXVnVkQ0IxZFdsa1BTSmxZbUZsWmpFMlpDMHlPVEF6TFRRd01qa3RPV0UyWWkxa05HUXlORFExTlRoaFpUa2lJSEJ2YzJsMGFXOXVWSGx3WlQwaVJteHZZWFFpSUhOMGNtVjBZMmhVZVhCbFBTSlNaV3hoZEdsMlpWUnZWR0ZzYkdWemRFOWlhbVZqZENJZ2MzUjViR1U5SWtSbGRHRnBiQ0lnZUQwaU1DSWdlVDBpTWlJZ2QybGtkR2c5SWpFNE1DSWdhR1ZwWjJoMFBTSXhNeUl2UGcwS0NRa0pDUWtKQ1R4MFpYaDBSV3hsYldWdWRDQjJaWEowYVdOaGJFRnNhV2R1YldWdWREMGlUV2xrWkd4bElpOCtJQTBLQ1FrSkNRa0pDVHgwWlhoMFJtbGxiR1JGZUhCeVpYTnphVzl1UGp3aFcwTkVRVlJCV3lSR2UzSmxjMjkxY21ObFRtRnRaWDBySUNJNklDSWdLeUFrUm50aFkyTnZkVzUwVG1GdFpYMWRYVDQ4TDNSbGVIUkdhV1ZzWkVWNGNISmxjM05wYjI0K0RRb0pDUWtKQ1FrOEwzUmxlSFJHYVdWc1pENE5DZ2tKQ1FrSlBDOW1jbUZ0WlQ0TkNna0pDUWs4TDJKaGJtUStEUW9KQ1FrOEwyUmxkR0ZwYkQ0TkNna0pQQzlxWVhOd1pYSlNaWEJ2Y25RKw==".getBytes());
//
// byte[] decoded = Base64.decodeBase64(reportTemplate);
// String s = new String(decoded);
// System.out.println(s);
File f = new File("src/test/resources/reports/reportAccounts.txt");
// DataOutputStream fos = new DataOutputStream(new FileOutputStream(f));
// fos.writeUTF(s);
// fos.close();
JasperPrint jasperPrint = JasperFillManager.fillReport(jr, params);
f = new File("src/test/resources/reports/report5.pdf");
JasperExportManager.exportReportToPdfFile(jasperPrint, f.getAbsolutePath());
// System.out.println("output: " + output);
// jr.
// jr.getQuery().getLanguage();
// jr.getQuery().getText();
}
use of net.sf.jasperreports.engine.JasperReport in project midpoint by Evolveum.
the class ReportManagerImpl method invoke.
/**
* Transforms change:
* 1/ ReportOutputType DELETE to MODIFY some attribute to mark it for deletion.
* 2/ ReportType ADD and MODIFY should compute jasper design and styles if necessary
*
* @param context
* @param task
* @param result
* @return
* @throws UnsupportedEncodingException
*/
@Override
public HookOperationMode invoke(@NotNull ModelContext context, @NotNull Task task, @NotNull OperationResult parentResult) {
ModelState state = context.getState();
if (state != ModelState.FINAL) {
if (LOGGER.isTraceEnabled()) {
LOGGER.trace("report manager called in state = " + state + ", exiting.");
}
return HookOperationMode.FOREGROUND;
} else {
if (LOGGER.isTraceEnabled()) {
LOGGER.trace("report manager called in state = " + state + ", proceeding.");
}
}
boolean relatesToReport = false;
boolean isDeletion = false;
PrismObject<?> object = null;
for (Object o : context.getProjectionContexts()) {
boolean deletion = false;
object = ((ModelElementContext<?>) o).getObjectNew();
if (object == null) {
deletion = true;
object = ((ModelElementContext<?>) o).getObjectOld();
}
if (object == null) {
LOGGER.warn("Probably invalid projection context: both old and new objects are null");
} else if (object.getCompileTimeClass().isAssignableFrom(ReportType.class)) {
relatesToReport = true;
isDeletion = deletion;
}
}
if (LOGGER.isTraceEnabled()) {
LOGGER.trace("change relates to report: " + relatesToReport + ", is deletion: " + isDeletion);
}
if (!relatesToReport) {
LOGGER.trace("invoke() EXITING: Changes not related to report");
return HookOperationMode.FOREGROUND;
}
if (isDeletion) {
LOGGER.trace("invoke() EXITING because operation is DELETION");
return HookOperationMode.FOREGROUND;
}
OperationResult result = parentResult.createSubresult(CLASS_NAME_WITH_DOT + "invoke");
try {
ReportType reportType = (ReportType) object.asObjectable();
JasperDesign jasperDesign = null;
if (reportType.getTemplate() == null) {
String message = "Report template must not be null";
LOGGER.error(message);
result.recordFatalError(message, new SystemException());
} else // {
// PrismSchema reportSchema = null;
// PrismContainer<ReportConfigurationType> parameterConfiguration = null;
// try
// {
// reportSchema = ReportUtils.getParametersSchema(reportType, prismContext);
// parameterConfiguration = ReportUtils.getParametersContainer(reportType, reportSchema);
//
// } catch (Exception ex){
// String message = "Cannot create parameter configuration: " + ex.getMessage();
// LOGGER.error(message);
// result.recordFatalError(message, ex);
// }
//
// jasperDesign = ReportUtils.createJasperDesign(reportType, parameterConfiguration, reportSchema) ;
// LOGGER.trace("create jasper design : {}", jasperDesign);
// }
{
byte[] reportTemplateBase64 = reportType.getTemplate();
byte[] reportTemplate = Base64.decodeBase64(reportTemplateBase64);
InputStream inputStreamJRXML = new ByteArrayInputStream(reportTemplate);
jasperDesign = JRXmlLoader.load(inputStreamJRXML);
LOGGER.trace("load jasper design : {}", jasperDesign);
}
// Compile template
JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);
LOGGER.trace("compile jasper design, create jasper report : {}", jasperReport);
//result.computeStatus();
result.recordSuccessIfUnknown();
} catch (JRException ex) {
String message = "Cannot load or compile jasper report: " + ex.getMessage();
LOGGER.error(message);
result.recordFatalError(message, ex);
}
return HookOperationMode.FOREGROUND;
}
use of net.sf.jasperreports.engine.JasperReport in project adempiere by adempiere.
the class ReportStarter method compileReport.
/**
* @author rlemeill
* @param reportFile
* @param jasperFile
* @return compiled JasperReport
*/
private JasperReport compileReport(File reportFile, File jasperFile) {
JWScorrectClassPath();
JasperReport compiledJasperReport = null;
try {
JasperCompileManager.compileReportToFile(reportFile.getAbsolutePath(), jasperFile.getAbsolutePath());
//Synchronize Dates
jasperFile.setLastModified(reportFile.lastModified());
compiledJasperReport = (JasperReport) JRLoader.loadObject(jasperFile);
} catch (JRException e) {
log.log(Level.SEVERE, "Error", e);
}
return compiledJasperReport;
}
Aggregations