2010-04-28 4 views
6

Можно ли динамически изменять высоту диапазона деталей в отчете о яшме? Потому что в моем приложении мне нужно создать pdf-документ. Я использовал один основной документ внутри диапазона деталей этого основного документа, в котором я использовал один подзаголовок. Sub-отчет будет использовать java bean в качестве источника данных. Этот Java-компонент возвращает список полей. Поэтому, если мы фиксируем размер полосы, то некоторое время все значения не растягиваются в документе. Можно ли динамически изменять диапазон деталей.Как изменить высоту полосы динамически?

ответ

6

Вы можете использовать JRXmlLoader.load(), чтобы создать объект JasperDesign из файла шаблона. Используйте метод, например getPageHeader(), для получения нужного вам диапазона и введите возвращаемое значение в JRDesignBand: возвращенный объект реализует JRBand, но для JasperDesign он всегда равен JRDesignBand. В классе JRDesignBand существует метод setHeight().

Наконец, используйте JasperCompileManager.compileReport() для создания JasperReport из (теперь измененного) 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); 
Смежные вопросы