Problema em mostrar Relatorio do iReport em JFRAME![RESOLVIDO]

8 respostas
Raarm

Eai Galera,

Criei um relatorio simples no iReport. Um relatorio de teste com apenas alguns textos estaticos e estou abrindo-o em pdf.

Estou chamando este relatorio em uma ação de um botão numa JFrame.

Connection c = null;
JasperReport jr = JasperCompileManager.compileReport("/Relatorio.jrxml"); 
Date d = new Date();
byte[] bytes = JasperRunManager.runReportToPdf(jr,new HashMap(),c);
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(System.getenv("TEMP")+"/APD_"+fdata2.format(d)+".pdf"));   

           if(bytes != null && bytes.length > 0)
                 {
                	 bos.write(bytes,0,bytes.length); 
                  }

               
                 Runtime run = Runtime.getRuntime();
                 Process proc = run.exec("cmd.exe /C start "+System.getenv("TEMP")+"/APD_"+fdata2.format(d)+".pdf");  
                 bos.close();

O grande problema disso tudo é que o pdf abre, mais vazio (ele abre no formato que eu criei - paisagem)!!! Será que tem que existir obrigatoriamente paramatros no relatorio? Será que estou armazenando direto do BufferedOutputStream?
:?

Vlw

8 Respostas

D

Eu estou curioso, o relatorio está rodando dentro de uma interface swing??

Raarm

SIM!

private void jButtonRelActionPerformed(ActionEvent evt) 
    {
    	 cursor = Cursor.getPredefinedCursor( Cursor.WAIT_CURSOR );   
		    this.setCursor(cursor);
    	 try
         {
    	Connection c = null;
    	    	
    	JasperReport jr = JasperCompileManager.compileReport("/Relatorio.jrxml"); //Report_SR1.jrxml
    	         
        
          
                 Date d = new Date();
                 byte[] bytes = JasperRunManager.runReportToPdf(jr,new HashMap(),c);
                 BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(System.getenv("TEMP")+"/APD_"+fdata2.format(d)+".pdf"));   
                 if(bytes != null && bytes.length > 0)
                 {
                	 bos.write(bytes,0,bytes.length); 
                  }

                // bos.write(bytes); 
                 Runtime run = Runtime.getRuntime();
                 Process proc = run.exec("cmd.exe /C start "+System.getenv("TEMP")+"/APD_"+fdata2.format(d)+".pdf");  
                 bos.close();
               
           
           }catch(Exception e){e.printStackTrace();}       

           cursor = Cursor.getDefaultCursor();   
       	this.setCursor( cursor );  

    }
Raarm

Interessante este link!

http://www.guj.com.br/posts/list/72232.java

Raarm

Alguem tem alguma ideia?? :?

G

nao precisa existir parametros no seu relatorio, se ele tiver textos estaticos quando vc exibir o seu relatorio ele deverá exibir os textos criados sem problema algum, no ireport quando vc executa o relatorio ele eh exibido normalmente? quando vc configura no ireport para exibir em pdf ele exibi normalmente?

vlws

Raarm

Aparece sim!!

Mas quando eu visualizo no jframe nao rola!

Tentei tb:

Connection c = null;
Date d = new Date();
Map param = new HashMap();   
  

InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream( "reports/Relatorio_Pagamentos.jrxml" );   
JasperReport jreport = JasperCompileManager.compileReport(jdesign);   
JasperPrint jprint = JasperFillManager.fillReport(jreport, param, c);   
JasperExportManager.exportReportToPdfFile(jprint, System.getenv("TEMP")+"/APD_"+fdata3.format(d)+".pdf");
Runtime run = Runtime.getRuntime();
Process proc = run.exec("cmd.exe /C start "+System.getenv("TEMP")+"/APD_"+fdata3.format(d)+".pdf");

Raarm

ACHEI!!!

Tem uma propriedade do documento:

Quando sem informações

Voce deve selecionar na lista drop down

Todas as seções, nenhum detalhe

se você for ver no xml ele altera a tag whenNoDataType para:

whenNoDataType="AllSectionsNoDetail"


G

seu esforço foi compensado heim… rsrsrs

fika a dica pra galera, nos primeiros gelatorios que gerei nao tive esse problema, mais vale a dica

vlws

Criado 11 de abril de 2008
Ultima resposta 15 de abr. de 2008
Respostas 8
Participantes 3