如何以这样的格式创建报告?

时间:2013-02-10 04:00:50

标签: jasper-reports

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

我想将 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
--------------------------

就像我需要多个 Detail 乐队一样,我可以创建多个 Detail 乐队,但我遇到的问题是,我想只显示一次列标题,所以在(域名,总计,价格)的情况下,我可以将它们放在列标题区域中,但我找不到任何运气的其他详细信息乐队(类型,总数,价格)

非常感谢任何帮助。

更新:数据集以这种方式显示:

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

1 个答案:

答案 0 :(得分:1)

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

  • 根据此表达式$F{domain} == null ? "Type" : "Domain"
  • 创建报告组 组标题中的
  • 为表达式$F{domain} == null ? "Type" : "Domain"添加一个文本字段,为总计价格添加2个静态文本。
  • 详细信息带中的
  • 使用表达式添加这些文本字段:
    • 字段1:$F{domain}==null ? $F{type} :$F{domain}
    • 字段2:$F{total}
    • 字段3:$F{count} * $F{total}
  • 小组页脚中的
  • 添加行

完成。

假设有2个结果集:

  • 为每个结果集添加一个子数据集(即datasetDomainsdatesetTypes
  • 添加(虚假)报告组(即使用群组表达式null
  • 添加包含总计价格
  • 的组标题3 静态文本字段
  • 在这些字段下方添加一个列表项目,其中包含datasetDomains字段。
  • 在列表下方添加一行,使用位置类型 Fix Relative To Bottom对其进行配置。
  • 添加组页脚3 静态文本字段,其中包含类型总计价格
  • 在这些字段下方添加一个列表项目,其中包含datesetTypes字段。
  • 在列表下方添加一行,使用位置类型 Fix Relative To Bottom对其进行配置。

enter image description here

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

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
  • 创建一个群组
  • 将标题带用于标签(而不是列标题带)。