我的报告只不过是一张发票,上面包含这些物品和相同物品的数据。用户区域要求使用一项功能来选择多个发票,并将它们仅打印到一个生成的PDF中。
我查看过JasperReports网站并尝试通过复制其他JRXML(iReport源代码)的内容来使用子报告,我还尝试将此JRXML作为嵌入内容使用JSON列表对象放在另一个报告中它,但也没有成功。有可能吗?如果是这样,怎么样?
EDITS
生成报告的方法:
public static byte[] gerarPDFViaObjectArray(final String caminhoTemplate, final Object[] array) {
try {
final JRBeanArrayDataSource ds = new JRBeanArrayDataSource(array);
final JasperPrint print = JasperFillManager.fillReport(caminhoTemplate, new HashMap<String, Object>(), ds);
return JasperExportManager.exportReportToPdf(print);
} catch (final JRException e) {
PdfUtils.LOGGER.error("Erro ao gerar arquivo PDF de exportação de detalhe de pedidos.", e.toString());
throw ComponentUtils.buildComponentException("Erro ao gerar arquivo PDF de exportação de detalhe de pedidos.");
}
}
Stackoverflow不允许我放置jrxml代码。我基本上想要发生的是,这个数组被打印为一个报告,而不是传递一个我希望报告被多次复制的唯一对象。
答案 0 :(得分:0)
这真的取决于你想要的最终结果。如果您的用户不介意在同一个pdf中有2个发票,您可以这样做,就像两个或多个发票的报告一样。您只需将报表的数据源与要打印的发票一起执行即可。如果只需要标题和许多子报表作为所需的发票,则可能必须尝试子报表的子报表。
让我解释一下。您有一个所需的发票明细清单,例如报告的明细行。 subdetail的每一行都是子报表,而不是某些文本字段。因此,子报表包含另一个子报表。
因此第一个子报表包含您想要的发票列表和第二个子报表,详细信息。