[RESOLVIDO] Imprimir Calendar no iReport

Opa pessoALL! Tô com um problema no iReport (3.7.6).

Tenho um relatório com subrelatório. Daí, faço uma consulta e passo os dados do primeiro registro retornado na seguinte HashMap como parâmetro:

parametros.put("cpf", associados.get(0).getCpf());
parametros.put("nome", associados.get(0).getNome());
parametros.put("lancamentos", new JRBeanCollectionDataSource(associados.get(0).getLancamentos()));

e chamo o relatório no meu Bean dessa forma:

RelatorioUtil.gerarRelatorio("saldoDevedor", parametros, new JREmptyDataSource());

Os relatórios que não utilizam datas estão sendo impressos sem problemas. O método getLancamentos() retorna um List com todos os lancamentos do Associado.
Então o relatório principal (master) envia o parâmetro lancamentos para o subrelatório (detail) e é lá onde tenho os fields data, convênio e valor.

Quero imprimir o campo data, porém recebo o seguinte erro:

java.util.GregorianCalendar cannot be cast to java.util.Date

Então gostaria de uma ajuda pra conseguir imprimir esse campo no iReport.

Essa é minha classe Lancamento

public class Lancamento implements Serializable {

	private Long id;
	private Integer verba;
	private BigDecimal valor;
	private Calendar data;
	private Convenio convenio;
	private Associado associado;
	private Calendar dataPagamento;

// getters and setters omitidos

Obrigado pela ajuda!

Bom pessoal… consegui resolver e tô postando a minha solução pra ajudar quem possa estar passando pelo mesmo problema.

Depois de um bom almoço e um cochilo, cheguei no trabalho e tive uma ideia…

Fiz o seguinte:

[list]editei a expressão do filed data e coloquei este valor:[/list]

new Date($F{data}.getTimeInMillis())

[list]Como o iReport só oferece opção para a classe java.util.Date, editei a propriedade Field Class do field data “no braço” de java.util.Date para java.util.Calendar[/list]

Compilei os relatórios e reiniciei o servidor, funcionou perfeitamente.

2 curtidas

Amigo, possivelmente vc ñ importou para aplicação IReport o JCalandar Gregorian… verifique tb na aplicação web.

abs

Valeu vandinho pela resposta. Mas como falei, parece que é só uma “frescura” do iReport em não exibir o tipo de dado java.util.Calendar. Depois que editei a propriedade “na mão”, funcionou perfeitamente.

Obrigado pela ajuda, abraço.