我将Map<String, Set<Object>>对象作为参数传递给我的ireport。如果映射中的键与字段相等,我希望在自定义创建的组上打印值"Set<Object>"。
知道怎么做吗?,谢谢
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中文本字段的表达式:
$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;
}发布于 2013-02-04 07:17:48
将子报表放入组详细信息中,然后在子报表的Datasource表达式中使用
new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource(new java.util.ArrayList($P{PA_CHING}.get($F{field_where_you_match_the_key})))发布于 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()
发布于 2013-02-01 16:48:36
宣布新的:
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);https://stackoverflow.com/questions/14648963
复制相似问题