首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在ireport中打印地图的值?

问如何在ireport中打印地图的值?
EN

Stack Overflow用户
提问于 2013-02-01 14:55:15
回答 3查看 9.5K关注 0票数 2

我将Map<String, Set<Object>>对象作为参数传递给我的ireport。如果映射中的键与字段相等,我希望在自定义创建的组上打印值"Set<Object>"。

知道怎么做吗?,谢谢

代码语言:javascript
复制
HashMap<String,Object> parameters = new HashMap<String,Object>();
parameters.put("PA_CHING",retreivePaChingMapping());

public Map<String, Set<Object>> retreivePaChingMapping() {
        Map<String, Set<Object>> paChing = GenericsUtil.makeMap();
        //adds the object to paChing here 
        return paChing;
    }

In IReport:

参数名称: PA_CHING

参数类类型: java.util.HashMap

默认值表达式:--我不知道在这里放什么。

ireport中文本字段的表达式:

代码语言:javascript
复制
$P{paChing}.containsKey( $F{id} ) ? getChing() : "null";

private void String getChing(){
    StringBuilder ching = new StringBuilder();
    $P{PA_CHInG}.get( $F{id} ).iterator().hasNext()?ching.append($P{PA_CHING}.get( $F{id} ).iterator().next):"";

    return ching;
}
EN

回答 3

Stack Overflow用户

发布于 2013-02-04 07:17:48

将子报表放入组详细信息中,然后在子报表的Datasource表达式中使用

代码语言:javascript
复制
new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource(new java.util.ArrayList($P{PA_CHING}.get($F{field_where_you_match_the_key})))
票数 1
EN

Stack Overflow用户

发布于 2013-02-01 15:06:40

Set.toString()将为您服务。

来自Javadoc

返回此集合的字符串表示形式。字符串表示形式包括按迭代器返回元素的顺序排列的集合元素列表,包含在方括号("[]")中。相邻元素由字符",“(逗号和空格)分隔。元素由String.valueOf(Object)转换为字符串。

http://docs.oracle.com/javase/6/docs/api/java/util/AbstractCollection.html#toString()

票数 0
EN

Stack Overflow用户

发布于 2013-02-01 16:48:36

宣布新的:

代码语言:javascript
复制
            Map map=(Map) parameters.get("PA_CHING");
            Set<Object> set= (Set<Object>) map.get("your key name");
            YourClass class = (YourClass) set.iterator().next();
            System.out.println(class.yourMethodName());
     System.out.println(class.yourClassVariables);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14648963

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档