如何在 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
。
我正在使用 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
。