protected void verifyBandHeights() throws JRException { if (!filler.fillContext.isIgnorePagination()) { int pageHeight; int topMargin = jasperReport.getTopMargin(); int bottomMargin = jasperReport.getBottomMargin(); JRBaseFiller parentFiller = filler; do { // set every time, so at the end it will be the master page height pageHeight = parentFiller.jasperReport.getPageHeight(); // sum parent page margins topMargin += parentFiller.jasperReport.getTopMargin(); bottomMargin += parentFiller.jasperReport.getBottomMargin(); parentFiller = parentFiller.parentFiller; } while (parentFiller != null); List<JRValidationFault> brokenRules = new ArrayList<JRValidationFault>(); JRVerifier.verifyBandHeights(brokenRules, jasperReport, pageHeight, topMargin, bottomMargin); if (!brokenRules.isEmpty()) { throw new JRValidationException( "Band height validation for subreport \"" + jasperReport.getName() + "\" failed in the current page context " + "(height = " + pageHeight + ", top margin = " + topMargin + ", bottom margin = " + bottomMargin + ") : ", brokenRules); } else if (log.isDebugEnabled()) { log.debug( "Band height validation for subreport \"" + jasperReport.getName() + "\" succeeded in the current page context " + "(height = " + pageHeight + ", top margin = " + topMargin + ", bottom margin = " + bottomMargin + ")"); } } }
public void validate(JRVerifier verifier) { verifier.verify(this); }
/** * Verifies the validity and consistency of the report design object. Returns a collection of * {@link JRValidationFault errors}, if problems are found in the report design. * * @param jasperDesign report design object to verify * @return collection of {@link JRValidationFault JRValidationFault} if problems are found * @see net.sf.jasperreports.engine.design.JRVerifier */ public static Collection verifyDesign(JasperDesign jasperDesign) { return JRVerifier.verifyDesign(jasperDesign); }