2016-12-28 106 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