0

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

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

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

编辑

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

4

1 回答 1

0

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

于 2013-11-14T08:32:16.040 回答