ireport交叉报表

1、构造数据源:


Java代码  收藏代码

  1. package test;  

  2.   

  3. import java.util.ArrayList;  

  4.   

  5. public class CrossReportFactory {  

  6.   

  7.     public static Collection getData(){       

  8.          List<Map<Object, Object>> subGuestName = new ArrayList<Map<Object, Object>>();  

  9.               

  10.          //第一行A1  

  11.             subGuestNameInit(subGuestName, "C1""A1","group1""data1");  

  12.             subGuestNameInit(subGuestName, "C2""A1","group1""data12");  

  13.             subGuestNameInit(subGuestName, "C3""A1","group1""data13");  

  14.           

  15.         //第二行A2  

  16.             subGuestNameInit(subGuestName, "C1""A2","group1""data123");  

  17.             subGuestNameInit(subGuestName, "C2""A2","group1""data1234");  

  18.             subGuestNameInit(subGuestName, "C3""A2","group1""data12345");  

  19.               

  20.         //第三行还是按C1、C2、C3分3列,但却又按row2分多行  

  21.             subGuestNameInit(subGuestName, "C1""A3","g2","d1");     

  22.             subGuestNameInit(subGuestName, "C2""A3","g2""d12");   

  23.             subGuestNameInit(subGuestName, "C3""A3","g2""d123");  

  24.               

  25.             subGuestNameInit(subGuestName, "C1""A3","g3","d11");    

  26.             subGuestNameInit(subGuestName, "C2""A3","g3""d22");   

  27.             subGuestNameInit(subGuestName, "C3""A3","g3""d33");  

  28.               

  29.               

  30.          return subGuestName;    

  31.     }  

  32.       

  33.      public static void subGuestNameInit(List<Map<Object, Object>> subGuestName,String column,String row,String row2,String value){  

  34.             Map<Object, Object> guestMap = new HashMap<Object, Object>();  

  35.             guestMap.put("deptid", row);  

  36.             guestMap.put("deptid2", row2);   //第三行继续划分使用  

  37.             guestMap.put("degree", column);  

  38.             guestMap.put("empid", value);  

  39.             subGuestName.add(guestMap);  

  40.         }  

  41. }  

 2、新建一个模版,右击模版名添加Dataset,选择Dataset为刚创建的Dataset。为Dataset添加fields


3、创建交叉报表

row:


column:


value:


 

交叉报表创建成功。

但此时数据源还不可以,还得这样设置:

右击Detail中的交叉报表,选择Dataset run为"use dataset...",设置Dataset值为$P{REPORT_DATA_SOURCE}即可使用数据源。

详细设置如图:


效果如图:


最后交叉报表如图:



 

结果:


真正使用时隐藏掉红色部分即可达到要求。


转载于:https://my.oschina.net/u/729210/blog/202625

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值