Relatórios Jasper usando VOs  XML
Índice dos Fóruns » Java Básico
Autor Mensagem
furutani
JWizard
[Avatar]

Membro desde: 11/10/2003 23:58:51
Mensagens: 2923
Localização: Iacri-SP e São Paulo-SP
Offline

Olá,
No Jasper tem como eu fazer um relatório usando um ArraList dentro de outro ArrayList? pode ser também um arraylist como atributo do VO.

O que eu quero fazer é o seguinte: cada página vai ser de um cliente, cada cliente vai ter uma lista de informações a serem mostradas.

Não consigo fazer isso O que eu consegui fazer até agora foi:


Até mais,
Roberto Jundi Furutani

Vendo livro de SOA - Linux - Spring
Vendo PSP

Sun Certified Business Component Developer 1.3
Sun Certified Web Component Developer
Sun Certified Java Programmer
SAP Certified Development Associate - ABAP with SAP NetWeaver 7.0

[WWW]
brlima
Moderador
[Avatar]

Membro desde: 12/05/2003 14:03:38
Mensagens: 1537
Localização: São Paulo - SP
Offline

Cria uma classe extendendo do JRDataSource. Dai vc implementa os metodos next e gelValue ( eu acho que sao esses os nomes, mas verifica ) que vc consegue criar realtorios de qualquer fonte de dados... hehehe

Bruno R. Lima
-------------------------------------------
flickr :: twitter
[MSN]
furutani
JWizard
[Avatar]

Membro desde: 11/10/2003 23:58:51
Mensagens: 2923
Localização: Iacri-SP e São Paulo-SP
Offline

Pois é... eu vou ter que criar um DataSource personalizado.
Eu tenho uma classe Cliente que tem os atributos nome e um ArrayList de Licenca, e Licenca tem os atributos sistema e senha ambos são string;

no método next() eu só posso retornar true quando eu quiser ir para o próximo cliente certo?

já no método getFieldValue() eu não estou conseguindo assimilar como eu posso pegar o List do Cliente e pra cada posição do List criar uma linha na relatório.
O método getFieldValue() é chamado infinitamente até o next() ser falso?

Até mais,
Roberto Jundi Furutani

Vendo livro de SOA - Linux - Spring
Vendo PSP

Sun Certified Business Component Developer 1.3
Sun Certified Web Component Developer
Sun Certified Java Programmer
SAP Certified Development Associate - ABAP with SAP NetWeaver 7.0

[WWW]
brlima
Moderador
[Avatar]

Membro desde: 12/05/2003 14:03:38
Mensagens: 1537
Localização: São Paulo - SP
Offline

Ele chama o getFieldValue para pegar o valor de um campo que esta no relatorio. Quando vc cria um campo no relatorio, vc da a ele um nome. Esse nome é uma propriedade do objeto que vc recebe como parametro no getFieldValue.

Portanto, vc tem o nome do campo que tão pedidndo no metodo getFieldValue. Vc tem que retornar o valor desse campo no tipo pedido, por exemplo: se teu campo no relatorio tá como String, vc deve retornar uma String, se for Double, retrna Double, e assim por diante.

Agora cabe a vc saber o que vai querer retornar pra cada campo

Bruno R. Lima
-------------------------------------------
flickr :: twitter
[MSN]
furutani
JWizard
[Avatar]

Membro desde: 11/10/2003 23:58:51
Mensagens: 2923
Localização: Iacri-SP e São Paulo-SP
Offline

B. R. Lima,
O que eu quero fazer é mais ou menos isso:

Eu tenho três campos no relatório: nome do cliente (aparece uma vez), e as licenças com o nome do sistema e o serial. Sendo que cada cliente deve ocupar uma página do relatório.
Eu passo pro JRDataSource um List (A) com os VOs Cliente:

No VO Cliente tem uma List (B) de Licença
Pra mim percorrer a List (A) é fácil, o problema é a List (B).
O método getFieldValue() é chamado apenas uma vez pra os campos sistema e serial e volta para o next() . Eu precisava que ele voltasse a pedir os campos sistema e serial até acabar o List (B)
Grato

This message was edited 1 time. Last update was at 04/05/2005 09:18:02


Até mais,
Roberto Jundi Furutani

Vendo livro de SOA - Linux - Spring
Vendo PSP

Sun Certified Business Component Developer 1.3
Sun Certified Web Component Developer
Sun Certified Java Programmer
SAP Certified Development Associate - ABAP with SAP NetWeaver 7.0

[WWW]
furutani
JWizard
[Avatar]

Membro desde: 11/10/2003 23:58:51
Mensagens: 2923
Localização: Iacri-SP e São Paulo-SP
Offline

Eu estou tentando resolver isso com um subreport.
No subrelatorio eu preciso passar um JRBeanCollectionDataSource(List ). Como que eu faço isso apartir do DataSource do relatorio principal?

Eu envio ele como se fosse um field?

Até mais,
Roberto Jundi Furutani

Vendo livro de SOA - Linux - Spring
Vendo PSP

Sun Certified Business Component Developer 1.3
Sun Certified Web Component Developer
Sun Certified Java Programmer
SAP Certified Development Associate - ABAP with SAP NetWeaver 7.0

[WWW]
brlima
Moderador
[Avatar]

Membro desde: 12/05/2003 14:03:38
Mensagens: 1537
Localização: São Paulo - SP
Offline

Vc nao poderia fazer uma quebra por cliente ( aka group ) ?
Dai era so percorrer o seu vo de clienter, e pra cada cliente percorrer as licensas.




Algo assim, claro, tem muito mais coisas aqui pra tratar, mas a ideia seria essa, e no final vc retornaria todo mundo. E o reltorio faria a quebra de cliente por pagina.

Bruno R. Lima
-------------------------------------------
flickr :: twitter
[MSN]
furutani
JWizard
[Avatar]

Membro desde: 11/10/2003 23:58:51
Mensagens: 2923
Localização: Iacri-SP e São Paulo-SP
Offline

Olá
Eu resolvi o problema, fiz um tutorial http://geocities.yahoo.com.br/robertofurutani/java/Tutorial_JasperReports/index.htm

Até mais,
Roberto Jundi Furutani

Vendo livro de SOA - Linux - Spring
Vendo PSP

Sun Certified Business Component Developer 1.3
Sun Certified Web Component Developer
Sun Certified Java Programmer
SAP Certified Development Associate - ABAP with SAP NetWeaver 7.0

[WWW]
smota
Moderador
[Avatar]

Membro desde: 21/02/2003 16:19:19
Mensagens: 1647
Offline





Parabéns pela iniciativa .... se você quiser vale pegar o modelo do word, passar seu tutorial para PDF e mandar pro GUJ.


"Perfection is reached not when there's nothing more to add but when there's no more to take out"
furutani
JWizard
[Avatar]

Membro desde: 11/10/2003 23:58:51
Mensagens: 2923
Localização: Iacri-SP e São Paulo-SP
Offline

Smota,
onde está esse modelo?
não tem pra OpenOffice.org? é que eu não tenho word aqui na firma.

Até mais,
Roberto Jundi Furutani

Vendo livro de SOA - Linux - Spring
Vendo PSP

Sun Certified Business Component Developer 1.3
Sun Certified Web Component Developer
Sun Certified Java Programmer
SAP Certified Development Associate - ABAP with SAP NetWeaver 7.0

[WWW]
eagnes
JavaBaby
[Avatar]

Membro desde: 10/04/2003 21:05:34
Mensagens: 80
Localização: Santa Cruz do Sul - RS
Offline

Roberto, depois que vi o teu tutorial resolvi testar os subreports... mas achei ruim ter que criar um novo JRDataSource para o report. Eu fiz uns testes e funcionou legal também sem a criação deste DataSource. Então eu teria 2 dicas para adicionar no teu tutorial:

1. Para não precisar criar um novo JRDataSource, basta colocar em "use datasource expression": new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource((List) $F{ListaDisciplinas}) ao invés $F{ListaDisciplinas} apenas. Também não seria necessário colocar listaDisciplinas como parametro do report (Subreport (Other)), pois a lista está sendo passada via datasource.

2. Para utilizar os atributos de um bean que é propriedade do bean (nested beans): ((pacote.Classe)$F{bean}).getAtributo()
Onde bean deve ser declarado com Object em Fields...

Até!
furutani
JWizard
[Avatar]

Membro desde: 11/10/2003 23:58:51
Mensagens: 2923
Localização: Iacri-SP e São Paulo-SP
Offline

Muito obrigado Eagnes!!! Assim que for possivel irei melhorar o tutorial com suas dicas.

Até mais,
Roberto Jundi Furutani

Vendo livro de SOA - Linux - Spring
Vendo PSP

Sun Certified Business Component Developer 1.3
Sun Certified Web Component Developer
Sun Certified Java Programmer
SAP Certified Development Associate - ABAP with SAP NetWeaver 7.0

[WWW]
danieltamiosso
Thread.start()

Membro desde: 01/12/2006 01:12:57
Mensagens: 31
Localização: São Leopoldo - RS
Offline

Olá,

Estou com um problema:

Tenho um relatório com o seguinte layout:

---
Dados Gerais do registro
----
SubRelatório - Dados Contato
----
SubRelatorio - Dados Bancarios
---

Eu passo três listas pra eles, e as duas listas dos subrelatorios funcionam normalmente, só não consigo manipular a lista que vai no relatorio master, pois a mesma exibe tudo como null. Fiz o relatório me baseando no tutorial do Celso Fernandes de Oliveira Junior. Gostaria de saber se eu posso passar duas listas para um subrelatorio.

Bom, muito obrigado...

Daniel Tamiosso

[WWW]
pcalcado
Moderador
[Avatar]

Membro desde: 08/03/2004 17:19:35
Mensagens: 5174
Localização: Sydney - Australia
Offline

http://fragmental.com.br/wiki/index.php?title=Evitando_VOs_e_BOs

Phillip Calçado "Shoes"
http://fragmental.tw/
http://blog.fragmental.com.br/
"It is unfortunate that much of what is called 'object-oriented programming today is simply old style programming with fancier constructs." - Alan Kay
[Email] [WWW] [Yahoo!] [MSN]
montenegro
What is classpath?
[Avatar]

Membro desde: 22/06/2007 13:13:52
Mensagens: 8
Offline

Alguem tenou fazer a lelhoria que Eagnes sugere (Para nao ter que criar um DataSource)?
Porque eu tentei mas ele nao reconhece a lista de produtos....
 
Índice dos Fóruns » Java Básico
Ir para:   
Powered by JForum 2.1.8 © JForum Team