Pessoal eu passo um Collection de String para o meu relatorio… COMO EU PERCORRO ELE??? eu nao mando ele via JRDataSource (pq aqui ja vai outra coisa) eu mando no parameter.put(“lista” listaArray) tentei de todas as formas. eu consigo mostrar o conteudo dela inteira… tipo [a,b,c,d,e] mas nao consigo listar eles
Pessoal eu passo um Collection de String para o meu relatorio… COMO EU PERCORRO ELE??? eu nao mando ele via JRDataSource (pq aqui ja vai outra coisa) eu mando no parameter.put(“lista” listaArray) tentei de todas as formas. eu consigo mostrar o conteudo dela inteira… tipo [a,b,c,d,e] mas nao consigo listar eles
a
b
c
d
e
alguem sabe como fazer isse merdA??
vlw
Conselho:
Para relatório complexos, sempre use JRCollectionDataSource.
Trate os dados no Java, e apenas mande para o Jasper o que vai ser exibido.
[]'s
JL
fabioebner
Entao mlkao ja tentei… mas nao consegui usar apenas o JRCollectionDataSource pq nele eu ja mando uma lista de documento porem cada documento tem uma lista de itens… e nao consigo percorrer nessa lista de itens para cada documento… so consigo percorrer os documentos, por isso q perguntei…
valeu
Mero_Aprendiz
fabioebner:
Entao mlkao ja tentei… mas nao consegui usar apenas o JRCollectionDataSource pq nele eu ja mando uma lista de documento porem cada documento tem uma lista de itens… e nao consigo percorrer nessa lista de itens para cada documento… so consigo percorrer os documentos, por isso q perguntei…
valeu
Deixa eu me expressar melhor.
Para relatório muito complexo, sempre use o JRCollectionDataSource para exibir os dados.
Quando o relatório é complexo para conter listas que não estão dentro do que será percorrido pelo detail (no seu caso, que é iterado pelo JRDataSource), é melhor sempre tratar os dados que serão exibidos no relátorio do lado do Java.
Se você tratar os dados como eles deve ser exibidos, e enviar eles prontinhos, sem condições especiais de exibição, tudo fica mais fácil, inclusive a manutenção por parte de outros programadores que também trabalham com você.
Acredito que assim seu problema com esse relatório vai ser resovido.
[]'s
JL
fabioebner
Entao cara eu entendi… agora eu nao consegui visualizar em como resolver isso… vou te passar meu problema e ve se tu consegue me dar uma luz
eu tenho uma lista de TbDocumento(tem varios campos aqui como nomeDocumento, Codigo, Data e tenho 3 Collection aqui) TbParte TbExigenciaDocumento
entao para cada 1 TbDocumento eu tenho x TbParte e x TbExigenciaDocumento… preciso no meu formulario listar os documentos e para cada documento listar as partes e as exigencias…
entendeu?? pode me dar uma luz nisso…
M
marciootuca
Fabio,
Voce conseguiu resolver isso?? Estou tendo o mesmo problema.
Valew
Marcio
Mero_Aprendiz
fabioebner:
Entao cara eu entendi… agora eu nao consegui visualizar em como resolver isso… vou te passar meu problema e ve se tu consegue me dar uma luz
eu tenho uma lista de TbDocumento(tem varios campos aqui como nomeDocumento, Codigo, Data e tenho 3 Collection aqui) TbParte TbExigenciaDocumento
entao para cada 1 TbDocumento eu tenho x TbParte e x TbExigenciaDocumento… preciso no meu formulario listar os documentos e para cada documento listar as partes e as exigencias…
entendeu?? pode me dar uma luz nisso…
Olá Fábio.
Bem, para o problema que você me falou, vejo inicialmente uma solução que você pode tentar.
Já que você passa para o Jasper uma Array de TbDocumentos, crie um helper com os valores que serão exibidos, e as listas de TbParte e TbExigenciasDocumento você passa como atribudo do helper mesmo, mas como JRCollectionDataSource.
Dentro do relatório, crie dois sub-relatório dos atributos de JRCollectionDataSource do helper que você criou. Assim para cara iteração de TbDocumento, os sub-relatório de TbParte e TbExigenciasDocumento também serão iterados.
Consegui entender?
[]'s
JL
jaspionrox
Olá,
para passar um collection como ds para o ireport eu uso a classe JRBeanCollectionDataSource
JRBeanCollectionDataSource jrCol = new JRBeanCollectionDataSource(sua_collection);
no caso a collection eh tipada com um objeto modelo para o relatorio.