2010-04-28 12 views
6

È possibile modificare dinamicamente l'altezza della banda di dettaglio nel report jasper? Perché nella mia applicazione ho bisogno di creare un documento pdf. Ho usato un documento principale nella banda di dettaglio di quel documento principale che ho usato un sottoreport. Il rapporto secondario prenderà java bean come origine dati. Questo java bean restituisce un elenco di campi. Quindi, se abbiamo corretto la dimensione della banda, un po 'di tempo tutti i valori non sono allungati nel documento. È possibile modificare la banda di dettaglio in modo dinamico.Come modificare dinamicamente l'altezza della banda?

risposta

6

È possibile utilizzare JRXmlLoader.load() per creare un oggetto JasperDesign fuori dal file modello. Utilizzare un metodo come getPageHeader() sul risultato per recuperare la banda desiderata e trasmettere il valore restituito a JRDesignBand: l'oggetto restituito implementa JRBand, ma per JasperDesign è sempre un JRDesignBand. Nella classe JRDesignBand esiste un metodo setHeight().

Infine, utilizzare JasperCompileManager.compileReport() per creare un JasperReport dal (ora modificato) JasperDesign.

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); 
Problemi correlati