Ireport gerando relatório em branco - Urgente

Prezados,
Montei um relatório tudo certo, criei dois parâmetros, inseri a consulta SQL: Select DATA,QUANTIDADE,VALOR_TOTAL,DESCONTO,ACRESCIMO,DESCRICAO, VALOR_UNITARIO
from venda, itemvenda, venda_itensvendidos
where VENDA_ID = VENDA_ID_OID AND VENDA_ID = ITEMVENDA_ID;

Ele me retorna os valores, coloquei os fields tudo certo. Quando eu executo o relatório sem usar a conexão, está tudo ok, aparece os campos texto e os campos null. Quando executo com a coneção, ele me retorna um relatório em branco, não sei porque? Alguém sabe me dizer por onde começar a verificar, pois está tudo certo.

Cara, se a fonte for maior que o campo ‘desenhado’ ele não aparece

Quanto aos campos está tudo correto. Não sei porque está acontecendo isso. Quando executo sem a conecção com a banco, ele gera o relatório sem problemas, mais quando usa o banco dá pau, sai em branco.

Você realmente está usando um conexão ativa ???

1- E como o dudu disse REALMENTE não aparece se vc não colocar os
campos de tamanho compativel com o espaço…

2 - pode ser o classpath q vc não configurou…

Sim, está tudo ok com a conecção. Já fiz o teste e tudo. Não sei se o Ireport supurta uma consulta SQL fazendo relacionamento entre três tabelas, acho que sim, pois ele ta me retornando os campos dos fields.

Já gerei outros relatórios e estava tudo rodando blz.

Isso não é o problema nao… pq tenho relatórios com consultas em varias tabelas numa boa… relatorios q chega a demorar bastante tempo :oops:… e ele apresenta numa boa…

Faz o seguinte… TEM CERTEZA Q ESSE SQL ESTA RETORNANDO ALGO ?

:stuck_out_tongue:

Tenho sim cara pois quando eu coloco essa query ele me fornece embaixo os campos que ele buscou. O que acho estranho é que nem os campos estáticos estão saindo, que era pra sair independente do banco, e também não gera nenhuima exceção.

Vamos por parte…

Vc colocou isso ou seja os campos dentro da “aba” DETALHES (Details) ???

Se quizer me manda o arquivo q eu olho pra vc aki

leiber@gmail.com

E ai companheiro deu certo ?

Prezados,

Quem disse continua gerando o relatório em branco, abri o que você mandou e nada quando eu gero dá pau, gera em branco. Não sei mais o que fazer.

Opa, beleza cara?

Bom, seguinte…

Se você já testou a query e já testou a conexão eu aposto, como alguns já fizeram acima, que o problema é na dimensão dos campos…

Faça um teste, redimensione um textField que receberá um valor da consulta. Estabeleça um valor bem acima do esperado.

O ireport tem uns comportamentos meio inesperados no que diz respeito à campo mesmo.

Você está invocando o relatório via java ou testando no próprio I-report com conexão ativa?

Estou invocando diretamente no ireport para depois chamá-lo na servlet. Faço primeiro no Ireport para testar, e depois monto a servlet. Quanto aos tamanhos dos fields está tudo ok.

Segue o Relatório montado e a Servlet que fiz. Montei um relatório só com campos estáticos e Parâmetros. Mais quando executo a Servlet o relatório vem em branco. Montei um com conexão, campos estáticos e fields mais continuava vindo em branco, mesmo eu executando do próprio Ireport.
Há outra coisa no Ireport em Opções e no ClassPath precisa setar alguma coisa? As variáveis de ambientes já configurei.

Vejam se isso é possível fazer isso, pois estou querendo trabalhar com Table model, nesse código que está abaixo:

package relatorio;

import java.io.;
import java.net.
;
import java.io.IOException;
import java.sql.DriverManager;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import javax.naming.Context;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.JasperRunManager;
import net.sf.jasperreports.engine.data.JRTableModelDataSource;
import net.sf.jasperreports.engine.util.JRLoader;
import com.mysql.jdbc.Connection;
import javax.servlet.;
import javax.servlet.http.
;
import javax.servlet.;
import javax.servlet.http.
;
import net.sf.jasperreports.engine.util.JRLoader;
import net.sf.jasperreports.engine.util.JRLoader;
import net.sf.jasperreports.engine.util.JRLoader;
import net.sf.jasperreports.engine.util.JRLoader;
import net.sf.jasperreports.engine.util.JRLoader;
import javax.servlet.;
import javax.servlet.http.
;

/**
*

  • @author Thiago

  • @version
    */
    public class Teste1 extends HttpServlet {

    /** Processes requests for both HTTP GET and POST methods.

    • @param request servlet request

    • @param response servlet response
      /
      protected void processRequest(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
      //obtém a conexão com o banco de dados
      System.out.println(“1”);
      /
      Connection conn = null;
      // Date data = new Date();

           try{
      
           Class.forName("com.mysql.jdbc.Driver");
           conn = (Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306/Dincash1", "root", "647226");
           System.out.println("2");
           }
           catch (Exception e){
           System.out.println(e.getMessage());
           }
           */
            // gera o relatório
           //String path = getServletContext().getRealPath ("/relatorio") + "WEB-INF/src/jasper/ItemComDesconto.jasper";
           ServletContext context = getServletContext();
           byte [] bytes = null;
         System.out.println("3");
           try{
          
          // TableModel model = new DefaultTableModel();
           //JRTableModelDataSource ds = new JRTableModelDataSource(model);
      
           //carrega os arquivos Jasper
                         
           String T = context.getRealPath("/WEB-INF/classes/report/Teste.jasper");
           JasperReport relatorioJasper = (JasperReport)JRLoader.loadObject((T));
           System.out.println("4");
          // Quando tem parametros no relatório
           Map parametros = new HashMap();
         //parametros.put("pDataIni",data);
         //parametros.put("pDataFim", data);
           parametros.put("DATA", new Date());
           parametros.put("QUANTIDADE", new Integer(10));
           parametros.put("DESCRICAO", "Sapato");
           parametros.put("VALOR_TOTAL", new Double (50));
           parametros.put("DESCONTO", new Float (20));
           parametros.put("ACRESCIMO", new Float (10));
           parametros.put("VALOR_UNITARIO", new Double(2.3));
           
           System.out.println("5");
           // direciona a saída do relatório para um stream
          // JasperPrint impressao = new JasperPrint();
           //impressao = JasperFillManager.fillReport(relatorioJasper,parametros);
           bytes = JasperRunManager.runReportToPdf (relatorioJasper, parametros);
           System.out.println("6");
           }catch (JRException e){
           System.out.println(e.getMessage());
           e.printStackTrace();
           }
      
           System.out.println("7");
           if (bytes!= null && bytes.length>0){
           // envia o relatorio em formato PDF para o browser
           
               System.out.println("8");
           response.setContentType("application/pdf");
           response.setContentLength(bytes.length);
           ServletOutputStream ouputStream = response.getOutputStream();
           ouputStream.write(bytes, 0, bytes.length);
           ouputStream.flush();
           ouputStream.close();
       }
      

}

protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
    processRequest(request, response);
}


protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
    processRequest(request, response);
}

/** Returns a short description of the servlet.
 */
public String getServletInfo() {
    return "Short description";
}
// </editor-fold>

}

Como disse anteriormente eu peguei seu relatorio, coloquei meus sem mexer em nada usei minha conexão e montei um sql a minha nescessidade e rodou PERFEITAMENTE.

O problema deve ser Seu SQL q não está retornando dados pq se vc roda inclusive no IReports e nao apresenta nada… o problema tem q ser no seu design do relatorio ou no sql retornando null…

vc tem certeza q o seu sql retorna dados ??? ja rodou esse sql em um um phpmyadmin ou mesmo dbtools etc… e teve realmente dados retornados?

Rpz já testei a SQL no Banco MySQL e funciou tudo blz. Não sei mais o que testar.

Cara, uma vez eu tive esse problema quando a conexão ao banco estava configurada de maneira errada. Eu acho que tem a ver com a maneira como você está fazendo as conexões.

Rpz quando configuro o Banco e faço o teste de conexão ele informa que está tudo blz. E testo primeiro o relatório no Ireport usando a conexão do banco, para verificar se está tudo ok, mais nada sai uma página em branco e nem os campos estáticos não aparece. Estou querendo usar um Table Model, sem conecção do Banco e sim um DATASOURCE. Queria ver se eu achava um tutorial ensinando a usar o Table Model e o Ireport.

Entao agora eu passo!.. estou sem fichas… :?: :?:

Eu insisto em dizer que é problema no driver, ou na fonte ODBC/JDBC, ou na string de conexão, ou qualquer coisa parecida…

Ja aconteceu comigo, eu conseguia até mesmo receber os campos do banco na hora de fazer a query(pelo IREPORT mesmo), e não lembro porque, acontecia isso de tudo ficar em branco na hora de gerar usando a conexao.