将列表发送到子报告并在主报告中调用它

时间:2015-05-20 19:27:07

标签: java list jasper-reports

我有一个生成pdf报告的方法,将List作为数据源发送并保存在给定目录中,现在有必要使用子报告,但我无法理解如何将List作为数据传递此子报告的来源,然后将其显示在主报告中。

这是我生成主报告的方法:

 public boolean generateReport(List list, int numeroRelatorio, String nomePrestador, String dataSistema) {
        JasperReport report = null;
        InputStream image = this.getClass().getResourceAsStream("/br/com/xml/relatorio/LOGO.png");
        filtro.put("Image", image);
        try {
            InputStream inputStreamReal = getClass().getResourceAsStream("/br/com/xml/relatorio/MainReport.jrxml");
            report = JasperCompileManager.compileReport(inputStreamReal);
        } catch (JRException ex) {
            Logger.getLogger(frmPegaXml.class.getName()).log(Level.SEVERE, null, ex);
            JOptionPane.showMessageDialog(null, "Erro ao pegar arquivos!", "ERRO!", JOptionPane.ERROR_MESSAGE);
        }
        try {
            JasperPrint print = JasperFillManager.fillReport(report, filtro, new JRBeanCollectionDataSource(list));
            JasperExportManager.exportReportToPdfFile(print,
                    "C:/Demonstrativos/" + dataSistema + "/" + nomePrestador + "_" + dataSistema + "_" + numeroRelatorio + ".pdf");
            return true;

        } catch (JRException ex) {
            Logger.getLogger(frmPegaXml.class.getName()).log(Level.SEVERE, null, ex);
            JOptionPane.showMessageDialog(null, "Erro ao Gerar relatório, verifique se nenhum arquivo está aberto ou se o nome está correto!\n" + ex, "ERRO!", JOptionPane.ERROR_MESSAGE);
            return false;
        }

    }

我试过这种方式,但它没有工作:

filtro.put("listaDados", list);
filtro.put("localizarRel", "src/br/com/xml/relatorio/subRelatorio.jasper");

那是例外:

15/05/21 10:36:25 ERROR fill.JRFillSubreport: Fill 1: exception
net.sf.jasperreports.engine.JRException: Error retrieving field value from bean : dataRealizacao

这个Bean dataRealizacao是我的子报告的一部分,有谁知道我可能会失踪的地方?

更新问题: 课程程序:

public class Procedimentos {

    private String numLote;
    private String dataRealizacao;
    private String descriçãoServico;
    private String codTab;
    private String codigoServico;
    private String quantidadeExecutada;
    private BigDecimal valorProcessado;
    private BigDecimal valorLiberado;
    private BigDecimal valorGlosa;
    private String codigoGlosa;
    private String sequenciaGuiaProcedimento;
    private String sequenciaGuiaDados;
    private String nomeBeneficiario;
    private String valorLiberadoGuia;
    ...

我的子报告: enter image description here

我的主报告中有2个参数: listaDados (java.util.List)localizarRel (java.lang.String),表达式默认=" C: \ Users \ Adiego \ JaspersoftWorkspace \ MyReports \ subRelatorio.jasper"

在我关于子报告属性的主要报告中,我这样做: enter image description here

0 个答案:

没有答案