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 那块讲很详细了
网友回复:
引用 3 楼 yxxcrtd 的回复:
每次 put 都将前一次的 name 都覆盖了啊

name 最好跟 i 关联起来


我明白你的意思
params.put("name" i, nameList.get(i).getname());

这样子吧?
但是如果这样的话,就需要在jxml中动态的生成namei相对应的参数,怎么动态生成参数?
网友回复:前提是namelist每次的size是不同的

网友回复:
引用 4 楼 Landor2004 的回复:
为什么要用for循环,如果nameList里面直接存放的是name的字符串,直接
params.put("name", nameList);

在ireport中param这么写

$P{name}.toArray()[0]
$P{name}.toArray()[1]


如果这样写,nameList的size肯定是固定的几个,但是size是变化的
网友回复:
引用 8 楼 monet123 的回复:
引用 4 楼 Landor2004 的回复:
为什么要用for循环,如果nameList里面直接存放的是name的字符串,直接
params.put("name", nameList);

在ireport中param这么写

$P{name}.toArray()[0]
$P{name}.toArray()[1]


如果这样写,nameList的size肯定是固定的几个,但是size是变化的


在报表里用iterator迭代一下,在里写表达式和java语法基本一样
网友回复:还有,在报表里你想怎么用!怎么显示呢
网友回复:
引用 10 楼 Landor2004 的回复:
还有,在报表里你想怎么用!怎么显示呢


我就是想把数据都迭代出来,应该怎么写?


网友回复:你就是都迭代出来,直接
$P{name}.toArray()就都出来了
网友回复:直接这样就可以遍历$P{name}

不过显示出来的效果是这样
[monet,xiaobao,xiaoma]

一定得有“[”,“]”和“,”吗?
关键字:

相关文章

    无相关信息

文章评论

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