2010-04-28 21 views
6

Ist es möglich, die Höhe des Detailbands im Jaspis-Bericht dynamisch zu ändern? Weil ich in meiner Anwendung pdf Dokument erstellen muss. Ich habe ein Hauptdokument innerhalb des Detailbandes dieses Hauptdokuments verwendet, das ich einen Unterbericht verwendete. Unterbericht nimmt Java-Bean als Datenquelle. Diese Java-Bean gibt eine Feldliste zurück. Also, wenn wir die Größe des Bandes festgelegt haben, dann sind einige Zeit nicht alle Werte im Dokument gestreckt. Ist es möglich, das Detailband dynamisch zu ändern?Wie ändert man die Bandhöhe dynamisch?

Antwort

6

Sie können JRXmlLoader.load() verwenden, um ein JasperDesign Objekt aus der Vorlagendatei zu erstellen. Verwenden Sie eine Methode wie getPageHeader() für das Ergebnis, um das gewünschte Band abzurufen und den Rückgabewert auf JRDesignBand zu werfen: zurückgegebenes Objekt implementiert JRBand, aber für JasperDesign ist es immer ein JRDesignBand. In der JRDesignBand Klasse gibt es eine setHeight() Methode.

Verwenden Sie abschließend JasperCompileManager.compileReport(), um eine JasperReport aus der (jetzt geänderten) JasperDesign zu erstellen.

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); 
Verwandte Themen