Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当由Eclipse java生成时,Jaspersoft Studio无法显示超过100页的页码_Java_Jasper Reports - Fatal编程技术网

当由Eclipse java生成时,Jaspersoft Studio无法显示超过100页的页码

当由Eclipse java生成时,Jaspersoft Studio无法显示超过100页的页码,java,jasper-reports,Java,Jasper Reports,问题是,当我使用EclipseIDEFinished生成pdf报告时,pdf报告将只显示当前页码,但不显示总页码,因为它超过100页(将显示少于100页)。它仅在jaspersoft studio中预览时显示。我使用表达式来显示总页面是$V{page_NUMBER},并将计算时间设置为“Report”。我使用表达式来显示当前页码是$V{page_number}+“OF”,并将计算时间设置为“Now”。我使用TIBCO Jaspersoft®Studio 6.6.0。有人能帮我吗。多谢各位 //g

问题是,当我使用EclipseIDEFinished生成pdf报告时,pdf报告将只显示当前页码,但不显示总页码,因为它超过100页(将显示少于100页)。它仅在jaspersoft studio中预览时显示。我使用表达式来显示总页面是$V{page_NUMBER},并将计算时间设置为“Report”。我使用表达式来显示当前页码是$V{page_number}+“OF”,并将计算时间设置为“Now”。我使用TIBCO Jaspersoft®Studio 6.6.0。有人能帮我吗。多谢各位

//generate pdf report code
File reportFile = new File(jrxml_path + criteria.getReportCode() + ".jrxml");
FileInputStream inputStream = new FileInputStream(reportFile); 
JasperPrint jasperPrint = JasperFillManager.fillReport(JasperCompileManager.compileReport(inputStream), params, connection);

 //in pom.xml file
    <dependency>
        <groupId>net.sf.jasperreports</groupId>
        <artifactId>jasperreports</artifactId>
        <version>6.6.0</version>
    </dependency>
//生成pdf报告代码
File reportFile=新文件(jrxml_path+criteria.getReportCode()+“.jrxml”);
FileInputStream inputStream=新的FileInputStream(reportFile);
JasperPrint JasperPrint=JasperFillManager.fillReport(JasperCompileManager.compileReport(inputStream),参数,连接);
//在pom.xml文件中
net.sf.jasperreports
jasperreports
6.6.0

我找到了问题的原因,因为我在java代码中使用了JRSwapFileVirtualizer。虚拟机会将jasper print剪切成不同的文件,以避免内存不足异常,并将其保存在硬盘上和/或压缩,因此无法计算总页面,因为我将maxSize参数设置为100页

Integer virtualPage         = 100; 
Integer virtualBlockSize    = 2048;     
File virtualizePath = new File(report_path + "virtual");

JRSwapFile swapFile = new JRSwapFile(virtualizePath.getAbsolutePath(), virtualBlockSize, 100);
virtualizer = new JRSwapFileVirtualizer(virtualPage, swapFile);
virtualizer.setReadOnly(true);
JRVirtualizationHelper.setThreadVirtualizer(virtualizer);
params.put(JRParameter.REPORT_VIRTUALIZER, virtualizer);
如果您想在JasperReports中阅读更多关于virtulizers的信息,可以访问以下链接: