2010-04-28 142 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);