Jasper reports jasperreport报告在新页面中溢出

Jasper reports jasperreport报告在新页面中溢出,jasper-reports,Jasper Reports,下面的文档是我正在尝试做的,当它在子报表中接收到很少的元素时,工作没有问题,下面是生成它后的视图 当子报表接收到多个要处理的元素时,元素的内容会溢出报表的各个区域。如下图所示 我想要实现的是,我尝试将splitType属性从Stretch更改为Prevent,以防止内容溢出,而不是在新页面中显示不再适合的内容,但它不起作用,我对报告几乎没有经验,我不知道从何处解决问题,是否有必要使用其他类型的组件来实现我的目标?他们可以向我解释或建议如何解决这个问题 我正在ubuntu上开发iReport来

下面的文档是我正在尝试做的,当它在子报表中接收到很少的元素时,工作没有问题,下面是生成它后的视图

当子报表接收到多个要处理的元素时,元素的内容会溢出报表的各个区域。如下图所示

我想要实现的是,我尝试将splitType属性从Stretch更改为Prevent,以防止内容溢出,而不是在新页面中显示不再适合的内容,但它不起作用,我对报告几乎没有经验,我不知道从何处解决问题,是否有必要使用其他类型的组件来实现我的目标?他们可以向我解释或建议如何解决这个问题

我正在ubuntu上开发iReport来生成它,如果您想在JavaSE中复制它来打印它,而不需要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

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!");

    }

}
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

作为一个初学者,任何贡献都是一个巨大的帮助

您已经花了相当多的时间给我们提供了一个我们可以复制的示例(但我们需要时间来设置所有内容),但是可能只是一个小的说明问题(假设任何回答的人都知道如何设置和运行jasper)会更好。无论如何,我会尝试在注释中给你一些提示(不深入你的所有代码)。在我看来,你的问题是你没有正确地使用标注栏,如果页脚中有什么东西(细节标注栏不应该使用该空格),你应该使用一个页脚标注栏,因此来自作者,在该空格下面是一个页脚(不是详细标注栏空间).我想你只需要重新设计一下报告,考虑一下什么东西放在哪个栏位上。我正在使用列页脚、页脚和列页眉栏位来更正报告,这些提示非常有用,因为我不知道从哪里开始,它们已经澄清了很多全景。一切似乎都很顺利,我甚至在分析如有必要,使用其他配置,如lastPageFooter。我将继续报告,并在问题结束后将更正后的报告添加到问题中。我很高兴听到和看到一位开发人员为解决问题付出了努力,请在回答问题时也修改标题,想出一些更好地反映您问题的方法。您已经花费了相当多的时间我想给我们举一个例子,我们可以复制(但我们需要时间来设置所有内容),但是可能只是一个小的问题说明(假设任何回答的人都知道如何设置和运行jasper)会更好。无论如何,我会尝试在注释中给你一些提示(不深入所有代码)。在我看来,您的问题在于您没有正确使用标注栏,如果页脚中有某些内容(详细标注栏不应使用该空间),您应该使用页脚标注栏,因此从作者开始,在该空间下方是页脚(非详细标注栏空间).我想你只需要重新设计一下报告,考虑一下什么东西放在哪个栏位上。我正在使用列页脚、页脚和列页眉栏位来更正报告,这些提示非常有用,因为我不知道从哪里开始,它们已经澄清了很多全景。一切似乎都很顺利,我甚至在分析如有必要,使用其他配置,如lastPageFooter。问题结束后,我将继续报告并将更正后的报告添加到问题中。我很高兴听到和看到一位开发人员为解决问题付出了努力,请在回答问题时也修改标题,想一些更能反映您问题的方法。