iReport的“报告查询”对话框中的多个查询

时间:2012-02-03 16:44:35

标签: mysql sql jasper-reports ireport

我想使用ireport制作以下类型的报告:

Total Items: TOTAL_NO_OF_ITEMS
Damaged Items: NO_OF_DAMAGED_ITEMS              
Non Damaged Items: NO_OF_NON_DAMAGED_ITEMS

表结构是:

Items{
item id int PK,
item_status varchar  <!--having values as 'damaged' or 'non-damaged')-->
}

iReport的报告查询对话框中,我可以提供查询:

select count(*) item_counts , item_status status  from Items group by item_status;

将生成

Damaged Items: NO_OF_DAMAGED_ITEMS              
Non Damaged Items: NO_OF_NON_DAMAGED_ITEMS

但报告中的行:

Total Items: TOTAL_NO_OF_ITEMS

我必须再运行一次查询:

select count(*) total_items from items

所以我想问一下如何使用报表对话框中的ireport为单个jrxml文件提供多个查询?

...谢谢

1 个答案:

答案 0 :(得分:0)

不需要针对此类问题进行多次查询。如果需要,您可以在数据库中执行所有处理:

select count(*) as item_counts, item_status as status from Items group by item_status
union all
select count(*) as item_counts, 'all items' as status from Items

或者您无法在数据库中进行处理:

select * from Items
order by item_status

然后在报告中创建3个变量来计算3个所需的值。

当然你可以使用混合动力车。保持当前查询不被修改,并添加一个变量来总结损坏和未损坏的项目以获得总数。