Fórum Relatório Ireport com vários itens na linha de detalhe. #410406

10/12/2011

0

Eu Já fiz um relatório(iReport) a partir de uma chamada de uma Aplicação Web.
como um a coleção de um objeto: codigo, nome, qtde e valor. Colocando esses valores na linha detalhe.
Funcionou perfeitamente, imprimindo várias linhas. Eu usei JRBeanCollectionDataSource.

Mas quando eu preciso de emitir um Relatório(no iReport) como este:
código, nome, endereco, cidade e uf no Page Header e vários telefones na linha DETAIL.
Eu não consegui!

Eu criei uma Collection colecaoRelatorio, onde contém os seguintes campos:
Integer codigo, String nome, String endereco, String cidade, String uf,
Collection de Telefone com o nome: colecaoTelefones.

Onde Telefone contém :
nrDDD, nrTelefone

A impressão referente do PAGE HEADER eu consigo normalmente, mas eu não consigo especificar os campos da coleção de colecaoTelefones que fica dentro da coleção colecaoRelatorio.
Eu já tentei no iReport: $F{colecaoTelefones.nrDDD}, colecaoTelefones.nrDDD, mas não tive sucesso!

O que eu faço para recuperar os dados dos Fields no ireport referente a colecaoTelefones(nrDDD e nrTelefone)?

Régis.
Régis Santos

Régis Santos

Responder

Posts

11/12/2011

Robson Teixeira

os campos telefone ou um objeto do tipo Telefone tem que fazer parte da sua coleção para que você possa pegar os dados e mostrar no seu relatorio.

espero ter ajudado
att
robson
Responder

Gostei + 0

11/12/2011

Régis Santos

Deixe-me explicar melhor:
Eu envio uma coleção denominada colecaoRelatorio,como segue:

class relatorio {

public relatorio(){
}

private String codigo;
private String nome;
private String endereco;
private String uf;
private String cidade;

private Collection<Telefone> telefones;


todos os getters and setters ...


}

class Telefone {
private String nrDDD;
private String nrTelefone;

todos getters e setters ...

}

class ImpressaoRelatorio {

Collection<relatorio> colecaoRelatorio;

Envio a colecaoRelatorio para o Ireport a partir da aplicação Java Web.

}

>>>> Como eu acesso o campo nrDDD e o nrTelefone na linha DETAIL do iReport? desta forma: $F{telefones.nrDDD}?
Eu não sei como acessar estes campos. Qual a maneira que devo escrever para acessá-los no iReport?

Obrigado pela resposta.

Régis.


Responder

Gostei + 0

12/12/2011

Robson Teixeira

eu sugiro você pesquisar sobre um recurso que está presenta nas ultimas versões do jasper reports e do IReport que se chama list onde você vai passar a sua coleção para a list e o proprio Jasper vai iterar a sua coleção de telefones.
qualquer duvida só chamar.
att
robson
Responder

Gostei + 0

12/12/2011

Régis Santos

Como você escreve no ireport para acessar um campo de uma lista?
Desta forma $F{listaTelefones.nrTelefone}?? Assim eu não consegui.
Por favor, escreva-me a maneira que você acessa um campo em uma lista? Eu não sei como escrevê-la.

Régis
Responder

Gostei + 0

12/12/2011

Robson Teixeira

o uso do seu EL esta correto mas você não pesquisou sobre o recurso que te falei.Peço pra que pesquise sobre o recurso list pois ao compriende-lo automagicamente resolve seu problema. ok

qualquer coisa é so chamar.
att
robson
Responder

Gostei + 0

12/12/2011

Régis Santos

Eu usei o recurso list(e continua o mesmo problema) e o iReport
não Reconhece esta maneira: $F{produtosComprados.nomeFabricante} como acesso aos dados.

Erro no iReport:

net.sf.jasperreports.engine.JRException: Errors were encountered when compiling report expressions class file: 1. nomeFabricante cannot be resolved or is not a field                 value = ((java.util.List)field_produtosComprados.getValue()).nomeFabricante  //$JR_EXPR_ID=54$                                                                              <------------> 2. nomeFabricante cannot be resolved or is not a field                 value = ((java.util.List)field_produtosComprados.getOldValue()).nomeFabricante  //$JR_EXPR_ID=54$                                                                                 <------------> 3. nomeFabricante cannot be resolved or is not a field                 value = ((java.util.List)field_produtosComprados.getValue()).nomeFabricante  //$JR_EXPR_ID=54$                                                                              <------------> 3 errors

Régis.
Responder

Gostei + 0

12/12/2011

Robson Teixeira

vc tem q passar sua coleção usando o JRBeanCollectionDataSource e na aba Report Inspector vai aparecer um dataSet que vai esta vinculado a list criada e você vai criar um field novo que vai ser o atributo da sua classe Telefone sacou??
att
robson
Responder

Gostei + 0

20/12/2011

Dyego Carmo

Em meu devspace tem uma aula que ensino EXATAMENTE isto no Jasper , quer dar uma olhadinha? :)

Valeu !
Responder

Gostei + 0

21/12/2011

Régis Santos

Graças a Deus eu consegui finalizar o meu relatório. Este tópico pode ser fechado.
Responder

Gostei + 0

22/12/2011

Davi Costa

Show de bola! Senão me engano tem uma opção em cima do chamado para vc encerrá-lo

att Davi
Responder

Gostei + 0

23/12/2011

Régis Santos

Infelizmente, eu não encontrei o botão ou link para fechar este tópico.

Régis.
Responder

Gostei + 0

09/01/2012

Dyego Carmo

Muito bom !

Problema resolvido ? Poderia fechar o chamado ?

Obrigadao !!!
Responder

Gostei + 0

11/07/2012

Diego Azevedo

Em meu devspace tem uma aula que ensino EXATAMENTE isto no Jasper , quer dar uma olhadinha? :)

Valeu !


Olá Dyego, procurei essa video aula no seu devespaço, mais lá tem varias video aulas sobre Ireport. Poderia me dizer qual delas resolve esse problema?

Obrigado
Responder

Gostei + 0

13/07/2012

Diego Azevedo

Olá Dyego, procurei essa video aula no seu devespaço, mais lá tem varias video aulas sobre Ireport. Poderia me dizer qual delas resolve esse problema?

Obrigado
Responder

Gostei + 0

18/07/2012

Régis Santos

Desculpe, mas eu procurei por todos os lados e não encontrei um botão fechar tópico.
Por favor, Onde fica este botão para fechar este tópico?

Régis.
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar