Filtrar relatorio no ireport

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

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

[code]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/(1000L606024);
// long horas = dif/(1000L
6060);
//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);     
 
}     

}[/code]

Codigo da conexao com o banco e o ireport

[code]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;   
}   

}[/code]