Abrir relatório do JasperReport rápido na primeira vez

3 respostas
BILL

Olá pessoal!

estou com uma dificuldade, pode até ser boba, mas não sei como resolver.
se alguém puder me ajudar agradeço.

os relatórios do projeto que estou desenvolvendo usa o JasperReport, e quando vai abrir um relatório pela primeira vez, ele demora um pouco, mas quando vai abrir pela segunda vez, o relatório abre bem rápido.

gostaria de saber

esse é o código que tenho para gerar e abrir meus relatórios.
se alguém puder ajudar fico agradecido!

JRDataSource jrds = new JRBeanCollectionDataSource(lista);
try {
    JasperReport report = new JasperCompileManager().compileReport(relatorio);
    JasperPrint print = JasperFillManager.fillReport(report,parameters,jrds);

    pbRelatorio.finalizaProgressBar();

    if(!print.getPages().isEmpty()){
        JasperViewer jv = new JasperViewer(print,false);
        jv.setExtendedState(6);
        jv.setTitle("TECSOFT - "+relatorio);
        jv.setVisible(true);
    }else{
        new Mensagem().deInformacao("Relatório sem informação à ser exibida!");
    }
} catch (JRException ex) {
    ex.printStackTrace();
}

3 Respostas

ceneri

o amigo não vo poder resolver sua duvida…mas eu acho q vc vai resolver a minha…cara eu não consigo fazer relatorio de jeito nenhum…consigo fazer o relatorio no Ireport, mas eu quero colocar um botão para chamar o relatorio…se eu usar este codigo seu eu vo conseguir fazer isso?
flw abraços…

BILL

ceneri:
o amigo não vo poder resolver sua duvida…mas eu acho q vc vai resolver a minha…cara eu não consigo fazer relatorio de jeito nenhum…consigo fazer o relatorio no Ireport, mas eu quero colocar um botão para chamar o relatorio…se eu usar este codigo seu eu vo conseguir fazer isso?
flw abraços…

ceneri, vc consegue sim!

meus relatórios recebem uma Collection e popula o relatório.
se vc tem sql lá no relatorio usa esse código

try {
    con = ConnectionFactory.getConnection();
    JasperPrint print = JasperFillManager.fillReport(relatorio, parameters, con);
    //Finaliza progressBar
    pbRelatorio.finalizaProgressBar();
    
    //Abre relatório se tiver informação
    if(!print.getPages().isEmpty()){
        JasperViewer jv = new JasperViewer(print,false);
        //Maximiza a janela do relatório
        jv.setExtendedState(6);
        jv.setTitle("TECSOFT - "+relatorio);
        jv.setVisible(true);
    }else{
        new Mensagem().deInformacao("Relatório sem informação à ser exibida!");
    }
} catch (JRException ex) {
    ex.printStackTrace();
}
ceneri

amigo vc não tem skype para gente se comunicar…
flw abraços

Criado 10 de junho de 2011
Ultima resposta 13 de jun. de 2011
Respostas 3
Participantes 2