Configurar DataSource próprio no iReport

10 respostas
P

Pessoal, criei um DataSource próprio para o Jasper (do original do Jasper que processar XML é muito lento), com isso preciso agora fazer o iReport também enxergar para conseguir utiliza-lo corretamente.

Vi que o iReport ao criar uma nova conexão para um arquivo XML ele aponta para:

Já tenho um classe desenvolvida para trabalhar da forma da original, porém não sei como fazer o iReport utiliza-la ao criar uma nova conexão para um arquivo XML qualquer. Alguém já fez ou sabe como fazer isso?

10 Respostas

D

Esta tua classe revolucionária estende de JRXMLDataSourceConnection?

P

hehehe, não é tão revolucionária assim, somente mais rápida, mas sim, a versão original (que serve para meu ERP Java gerar o relatório em si) não, mas agora estou montando uma nova que extende JRXMLDataSourceConnection.

E fiquei na dúvida em como definir o iReport para trabalhar com ela.

D

Como os métodos que permitem gerar os relatórios recebem a JRXMLDataSourceConnection, provavelmente consiga trabalhar com as suas subclasses. Porém, será necessário sobrescrever os métodos adequados para ter o resultado esperado.

P

Ok, estou montando, na verdade são poucas as diferenças.

Então em teoria, basta desenvolver esta classe, adicionar ao CLASSPATH do iReport e definir um Custom DataSource?

D

Teoricamente, sim. Na prática, pode ser bem diferente.

P

Ok, vlw pela ajuda, estou finalizando e vou testar, o problema agora vai ficar em como deixar o nome do arquivo XML que será a fontes de dados ser dinâmico…

D

Problema? Esse arquivo será lido pelo novo XMLDataSource ou virá como parâmetro da aplicação mesmo?

D

Aliás, eu faria diferente. Eu realizaria a leitura do xml pelo java e faria através do JRBeanDataSource…

P

Problema? Esse arquivo será lido pelo novo XMLDataSource ou virá como parâmetro da aplicação mesmo?

É que eu queria deixar tipo o XML DataSource padrão do iReport, o desenvolvedor iria inserir o path do seu arquivo XML de dados, realmente esta seria a situação ideal para o meu caso.

P

O problema é que gerei um pequeno App que vai ler o XML, gerar um dataSource (com a classe custom que fiz) e enviar para o Jasper gerar o relatório, isso já está funcionando bem.

A principio um Bean complica, pois tenho N sistemas diferentes que enviam XML de dados para o meu App Java e nem todos eles são em Java.

Meu maior problema agora é que dentro do iReport que fazemos o design dos relatórios não tem mais como fazer o Preview, pois dentro do subReport que criamos já enviamos o link para a minha classe custom do dataSource e como a raiz é instanciada pela classe “padrão do Jasper” dá problema de CAST (óbvio).

Por isso estou tentando fazer o iReport entender que ele tem que abandonar o método antigo e instanciar a minha custom DataSource.

Espero ter sido claro o suficiente.

Criado 20 de agosto de 2013
Ultima resposta 20 de ago. de 2013
Respostas 10
Participantes 2