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());
}
}
}