通过jasperreport打印整个HashMap

时间:2015-10-27 07:54:19

标签: java jasper-reports

我需要通过jasperreport打印整个地图

示例:

Column1 Column2

key1        val1

key2        val2

key2        val2

应该选择什么数据源?

什么应该包含报告来源?

PS:我不想像$ P {key11}

那样直接获取价值

1 个答案:

答案 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);
相关问题