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?
rockstorm
Bom Hammer,
Sobre estas coisas,
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.
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
Hammer
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:
packagegui;importnet.sf.jasperreports.engine.*;importnet.sf.jasperreports.engine.data.JRBeanCollectionDataSource;importnet.sf.jasperreports.view.*;importjava.util.*;importdao.OrcamentoHibernateDAO;importdao.TaxasHibernateDAO;importentity.Orcamentos;importentity.Taxas;/* * ImprimeOrcamento.java * * Created on 7 de Junho de 2007, 10:46 *//** * * @author Tércio */publicclassImprimeOrcamentoextendsjavax.swing.JFrame{privatestaticfinalStringlayout="/jasper/ImprimeOrcamento.jasper";Calendarcal=newGregorianCalendar();/** Creates new form ImprimeOrcamento */publicImprimeOrcamento(){initComponents();}publicImprimeOrcamento(Orcamentosorcamento)throwsException{OrcamentoHibernateDAOdao=newOrcamentoHibernateDAO();TaxasHibernateDAOdao1=newTaxasHibernateDAO();Listresultado=dao1.consultarTaxas2(orcamento);if(resultado.size()==0){Taxastaxa=newTaxas();taxa.setCodigo("");taxa.setServico("");resultado.add(taxa);}Stringdia=newInteger(cal.get(Calendar.DAY_OF_MONTH)).toString();Stringmes=newInteger(cal.get(Calendar.MONTH)+1).toString();Stringano=newInteger(cal.get(Calendar.YEAR)).toString();Mapparametros=newHashMap();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());JasperPrintimpressao=JasperFillManager.fillReport(getClass().getResourceAsStream(layout),parametros,newJRBeanCollectionDataSource(resultado));JasperViewerviewer=newJasperViewer(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. */// <editor-fold defaultstate="collapsed" desc=" Generated Code "> privatevoidinitComponents(){}// </editor-fold> /** * @param args the command line arguments */publicstaticvoidmain(Stringargs[]){newImprimeOrcamento();}}
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
Hammer
alguem sabe com fazer isso? estou tentando faz horas aq e nao estou conseguindo
G
gamopu
bem, faz isso, ver como esta ai :
JasperViewer viewer = new JasperViewer(impressao, false);