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);
}
}
}