2010-04-28 145 views
6

是否可以在碧玉报告中动态修改细节带的高度?因为在我的应用程序中我需要创建PDF文档。我使用了一个主文档在该主文档的详细信息区域内,我使用了一个子报表。小组报告将采用java bean作为数据源。这个java bean返回一个字段列表。所以如果我们固定了带宽的大小,那么有些时候所有的值都不会在文档中延伸。是否可以动态改变细节带。如何动态更改乐队高度?

回答

6

您可以使用JRXmlLoader.load()创建模板文件中的JasperDesign对象。使用类似getPageHeader()的方法检索所需的乐队将返回值转换为JRDesignBand:返回的对象实现JRBand,但对于JasperDesign,它始终是JRDesignBand。在JRDesignBand类中有一个setHeight()方法。

最后,使用JasperCompileManager.compileReport()从(现在修改的)JasperDesign创建JasperReport

6

JasperDesign jasper = JRXmlLoader.load(objeto.getRealPath("/reports/reportTaxType.jrxml")); 
JRDesignBand banda = (JRDesignBand) jasper.getDetail(); 
banda.setHeight(2000); //YOU CAN SET THE SIZE THAT YOU WANT    
JasperReport report2 = JasperCompileManager.compileReport(jasper); 
JasperPrint print = JasperFillManager.fillReport(report2, parameters, ds);