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?
6
A
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);