JasperReports grouping changeable by user

自古美人都是妖i 提交于 2019-12-22 18:03:05

问题


I have no idea if this is possible or not but I'm trying figure out if it is possible to use iReport Designer to create reports where the user viewing the report is able to control the grouping.

For example I would like the user to be able to re-order the grouping and also change to which degree the report is grouped (only on one field or on multiple ones).

I don't mean SQL grouping btw, I mean for example grouping by Account and then Agent:

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

And what I'm trying to figure out is, can you use iReport to make this grouping dynamic? That is, that the user might want to group by Agent first and Account second and rather than have one report for each grouping it'd be nice if there was a way of doing this with iReport.


回答1:


Yes, it should be possible to create reports like that. But depending on your exact needs it may not be practical (as Alex K indicated).

If you take only your example of grouping on Account then Agent or grouping on Agent then account, it would be simple. Have a parameter that let's the user specify this choice. It would probably be a drop down list. Then in the report you would have fields like this:

Today's version: $F{Account} and $F{Agent}

Dynamic version: $P{AcctFirst} ? $F{Account} : $F{Agent} and $P{AcctFirst} ? $F{Agent} : $F{Account}

Likewise, the group definition would need to include the new AcctFirst param.

But it won't extend nicely. What if the 2 fields are different data types? What if you want to let the user choose from 3 or 4 or N fields? Each of those is solvable... but the report becomes exponentially more complex.

By the way, it's relatively common request. You'll see features like this make their way into JasperReports. But for now it's a tough one.



来源:https://stackoverflow.com/questions/8587511/jasperreports-grouping-changeable-by-user

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!