如何使用hashmap变量执行jasper报告子报告?

时间:2016-10-07 17:05:46

标签: java jasper-reports

尝试使用下一个代码进行子报告:

int SelectedVoucher=Integer.valueOf(VNumber_ID_lbl.getText());
try {
    Connect c=new Connect();
    HashMap map = new HashMap();
    map.put("Voucher_ID", SelectedVoucher);
    String PaymentReport="src\\voucherexpress\\VoucherReport.jrxml";
    String SubPaymentReport="src\\voucherexpress\\VoucherReport_subreport1.jrxml";               
    JasperReport jasperMasterReport = JasperCompileManager.compileReport(PaymentReport);
    JasperReport jasperSubReport = JasperCompileManager.compileReport(SubPaymentReport);

    JasperPrint jasp_print=JasperFillManager.fillReport(jasperMasterReport, map,c.Connstr);
    JasperViewer.viewReport(jasp_print);
    c.Connstr.close();

} catch (JRException | SQLException | IOException ex) {
    JOptionPane.showMessageDialog(null, ex);
}

我在主报告中添加了子报告,创建了新查询,对其进行了测试,并且运行良好。 两个报告都使用相同的参数(Voucher_ID) 但是当我用主报表执行它时,它只显示主报表数据,子查询为空。 如何在主报告中运行子报告

1 个答案:

答案 0 :(得分:1)

我已经解决了这个问题:
第一:没有使用这些行:

String SubPaymentReport="src\\voucherexpress\\VoucherReport_subreport1.jrxml";  
JasperReport jasperSubReport = JasperCompileManager.compileReport(SubPaymentReport);

第二: 在主报表设计页面中,单击子报表并从属性中选择参数,添加主报表的相同参数>>>并完成了,这是工作

相关问题