Filtro de relatorio

ola td bem? estou precisando de uma grande ajuda criei um filtro de relatorio mais a conexao…mais quero q retorne apenas os resultados da consulta que foi feita no filtro mais nao estou conseguindo…fiz o relatório no ireport ja… segue abaxo o meu código mais nao sei se tem q fazer algo no ireport o meu código é esse que segue abaixo…

minha conexao

[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\\RelatoriodeCliente.jasper"; 
rel=JasperFillManager.fillReport(arquivoJasper,map,con);
con.close();
}
catch (JRException e)
{ e.printStackTrace(); 
} 
return rel; 
}

}[/code]

meu filtro

[code]import java.awt.;
import java.awt.event.
;
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;
public FiltroCliente(EntityManagerFactory fabricaDeEntidades2, EntityManager gerenciador2) {
	super("Filtrar Relatório Cliente");
	Container tela = getContentPane();

	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, 56, 20);

	botao1.setBounds(24, 186, 70, 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);


	botao1.addActionListener(new ActionListener() {
		
		public void actionPerformed(ActionEvent e) {
			RelatorioCliente rep = new RelatorioCliente(); 
			objetoCliente = 
				(Cliente)	gerenciador.createQuery(  
            "from Cliente pr WHERE pr.data = :data").setParameter("data", caixa1.getText()).getSingleResult();
			JasperPrint relat;
			try {
				relat = rep.gerarRelatorioCliente();
				JasperViewer.viewReport(relat, false);
			} catch (Exception e1) {
				e1.printStackTrace();
			}

//
}
});

	// setSize(largura, altura);
	setSize(315, 350);
	setVisible(true);
	setLocationRelativeTo(null);
}

public static void main(String[] args) {

	fabricaDeEntidades = Persistence
			.createEntityManagerFactory("TurmaN40PostgreSQL");

	gerenciador = fabricaDeEntidades.createEntityManager();

	FiltroCliente app = new FiltroCliente(fabricaDeEntidades, gerenciador);
	app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

}[/code]