Следующий документ, который я пытаюсь сделать, когда он получает несколько элементов во вложенных отчетах, работает без проблем, следующее представление после его генерации
Когда подотчеты получают несколько элементов для обработки, содержимое элементов переполняется полосами отчета. Как показано на следующем рисунке
Я хочу добиться того, чтобы вместо переполнения содержимого, которое больше не помещалось, отображалось на новой странице, я попытался изменить свойство splitType с Stretch на Prevent, но оно не работает, у меня мало опыта отчеты, и я не знаю, где подойти к проблеме, необходимо ли использовать другие типы компонентов для достижения моей цели? Они могут объяснить или посоветовать мне, как решить проблему.
Я работаю над iReport в ubuntu, чтобы сгенерировать его, если вы хотите скопировать его в Java SE для печати без использования iReport, вы можете сделать это со следующими классами.
Обязательные библиотеки:
commons-beanutils-1.9.2.jar
commons-collections-3.2.1.jar
commons-digester-2.1.jar
commons-logging-1.1.1.jar
groovy-2.5.6.jar
itext-pdfa-5.5.5.jar
itextpdf-5.5.5.jar
jasperreports-6.0.0.jar
jasperreports-fonts-6.0.0.jar
Исходные файлы должны быть сохранены в каталоге C:\StyledTextReport
chequeReportTest.jrxml
assetBreakdown.jrxml
dueBreakdown.jrxml
https://drive.google.com/drive/folders/1toBnsWNqrzjF20vuQULKDTSkUSwGEY9g?usp=sharing
PdfFromXmlFile.java
package org.o7planning.tutorial.javajasperreport;
import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.jasperturorial.vo.SimpleDataVO;
import net.sf.jasperreports.engine.JRDataSource;
import net.sf.jasperreports.engine.JREmptyDataSource;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperExportManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
public class PdfFromXmlFile {
public static void main(String[] args) throws JRException {
System.out.println("Print...");
// Compile jrxml file.
JasperReport jasperReport = JasperCompileManager
.compileReport("C:\\StyledTextReport\\chequeReportTest.jrxml");
System.out.println(" subreports...");
JasperCompileManager.compileReportToFile("C:\\StyledTextReport\\dueBreakdown.jrxml", "C:\\StyledTextReport\\dueBreakdown.jasper");
JasperCompileManager.compileReportToFile("C:\\StyledTextReport\\assetBreakdown.jrxml", "C:\\StyledTextReport\\assetBreakdown.jasper");
System.out.println("subreports ok");
// Parameters for report
Map<String, Object> parameters = new HashMap<>();
parameters.put("dataSource", "net.sf.jasperreports.engine.JREmptyDataSource@78bfbb1d");
parameters.put("emisionDate", "2019-03-08");
parameters.put("beneficiary", "Lia Waters");
parameters.put("quantity", "100.00000");
parameters.put("amountinword", "hundred dollars");
List<SimpleDataVO> assets = new ArrayList<>();
assets.add(new SimpleDataVO());
assets.add(new SimpleDataVO());
assets.add(new SimpleDataVO());
assets.add(new SimpleDataVO());
assets.add(new SimpleDataVO());
assets.add(new SimpleDataVO());
assets.add(new SimpleDataVO());
assets.add(new SimpleDataVO());
assets.add(new SimpleDataVO());
assets.add(new SimpleDataVO());
assets.add(new SimpleDataVO());
assets.add(new SimpleDataVO());
assets.add(new SimpleDataVO());
assets.add(new SimpleDataVO());
assets.add(new SimpleDataVO());
assets.add(new SimpleDataVO());
assets.add(new SimpleDataVO());
assets.add(new SimpleDataVO());
assets.add(new SimpleDataVO());
assets.add(new SimpleDataVO());
assets.add(new SimpleDataVO());
assets.add(new SimpleDataVO());
assets.add(new SimpleDataVO());
assets.add(new SimpleDataVO());
assets.add(new SimpleDataVO());
assets.add(new SimpleDataVO());
assets.add(new SimpleDataVO());
assets.add(new SimpleDataVO());
assets.add(new SimpleDataVO());
assets.add(new SimpleDataVO());
assets.add(new SimpleDataVO());
assets.add(new SimpleDataVO());
assets.add(new SimpleDataVO());
assets.add(new SimpleDataVO());
assets.add(new SimpleDataVO());
assets.add(new SimpleDataVO());
assets.add(new SimpleDataVO());
assets.add(new SimpleDataVO());
assets.add(new SimpleDataVO());
assets.add(new SimpleDataVO());
assets.add(new SimpleDataVO());
assets.add(new SimpleDataVO());
assets.add(new SimpleDataVO());
assets.add(new SimpleDataVO());
assets.add(new SimpleDataVO());
assets.add(new SimpleDataVO());
assets.add(new SimpleDataVO());
assets.add(new SimpleDataVO());
assets.add(new SimpleDataVO());
assets.add(new SimpleDataVO());
assets.add(new SimpleDataVO());
assets.add(new SimpleDataVO());
assets.add(new SimpleDataVO());
assets.add(new SimpleDataVO());
assets.add(new SimpleDataVO());
assets.add(new SimpleDataVO());
parameters.put("assets", assets);
// DataSource
// This is simple example, no database.
// then using empty datasource.
JRDataSource dataSource = new JREmptyDataSource();
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport,
parameters, dataSource);
// Make sure the output directory exists.
File outDir = new File("C:/jasperoutput");
outDir.mkdirs();
// Export to PDF.
JasperExportManager.exportReportToPdfFile(jasperPrint,
"C:/jasperoutput/chequeReportTest.pdf");
System.out.println("Done!");
}
}
SimpleDataVO.java
package com.jasperturorial.vo;
public class SimpleDataVO {
String value;
String label;
String value2;
public SimpleDataVO() {
super();
value = "1";
label = "account name";
value2 = "1.0000";
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
public String getLabel() {
return label;
}
public void setLabel(String label) {
this.label = label;
}
public String getValue2() {
return value2;
}
public void setValue2(String value2) {
this.value2 = value2;
}
}
Я даю кредиты предыдущего класса (PdfFromXmlFile) отличному учебнику отчетов для начинающих по этой ссылке
https://o7planning.org/en/10293/calling-jasper-report-from-java-application
Как новичок, любой вклад - отличная помощь