如何在 JasperReport 的 table 中水平打印字段值

How to print field values horizontally in a table in JasperReport

我正在使用 Jaspersoft Studio 6.3。1.final 设计一个包含 table 等元素的报告。

设计如下所示。 table 只有一个 列 Header 和一个 详细信息 部分。

现在字段是这样垂直打印的:

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

但我需要的是像这样水平显示它们:

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

我在网上搜索了一下,没找到。

有办法吗?我被困在这里了。非常感谢您的帮助!

编辑:

这就是我将数据传递给报告的方式(使用现有的 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());

这种需求要么需要在数据检索时实现,要么使用crosstab组件实现。

您可以参考 link working with crosstabs in Jasper Reports 进行交叉表样本设计。

另请参阅 link Working with Tables and CrossTabs in JasperReports 以了解 table 和交叉表在功能上的区别。

如果您想在 table 中实现这一点,那么您必须在数据检索过程中应用 pivoting