List Servlet iReport

2 respostas
R

Ola a todos,

Creio que a minha dificuldade aqui, seja de muitos, andei fazendo pesquisas no Forum e também no Google, e percebi que muitas pessoas perguntam e realmente não se chega a lugar alguem neste simples probleminha, começando.

Tenho um Servlet, que gera o meu relatório jasper em PDF, nele seto o HasMap, e envio os parametros, até ai tudo bem!
Mas estou precisando de enviar um List do Servlet e recebe-lo no jasper e imprimir.
No meu Servlet tenho o seguinte

Map<String, Object> map = new HashMap<String, Object>();

map.put("REPORT_CONNECTION", new ConnectionFactory().getConnection());
map.put("nome", nome);
map.put("sobreNome", sobreNome);

byte[] pdfRelatorio = JasperRunManager.runReportToPdf(jasper, map, new ConnectionFactory().getConnection());

Beleza, ai eu consigo pegar no iReport corretamente os parametros, agora eu preciso enviar o List, e ficou assim:

List<Pessoa> pessoa = pessoaDao.getLista();

JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(pessoa);

Map<String, Object> map = new HashMap<String, Object>();

map.put("REPORT_CONNECTION", new ConnectionFactory().getConnection());
map.put("nomeRelatorio", nomeRelatorio);

byte[] pdfRelatorio = JasperRunManager.runReportToPdf(jasper, map, ds);

Como pegar essa lista no iReport? tentei usar o componente list do iReport, mas sem sucesso.
Se alguem tiver alguma idéia, ou um link que seja favorável a esta situação no Google, agradeço.

Obrigado.

2 Respostas

rogelgarcia

Vc nao tem que “pegar” essa lista no iReport… também nao é necessário passar a conexao para o relatorio (a nao ser que vc precise dela para outra coisa)

Primeiro vc cria um FIELD para um campo da classe pessoa… por exemplo nome

Depois vc cria um text field para esse campo na seção detail do relatório… (a expressão desse text field será [color=green]$F{nome}[/color])… pronto… o iReport irá iteragir na sua lista e mostrar todos os nomes…

R

rogelgarcia:

Segui aqui passo a passo como vc disse, e realmente você esta com a razão, o que acontecia é que, no iReport, se você não tiver um SQL, mesmo que não consulte nada, para retornar o seu campo, ele não abria nada aqui, então comecei do zero, fiz como você disse, e a única coisa que fiz a mais, foi somente a SQL dentro do iReport, agora esta tudo ok, nem preciso receber List.

Muito obrigado, e creio que este post, poderá solucionar muita dúvida.

Atenciosamente,

Criado 13 de julho de 2010
Ultima resposta 13 de jul. de 2010
Respostas 2
Participantes 2