Как динамически изменить высоту полосы? - PullRequest
6 голосов
/ 28 апреля 2010

Можно ли динамически изменять высоту полосы детализации в отчете jasper?Потому что в моем приложении мне нужно создать pdf-документ. Я использовал один основной документ внутри полосы подробностей этого основного документа, я использовал один подотчет.Подотчет будет принимать Java-бин в качестве источника данных.Этот Java-бин возвращает список полей.Таким образом, если мы установили размер полосы, то в течение некоторого времени все значения не растягиваются в документе.Возможно ли динамическое изменение полосы детализации?

Ответы [ 2 ]

6 голосов
/ 13 января 2011

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);
6 голосов
/ 29 апреля 2010

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

Наконец, используйте JasperCompileManager.compileReport(), чтобы создать JasperReport из (теперь измененного) JasperDesign.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...