【问题标题】:Conditional Printing for Front and Back page正面和背面的条件打印
【发布时间】:2016-05-13 00:36:38
【问题描述】:

我正在使用 iReport 5.2.0,我有 2 个报告要打印。 两个报告都包含动态数据,并且可以是多页的。但是,第一份报告的页数始终等于第二份报告的页数。

在我当前的设置中,第一个报告总是完全打印,然后第二个报告的所有页面都被打印出来。

但是,我的要求是报告应该按以下顺序打印:

  • 报告 1 的第 1 页。
  • 报告 2 的第 1 页。
  • 报告 1 的第 2 页。
  • 报告 2 的第 2 页。
  • 报告 1 的第 3 页。
  • 报告 2 的第 3 页。
  • ...

我有什么方法可以使用 JasperReports 实现这一目标?

【问题讨论】:

  • 如果您同时发布两个 jrxml 以提供更好的解决方案,将会很有帮助。两个 jrxml 是否使用相同的数据源?
  • @FahadAnjum :两个报告的数据源相同。我没有发布 jrxml,因为它们非常复杂。此外,他们两个都可以独立工作。这只是我需要设置的打印顺序。
  • 您可以在填写完报告后切换页面。如果您想了解更多信息,请联系我

标签: jasper-reports


【解决方案1】:

假设,报表 1 使用 X 查询和 X_SQL,报表 2 使用 Y 查询和 Y_SQL。

如果两个查询的列数相同,那么最好添加关于 X_SQL 和 Y_SQL 的附加列,以便联合两个查询。

请记住,您必须在 sql 中生成一个数字系列列和一个虚拟列。您可以在 sql 中动态生成数字系列。

X_SQL 有两个新列(number_series,'detail1'as dummy) 联盟 Y_SQL 有两个新列(number_series,'detail2'as dummy) 按 number_series 排序,虚拟

SQL 的输出:

X_SQL 列,1 为 number_series,'detail1' 为 dummy Y_SQL column , 1 as number_series, 'detail2' as dummy X_SQL column , 2 as number_series, 'detail1' as dummy Y_SQL column , 2 as number_series, 'detail2' as dummy

现在在您的新报告中添加两个详细信息带。报告的高度只有一个细节带高度+顶部和底部填充。

1 个细节带 = 第一个报告设计
2 细节带 = 第二个报告设计

如果你的 jrxml 太复杂,你可以使用 subreport。

现在在打印时使用细节带的表达

细节带 1 : $F{dummy}.equals('detail1') 细节带 2:$F{dummy}.equals('detail2')

注意: 1)你需要在你的sql查询中排序。 2) 报表高度需要选择合适。

如果您仍然有问题,那么我建议发布您的 jrxml。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-06
    • 2015-01-14
    相关资源
    最近更新 更多