JasperReports - Sem banco de dados

Olá,

Temos uma app aqui que gera relatórios com o jasper através de um dao. Mas o pessoal agora quer fazer um esquema genérico onde este DAO poderia acessar qq coisa que não um database. Um xml por exemplo.

Tipo assim: Haveria uma interface X e todos os DAOs a implementariam. Daí qdo o método “execute” fosse chamado, cada classe concreta saberia o que fazer.

Tomemos como exemplo um arquivo texto. O DAO abriria o arquivo e leria as linhas… O problema é o método fillReport do jasper, sempre recebe em algum dos seus parâmetros um RecordSet ou uma Connection.

Como eu faria para criar um RecordSet a partir de um txt, ou xml, ou qq outra coisa que não um database?

Ou talvez até mais simples: Suponhamos que o relatório fosse um texto que tivesse que ficar armazenado em um arquivo de conf, tipo uma carta. Como preencho o report com esse valor sendo que, não haveria um record para informar ao fillReport?

Obrigado.

Na verdade você não precisa (nem quer) de um disconnected recordset (nome oficial dessa chatice) …

O Jasper (grande Jasper) já tem suporte a criar relatórios a partir de beans … veja os exemplos que tem isso por lá, é bem tranquilo de usar e aqui no forum tem uns topicos sobre isso tb.

Basicamente vc vai fazer o DAO retornar o bean (ou uma lista de) e passar pro relatorio (que é o que ele devia estar fazendo, Recordset pra fora do DAO é muito feio) …