我需要通过jasperreport打印整个地图
示例:
Column1 Column2
key1 val1
key2 val2
key2 val2
应该选择什么数据源?
什么应该包含报告来源?
PS:我不想像$ P {key11}
那样直接获取价值答案 0 :(得分:1)
我会尝试这样的事情
Map<String,Object> map = new HashMap<String,Object>();
//your map values....
Set<Entry<String,Object>> set = map.entrySet();
JRBeanCollectionDataSource bds = new JRBeanCollectionDataSource(set);
在jasper报告中,您的字段将是
<field name="key" class="java.lang.String"/>
<field name="value" class="java.lang.Object"/>
注意:我如何使用Map.Entry
bean getKey()
和getValue()
创建我的数据源
如果您想对其进行排序,只需实施Comparator
并使用Collections
,则不会对这些值进行排序。
List<Entry<String, Object>> list = new ArrayList<Entry<String, Object>>();
list.addAll(set);
Collections.sort(list, new Comparator<Entry<String, Object>>() {
@Override
public int compare(Entry<String, Object> o1, Entry<String, Object> o2) {
// TODO Implement you sorting
return 0;
}
});
JRBeanCollectionDataSource bdsSorted = new JRBeanCollectionDataSource(list);