Boa noite gujeiros, to com um problema aqui que só está acontecendo com uma classe minha (sendo que tenho mais 3 no mesmo padrão e não dão problema algum).
O erro se da pois diz que não existe tabela 'cli_codigo'...entretanto a mesma está presente no banco e a mesma query funciona lá...Aqui vai o codigo da classe:
PS: alguem sabe se o postgree é diferente do MySQL Server nesse sentido (pra utilizar o jasper) pq eu uso a mesma query no SGBD e não da problema algum....
package XML;
import Connection.ConnectionFactory;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.HashMap;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JRResultSetDataSource;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperExportManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.design.JasperDesign;
import net.sf.jasperreports.engine.xml.JRXmlLoader;
public class Termo_Jasper {
private Connection conexao;
public Termo_Jasper() throws SQLException {
this.conexao = ConnectionFactory.getConexao();
}
public void gerar(String layout, String cliente) throws JRException, SQLException, ClassNotFoundException {
//gerando o jasper design
JasperDesign desenho = JRXmlLoader.load(layout);
//compila o relatório
JasperReport relatorio = JasperCompileManager.compileReport(desenho);
//estabelece conexão
String query = "select cli_nome, cli_datanasc, cli_cpf, cli_rg, cli_rua || ' ' || cli_numero || ', ' || cli_bairro || ' - ' || cli_cidade as ENDERECO from cliente where cli_codigo = '"+cliente+"'";
System.out.println(query);
java.sql.PreparedStatement stmt = this.conexao.prepareStatement(query);
ResultSet rs = stmt.executeQuery();
//implementação da interface JRDataSource para DataSource ResultSet
JRResultSetDataSource jrRS = new JRResultSetDataSource(rs);
//executa o relatório
HashMap parametros = new HashMap();
parametros.put("mostruario", new Double(10));
JasperPrint impressao = JasperFillManager.fillReport(relatorio, parametros, jrRS);
//exibe o resultado
JasperExportManager.exportReportToPdfFile(impressao, "C:/inked/Termo-" + cliente + ".pdf");
/*JasperViewer viewer = new JasperViewer( impressao , true );
viewer.show();*/
}
}