The subreport repeats itself in Detail band

最后都变了- 提交于 2019-11-30 10:38:10

The Detail band will be generated as many times as the number of records you have in your main dataSet(populated by the top-level query).

If you want to keep the subreport in the Detail band, which is normal by the way, you can do one of these things:

  • either have a dummy query that returns only one record, so that the Detail band generates only once. Then, pass the report connection to your subreport. You may have done that already. This way you can run your query independently of the main report.
  • or leave the report as-is and add your printWhen expression ($V{REPORT_COUNT}.intValue()==1) directly on the Detail band, not on the subreport. Please note that this is just an ugly hack that may affect the report performance. Your main query still returns a lot of data that you don't use so you should consider the other options.

If you can move the subreport out of the Detail band, place it in a band that allows overflow like Title or Summary band. Then:

  • have your main dataSet's query empty so that no Detail band gets generated
  • set whenNoDataType="AllSectionsNoDetail" at the report level(in the <jasperReport> tag) so that all the other sections except the Detail get generated
  • exactly as in the first option above, pass the report connection to your subreport and work from there
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!