Jasper Report操作多行

时间:2015-01-02 04:50:38

标签: jasper-reports

从数据库中获取值时,Jasper报告如何工作。 我知道细节带会在每一行重复,但我的问题是:

1) Do all DB rows gets fetched first and then detail band gets repeated for each row.

                        or

2) It is parallel process as soon as report gets one row it creates new detail band.

为什么我问这些问题是,我想在所有行中进行一些操作,因为我的细节带中有一个元素应该在每个波段打印或不打印。

示例:假设我的数据库总是返回两行,一行用于公共,一行用于私有,其中我必须比较一列,如下所示名称为overall_score:

1) If private overall_score is greater than public the header private should be underlined.
2) if public overall_score is greater than private the header public should be underlined.
3) if both overall_score are equals both header should be underline.

我在细节带上有一个线元素,我想根据两行的overall_score比较来放置 printWhenexpression

请帮助我,我是贾斯珀报告的新手。

1 个答案:

答案 0 :(得分:1)

你可以试试这个。

  1. 在记录对上常见的任何字段上创建一个组。如果您不想在报表上显示它们,可以将Group Header和Footer band的高度设置为零。
  2. 创建一个变量,获取每个组的max overall_score值。
  3. 在PrintWhenExpression中,将当前记录的overall_score与包含该组的max overall_score的变量进行比较。