Parâmetro de Filtragem no iReport java

Boa tarde, estou fazendo um relatório de Vendas usando o iReport, estou querendo filtrar as vendas da data X ate Y.
No iReport eu criei e parâmetros DATA_INI e DATA_FIM e fiz a query.
A query:
Select * from ordemservico where DataInicial Between $P{DATA_INI} AND $P{DATA_FIM}

Pelo Preview da certo a query, o que eu quero é que quando for puxar o relatório o usuário digitar as datas através de um JOption Pane.

Código no Java:

   try {
        conexao = new ConectarBD();
        conexao.conecta();
        conexao.executeSQL("select * from ordemservico");
        conexao.resultset.first();
    } catch (SQLException erro) {
        JOptionPane.showMessageDialog(null, "Não Localizou Dados" + erro);
    }
int confirma = JOptionPane.showConfirmDialog(null, "Imprimir Relatorio?", "Atenção", JOptionPane.YES_NO_OPTION);
    //Mensagem de confirmação de impressão.
    if (confirma == JOptionPane.YES_OPTION) {
        //Imprimindo  
        try {
            String DataIni = JOptionPane.showInputDialog("Informe a Data Inicial");
            HashMap paramIni = new HashMap<>();
            paramIni.put("DATA_INI", DataIni);
            String DataFim = JOptionPane.showInputDialog("Informe a Data Final");
            HashMap paramFim = new HashMap<>();
            paramFim.put("DATA_FIM", DataFim);

            JRResultSetDataSource resultSet = new JRResultSetDataSource(conexao.resultset);
            JasperPrint jpPrint = JasperFillManager.fillReport("Relatorios/RelatorioOsSimp.jasper", new HashMap<>(), resultSet);
            JasperViewer jv = new JasperViewer(jpPrint, false);
            jv.setVisible(true); //para quando fecahr voltar para a tela principal
            jv.toFront(); //para que o relatorio sempre fique na frente
        } catch (Exception e) {
            javax.swing.JOptionPane.showMessageDialog(null, "Erro ao gerar relatorio: " + e.getMessage());
        }
}

}