【问题标题】:How to print field values horizontally in a table in JasperReport如何在 JasperReport 的表格中水平打印字段值
【发布时间】:2019-04-10 15:57:02
【问题描述】:

我正在使用 Jaspersoft Studio 6.3.1.final 来设计一个包含表格以及其他元素的报告。

设计如下所示。该表格只有一个Column Header和一个Detail部分。

现在字段像这样垂直打印:

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());

【问题讨论】:

  • 您如何检索此报告的数据?
  • 嗨@Viki888,我正在使用现有的Java 服务来生成一个JRBeanCollectionDataSource。请参阅我的内联编辑。谢谢!

标签: jasper-reports


【解决方案1】:

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

交叉表样本设计可以参考链接working with crosstabs in Jasper Reports

另请参阅链接Working with Tables and CrossTabs in JasperReports 以了解表和交叉表在功能上的不同之处。

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

【讨论】:

  • 谢谢。最后我使用了一个列表来实现这一点,我给它提供了一个对象列表。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-09-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多