2010-04-28 45 views
6

¿Es posible modificar dinámicamente la banda de altura de los detalles en el informe de jaspe? Porque en mi aplicación necesito crear un documento pdf. He utilizado un documento principal dentro de la banda de detalle de ese documento principal. Utilicé un subinforme. El informe secundario tomará Java Bean como fuente de datos. Este bean Java devuelve una lista de campo. Entonces, si arreglamos el tamaño de la banda, entonces algún tiempo todos los valores no se estirarán en el documento. ¿Es posible cambiar la banda de detalle de forma dinámica?¿Cómo cambiar la altura de la banda de forma dinámica?

Respuesta

6

Puede usar JRXmlLoader.load() para crear un objeto JasperDesign fuera del archivo de plantilla. Utilice un método como getPageHeader() en el resultado para recuperar la banda que desea y arroje el valor de retorno a JRDesignBand: el objeto devuelto implementa JRBand, pero para JasperDesign es siempre JRDesignBand. En la clase JRDesignBand, hay un método setHeight(). Por último, use JasperCompileManager.compileReport() para crear un JasperReport desde (ahora modificado) 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); 
Cuestiones relacionadas