Problemas com o iReport

bem,estou coseguindo usar o ireport do jeito q eu kero juntamente com o hibernete, so q esta acontecendo algumas coisa q nao kero q aconteca

1º - qd fecho a janela do iReport ele mata a minha aplicação, tem como eu fazer com q isso nao aconteca, com q seja somente um dispose?

2º - qd mando uma lista vazia ele da a seguinte mensagem: “o documento nao contem paginas” e a janela q se abre abre vazia, gostaria q ela abrisse normalmente, tem como?

bem, a segunda duvida ja consegui solucionar, mas a primeira eu ainda nao consegui resolver, alguem sabe como fazer isso?

Bom Hammer,

Sobre estas coisas,

  1. Sua aplicacão esta se fechando porque você deve estar gerando o relatorio como uma aplicação onde a visualização do relatorio esta ligada ao serviço, ou seja…é como se fosse uma aplicação java em Swing. Quando voce fecha o relatorio,ele mata a aplicação.

JSPREPORT_FILES2= (String)request.getRealPath("/") + "relatorios\relat.jrxml";JasperReport relatorio = JasperCompileManager.compileReport(JSPREPORT_FILES);

PDF_FILES = "Nome_do_relatorio".pdf"
JasperPrint impressao = JasperFillManager.fillReport(relatorio, parametros, con);
strPDFFileName = (String)request.getRealPath("/")+"relatorios/"+PDF_FILES;

  1. Acho que para abrir o relatorio, ele tem que ter algum valor de retorno. Sempre tente colocar uma querye qualquer mesmo com um retorno que não se usar. Ele ira exibir

Espero ter ajudado

bem, ai esta a minha class, em outra classe q eh um jframe eu crio um objeto dela, so rpa vc ver como esta ai:

[code]package gui;

import net.sf.jasperreports.engine.;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
import net.sf.jasperreports.view.
;
import java.util.*;
import dao.OrcamentoHibernateDAO;
import dao.TaxasHibernateDAO;
import entity.Orcamentos;
import entity.Taxas;

/*

  • ImprimeOrcamento.java
  • Created on 7 de Junho de 2007, 10:46
    */

/**
*

  • @author Tércio
    */
    public class ImprimeOrcamento extends javax.swing.JFrame {

    private static final String layout = “/jasper/ImprimeOrcamento.jasper”;
    Calendar cal = new GregorianCalendar();

    /** Creates new form ImprimeOrcamento */
    public ImprimeOrcamento() {
    initComponents();
    }

    public ImprimeOrcamento(Orcamentos orcamento) throws Exception{

     OrcamentoHibernateDAO dao = new OrcamentoHibernateDAO();
     TaxasHibernateDAO dao1 = new TaxasHibernateDAO();
     
     List resultado = dao1.consultarTaxas2(orcamento);
     if(resultado.size() == 0) {
     	Taxas taxa = new Taxas();
     	taxa.setCodigo("");
     	taxa.setServico("");
     	resultado.add(taxa);
     }
     	
     
      String dia = new Integer(cal.get(Calendar.DAY_OF_MONTH)).toString();
      String mes = new Integer(cal.get(Calendar.MONTH)+1).toString();
      String ano = new Integer(cal.get(Calendar.YEAR)).toString();
     
     Map parametros = new HashMap(); 
     parametros.put("nome", orcamento.getNome());        
     parametros.put("data", dia+"/"+mes+"/"+ano);
     parametros.put("nome", orcamento.getNome());
     parametros.put("placa", orcamento.getPlaca());
     parametros.put("renavam", orcamento.getRenavam());
     parametros.put("chassi", orcamento.getChassi());
     parametros.put("fone", orcamento.getFone());
     parametros.put("orcamentoPara", orcamento.getDescricao());
     parametros.put("validade", orcamento.getValidade());
     parametros.put("pagamento", orcamento.getPagamento());
     parametros.put("obs", orcamento.getObs());
     parametros.put("total", orcamento.getValor());
     parametros.put("descontos", orcamento.getDesconto());
     parametros.put("geral", orcamento.getTotal());
     
     JasperPrint impressao = JasperFillManager.fillReport(
     		getClass().getResourceAsStream(layout), parametros, new JRBeanCollectionDataSource(resultado));
    
     JasperViewer viewer = new JasperViewer(impressao, true);
     viewer.setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
     viewer.show();		
    

    }

    /** This method is called from within the constructor to

    • initialize the form.
    • WARNING: Do NOT modify this code. The content of this method is
    • always regenerated by the Form Editor.
      */
      //
      private void initComponents() {

    }//

    /**

    • @param args the command line arguments
      */
      public static void main(String args[]) {
      new ImprimeOrcamento();
      }

}[/code]

oq tenho q mudar para q ela nao mate a aplicacao?
eu ja estou usando direto o .jasper, eel ja eh compilado, nao estou compilado o jrxml como vc postou ai no seu codigo

alguem sabe com fazer isso? estou tentando faz horas aq e nao estou conseguindo

bem, faz isso, ver como esta ai :

JasperViewer viewer = new JasperViewer(impressao, false);

mudar TRUE para FALSE