2016-12-28 121 views
0

我正在使用Jaspersoft Studio 6.3.1.final來設計一個包含其他元素的報表。如何在JasperReport的表中水平地打印字段值

設計如下圖所示。該表只有一個列標題和一個細節部分。

enter image description here

現在場垂直打印:

COLUMN_HEADER1 | COLUMN_HEADER2 
col1Val1  | ... 
col1Val2  | ... 
col1Val3  | ... 

但我需要的是水平顯示他們是這樣的:

COLUMN_HEADER1 | col1Val1 |  col1Val2  |  col1Val3 
COLUMN_HEADER2 | ...  |  ...   |  ... 

我搜索網,couldn沒有任何運氣。

有沒有辦法做到這一點?我困在這裏。對你的幫助表示感謝!

編輯:

這就是我的數據是如何傳遞給報告(使用現有的Java服務生成JRBeanCollectionDataSource)。

List<Map<String, Object>> aListOfMap = ...; 
    JRDataSource jrDataSource = new JRBeanCollectionDataSource(aListOfMap); 
    HashMap<String, Object> parameters = new HashMap<>(); 
    parameters.put("DataSource", jrDataSource); 
    JasperPrint jasperPrint = getObjectPdf("reports/report.jrxml", parameters, new JREmptyDataSource()); 
+0

如何檢索此報告的數據? – Viki888

+0

Hi @ Viki888,我使用現有的Java服務來生成一個JRBeanCollectionDataSource。請參閱我的內聯編輯。謝謝! – blue123

回答

1

這種要求要麼需要是實現而數據檢索或使用crosstab組件。

您可以參考鏈接working with crosstabs in Jasper Reports進行交叉表樣本設計。

另請參閱鏈接Working with Tables and CrossTabs in JasperReports瞭解表和交叉表在功能上的差異。

如果您想在table中實現此目標,那麼您必須在數據檢索過程中應用pivoting

+0

謝謝你。最後,我使用了一個列表來實現這一點,我用對象列表進行填充。 – blue123