ReportHeader reportHeader = new ReportHeader(); report.setReportHeader( reportHeader ); ReportFooter reportFooter = new ReportFooter(); reportHeader.getStyle().setStyleProperty( TextStyleKeys.BOLD, true );
@Test public void testRowLayoutAtRunTime() throws Exception { MasterReport report = new MasterReport(); ReportHeader reportHeader = report.getReportHeader(); reportHeader.setLayout( BandStyleKeys.LAYOUT_ROW ); reportHeader.getStyle().setStyleProperty( ElementStyleKeys.INVISIBLE_CONSUMES_SPACE, false ); reportHeader.addElement( createElement( true ) ); reportHeader.addElement( createElement( false ) ); reportHeader.addElement( createElement( true ) ); LogicalPageBox logicalPageBox = DebugReportRunner.layoutSingleBand( report, reportHeader ); RenderNode[] elementsByElementType = MatchFactory.findElementsByNodeType( logicalPageBox, LayoutNodeTypes.TYPE_BOX_PARAGRAPH ); Assert.assertEquals( 2, elementsByElementType.length ); Assert.assertEquals( 0, elementsByElementType[0].getX() ); Assert.assertEquals( StrictGeomUtility.toInternalValue( 100 ), elementsByElementType[0].getWidth() ); Assert.assertEquals( StrictGeomUtility.toInternalValue( 100 ), elementsByElementType[1].getX() ); Assert.assertEquals( StrictGeomUtility.toInternalValue( 100 ), elementsByElementType[1].getWidth() ); }
final ReportHeader header = master.getReportHeader(); header.setName( "Property-Header" ); header.getStyle().setStyleProperty( BandStyleKeys.LAYOUT, "row" ); header.getStyle().setStyleProperty( ElementStyleKeys.VALIGNMENT, ElementAlignment.BOTTOM ); header.getStyle().setStyleProperty( ElementStyleKeys.MIN_WIDTH, new Float( 500 ) ); header.getStyle().setStyleProperty( ElementStyleKeys.MIN_HEIGHT, new Float( 100 ) ); header.getStyle().setStyleProperty( ElementStyleKeys.BORDER_BOTTOM_WIDTH, new Float( 2 ) ); header.getStyle().setStyleProperty( ElementStyleKeys.BORDER_TOP_WIDTH, new Float( 2 ) ); header.getStyle().setStyleProperty( ElementStyleKeys.BORDER_BOTTOM_STYLE, BorderStyle.SOLID ); header.getStyle().setStyleProperty( ElementStyleKeys.BORDER_TOP_STYLE, BorderStyle.SOLID ); subReport.getReportHeader().getStyle().addInherited( header.getStyle() ); buildLabelElementList( subReport.getReportHeader(), 5, 5, 25, 25 ); subReport2.getReportHeader().getStyle().addInherited( header.getStyle() ); buildLabelElementList( subReport2.getReportHeader(), 5, 5, 25, 25 ); assertEquals( subReport2.getReportHeader().getElementCount(), 25 ); Element labelElement = subReport2.getReportHeader().getElement( 0 ); assertEquals( labelElement.getParent().getStyle().getStyleProperty( ElementStyleKeys.VALIGNMENT ), ElementAlignment.BOTTOM );
notifyNodeChildAdded( this.watermark ); } else if ( reportHeader == element ) { this.reportHeader.setParent( null ); this.reportHeader = new ReportHeader(); this.reportHeader.setParent( this );
public ReportElement create() { return new ReportHeader(); } }
@Test public void testDeepInlineSubReportDetection() { SubReport srInner = new SubReport(); SubReport sr = new SubReport(); sr.getReportHeader().addElement( srInner ); MasterReport report = new MasterReport(); report.getReportHeader().addSubReport( sr ); ReportStructureValidator v = new ReportStructureValidator(); Assert.assertFalse( v.isValidForFastProcessing( report ) ); }
report.pageHeader = (PageHeader) pageHeader.clone(); report.reportFooter = (ReportFooter) reportFooter.clone(); report.reportHeader = (ReportHeader) reportHeader.clone(); report.expressions = expressions.clone(); report.dataSchemaDefinition = (DataSchemaDefinition) dataSchemaDefinition.clone(); report.rootGroup.setParent( report ); report.reportHeader.setParent( report ); report.reportFooter.setParent( report ); report.pageHeader.setParent( report );
public AbstractReportDefinition derive( final boolean preserveElementInstanceIds ) { final AbstractReportDefinition report = (AbstractReportDefinition) super.derive( preserveElementInstanceIds ); report.eventListeners = null; report.rootGroup = rootGroup.derive( preserveElementInstanceIds ); report.watermark = (Watermark) watermark.derive( preserveElementInstanceIds ); report.pageFooter = (PageFooter) pageFooter.derive( preserveElementInstanceIds ); report.pageHeader = (PageHeader) pageHeader.derive( preserveElementInstanceIds ); report.reportFooter = (ReportFooter) reportFooter.derive( preserveElementInstanceIds ); report.reportHeader = (ReportHeader) reportHeader.derive( preserveElementInstanceIds ); report.expressions = expressions.clone(); report.dataSchemaDefinition = (DataSchemaDefinition) dataSchemaDefinition.clone(); report.rootGroup.setParent( report ); report.reportHeader.setParent( report ); report.reportFooter.setParent( report ); report.pageHeader.setParent( report ); report.pageFooter.setParent( report ); report.watermark.setParent( report ); final ReportPreProcessor[] reportPreProcessors = report.getPreProcessors(); for ( int i = 0; i < reportPreProcessors.length; i++ ) { reportPreProcessors[i] = reportPreProcessors[i].clone(); } report.setAttribute( AttributeNames.Internal.NAMESPACE, AttributeNames.Internal.PREPROCESSORS, reportPreProcessors ); final StructureFunction[] structureFunctions = report.getStructureFunctions(); for ( int i = 0; i < structureFunctions.length; i++ ) { structureFunctions[i] = (StructureFunction) structureFunctions[i].getInstance(); } report.setAttribute( AttributeNames.Internal.NAMESPACE, AttributeNames.Internal.STRUCTURE_FUNCTIONS, structureFunctions ); return report; }
protected void runSaveAndLoadForSubReports( final String[][] queriesAndResults ) throws Exception { if ( queriesAndResults.length == 0 ) { return; } for ( int i = 0; i < queriesAndResults.length; i++ ) { final String query = queriesAndResults[i][0]; final String resultFile = queriesAndResults[i][1]; final DataFactory dataFactory = createDataFactory( query ); SubReport subReport = new SubReport(); subReport.setDataFactory( dataFactory ); final MasterReport report = new MasterReport(); report.getReportHeader().addSubReport( subReport ); final MemoryByteArrayOutputStream bout = new MemoryByteArrayOutputStream(); BundleWriter.writeReportToZipStream( report, bout ); final ResourceManager mgr = new ResourceManager(); mgr.registerDefaults(); final Resource resource = mgr.createDirectly( bout.toByteArray(), MasterReport.class ); final MasterReport r2 = (MasterReport) resource.getResource(); final SubReport sr2 = r2.getReportHeader().getSubReport( 0 ); final DataFactory e2 = sr2.getDataFactory(); assertNotNull( e2 ); // cannot assert equals, as this is not implemented ... initializeDataFactory( e2 ); final String queryResult = performQueryTest( e2 ); compareLineByLine( resultFile, queryResult ); } }
@PerfTest( duration = PerfBenchmarkingTest.MAX_DURATION, threads = PerfBenchmarkingTest.MAX_THREADS, rampUp = PerfBenchmarkingTest.MAX_RAMPUP, warmUp = PerfBenchmarkingTest.MAX_WARMUP ) // @Required(max = 45000, average = 55000) @Test public void perfMultipleEmbeddedSubReports() throws Exception { if ( !isExecutePerformanceTest ) { return; } final SubReport sr = new SubReport(); sr.getReportHeader().addSubReport( new SubReport() ); sr.getReportHeader().addSubReport( new SubReport() ); final MasterReport report = new MasterReport(); report.getReportHeader().addSubReport( sr ); report.getReportHeader().addSubReport( new SubReport() ); report.getReportHeader().addSubReport( new SubReport() ); DebugReportRunner.executeAll( report ); }
public ReportDefinitionImpl derive( final boolean preserveElementInstanceIds ) { final ReportDefinitionImpl report = (ReportDefinitionImpl) super.derive( preserveElementInstanceIds ); report.rootGroup = (Group) rootGroup.derive( preserveElementInstanceIds ); report.pageFooter = (PageFooter) pageFooter.derive( preserveElementInstanceIds ); report.pageHeader = (PageHeader) pageHeader.derive( preserveElementInstanceIds ); report.reportFooter = (ReportFooter) reportFooter.derive( preserveElementInstanceIds ); report.reportHeader = (ReportHeader) reportHeader.derive( preserveElementInstanceIds ); report.watermark = (Watermark) watermark.derive( preserveElementInstanceIds ); // pagedefinition is not! cloned ... report.pageDefinition = pageDefinition; report.setParent( getParentSection() ); report.registerAsChild( report.rootGroup ); report.registerAsChild( report.reportHeader ); report.registerAsChild( report.reportFooter ); report.registerAsChild( report.pageHeader ); report.registerAsChild( report.pageFooter ); report.registerAsChild( report.watermark ); return report; }
@Test public void testShallowInlineSubReportDetection() { SubReport srInner = new SubReport(); SubReport sr = new SubReport(); sr.getReportHeader().addElement( srInner ); MasterReport report = new MasterReport(); report.getReportHeader().addElement( sr ); ReportStructureValidator v = new ReportStructureValidator(); Assert.assertFalse( v.isValidForFastProcessing( report ) ); }
/** * Creates and returns a copy of this object. * * @return a clone of this instance. * @throws CloneNotSupportedException * if the object's class does not support the <code>Cloneable</code> interface. Subclasses that override the * <code>clone</code> method can also throw this exception to indicate that an instance cannot be cloned. * @see java.lang.Cloneable */ public ReportDefinitionImpl clone() { final ReportDefinitionImpl report = (ReportDefinitionImpl) super.clone(); report.rootGroup = (Group) rootGroup.clone(); report.pageFooter = (PageFooter) pageFooter.clone(); report.pageHeader = (PageHeader) pageHeader.clone(); report.reportFooter = (ReportFooter) reportFooter.clone(); report.reportHeader = (ReportHeader) reportHeader.clone(); report.watermark = (Watermark) watermark.clone(); // pagedefinition is not! cloned ... report.pageDefinition = pageDefinition; report.setParent( getParentSection() ); report.registerAsChild( report.rootGroup ); report.registerAsChild( report.reportHeader ); report.registerAsChild( report.reportFooter ); report.registerAsChild( report.pageHeader ); report.registerAsChild( report.pageFooter ); report.registerAsChild( report.watermark ); return report; }
final SubReport[] subReports = master.getReportHeader().getSubReports(); assertTrue( subReports.length == 3 ); assertSame( subReport, subReports[ 0 ] );
@Test public void testRowLayoutAtDesignTimeInv() throws Exception { LogFactory.getLog( "test" ).error( "Test" ); MasterReport report = new MasterReport(); ReportHeader reportHeader = report.getReportHeader(); reportHeader.setLayout( BandStyleKeys.LAYOUT_ROW ); reportHeader.getStyle().setStyleProperty( ElementStyleKeys.INVISIBLE_CONSUMES_SPACE, true ); reportHeader.addElement( createElement( true ) ); reportHeader.addElement( createElement( false ) ); reportHeader.addElement( createElement( true ) ); LogicalPageBox logicalPageBox = DebugReportRunner.layoutSingleBandInDesignTime( report, reportHeader ); RenderNode[] elementsByElementType = MatchFactory.findElementsByNodeType( logicalPageBox, LayoutNodeTypes.TYPE_BOX_PARAGRAPH ); Assert.assertEquals( 3, elementsByElementType.length ); Assert.assertEquals( 0, elementsByElementType[0].getX() ); Assert.assertEquals( StrictGeomUtility.toInternalValue( 100 ), elementsByElementType[0].getWidth() ); Assert.assertEquals( StrictGeomUtility.toInternalValue( 100 ), elementsByElementType[1].getX() ); Assert.assertEquals( StrictGeomUtility.toInternalValue( 100 ), elementsByElementType[1].getWidth() ); Assert.assertEquals( StrictGeomUtility.toInternalValue( 200 ), elementsByElementType[2].getX() ); Assert.assertEquals( StrictGeomUtility.toInternalValue( 100 ), elementsByElementType[2].getWidth() ); }
private void init() { this.dataSchemaDefinition = new DefaultDataSchemaDefinition(); this.rootGroup = new RelationalGroup(); this.reportHeader = new ReportHeader(); this.reportFooter = new ReportFooter(); this.pageHeader = new PageHeader(); this.pageFooter = new PageFooter(); this.watermark = new Watermark(); this.expressions = new ExpressionCollection(); registerAsChild( rootGroup ); registerAsChild( reportHeader ); registerAsChild( reportFooter ); registerAsChild( pageHeader ); registerAsChild( pageFooter ); registerAsChild( watermark ); }
@Test public void testDeepSubBandInlineSubReportDetection() { SubReport srInner = new SubReport(); Band band = new Band(); band.addElement( srInner ); SubReport sr = new SubReport(); sr.getReportHeader().addElement( band ); MasterReport report = new MasterReport(); report.getReportHeader().addSubReport( sr ); ReportStructureValidator v = new ReportStructureValidator(); Assert.assertFalse( v.isValidForFastProcessing( report ) ); }
@Test public void testNoneInlineSubReportDetection() { SubReport srInner = new SubReport(); SubReport sr = new SubReport(); sr.getReportHeader().addSubReport( srInner ); MasterReport report = new MasterReport(); report.getReportHeader().addSubReport( sr ); ReportStructureValidator v = new ReportStructureValidator(); Assert.assertTrue( v.isValidForFastProcessing( report ) ); }
this.reportHeader = (ReportHeader) report.getReportHeader().derive( true ); this.pageFooter = (PageFooter) report.getPageFooter().derive( true ); this.pageHeader = (PageHeader) report.getPageHeader().derive( true );
@Test public void testRowLayoutAtDesignTime() throws Exception { LogFactory.getLog( "test" ).error( "Test" ); MasterReport report = new MasterReport(); ReportHeader reportHeader = report.getReportHeader(); reportHeader.setLayout( BandStyleKeys.LAYOUT_ROW ); reportHeader.getStyle().setStyleProperty( ElementStyleKeys.INVISIBLE_CONSUMES_SPACE, false ); reportHeader.addElement( createElement( true ) ); reportHeader.addElement( createElement( false ) ); reportHeader.addElement( createElement( true ) ); LogicalPageBox logicalPageBox = DebugReportRunner.layoutSingleBandInDesignTime( report, reportHeader ); RenderNode[] elementsByElementType = MatchFactory.findElementsByNodeType( logicalPageBox, LayoutNodeTypes.TYPE_BOX_PARAGRAPH ); Assert.assertEquals( 3, elementsByElementType.length ); Assert.assertEquals( 0, elementsByElementType[0].getX() ); Assert.assertEquals( StrictGeomUtility.toInternalValue( 100 ), elementsByElementType[0].getWidth() ); Assert.assertEquals( StrictGeomUtility.toInternalValue( 100 ), elementsByElementType[1].getX() ); Assert.assertEquals( StrictGeomUtility.toInternalValue( 100 ), elementsByElementType[1].getWidth() ); Assert.assertEquals( StrictGeomUtility.toInternalValue( 100 ), elementsByElementType[2].getX() ); Assert.assertEquals( StrictGeomUtility.toInternalValue( 100 ), elementsByElementType[2].getWidth() ); }