Problemas com ireport

7 respostas
F

Galera, criei uns relatórios no ireport, e tava usando de boa, sem mais nem menos a classe que abria os relatórios parou de funcionar...
Os relatórios podem ser visualizados de boa no próprio ireport, mas a classe me retorna uma msg dizendo que não foi possível encontrar o arquivo especificado (no caso o xml). Se alguém puder me ajudar ficaria grato.

Segue abaixo o código da minha classe que visualiza os relatórios

package trr;

import java.util.*;
import java.sql.*;
import net.sf.jasperreports.engine.*;
import net.sf.jasperreports.engine.base.*;
import net.sf.jasperreports.engine.design.*;
import net.sf.jasperreports.engine.util.*;
import net.sf.jasperreports.view.*;

import net.sf.jasperreports.view.save.*;
import net.sf.jasperreports.view.*;
import net.sf.jasperreports.view.save.JRPdfSaveContributor.*;
import net.sf.jasperreports.view.JRViewer.*;

import javax.swing.*;

public class Relatorios
{
	public void visualizar(String consulta, String arquivo)
	{
		JasperPrint jp = new JasperPrint();
		
		try
		{
			
			String hostName = "localhost"; 
    		String userName = "usuario"; 
    		String password = "senha";    
    		String jdbcDriver = "org.postgresql.Driver"; 
    		String dataBaseName = "trr"; 
    		String dataBasePrefix = "jdbc:postgresql://"; 
    		String dabaBasePort = "5432"; 
    		String url = dataBasePrefix + hostName + ":"+dabaBasePort+"/" + dataBaseName + "/";
    		Class.forName(jdbcDriver); 
			Connection con = DriverManager.getConnection(url, userName, password); 
			Statement status = con.createStatement();
			ResultSet rs = status.executeQuery( consulta );
			 
			JRResultSetDataSource jrRS = new JRResultSetDataSource( rs );
						
			HashMap parameters = new HashMap(); 

		    JasperReport jr;
		    JasperPrint jprint;
		
			
			jr = JasperCompileManager.compileReport(arquivo);
			jprint = JasperManager.fillReport(jr, parameters, jrRS);
    		//JasperViewer.viewReport(jprint);
 	 	
 			// Aplicações Swing precisam ser assim, senão fecha toda aplicação ao sair
 			JRViewer aViewer = new JRViewer(jprint);
  			JFrame aFrame = new JFrame("Visualização de Relatório");
 			aFrame.getContentPane().add(aViewer);
 			java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
 			aFrame.setSize(screenSize.width/2+100, screenSize.height/2+100);
 			java.awt.Insets insets = aFrame.getInsets();
 			aFrame.setSize(aFrame.getWidth() + insets.left + insets.right, aFrame.getHeight() + insets.top + insets.bottom + 20);
 			aFrame.setLocation((screenSize.width-aFrame.getWidth())/2+100,(screenSize.height-aFrame.getHeight())/2+100);
 			aFrame.show();
			
		}
		catch(Exception ex)
		{
			JOptionPane.showMessageDialog(null,"RELATÓRIO "+ex,"Erro ao gerar Relatório",JOptionPane.ERROR_MESSAGE);
		}
	}
}

7 Respostas

C

Primeiramente…

O JasperViewer é pra tu visualizar os seus relatórios da melhor forma, entao isso:

// Aplicações Swing precisam ser assim, senão fecha toda aplicação ao sair JRViewer aViewer = new JRViewer(jprint); JFrame aFrame = new JFrame("Visualização de Relatório"); aFrame.getContentPane().add(aViewer); java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize(); aFrame.setSize(screenSize.width/2+100, screenSize.height/2+100); java.awt.Insets insets = aFrame.getInsets(); aFrame.setSize(aFrame.getWidth() + insets.left + insets.right, aFrame.getHeight() + insets.top + insets.bottom + 20); aFrame.setLocation((screenSize.width-aFrame.getWidth())/2+100,(screenSize.height-aFrame.getHeight())/2+100); aFrame.show();

Não é necessário, descomente a linha //JasperViewer.viewReport(jprint); , e rode a aplicação.

F

“Ratinho”:
Primeiramente…

O JasperViewer é pra tu visualizar os seus relatórios da melhor forma, entao isso:

// Aplicações Swing precisam ser assim, senão fecha toda aplicação ao sair JRViewer aViewer = new JRViewer(jprint); JFrame aFrame = new JFrame("Visualização de Relatório"); aFrame.getContentPane().add(aViewer); java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize(); aFrame.setSize(screenSize.width/2+100, screenSize.height/2+100); java.awt.Insets insets = aFrame.getInsets(); aFrame.setSize(aFrame.getWidth() + insets.left + insets.right, aFrame.getHeight() + insets.top + insets.bottom + 20); aFrame.setLocation((screenSize.width-aFrame.getWidth())/2+100,(screenSize.height-aFrame.getHeight())/2+100); aFrame.show();

Não é necessário, descomente a linha //JasperViewer.viewReport(jprint); , e rode a aplicação.

Fiz como vc falou, mas não deu certo!!!
Não entendo parou de repente, tava funcionando…

C

quais os .jars q tu ta usando ?

F

copiei todos os jars do ireport 0.5.1…

C

e esta compilando no iReport da mesma versao ?

F

Sim, só tenho ele no pc, acho que deve ter dado algum pau, vou tentar corrigir denovo aqui e se não der vou formatar o pc. Pq tava funcionando de boa e sem mais nem menos parou…

C

Primeiramente tente reinstalar o java ai!

Criado 12 de julho de 2006
Ultima resposta 17 de jul. de 2006
Respostas 7
Participantes 2