Estou com o grande problema.
Estou fazendo o seguinte
Em EDITAR>QUERY RELATORIO
estou colocando a seguinte procedure
call sp_Rel_Agupamento_Mensal_Rec_Pag(1,2008,9);
Essa procedure reporta um ‘select’ com 4 campos. O ireport mostra os nomes dos campos certinho.
Porém quando mando executar o relatório ele me traz os valores errados.
Fiz um teste gerando uma tabela e dando um select pelo Ireport, esta me retornando certinho.
Preciso de ajuda. O que posso fazer para que o Ireport mostre os valores que vem da procedure corretamente.
Caio Oliveira
Você esta passando os fields corretos no se relatório?
Sim esta mostrando valores mais são valores errados.
Preciso disso amigos isso já me ajudar muito
Caio Oliveira
Alguém me ajuda por favor :roll:
Vei, posta o código do momento em que vc gera o relatório aí!
Talvez vc tenha que passar suas variáveis de consulta por parâmetro para o JasperReport e declarar esses parâmetros no IReport e colocá-los na consulta…
Mas antes posta aí pra ter uma idéia…
Outra coisa, a consulta não retorna nada ou retorna valores inválidos?!
[]'s
A ideia é chamar o Ireport passando somente a conexão. Colocar no Arquivo Jasper a chamada da procedure.
call sp_Rel_Agupamento_Mensal_Rec_Pag(1,2008,9) ;
Isso já fica armazenado no jasper faço a chamanda do relatorio assim.
package Service.Relatorio;
import java.io.File;
import jdbc.ConnectionFactory;
import java.io.IOException;
import java.sql.SQLException;
import java.sql.Connection;
import java.util.HashMap;
import javax.servlet.Servlet;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperExportManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
public class GeradorDeRelatrios extends HttpServlet implements Servlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String NomeJasper = (String)request.getSession().getAttribute("nomejasper");
String pathJasper = getServletContext().getRealPath("/WEB-INF/classes/jasper/") + "/";
String path = getServletContext().getRealPath("/");
new File(path + NomeJasper + ".pdf").deleteOnExit();
try {
JasperPrint impressao = this.SetaValoresJasper(pathJasper + NomeJasper + ".jasper");
if (impressao != null) {
JasperExportManager.exportReportToPdfFile(impressao, path + NomeJasper + ".pdf");
response.sendRedirect("http://caio:8080/RelatorioWEB/" + NomeJasper + ".pdf");
}
} catch (IOException ex) {
response.getWriter().print("Erro");
} catch (JRException ex) {
response.getWriter().print("Erro2");
}
//response.sendRedirect("http://www.google.com.br");
}
public JasperPrint SetaValoresJasper(String CaminhoArquivoJar) {
try {
@SuppressWarnings("static-access")
Connection con = ConnectionFactory.getInstance().getConnection();
HashMap map = new HashMap();
JasperPrint rel = JasperFillManager.fillReport(CaminhoArquivoJar, map, con);
return rel;
} catch (JRException ex) {
return null;
} catch (SQLException ex) {
return null;
}
}
}
Ele me resporta o fieds certinhos. Porém quando mando executar o relatorio no ireport mesmo ele me mostra uns valores doidos
Me Ajude
Caio Oliveira
evite sempre passar a conexão do banco para o ireport.
tenha sempre uma camada intermediária que te passa as informações para o ireport a partir de um datasource para isto.
você estará evitando este e inúmeros problemas, bem como a saúde de quem for dar manutenção.
Ai Caio … estou com o mesmo problema …
coloquei valores defaul no ireport para testar… mas o retorno para alguns fields é null, e para outros valores que nao tem nada a ve com a consulta…
se eu chamo a procedure no prompt de comando ela funciona blzinha … agora, chamando no ireport ta td zuado …
eu queria sabe se vc achou a solução para esse problema ai …?! ou se alguem pode me ajuda …
aguardo respostas… abraço .
Descio Oliveira.