Erro de incompatibilidade do tipo dos parâmetros do relatório

2 respostas
J

Olá, pessoal. Estou com um erro e não estou encontrando a solução.

No meu relatório existem dois parâmetros (DATAINICIO, DATAFIM) que no banco estão com o tipo “date”. Quando insiro as datas no formulário do relatório, ele me retorna um erro:

net.sf.jasperreports.engine.JRException: Incompatible java.lang.String value assigned to parameter DATAINICIO in the relQuantidadeNovosClientesfisicoPorPeriodo dataset.

O método que estou usando para imprimir o relatório é o seguinte:

public InputStreamDownload relQuantidadeNovosClientesFisicoPorPeriodo(String dtIncio, String dtFinal)

throws JRException, SQLException, ClassNotFoundException, Exception {

InputStream file = getClass().getClassLoader().

getResourceAsStream("/br/com/catequese/relatorio/relQuantidadeNovosClientesfisicoPorPeriodo.jasper");

Map parametros = new HashMap();

parametros.put(DATAINICIO, formataData(dtIncio));

parametros.put(DATAFIM, formataData(dtFinal));

ByteArrayOutputStream os = new ByteArrayOutputStream();

JasperRunManager.runReportToPdfStream(file, os, parametros, getConexao());

InputStream document = new ByteArrayInputStream(os.toByteArray());

return new InputStreamDownload(document, application/pdf, relatorioQuantidadeNovosClientesFisicoPorPeriodo.pdf, true, os.toByteArray().length);

}

Alguém??

2 Respostas

H

Cara,

Dentro do IReport, nas propriedades desses seus parâmetros que são em formato date, onde diz Parameter Class, coloque java.util.Date ao invés de java.lang.String… Pode ser que seja isso o problema.

Abraço!

J

Resolvi o problema.

O erro estava no tipo dos parâmetros do método InputStreamDownload que eram String e, portanto, diferentes do tipo dos campos da tabela que eram Date. Então bastou trocar String por Date.

Criado 21 de dezembro de 2010
Ultima resposta 22 de dez. de 2010
Respostas 2
Participantes 2