当前位置:编程学习 > JAVA >>

关于iReport中子报表中交叉表的问题 在线等

主报表的设计图如下图:
子报表中有交叉表,所以放在了summary里面
子报表的Collection/data source expression  设置的是  use Collection expression  



子报表中的fields:
date java.lang.String
quantity java.lang.Integer
categoryName java.lang.String

子报表里面的sql:

SELECT DATE_FORMAT(po.date,'%Y-%m-%d') AS date,SUM(pi.quantity) AS quantity,c.name AS categoryName FROM serviced_by sb ,purchase_item PI,purchase_order po,product_option opt,product p,product_category pc,category c
WHERE sb.purchase_item_id=pi.purchase_item_id
AND pi.purchase_order_id=po.purchase_order_id
AND pi.product_option_id=opt.product_option_id
AND opt.product_id=p.product_id
AND pc.product_id=p.product_id
AND pc.category_id=c.category_id
AND sb.company_id=7
AND sb.user_id=24322
GROUP BY po.date,c.category_id
ORDER BY po.date


我这样直接动态执行主报表,可以从数据库中查询到数据如图显示:




然后修改了这个交叉表的数据源,数据由java程序获取,然后传到ireport里面
我把数据封装成了一个List  list里面肯定是有数据的
把payrllVO传到主报表中(payrllVO里面有payrollItemsVOList 已有get/set方法)
在主报表中定义了一个filed 
payrollItemsVOList   java.util.List

然后把子报表原来的sql删除
再设置子报表的
Collection/data source expression
设置为 user data source expression
new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F{payrollItemsVOList})




现在子报表中的数据拿不到,就显示了一条横线



有用过ireport的朋友,指导下吧,这问题困扰好几天了

另外如果有交叉表 貌似只能放在summary里面  其他地方貌似不显示数据 --------------------编程问答-------------------- 我就算用刚开始那种可以显示数据的方式,把这个放到服务器下后 用程序生成出来啊pdf 子报表中的交叉表也一样没数据
补充:Java ,  Web 开发
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,