protected BandData loadBandData(Report report, Map<String, Object> handledParams) { BandData rootBand = new BandData(BandData.ROOT_BAND_NAME); rootBand.setData(new HashMap<>(handledParams)); rootBand.addReportFieldFormats(report.getReportFieldFormats()); rootBand.setFirstLevelBandDefinitionNames(new HashSet<>()); dataExtractor.extractData(report, handledParams, rootBand); return rootBand; }
protected BandData loadBandData(Report report, Map<String, Object> handledParams) { BandData rootBand = new BandData(BandData.ROOT_BAND_NAME); rootBand.setData(new HashMap<>(handledParams)); rootBand.addReportFieldFormats(report.getReportFieldFormats()); rootBand.setFirstLevelBandDefinitionNames(new HashSet<>()); dataExtractor.extractData(report, handledParams, rootBand); return rootBand; }
private AbstractFormatter createFormatter(String formatName, String formatValue) { BandData rootBand = new BandData(BandData.ROOT_BAND_NAME); rootBand.addReportFieldFormats(Collections.singletonList(new ReportFieldFormatImpl(formatName, formatValue))); FormatterFactoryInput formatterFactoryInput = new FormatterFactoryInput("xlsx", rootBand, reportTemplate, ReportOutputType.xlsx, null); return new AbstractFormatter(formatterFactoryInput) { @Override public void renderDocument() { } }; } }
@Override public void run() { try { BandData root = createRootBand(); root.addReportFieldFormats(Arrays.asList(new ReportFieldFormatImpl("Band1.col2", "${html}"))); BandData footer = root.getChildByName("Footer"); BandData footerChild = new BandData("FooterChild", footer); footerChild.addData("nestedData", "NESTED_DATA"); footer.addChild(footerChild); FileOutputStream outputStream = new FileOutputStream("./result/smoke/result_parallel3.doc"); ReportFormatter formatter = defaultFormatterFactory.createFormatter(new FormatterFactoryInput("doc", root, new ReportTemplateImpl("", "./modules/core/test/smoketest/test.doc", "./modules/core/test/smoketest/test.doc", ReportOutputType.doc), outputStream)); formatter.renderDocument(); IOUtils.closeQuietly(outputStream); } catch (IOException e) { Assert.fail(); } finally { countDownLatch.countDown(); } } }.start();
protected BandData createRootCsvTree() throws Exception{ BandData root = new BandData("Root"); BandData header = new BandData("Header", root); SimpleDateFormat ft = new SimpleDateFormat("dd.MM.yyyy"); String dateFormat = "dd.MM.yyyy HH:mm:ss"; root.addReportFieldFormats(Collections.singletonList( new ReportFieldFormatImpl("date", dateFormat))); BandData first = new BandData("First", root); first.addData("firstName", "first"); first.addData("lastName", "last"); first.addData("date", ft.parse("10.08.2017")); first.addData("bigdc", BigDecimal.valueOf(23897428374324L)); BandData second = new BandData("Second", root); second.addData("firstName", "second"); second.addData("lastName", "last,last"); second.addData("date", ft.parse("11.08.2017")); second.addData("bigdc", BigDecimal.valueOf(32748237487238L)); root.addChildren(Arrays.asList(header, first, second)); return root; } }
@Override public void run() { try { BandData root = createRootBand(); root.addReportFieldFormats(Arrays.asList(new ReportFieldFormatImpl("Band1.col2", "${html}"))); BandData footer = root.getChildByName("Footer"); BandData footerChild = new BandData("FooterChild", footer); footerChild.addData("nestedData", "NESTED_DATA"); footer.addChild(footerChild); FileOutputStream outputStream = new FileOutputStream("./result/smoke/result_parallel1.doc"); ReportFormatter formatter = defaultFormatterFactory.createFormatter(new FormatterFactoryInput("doc", root, new ReportTemplateImpl("", "./modules/core/test/smoketest/test.doc", "./modules/core/test/smoketest/test.doc", ReportOutputType.doc), outputStream)); formatter.renderDocument(); IOUtils.closeQuietly(outputStream); } catch (IOException e) { Assert.fail(); } finally { countDownLatch.countDown(); } } }.start();
@Override public void run() { try { BandData root = createRootBand(); root.addReportFieldFormats(Arrays.asList(new ReportFieldFormatImpl("Band1.col2", "${html}"))); BandData footer = root.getChildByName("Footer"); BandData footerChild = new BandData("FooterChild", footer); footerChild.addData("nestedData", "NESTED_DATA"); footer.addChild(footerChild); FileOutputStream outputStream = new FileOutputStream("./result/smoke/result_parallel2.doc"); ReportFormatter formatter = defaultFormatterFactory.createFormatter(new FormatterFactoryInput("doc", root, new ReportTemplateImpl("", "./modules/core/test/smoketest/test.doc", "./modules/core/test/smoketest/test.doc", ReportOutputType.doc), outputStream)); formatter.renderDocument(); IOUtils.closeQuietly(outputStream); } catch (IOException e) { Assert.fail(); } finally { countDownLatch.countDown(); } } }.start();
protected BandData createRootBand(List<BandData> bands) { BandData root = new BandData("Root", null, BandOrientation.HORIZONTAL); root.addReportFieldFormats(Arrays.asList(new ReportFieldFormatImpl("Root.param1", "%16s"))); root.addReportFieldFormats(Arrays.asList( new ReportFieldFormatImpl("Root.html", "${html}"), new ReportFieldFormatImpl("Root.image", "${bitmap:100x100}"),
@Test public void stressTest() throws IOException, URISyntaxException { int queries = 100; int recordsPerQuery = 10000; Report report = createReport(queries, recordsPerQuery); BandData rootBand = new BandData(BandData.ROOT_BAND_NAME); rootBand.setData(new HashMap<>()); rootBand.addReportFieldFormats(report.getReportFieldFormats()); rootBand.setFirstLevelBandDefinitionNames(new HashSet<>()); long start = System.currentTimeMillis(); try { new DataExtractorImpl(new DefaultLoaderFactory().setGroovyDataLoader( new GroovyDataLoader(new DefaultScriptingImpl()))).extractData(report, new HashMap<>(), rootBand); } finally { System.out.println( String.format("Report processing stress test (%d queries and %d records per query) took %d ms", queries, recordsPerQuery, System.currentTimeMillis() - start) ); } }
@Test public void testDocxToHtml() throws Exception { BandData root = createRootBand(); root.addReportFieldFormats(Collections.singletonList(new ReportFieldFormatImpl("Band1.col2", "${html}"))); BandData footer = root.getChildByName("Footer"); BandData footerChild = new BandData("FooterChild", footer); footerChild.addData("nestedData", "NESTED_DATA"); footer.addChild(footerChild); FileOutputStream outputStream = new FileOutputStream("./result/smoke/result_docx.html"); ReportFormatter formatter = new DefaultFormatterFactory().createFormatter(new FormatterFactoryInput("docx", root, new ReportTemplateImpl("", "./modules/core/test/smoketest/test.docx", "./modules/core/test/smoketest/test.docx", ReportOutputType.html), outputStream)); formatter.renderDocument(); IOUtils.closeQuietly(outputStream); }
@Test public void testDataLinkage() { Report report = createReport(); BandData rootBand = new BandData(BandData.ROOT_BAND_NAME); rootBand.setData(new HashMap<>()); rootBand.addReportFieldFormats(report.getReportFieldFormats()); rootBand.setFirstLevelBandDefinitionNames(new HashSet<>()); new DataExtractorImpl(new DefaultLoaderFactory().setGroovyDataLoader( new GroovyDataLoader(new DefaultScriptingImpl()))).extractData(report, new HashMap<>(), rootBand); List<BandData> bands = rootBand.getChildrenByName("Band1"); for (BandData band : bands) { if (((Integer)1).equals(band.getParameterValue("link"))) { Assert.assertEquals(1, band.getParameterValue("col1")); Assert.assertEquals(10, band.getParameterValue("col2")); Assert.assertEquals(100, band.getParameterValue("col3")); } else if (((Integer)2).equals(band.getParameterValue("link"))) { Assert.assertEquals(2, band.getParameterValue("col1")); Assert.assertEquals(20, band.getParameterValue("col2")); Assert.assertEquals(200, band.getParameterValue("col3")); } } }
@Test public void testDocx() throws Exception { BandData root = createRootBand(); root.addReportFieldFormats(Collections.singletonList(new ReportFieldFormatImpl("Band1.col2", "${html}"))); BandData footer = root.getChildByName("Footer"); BandData footerChild = new BandData("FooterChild", footer); footerChild.addData("nestedData", "NESTED_DATA"); footerChild.addData("nestedData.withPoint", "NESTED_DATA_WITH_POINT"); footer.addChild(footerChild); FileOutputStream outputStream = new FileOutputStream("./result/smoke/result.docx"); ReportFormatter formatter = new DefaultFormatterFactory().createFormatter(new FormatterFactoryInput("docx", root, new ReportTemplateImpl("", "./modules/core/test/smoketest/test.docx", "./modules/core/test/smoketest/test.docx", ReportOutputType.docx), outputStream)); formatter.renderDocument(); IOUtils.closeQuietly(outputStream); }
@Test public void testDocxToHtml_OfficeIntegration() throws Exception { BandData root = createRootBand(); root.addReportFieldFormats(Collections.singletonList(new ReportFieldFormatImpl("Band1.col2", "${html}"))); BandData footer = root.getChildByName("Footer"); BandData footerChild = new BandData("FooterChild", footer); footerChild.addData("nestedData", "NESTED_DATA"); footer.addChild(footerChild); FileOutputStream outputStream = new FileOutputStream("./result/smoke/result_docx_office.html"); DefaultFormatterFactory defaultFormatterFactory = new DefaultFormatterFactory(); defaultFormatterFactory.setOfficeIntegration(new OfficeIntegration(openOfficePath, 8100)); ReportFormatter formatter = defaultFormatterFactory.createFormatter(new FormatterFactoryInput("docx", root, new ReportTemplateImpl("", "./modules/core/test/smoketest/test.docx", "./modules/core/test/smoketest/test.docx", ReportOutputType.html), outputStream)); formatter.renderDocument(); IOUtils.closeQuietly(outputStream); }
@Test public void testOdt() throws Exception { BandData root = createRootBand(); root.addReportFieldFormats(Collections.singletonList(new ReportFieldFormatImpl("Band1.col2", "${html}"))); BandData footer = root.getChildByName("Footer"); BandData footerChild = new BandData("FooterChild", footer); footerChild.addData("nestedData", "NESTED_DATA"); footer.addChild(footerChild); FileOutputStream outputStream = new FileOutputStream("./result/smoke/result.doc"); DefaultFormatterFactory defaultFormatterFactory = new DefaultFormatterFactory(); defaultFormatterFactory.setOfficeIntegration(new OfficeIntegration(openOfficePath, 8100)); ReportFormatter formatter = defaultFormatterFactory.createFormatter(new FormatterFactoryInput("odt", root, new ReportTemplateImpl("", "./modules/core/test/smoketest/test.odt", "./modules/core/test/smoketest/test.odt", ReportOutputType.doc), outputStream)); formatter.renderDocument(); IOUtils.closeQuietly(outputStream); }
@Test public void testDoc() throws Exception { BandData root = createRootBand(); root.addReportFieldFormats(Collections.singletonList(new ReportFieldFormatImpl("Band1.col2", "${html}"))); BandData footer = root.getChildByName("Footer"); BandData footerChild = new BandData("FooterChild", footer); footerChild.addData("nestedData", "NESTED_DATA"); footer.addChild(footerChild); FileOutputStream outputStream = new FileOutputStream("./result/smoke/result2.doc"); DefaultFormatterFactory defaultFormatterFactory = new DefaultFormatterFactory(); defaultFormatterFactory.setOfficeIntegration(new OfficeIntegration(openOfficePath, 8100)); ReportFormatter formatter = defaultFormatterFactory.createFormatter(new FormatterFactoryInput("doc", root, new ReportTemplateImpl("", "./modules/core/test/smoketest/test.doc", "./modules/core/test/smoketest/test.doc", ReportOutputType.doc), outputStream)); formatter.renderDocument(); IOUtils.closeQuietly(outputStream); }