首页 > 解决方案 > 当标题重复时,Jasper Reports 无法正确找到 TOC(目录)中的页面

问题描述

我希望你很好。

目前我正在使用Jasper ReportsJava开发一个报告,为此我使用两个来对数据源的元素进行分组。

数据库返回的 DataSoruce 具有以下结构(它有两列):

第 1 组 | 亚组 A

第 2 组 | 亚组 A

我使用以下方式在 jasper 文件中显示结果:

->Group 1

    SubGroup A

->Group 2

    SubGroup A

如您所见,有两个组:组 12,每个组都有一个子组,因为这个例子是同一个子组(SubGroup A)。

每个组都配置为出现在 Toc(目录报告)中。我使用iReport 工具,并将每个组配置为具有HiperlinkBookmark Level。(具有 1 个书签级别的组和具有 2 个书签级别的子组)。

一切正常,目录显示正确,当我在目录索引中选择一个元素时,文档到达我对应的页面,但是当组或子组的名称彼此相同时出现问题(它已经出现在 TOC 中,其名称重复),Pdf 文件没有到达正确的页面,带我到他们有该标题的第一页。

有人知道我该如何解决这个问题。

谢谢你的帮助。

标签: jasper-reports

解决方案


我能够解决这个问题。

1.- 我用表达式创建了一个变量 RANDOM:

new Random().nextInt(1000)

2.- 在锚点名称表达式中,我调用了变量 RANDOM,在它后面我写了一个 *.

$F{TITLE} + "* " + $V{RANDOM}

3.- 在 TOC 报告中,我为每个 $F{label} 添加了以下表达式,如下所示:

 ( $F{label}.contains("*") ?    $F{label}.substring( 0, $F{label}.indexOf("*" ))  :    $F{label}  ) 

就是这样,每个标题都是唯一的名称,索引将为每个页面提供正确的链接。


推荐阅读