Переполнение отчета jasperreport на новой странице - PullRequest
1 голос
/ 11 марта 2019

Следующий документ, который я пытаюсь сделать, когда он получает несколько элементов во вложенных отчетах, работает без проблем, следующее представление после его генерации

enter image description here

Когда подотчеты получают несколько элементов для обработки, содержимое элементов переполняется полосами отчета. Как показано на следующем рисунке

enter image description here

Я хочу добиться того, чтобы вместо переполнения содержимого, которое больше не помещалось, отображалось на новой странице, я попытался изменить свойство 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

Как новичок, любой вклад - отличная помощь

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