ireport问题:怎么在ireport中遍历一个集合的内容
时间:2008-09-28 10:11:19
来源:论坛整理 作者: 编辑:chinaitzhe
- Java code
Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ JRBeanCollectionDataSource subjrds = new JRBeanCollectionDataSource(lists); Map<String,String> params = new HashMap<String,String>(); List nameList = lists.getNameLists(); for(int i=0;i<nameList.size();i ){ params.put("name", nameList.get(i).getname()); }
nameList 里存有好几个名字的值,由于从数据库中获取,所以每次获取的nameList 大小跟值都不一样,我想把这些名字在ireport中都遍历出来,
我上面这种方法是通过传递“name”参数,但是这样的结果是在ireport中只显示最后一个名字的值
怎么才能让所有的名字都显示呢?
网友回复:??难道都没有想过这样做的人?
网友回复:自己再顶
网友回复:每次 put 都将前一次的 name 都覆盖了啊
name 最好跟 i 关联起来
网友回复:为什么要用for循环,如果nameList里面直接存放的是name的字符串,直接
params.put("name", nameList);
在ireport中param这么写
$P{name}.toArray()[0]
$P{name}.toArray()[1]
网友回复:看看我的技术博客吧 对IREPORT 那块讲很详细了
网友回复:
我明白你的意思
params.put("name" i, nameList.get(i).getname());
这样子吧?
但是如果这样的话,就需要在jxml中动态的生成namei相对应的参数,怎么动态生成参数?
网友回复:前提是namelist每次的size是不同的
网友回复:
如果这样写,nameList的size肯定是固定的几个,但是size是变化的
网友回复:
在报表里用iterator迭代一下,在里写表达式和java语法基本一样
网友回复:还有,在报表里你想怎么用!怎么显示呢
网友回复:
我就是想把数据都迭代出来,应该怎么写?
网友回复:你就是都迭代出来,直接
$P{name}.toArray()就都出来了
网友回复:直接这样就可以遍历$P{name}
不过显示出来的效果是这样
[monet,xiaobao,xiaoma]
一定得有“[”,“]”和“,”吗?
关键字:
上一篇:【火龙果】散分
下一篇:下面没有链接了











文章评论
共有 0 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面