Duvidas Banco de Dados com IReport

Olá a todos… :slight_smile:

Bom estou desenvolvendo um sistema que gera um Relatório, para ser mais especifico uma etiqueta… Bom consegui criar o (Relatório) e abrir ele pelo sistema que desenvolvi, mas o problema é o seguinte!!! Quando digito o cógido para ele pesquisar no BD quero que me traga no (Relatório) o código que eu digite, mas o que está acontecendo é que ele sempre busca o último registro do BD, sendo que não é essa a finalidade!!!
“Obs. É um sistema Desktop”

Segue as minhas classes

Classe da Tela Autenticação:

import java.sql.*;
import java.util.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import javax.swing.JOptionPane;
import java.io.*;
import net.sf.jasperreports.engine.*;
import net.sf.jasperreports.view.JasperViewer;
public class FAutenticacao extends javax.swing.JFrame {
    
    /** Creates new form FAutenticacao */
    public FAutenticacao() {
        initComponents();
        setBounds(380,250,370,210);
  
    }
    
                           
    private void initComponents() {

        buttonGroup1 = new javax.swing.ButtonGroup();
        jPanel1 = new javax.swing.JPanel();
        jLabel3 = new javax.swing.JLabel();
        jPanel2 = new javax.swing.JPanel();
        txtRH = new javax.swing.JTextField();
        jLabel1 = new javax.swing.JLabel();
        jPanel3 = new javax.swing.JPanel();
        btnOk = new javax.swing.JButton();
        btnCancelar = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
        setTitle("Gerador de Eiquetas");
        setFont(new java.awt.Font("Agency FB", 0, 3));
        setResizable(false);
        addWindowListener(new java.awt.event.WindowAdapter() {
            public void windowOpened(java.awt.event.WindowEvent evt) {
                formWindowOpened(evt);
            }
        });
        getContentPane().setLayout(null);

        jPanel1.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));
        jPanel1.setLayout(null);

        jLabel3.setFont(new java.awt.Font("MS Sans Serif", 1, 12));
        jLabel3.setText("Impressão de Etiquetas");
        jPanel1.add(jLabel3);
        jLabel3.setBounds(60, 10, 180, 15);

        getContentPane().add(jPanel1);
        jPanel1.setBounds(50, 10, 260, 30);

        jPanel2.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));
        jPanel2.setLayout(null);
        jPanel2.add(txtRH);
        txtRH.setBounds(60, 10, 170, 20);

        jLabel1.setText("RH");
        jPanel2.add(jLabel1);
        jLabel1.setBounds(10, 10, 40, 14);

        getContentPane().add(jPanel2);
        jPanel2.setBounds(50, 50, 260, 40);

        jPanel3.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));
        jPanel3.setLayout(null);

        btnOk.setText("Ok");
        btnOk.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnOkActionPerformed(evt);
            }
        });
        jPanel3.add(btnOk);
        btnOk.setBounds(20, 10, 100, 23);

        btnCancelar.setText("Cancelar");
        btnCancelar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnCancelarActionPerformed(evt);
            }
        });
        jPanel3.add(btnCancelar);
        btnCancelar.setBounds(130, 10, 100, 23);

        getContentPane().add(jPanel3);
        jPanel3.setBounds(50, 100, 260, 40);

        pack();
    }// </editor-fold>                        

    public int Pnivel;
    
    
    private void formWindowOpened(java.awt.event.WindowEvent evt) {                                  
// TODO add your handling code here:

    }                                 

    private void btnCancelarActionPerformed(java.awt.event.ActionEvent evt) {                                            
        this.dispose();
        // TODO add your handling code here:
    }                                           

private Connection getConnection() {
        Connection con = null;
        try {
            String driver = "com.mysql.jdbc.Driver";
            String url = "jdbc:mysql://localhost:3306/movedb";
            String user = "*****";
            String password = "*****";
            Class.forName(driver);
            con = DriverManager.getConnection(url, user, password);
        } catch (ClassNotFoundException cnf) {
            mostrarErro("Erro ao se conectar");
        } catch (SQLException sqlex) {
            mostrarErro("Erro ao se conectar");
        }
        //System.out.println("Conectado");
        return con;
    }

    private void btnOkActionPerformed(java.awt.event.ActionEvent evt) {                                      

        ClassAutentica autentica = new ClassAutentica();
          autentica.setRH(txtRH.getText());
           autentica.setRetornaNivel(1);
        String rh = txtRH.getText();

             
        if(autentica.autentica() == false){
         JOptionPane.showMessageDialog(null,"RH Não foi localizado! Digite novamente","ATENÇÃO",JOptionPane.WARNING_MESSAGE);
        }else{

            //JOptionPane.showMessageDialog(null,"RH Localizado","ATENÇÃO",JOptionPane.WARNING_MESSAGE);
        Connection con = getConnection();
        Map parameters = new HashMap();
        String path = "relatorios/SPP.jasper";
        File file = new File(path);
        file = file.getAbsoluteFile();
        String repStr2 = file.getPath();
        try {
            Statement stmt = con.createStatement();
            ResultSet rs = stmt.executeQuery("select * from paciente where A_PAC_COD = '"+ txtRH.getText()+"'");
           while(rs.next()== true)
            JasperFillManager.fillReportToFile(repStr2, parameters, con);
            JasperPrint jasperPrint = JasperFillManager.fillReport(repStr2, parameters, con);
            JasperViewer viewer = new JasperViewer(jasperPrint, true);
            viewer.setVisible(true);            
        } catch (JRException jex) {
            mostrarErro("JasperException: " + jex.getMessage());
        } catch (Exception ex) {
            mostrarErro("" + ex.getStackTrace());
        }
        }
    }                                     
    
    
    private void mostrarErro(String msg) {
        JOptionPane.showMessageDialog(
                null,
                msg,
                "Erro encontrado",
                JOptionPane.ERROR_MESSAGE);
    }
     
    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new FAutenticacao().setVisible(true);
            }
        });
    }

Classe Autentica

import javax.swing.*;
import java.sql.*;
import javax.swing.JOptionPane;

public class ClassAutentica {    
    /** Creates a new instance of ClassAutentica */
    public ClassAutentica() {    }
    /*Obs o tipo_usuário está comentado*/
    private String rh;
    //Variáveis para retornar o RH encontrados no banco
    private String retornaRH;
    private int retornaNivel;
    //======================================
    
    public void setRH(String _RH){
        this.rh= _RH;
    }     
    public String getRH(){
        return this.rh;
    }    
    public void setRetornaRH(String _retornaRH){
        this.retornaRH = _retornaRH;
    }
    public String getretornaRH(){
        return this.retornaRH;
    }     
    public void setRetornaNivel(int _retornaNivel){
        this.retornaNivel = _retornaNivel;
    }    
    public int getretornaNivel(){
        return this.retornaNivel;
    }
    
    ClassConecta conexao = new ClassConecta();
   // FPrincipal principal = new FPrincipal();
    
    public boolean autentica(){ 
        boolean valida = true;
        try{
           conexao.conecta(); 
            Statement stmt = conexao.con.createStatement();            
            ResultSet rs = stmt.executeQuery("select * from paciente where  A_PAC_COD = '"+getRH()+"'");
            while(rs.next()){
               setRetornaRH(rs.getString("A_PAC_COD"));
               setRetornaNivel(1);
            }            
            if(getretornaRH() == null){
                valida = false;
                 }
             }catch(SQLException e){
                JOptionPane.showMessageDialog(null,"Ocorreu um erro no sistema, se o problema persistir contate o administrador:\n"+ e,"ATENÇÃO",JOptionPane.WARNING_MESSAGE);
           }  
        return valida;
    }    
}

Classe Conecta


import java.sql.*;
import javax.swing.JOptionPane;
import java.util.HashMap;
import java.net.URL;
import net.sf.jasperreports.engine.util.JRLoader;
import net.sf.jasperreports.view.JasperViewer;
import net.sf.jasperreports.engine.*;
public class ClassConecta {

    /** Creates a new instance of ClassConecta */
    public ClassConecta() {    }

    //função para conexão com Banco
    private String driver = "com.mysql.jdbc.Driver";
    private String url = "jdbc:mysql://localhost:3306/movedb";
    private String user ="*****";
    private String pwd = "****";
    Connection con = null;

    public Connection conecta(){
        try{
            Class.forName(driver);
            con = DriverManager.getConnection(url, user,pwd);
        }catch(ClassNotFoundException e){
            JOptionPane.showMessageDialog(null,"Ocorreu um erro no sistema, se o problema persistir contate o administrador:\n Driver não encontrado!\n"+ e,"ATEN&#65533;&#65533;O",JOptionPane.WARNING_MESSAGE);
        }catch(SQLException e){
            JOptionPane.showMessageDialog(null,"Ocorreu um erro no sistema, se o problema persistir contate o administrador:\n Erro na Conex&#65533;o com Banco\n"+ e,"ATEN&#65533;&#65533;O",JOptionPane.WARNING_MESSAGE);
           
        }       //System.out.println("Conectado");
        return con;
    }
    //fim da conexao
    //========================================================
}

Agradeço desde de já atenção de todos.