Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/306.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
Java 使用JasperReports包含动态表(带有合并选项)的最佳方法_Java_Jasper Reports_Itext_Dynamic Reports - Fatal编程技术网

Java 使用JasperReports包含动态表(带有合并选项)的最佳方法

Java 使用JasperReports包含动态表(带有合并选项)的最佳方法,java,jasper-reports,itext,dynamic-reports,Java,Jasper Reports,Itext,Dynamic Reports,我面临以下问题:我必须在使用iReport设计的Jasper报表中包含动态表(可能包含单元格合并)(现在更改报表生成工具将是一项巨大的工作) 基本上,我需要在Jasper报表中包含一个html表结构(使用自由单元格合并,使用rowspan和colspan),据我所知,在Jasper报表中没有包含这种动态表的原生方法(我尝试过“html组件”,但显然它在拉伸方面有很多问题,所以我放弃了它) 示例(可能生成的复杂表格样式): PdfPTable(来自iText)完全符合我的需要():支持rowspa

我面临以下问题:我必须在使用iReport设计的Jasper报表中包含动态表(可能包含单元格合并)(现在更改报表生成工具将是一项巨大的工作)

基本上,我需要在Jasper报表中包含一个html表结构(使用自由单元格合并,使用rowspan和colspan),据我所知,在Jasper报表中没有包含这种动态表的原生方法(我尝试过“html组件”,但显然它在拉伸方面有很多问题,所以我放弃了它)

示例(可能生成的复杂表格样式):

PdfPTable(来自iText)完全符合我的需要():支持rowspan和colspan的动态表解决方案。问题是我不能将PDF(用iText生成)包含到原始Jasper报告中

目前我所能想到的最好方法是:(1)将iText生成的表(PDF)转换为图像,(2)在生成数据源时,将其作为图像插入原始报告中。或者,我可以尝试找到一个html到图像转换器,并重复步骤(2)

然而,我宁愿找到一个更干净的解决方案。有人能帮我建议一个更好的选择吗?假设我所要完成的事情没有本机解决方案,我错了吗?也许使用DynamicJasper是可以实现的

多谢各位


PS:我已经穷尽了寻找类似的问题/答案,但我只能找到过时的答案,指的是Jasper的旧版本;这就是为什么我要创建一个新问题(如果我做错了,很抱歉)。

我想您的问题可以通过dynamicReport api解决,它将允许您仅通过java代码创建任何类型的动态标题或内容,并提供导出其jasper文件的功能


因此,您可以使用dynamicReports创建动态内容,并在类路径中导出特定高度或宽度内容的jasper,然后在iReport设计的jasper文件中使用该文件。

有趣的方法。我不确定DynamicReport是否有任何单元格合并/取消合并本机支持(我不这么认为),但我想可以通过混合表和子报表来实现,对吗?最后,我使用了一个“html到图像”库来生成表,然后将它们插入到我的主Jasper报告中。虽然我宁愿找到一个更优雅的解决方案,但它还是奏效了。顺便说一句,谢谢你的回答!:)嗯…很好,你找到解决办法了。在动态报告中,您可以使用horizontalList在运行时设置单元格的维度和样式。所以它将是完全动态的,可以根据需要由java代码生成。