我正在导出一个报告(来自JasperPrint对象)。它包含一个子报告。如果我将其导出为pdf,一切都很好。如果我将其导出为word(docx),则子报表中的所有字段值都为空。 docx中子报表中的每一行都是空白的,但仍会显示正确的行数(因此docx导出器仍会获取子报表数据)。主报表中的字段值仍显示在docx中,而不是子报表中。静态文本(在子报表表标题行中)也仍出现在docx子报表中。
无论是以编程方式导出还是使用JRViewer控件中的“保存”菜单,都是一样的。
有谁知道是什么原因引起的?我尝试将字体设置得非常小,因为我知道如果文本不适合框,Jasper有时会决定不渲染,但这并没有解决问题。
修改
我通过单步执行JRDocExporter中的代码解决了这个问题。我在子报表中的每一行之后显示一行(JRDesignLine)。这条线跨越了所有列。 JRDocExporter遇到列中文本之前的行,看到它跨越所有列,因此决定跳过打印所有剩余的列。删除该行会带回丢失的文本。导出到pdf或在JRViewer控件中查看报表时,不会发生此行为,仅用于docx导出...
答案 0 :(得分:0)
我通过单步执行JRDocExporter中的代码解决了这个问题。我在子报表中的每一行之后显示一行(JRDesignLine)。这条线跨越了所有列。 JRDocExporter遇到列中文本之前的行,看到它跨越所有列,因此决定跳过打印所有剩余的列。删除该行会带回丢失的文本。导出到pdf或在JRViewer控件中查看报表时,不会发生此行为,仅用于docx导出...