Olá javeiros!
é o seguinte...
estou com problema em gerar um subrelatório no iReport!
No iReport ele tá executando certinho, imprime o Relatório e o Subrelatório normalmente.
O Problema é que quando vou executar os "
.jasper" através da minha classe Relatorio.java, ele dá o seguinte erro:
01/12/2007 12:43:06 net.sf.jasperreports.engine.query.JRJdbcQueryExecuter
<init>
WARNING: The supplied java.sql.Connection object is null.
por favor, alguém tem alguma idéia de como resolver?
estou precisando muito resolver esse problema.
desde já agradeço.
[]'s
//classes
//classe Relatorio
//imports aqui!
public class Relatorio {
private static final String pathReport = "Relatorio_Teste.jasper";
private static final String pathSubReport = "Relatorio_Teste_Sub.jasper";
JasperPrint relatorio = null;
static PreparedStatement st = null;
static ResultSet rs = null;
Map parametros;
public void geraRelatorio(String id) throws JRException, Exception{
st =
Conexao.getConexao().prepareStatement(
"select * from tbconvenio where id_convenio = '"+id+"'");
rs = st.executeQuery();
JRResultSetDataSource jrRS = new JRResultSetDataSource( rs );
parametros = new HashMap();
parametros.put("SUBREPORT_DIR", pathSubReport);
JasperReport jasperReport = (JasperReport)JRLoader.loadObject(pathReport);
relatorio = JasperFillManager.fillReport
(jasperReport, parametros, jrRS);
JasperViewer viewer = new JasperViewer(relatorio, false);
viewer.setVisible(true);
Conexao.fecharConexao();
}
public static void main(String[] args){
Relatorio rel = new Relatorio();
try {
rel.geraRelatorio("012002");
}catch (Exception e) {
e.printStackTrace();
}
}
}
//classe Conexao
//imports aqui!
public class Conexao {
private static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
private static final String DATABASE_URL = "jdbc:mysql://localhost/dbconvenio";
public static Connection connection = null;
public static Connection getConexao(){
try{
if(connection == null){
Class.forName(JDBC_DRIVER);
connection = DriverManager.getConnection
(DATABASE_URL, "georgy", "georgy");
System.out.println ("Banco Conectado");
}
}
catch(java.lang.ClassNotFoundException erroClass){
erroClass.printStackTrace();
mensagemErro(); }
catch(SQLException sqlex){
sqlex.printStackTrace();
mensagemErro(); }
return connection;
}
public static void fecharConexao(){
try{
if(connection != null){
connection.close();
connection = null;
System.err.println ("Banco DesConectado");
}
}
catch(Exception ex){
ex.printStackTrace();
mensagemErro(); }
}
private static void mensagemErro(){
JOptionPane.showMessageDialog(null, "Erro na Conexão com o Banco de Dados", "ERRO", 0,
new ImageIcon("imagens/imgerro.png"));
}
}