В докладе яшмы существуют различные способы достижения нового листа как в jrxml
и в java
коде. Поведение по умолчанию - создать новый лист для каждой страницы. Я проиллюстрирую 3 наиболее распространенных способа с относительной проблемой их использования.
Игнорировать пагинацию и сломать элемент
Метод
установить isIgnorePagination="true"
на jasperReport
тег и добавить
<break>
<reportElement x="0" y="0" width="100" height="1" uuid="c5371aa4-2eb4-4ab9-8cae-39f50da3317b"/>
</break>
, когда вам нужен новый лист.
Проблема: Отчет не будет красиво, если вы экспортируете также PDF (с его игнорированием пагинации)
Используйте свойство jrxml
Метод Чтобы избежать создание нового листа на каждой новой странице, установка свойства
net.sf.jasperreports.export.xls.one.page.per.sheet="false"
И когда вы хотите, чтобы создать новый лист до или после reportElement
добавить относительное свойство:
net.sf.jasperreports.export.xls.break.before.row="true"
net.sf.jasperreports.export.xls.break.after.row="true"
Проблема: Столбцы на каждом листе будет то же самое, и это может привести к неправильному Colspan на различных
использования Java листа и проверочный лист, как вы любите (загрузку различных отчетов)
Метод
List<JasperPrint> sheets = new ArrayList<JasperPrint>();
for (int i=1;i<=8;i++){
JasperPrint print = JasperFillManager.fillReport("subReport_" + i + ".jasper", paramMap, connection);
sheets.add(print);
}
JRXlsxExporter exporter = new JRXlsxExporter();
exporter.setExporterInput(SimpleExporterInput.getInstance(sheets));
exporter.setExporterOutput(new SimpleOutputStreamExporterOutput(new File("text.xlxs"));
SimpleXlsxReportConfiguration configuration = new SimpleXlsxReportConfiguration();
configuration.setSheetNames(sheetNames): //sheets names is an array of the different names.
configuration.setOnePagePerSheet(false); //remove that it break on new page
configuration.setDetectCellType(true);
exporter.setConfiguration(configuration);
exporter.exportReport();
Проблема: Вы не можете использовать этот метод, если вы используете сервер отчетов яшмы.
Hello Petter! Спасибо за ваши ответы :) На самом деле я использую сервер Jasper Report.Что я сделал, так это то, что я установил net.sf.jasperreports.export.xls.one.page.per.sheet = "true", создал новую группу, в которой я помещаю подрепорт, который будет создан во втором листе с свойством Group : Начните с новой страницы «checked». Также свойство «игнорировать разбивку на страницы» было проверено в подзаголовке и в главном отчете, и это сработало! Я поместил содержание основного отчета в группу подробностей. – Cataleya
Done :) Большое спасибо! – Cataleya