tenho a minha classe
package percistencia;
import java.sql.Connection;
import java.sql.ResultSet;
import java.util.HashMap;
import java.util.Map;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JRResultSetDataSource;
import net.sf.jasperreports.engine.JasperExportManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.view.JasperViewer;
public class ClienteRel {
public void geraRelatorio(ResultSet rs) throws JRException, Exception{
Connection con = Postgre.getConexao();
JRResultSetDataSource jrRS = new JRResultSetDataSource( rs );
Map parameters = new HashMap();
JasperFillManager.fillReportToFile( "BibliotecaPessoal.jasper", parameters, jrRS );
JasperExportManager.exportReportToPdfFile( "BibliotecaPessoal.jrprint" );
JasperRunManager.runReportToPdfFile("BibliotecaPessoal.jasper", parameters, jrRS);
JasperViewer.viewReport( "BibliotecaPessoal.pdf", false );
}
public static void main(String[] args) throws JRException, Exception{
new ClienteRel();
}
}
o metodo que espera um ResultSet e tenho o metodo da pesquiza
public List<Cliente> listar(String Nome_Cliente) {
String sql = "SELECT * FROM Cliente WHERE UPPER(nome_cliente) LIKE ?";
try {
PreparedStatement stmt = getConexao().prepareStatement(sql);
stmt.setString(1, "%" + Nome_Cliente.toUpperCase() + "%");
ResultSet rs = stmt.executeQuery();
return getCliente(rs);
} catch (SQLException sQLException) {
System.out.println("Erro ao listar Cliente");
}
return null;
}
o metodo q me retorna uma lista dessas pesquisa
public List<Cliente> getCliente(ResultSet rs) throws SQLException {
if(rs == null)
return null;
List<Cliente> lista = new ArrayList<Cliente>();
while(rs.next()) {
Cliente cli = new Cliente();
cli.setid_Cliente(rs.getInt("id_cliente"));
cli.setNome_Cliente(rs.getString("nome_cliente"));
cli.setEstado_Cliente(rs.getString("estado_cliente"));
try {
cli.setCpf_Cliente(rs.getString("cpf_cliente"));
} catch (excessao ex) {}
cli.setData_Cliente(new Date(rs.getDate("data_cliente").getTime()));
lista.add(cli);
}
return lista;
}
ClienteDao cliente = new ClienteDao();
ClienteRel cli = new ClienteRel();
List<Cliente> lista = cliente.listar(campo_pra_pesquisaNome.getText());
try{
cli.geraRelatorio((ResultSet) lista);
} catch (Exception ex) {
Logger.getLogger(ConsultarCliente.class.getName()).log(Level.SEVERE, null, ex);
}
e o erro seguinte
17/12/2008 11:05:18 apresentacao.ConsultarCliente jImprimirActionPerformed
SEVERE: null
java.lang.ClassCastException: java.util.ArrayList cannot be cast to java.sql.ResultSet
alguem ajuda ai !!!!!!!
Ajuda na classe
5 Respostas
T
O erro é óbvio (você não pode passar um ArrayList para algo que espera um ResultSet), então você precisa criar um método igualzinho que aceite um ArrayList, não um ResultSet.
e como que eu crio um metodo que me retorne um ResultSet???
B
cli.geraRelatorio((ResultSet) lista);
Tire o ResultSet e adicione um método geraRelatorio em ClienteRel que receba um List.
public ResultSet listarRel(String Nome_Cliente) {
String sql = "SELECT * FROM Cliente WHERE UPPER(nome_cliente) LIKE ?";
try {
PreparedStatement stmt = getConexao().prepareStatement(sql);
stmt.setString(1, "%" + Nome_Cliente.toUpperCase() + "%");
ResultSet rs = stmt.executeQuery();
return (rs);
} catch (SQLException sQLException) {
System.out.println("Erro ao listar Cliente");
}
return null;
}
criei esse ai e deu o seguinte
presentacao.ConsultarCliente jImprimirActionPerformed
SEVERE: null
net.sf.jasperreports.engine.JRException: Error loading object from file : Cliente.pdf
at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:92)
at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:64)
at net.sf.jasperreports.view.JRViewer.loadReport(JRViewer.java:1417)
at net.sf.jasperreports.view.JRViewer.<init>(JRViewer.java:253)
at net.sf.jasperreports.view.JRViewer.<init>(JRViewer.java:224)
at net.sf.jasperreports.view.JasperViewer.<init>(JasperViewer.java:142)
at net.sf.jasperreports.view.JasperViewer.viewReport(JasperViewer.java:409)
at net.sf.jasperreports.view.JasperViewer.viewReport(JasperViewer.java:340)
criou o pdf em branco
agora sim relatorioc FUNCIONANDO ai ta a classe pra faze relatorio cliente
package percistencia;
import net.sf.jasperreports.engine.*;
import net.sf.jasperreports.view.*;
import java.sql.*;
import java.util.*;
/**
*
* @author Fabio
*/
public class ClienteRel {
public void ClienteRel(ResultSet rs) throws JRException {
JRResultSetDataSource jrRS = new JRResultSetDataSource( rs );
Map parameters = new HashMap();
JasperPrint jprint = JasperManager.fillReport("C:\teste\relatorios\Cliente.jasper", parameters, jrRS);
JasperViewer.viewReport(jprint,false);
}
}
ai o metodo que retorna o resultSet para o ClienteRel
public ResultSet listarRelCliente(String Nome_Cliente) {
String sql = "SELECT * FROM Cliente WHERE UPPER(nome_cliente) LIKE ?";
try {
PreparedStatement stmt = getConexao().prepareStatement(sql);
stmt.setString(1, "%" + Nome_Cliente.toUpperCase() + "%");
ResultSet rs = stmt.executeQuery();
return (rs);
} catch (SQLException sQLException) {
System.out.println("Erro ao listar Cliente");
}
return null;
}
aqui no botao que faz a pesquisa e chama a funcao e passa pro relatorio o resultSet da pesquisa
ClienteDao cliente = new ClienteDao();
ClienteRel cli = new ClienteRel();
ResultSet rs = cliente.listarRelCliente(campo_pra_pesquisaNome.getText());
try {
cli.ClienteRel(rs);
} catch (Exception ex) {
Logger.getLogger(ConsultarCliente.class.getName()).log(Level.SEVERE, null, ex);
}
AI AGRADECO A TODOS PELA AJUDA VALEUUUUUUUUUUUU
Criado 17 de dezembro de 2008
Ultima resposta 17 de dez. de 2008
Respostas 5
Participantes 3
Alura POO: o que é programação orientada a objetos? Aprenda os conceitos básicos da programação orientada a objetos, como classes, objetos, herança, encapsulamento e polimorfismo, com exemplos.
Casa do Codigo Inteligencia Artificial e ChatGPT: Da revolucao dos... Por Fabricio Carraro — Casa do Codigo