Olá, pessoal!!
Estou fazendo um relatório e quero passar mais de um parâmetro para a consulta e está ocorrendo erro.
Veja o código abaixo:
public JasperReportControllerListaVendaDiariaVendedor() {
super();
}
public static void geraRelatorioVendaDiariaVendedor(Connection c, Map params) {
try {
jp = JasperFillManager.fillReport("D:/sistema/relatorios/vendaDiaria.jasper", params, c);
JasperExportManager.exportReportToPdfFile(jp, "D:/sistema/relatorios/vendaDiaria.pdf");
Process p = Runtime.getRuntime().exec("cmd.exe /C D:/sistema/relatorios/vendaDiaria.pdf");
Para chamar o relatório:
btGerarRelatorio.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
reg = (cbVendedor.getSelectedItem().toString());
Date dt = (converteData(tfData.getText()));
Map params = new HashMap();
params.put("dataVenda", dt);
params.put("vendedor", reg);
System.out.println(params);
JasperReportControllerListaVendaDiariaVendedor.geraRelatorioVendaDiariaVendedor(GerenciadorBD.getConexao(), params);
}
});
}
return btGerarRelatorio;
}
No código acima quando mando imprimir o params o resultado é o seguinte:
{vendedor=Vendedor, dataVenda=2007-07-13}
Consulta feita no iReport:
select indice_desconto, quantidade, valor_unit, valor_total, preco_custo, descricao_produto, venda.nome_vendedor from venda, item_venda, produtos
where venda.id_venda = item_venda.venda_id_venda and
item_venda.produtos_id_produtos = produtos.id_produtos and
data_pedido like '$P{dataVenda}' and
operacao like 'V' and
nome_vendedor like '$P!{vendedor}'
order by descricao_produto
O erro:
org.postgresql.util.PSQLException: O índice da coluna está fora do intervalo: 1, número de colunas: 0.
...
NESTED BY :
net.sf.jasperreports.engine.JRException: Error preparing statement for executing the report query :
select indice_desconto, quantidade, valor_unit, valor_total, preco_custo, descricao_produto, venda.nome_vendedor from venda, item_venda, produtos
where venda.id_venda = item_venda.venda_id_venda and
item_venda.produtos_id_produtos = produtos.id_produtos and
data_pedido like '?' and
operacao like 'V' and
nome_vendedor like 'Vendedor'
order by descricao_produto
Analisando o código de erro, percebi que o problema é a passagem de parâmetro da data.
Se alguém puder me ajudar, agradeço!!