2015-10-27 62 views
2

我需要jasperreport的打印整張地圖打印整個HashMap中通過jasperreport的

例子:

Column1 Column2 

key1  val1 

key2  val2 

key2  val2 

什麼是數據源應作爲選?

什麼含有報告來源?

PS:我不想將值直接像$ P {} key11

回答

1

我會嘗試這樣的事情

Map<String,Object> map = new HashMap<String,Object>(); 
//your map values.... 
Set<Entry<String,Object>> set = map.entrySet(); 
JRBeanCollectionDataSource bds = new JRBeanCollectionDataSource(set); 
在碧玉

報告您的領域將是

<field name="key" class="java.lang.String"/> 
<field name="value" class="java.lang.Object"/> 

注意:我如何使用Map.EntrygetKey()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);