Filtrar relatorio no ireport

0 respostas
D

Estou com problema para filtrar um relatorio por data no ireport a query do relatorio e essa

select*from cliente where date(data) = $P{dat}

porem ao digitar no campo texto a data e clicar no botao que filtra o relatorio nao tras nenhum filtro o que posso fazer? alguem me ajuda?

nao coloquei nada do editor de expressao e expressao de filtragem apenas criei o parametro e coloquei na query do relatorio uso o ireport 2.0.4 alguem pode ajudar? preciso filtra esse relatorio obrigada.

Codigo do filtro de relatorio

import java.awt.event.*;     
import java.text.ParseException;   
import java.text.SimpleDateFormat;     
import java.util.Date;     
     
import javax.persistence.EntityManager;     
import javax.persistence.EntityManagerFactory;     
import javax.persistence.Persistence;     
import javax.swing.*;     
     
import Modelo.Cliente;     
import Modelo.Compra;     
import Modelo.Conta;     
     
import net.sf.jasperreports.engine.JasperPrint;     
import net.sf.jasperreports.view.JasperViewer;     
     
//import controle.Utilitarios;     
     
// Ctrl+Shift+F => Formata o código     
// Ctrl+A e Ctrl+i => Formata a seleção     
     
public class FiltroCliente extends JFrame {     
    private JLabel rotulo1;     
    private JTextField caixa1;     
    private JButton botao1;     
     
    private static EntityManagerFactory fabricaDeEntidades = null;     
     
    private static EntityManager gerenciador = null;     
    Cliente objetoCliente;     
    ImageIcon icone;     
    public FiltroCliente(EntityManagerFactory fabricaDeEntidades2, EntityManager gerenciador2) throws ParseException {     
        super("Relatório Cliente");     
        Container tela = getContentPane();     
        icone = new ImageIcon("100.gif");     
        botao1 = new JButton (icone);     
        tela.setLayout(null);     
        fabricaDeEntidades=fabricaDeEntidades2;     
        gerenciador=gerenciador2;     
     
        rotulo1 = new JLabel("Data:");     
         
        caixa1 = new JTextField();     
             
        //botao1 = new JButton("Gerar Relatório");     
         
     
        // coluna, linha, largura, altura     
        rotulo1.setBounds(24, 19, 56, 20);     
        caixa1.setBounds(75, 19, 100, 20);     
     
        botao1.setBounds(54, 60, 100, 20);     
             
     
        //rotulo2.setBounds(24, 50, 100, 20);     
        //caixa2.setBounds(75, 50, 100, 20);     
     
             
     
        tela.add(rotulo1);     
        tela.add(caixa1);     
     
        //tela.add(rotulo2);     
        //tela.add(caixa2);     
     
        tela.add(botao1);     
         
    //SimpleDateFormat formatador = new SimpleDateFormat("dd/MM/yyyy");   
  
//      Transforma uma String em um Date   
    // Date base = formatador.parse("29/01/2007");   
    // Date hoje= new Date();   
  
//      Calcula a diferença em milisegundos entre as duas datas   
     //long dif = hoje.getTime() - base.getTime();   
  
//      divide a diferença pelo numero de milisegundos de 1 dia, que seria 86400000   
    // long dias = dif/(1000L*60*60*24);   
    // long horas = dif/(1000L*60*60);   
     //long minutos = dif/(1000L*60);   
  
    // System.out.println("Data Atual: " + hoje);   
   //  System.out.println("Data FORMATADA: " + formatador.format(base));   
    // System.out.println("Dif. em Dias: " + dias);   
   //  System.out.println("Dif. em Horas: " + horas);   
    // System.out.println("Dif. em Minutos: " + minutos);   
  
       
        botao1.addActionListener(new ActionListener() {     
                 
            public void actionPerformed(ActionEvent e) {     
                RelatorioCliente rep = new RelatorioCliente();     
                gerenciador.createQuery(       
                            "from Cliente pr WHERE data = :data");   
                JasperPrint relat;     
                try {     
                    relat = rep.gerarRelatorioCliente();     
                    JasperViewer.viewReport(relat, false);     
                } catch (Exception e1) {     
                    e1.printStackTrace();     
                }     
//                   
            }     
            });     
     
        // setSize(largura, altura);     
        setSize(250, 150);     
        setVisible(true);     
        setLocationRelativeTo(null);     
    }     
     
    public static void main(String[] args) throws ParseException {     
     
        fabricaDeEntidades = Persistence     
                .createEntityManagerFactory("TurmaN40PostgreSQL");     
     
        gerenciador = fabricaDeEntidades.createEntityManager();     
     
        FiltroCliente app = new FiltroCliente(fabricaDeEntidades, gerenciador);     
        app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);     
     
    }     
}

Codigo da conexao com o banco e o ireport

import java.sql.Connection;   
import java.sql.DriverManager;   
import java.sql.SQLException;   
import java.util.HashMap;   
  
import net.sf.jasperreports.engine.JRException;   
import net.sf.jasperreports.engine.JasperFillManager;   
import net.sf.jasperreports.engine.JasperPrint;   
  
  
public class RelatorioCliente   
{   
    Connection con;   
       
    public JasperPrint gerarRelatorioCliente()   
    throws Exception   
    { JasperPrint rel=null;   
       
    String url = "jdbc:postgresql://localhost:5432/TurmaN40";   
    try {   
        Class.forName("org.postgresql.Driver");   
    } catch(java.lang.ClassNotFoundException e1) {   
        System.err.print("ClassNotFoundException: ");   
        System.err.println(e1.getMessage());   
    }   
    try {   
        con = DriverManager.getConnection(url,"postgres", "postgres");   
    } catch(SQLException ex) {   
        System.err.print("SQLException: ");   
        System.err.println(ex.getMessage());   
  
    }   
  
    try { // Connection con = Conexao.criaConexao();   
    HashMap<String, JasperPrint> map= new HashMap<String, JasperPrint>();   
    map.put("data", rel);   
    String arquivoJasper= "C:\\vidracaria\\RelatorioCliente.jasper";   
    rel=JasperFillManager.fillReport(arquivoJasper,map,con);   
    con.close();   
    }   
    catch (JRException e)   
    { e.printStackTrace();   
    }   
    return rel;   
    }   
}
Criado 1 de junho de 2012
Respostas 0
Participantes 1