birt报表脚本数据源

yangshan2010 2011-09-23 04:23:30
我在一个map里面放了2个list,通过一个报表实现显示,第1个list有12条数据,第2个list有6条数据,我想10条显示一页,但是一个list数据去完之后,下一个list必须从另一页开始,也就是这2个list显示出来应该是3页,有办法实现吗?
...全文
186 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
yangshan2010 2011-09-23
  • 打赏
  • 举报
回复
我说的是在birt报表中,嘿嘿
yangshan2010 2011-09-23
  • 打赏
  • 举报
回复
我说的是在birt报表中,嘿嘿
士元 2011-09-23
  • 打赏
  • 举报
回复
public static void main(String[] args) {
System.out.println(getData(1));
System.out.println(getData(2));
System.out.println(getData(3));
}
public static List getData(int page){
Map<String, List<Object>> map = new HashMap<String, List<Object>>();
List list = new ArrayList<Object>();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
list.add(5);
list.add(6);
list.add(7);
list.add(8);
list.add(9);
list.add(10);
list.add(11);
list.add(12);
list.add(13);
map.put("b", list);
list = new ArrayList<Object>();
list.add(21);
list.add(22);
list.add(23);
list.add(24);
map.put("a", list);
int total = 0;
int pageSize=10;
for(List l:map.values()){
if((total+Math.ceil((float)l.size()/pageSize))>=page){
int end =(page-total)*pageSize;
if(end>l.size())end=l.size();
int from = (page-total-1)*pageSize;
if(from<0)from=0;
return l.subList(from, end);
}
total+= Math.ceil((float)l.size()/pageSize);
}
return null;
}
yangshan2010 2011-09-23
  • 打赏
  • 举报
回复
我知道你的意思了!我换个问法吧,我如何先把map中的list数据全部先不管分页显示在birt报表中
bijanen19861113 2011-09-23
  • 打赏
  • 举报
回复
是不是可以先计算好的一个list的总页数n,然后第二个list从n+1开始..

67,549

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧