jasperreports - 导出word缺少子报表字段值但pdf很好

时间:2013-11-13 18:27:54

标签: jasper-reports

我正在导出一个报告(来自JasperPrint对象)。它包含一个子报告。如果我将其导出为pdf,一切都很好。如果我将其导出为word(docx),则子报表中的所有字段值都为空。 docx中子报表中的每一行都是空白的,但仍会显示正确的行数(因此docx导出器仍会获取子报表数据)。主报表中的字段值仍显示在docx中,而不是子报表中。静态文本(在子报表表标题行中)也仍出现在docx子报表中。

无论是以编程方式导出还是使用JRViewer控件中的“保存”菜单,都是一样的。

有谁知道是什么原因引起的?我尝试将字体设置得非常小,因为我知道如果文本不适合框,Jasper有时会决定不渲染,但这并没有解决问题。

修改

我通过单步执行JRDocExporter中的代码解决了这个问题。我在子报表中的每一行之后显示一行(JRDesignLine)。这条线跨越了所有列。 JRDocExporter遇到列中文本之前的行,看到它跨越所有列,因此决定跳过打印所有剩余的列。删除该行会带回丢失的文本。导出到pdf或在JRViewer控件中查看报表时,不会发生此行为,仅用于docx导出...

1 个答案:

答案 0 :(得分:0)

我通过单步执行JRDocExporter中的代码解决了这个问题。我在子报表中的每一行之后显示一行(JRDesignLine)。这条线跨越了所有列。 JRDocExporter遇到列中文本之前的行,看到它跨越所有列,因此决定跳过打印所有剩余的列。删除该行会带回丢失的文本。导出到pdf或在JRViewer控件中查看报表时,不会发生此行为,仅用于docx导出...