JasperReports分组可由用户更改

时间:2011-12-21 09:23:26

标签: jasper-reports ireport

我不知道这是否可行,但我想弄清楚是否有可能使用iReport Designer创建报告,其中查看报告的用户能够控制分组。

例如,我希望用户能够重新排序分组,还可以更改报告的分组程度(仅在一个字段或多个字段上)。

我的意思并不是说btw的SQL分组,我的意思是例如按帐户分组然后代理:

| Account  |  Agent  | Invoice  | Total |
+----------+---------+----------+-------+
| Account1 |         |          |       |
|          |   Joe   |          |       |
|          |         | Invoice2 | $600  |
|          |         | Invoice1 | $300  |
| Account2 |         |          |       |
|          |   Sam   |          |       |
|          |         | Invoice4 | $120  |
|          |         | Invoice7 | $230  |
|          |   Joe   |          |       |
|          |         | Invoice3 | $200  |
+----------+-- ------+----------+-------+

我想弄清楚的是,你能用iReport来实现这种分组动态吗?也就是说,用户可能希望首先按代理进行分组,然后按帐户进行分组,而不是每个分组都有一个报告,如果有一种方法可以使用iReport执行此操作,那就太好了。

1 个答案:

答案 0 :(得分:1)

是的,应该可以创建这样的报告。但是根据你的确切需要,它可能不实用(正如Alex K所说)。

如果您只采用在帐户上进行分组的示例,然后在代理或分组代理上进行分组,则会很简单。有一个让用户指定此选项的参数。它可能是一个下拉列表。然后在报告中你会有这样的字段:

今天的版本:$F{Account}$F{Agent}

动态版本:$P{AcctFirst} ? $F{Account} : $F{Agent}$P{AcctFirst} ? $F{Agent} : $F{Account}

同样,组定义需要包含新的AcctFirst参数。

但它不会很好地扩展。如果2个字段是不同的数据类型怎么办?如果您想让用户从3或4或N字段中进行选择该怎么办?其中每一个都是可以解决的......但报告的指数会变得更加复杂。

顺便说一句,这是相对常见的请求。你会看到像这样的功能进入JasperReports。但是现在这是一个艰难的。