0

我在网上搜索了一段时间,但找不到解决方案。

我想将JasperReports用于如下格式:

--------------------------
Name:
Address:
Phone #
-------------------------
Domain       Total   Price 
www.a.com      100    7500
www.b.com      150    1500
--------------------------
Type         Total   Price
Hosting        350    3500
Surfing        175    2200
--------------------------

就像如果我需要多个详细信息波段,我可以创建多个详细信息波段,但我遇到的问题是,我只想显示一次列标题,所以在 (Domain, Total, Price) 的情况下我可以做到通过将它们放在列标题带中,但我找不到其他详细信息带(类型、总计、价格)的任何运气

任何帮助将不胜感激。

更新:数据集以这种方式呈现:

 Type    Domain    Total   Count 
 null    www.a.com 200     30 
 null    www.b.com 100     95 
 Hosting null      300     65 
 Surfing null      100     25
4

1 回答 1

1

鉴于评论中发布的数据集的结构:

  • 基于此表达式创建报表组$F{domain} == null ? "Type" : "Domain"
  • 在组标题中添加一个带有表达式的文本字段,以及TotalPrice$F{domain} == null ? "Type" : "Domain"的 2 个静态文本。
  • 在详细信息带中添加这些带有表达式的文本字段:
    • 字段 1:$F{domain}==null ? $F{type} :$F{domain}
    • 字段 2:$F{total}
    • 字段 3:$F{count} * $F{total}
  • 在组页脚中添加该行

完毕。

假设有 2 个结果集:

  • 为每个结果集添加一个子数据集(即datasetDomains, datesetTypes
  • 添加()报告组(即带有组表达式null
  • 在组标题中添加 3 个静态文本字段,其中包含DomainTotalPrice
  • 在这些字段下方添加一个列表项,其中包含 的字段datasetDomains
  • 在列表下方添加一行,使用Position Type Fix Relative To Bottom对其进行配置。
  • 在组页脚中添加 3 个静态文本字段,其中包含TypeTotalPrice
  • 在这些字段下方添加一个列表项,其中包含 的字段datesetTypes
  • 在列表下方添加一行,使用Position Type Fix Relative To Bottom对其进行配置。

在此处输入图像描述

如果您的结果集的结构如下所示,那么事情将是最简单的:

Type     Detail         Total  Price
----     ------         -----  -----
Domain   www.a.com      100    7500
Domain   www.b.com      150    1500
Type     Hosting        350    3500
Type     Surfing        175    2200

您可以执行以下操作:

  • 根据创建组type
  • 将组标题带用于标签(而不是列标题带)。
于 2013-02-11T10:36:24.230 回答