JasperReports com base de dados XML  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
PatricMaffi
Debugger
[Avatar]

Membro desde: 05/06/2007 13:41:16
Mensagens: 66
Localização: PR
Offline

Olá pessoal

estou tentando montar um relatorio com dados a partir de um XML
crio um xmldatasource com o documento xml e o recoPath para pegar os valores no xml
exemplo:



Aqui eu crio um HashMap para setar os valores que eu pego do xml
e uso o put do hasmap para inserir o valor
no iReport onde eu criei paremeters ele recebe os valores
mais onde eu preciso q a variavel seja dinamica para agregar
varios tipos de produtos, eu não consigo fazer ele receber esses valores dinamicos
ou seja mostrar varios produtos na aba Details;




espero que tenham entendido o problema
[Email] [WWW] [MSN]
guilhermetonetto
JavaEvangelist
[Avatar]

Membro desde: 19/12/2007 15:51:54
Mensagens: 326
Offline

Eu estou trabalhando num projeto que cria um xml a partir do iReport ...

e para resolver o problema dos produtos eu resolvi através da query

Exemplo:

No meu projeto eu tenho um relatorio mãe e chama um subrelatorio itens , neste subrelatorio eu tenho uma tabela na banda detail , e na query o select dos itens , na banda detail ja faz o FOR por default , entao com isso retorna a lista de produtos de uma determinado codigo que eu passo por parametro para este subrelatorio.


Acho q não consegui ajudar muito , mas é um começo , responde oq vc conseguiu entender e eu vo tentando te ajudar

[]'s

"A mente que se abre a uma nova idéia jamais voltará ao seu tamanho original."(Albert Einstein)
[MSN]
PatricMaffi
Debugger
[Avatar]

Membro desde: 05/06/2007 13:41:16
Mensagens: 66
Localização: PR
Offline

Voce não teria alguns detalhes em codigo
ou algum print para eu ter uma ideia de como vc esta fazendo??
[Email] [WWW] [MSN]
guilhermetonetto
JavaEvangelist
[Avatar]

Membro desde: 19/12/2007 15:51:54
Mensagens: 326
Offline

vamos fazer o contrario faz um print ae do teu relatorio no ireport e da query dele q eu posso tentar entender e ver onde esta o erro ....

fico aguardando

[]'s

"A mente que se abre a uma nova idéia jamais voltará ao seu tamanho original."(Albert Einstein)
[MSN]
PatricMaffi
Debugger
[Avatar]

Membro desde: 05/06/2007 13:41:16
Mensagens: 66
Localização: PR
Offline

Bom aqui esta a imagem do desenho no IReport
sobre a query eu não estou utilizando, eu apenas monto o a estrutura
gero o arquivo JRXML e o .jasper e utilizo o HashMap para inserir os dados

Aqui o exemplo do codigo para inserir os valores no relatorio


[Thumb - danfe_ireport.JPG]
 Nome do arquivo danfe_ireport.JPG [Disk] Download
 Descrição Danfe IReport
 Tamanho 226 Kbytes
 Baixado:  293 vez(es)

[Thumb - Danfe_resultado.JPG]
 Nome do arquivo Danfe_resultado.JPG [Disk] Download
 Descrição Resultado conseguido
 Tamanho 140 Kbytes
 Baixado:  215 vez(es)

[Email] [WWW] [MSN]
guilhermetonetto
JavaEvangelist
[Avatar]

Membro desde: 19/12/2007 15:51:54
Mensagens: 326
Offline

Eu tbem estou trabalhando num projeto de DANFE hehe ,

assim vc ta colocando o field $F{produto} na banda detail??

Pq a detail te faz um FOR por default ... e como nunca trabalhei com HashMap nao vou poder te ajudar mto , como disse eu pego minha informações através de um select que me retorna várias linhas...

Se vc tiver interesse em tentar fazer por select eu posso te ajudar

[]'s

"A mente que se abre a uma nova idéia jamais voltará ao seu tamanho original."(Albert Einstein)
[MSN]
PatricMaffi
Debugger
[Avatar]

Membro desde: 05/06/2007 13:41:16
Mensagens: 66
Localização: PR
Offline

entao eu naum tenho preferencia por usar select ou hashmap
eu estou usando pq foi os exemplos que eu havia encontrado
mais se por select resolver meu problema ta valendo

=D
se vc puder me mostrar como vc esta fazendo
[Email] [WWW] [MSN]
guilhermetonetto
JavaEvangelist
[Avatar]

Membro desde: 19/12/2007 15:51:54
Mensagens: 326
Offline

é façil !

vc tem o teu relatorio mãe ali neh , vc cria um subrelatorio "itens" e coloca la em baixo , dae vc cria a tua tabelinha de itens neste subrelatorio , vc vai na query deste subrelatorio e faz o teu select retornando varias linhas ...

Ahh , nao esquece que o cabeçalho da tabela dos itens onde vai "codigo" "descriçao" "valor" ... tem q ir numa banda em cima da banda "detail" e onde vai set setado os valores vai na banda detail para fazer o FOR

Desculpa a demora pra responde mas ta corrida a coisa aqui hj!

se ficou com duvida posta q eu respondo

[]'s

"A mente que se abre a uma nova idéia jamais voltará ao seu tamanho original."(Albert Einstein)
[MSN]
PatricMaffi
Debugger
[Avatar]

Membro desde: 05/06/2007 13:41:16
Mensagens: 66
Localização: PR
Offline

estou tentando fazer direto a query pelo IReport

fiz um field com nome cNF

e criei um hyperlink com o data source com esse codigo



seguintes erros

Erros de compilação .\teste.jasper.
net.sf.jasperreports.engine.JRException: Errors were encountered when compiling report expressions class file: 1. Cannot cast from JRXmlDataSource to String value = (java.lang.String)(((net.sf.jasperreports.engine.data.JRXmlDataSource)((net.sf.jasperreports.engine.JRDataSource)parameter_REPORT_DATA_SOURCE.getValue())).dataSource("NFe/infNFe/ide/cNF"));//$JR_EXPR_ID=9$ <------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 2. Cannot cast from JRXmlDataSource to String value = (java.lang.String)(((net.sf.jasperreports.engine.data.JRXmlDataSource)((net.sf.jasperreports.engine.JRDataSource)parameter_REPORT_DATA_SOURCE.getValue())).dataSource("NFe/infNFe/ide/cNF"));//$JR_EXPR_ID=9$ <------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3. Cannot cast from JRXmlDataSource to String value = (java.lang.String)(((net.sf.jasperreports.engine.data.JRXmlDataSource)((net.sf.jasperreports.engine.JRDataSource)parameter_REPORT_DATA_SOURCE.getValue())).dataSource("NFe/infNFe/ide/cNF"));//$JR_EXPR_ID=9$ <------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3 errors at net.sf.jasperreports.engine.design.JRAbstractCompiler.compileReport(JRAbstractCompiler.java:193) at it.businesslogic.ireport.IReportCompiler.run(IReportCompiler.java:587) at java.lang.Thread.run(Unknown Source)
[Email] [WWW] [MSN]
guilhermetonetto
JavaEvangelist
[Avatar]

Membro desde: 19/12/2007 15:51:54
Mensagens: 326
Offline

os type dos fields estao corretos??


confesso que me perdi um pouco naquilo que vc ta querendo ....

pq teu problema nao era no itens? nao precisa de hyperlink para fazer os itens , só fazer um subrelatorio e na query do proprio ireport fazer o select , e criar os FIELDS no ireport para cada dado que vem da query , cuidando os types dos fields ...

[]'s

"A mente que se abre a uma nova idéia jamais voltará ao seu tamanho original."(Albert Einstein)
[MSN]
PatricMaffi
Debugger
[Avatar]

Membro desde: 05/06/2007 13:41:16
Mensagens: 66
Localização: PR
Offline

Bomm sim, eh q eu estava jogando os valores manualmente com HashMap

da forma com que vc estava falando com query tinha q criar uma conexao com o xml direto no IReport
entao to começando la pelos primeiros valores do DANFE

ou seja voltei la no começo
criei um dataSource no IReport e estou tentando fazer a consulta

=///
[Email] [WWW] [MSN]
guilhermetonetto
JavaEvangelist
[Avatar]

Membro desde: 19/12/2007 15:51:54
Mensagens: 326
Offline

isso , cria um relatorio "mãe" e la nesse relatorio mãe cria um subrelatorio itens , q dentro deste subrelatorio itens vai ter a query que busca do BD os itens da determinada danfe ... a nao esqueca de colocar os itens na banda detail


qualquer duvida posta ae q se eu souber tento ajudar

[]'s

"A mente que se abre a uma nova idéia jamais voltará ao seu tamanho original."(Albert Einstein)
[MSN]
PatricMaffi
Debugger
[Avatar]

Membro desde: 05/06/2007 13:41:16
Mensagens: 66
Localização: PR
Offline

brotherr to saindo de ferias semana agora
qdo voltar vou fazer mais uns testes aqui
tem email para entrar em contato?
[Email] [WWW] [MSN]
guilhermetonetto
JavaEvangelist
[Avatar]

Membro desde: 19/12/2007 15:51:54
Mensagens: 326
Offline

bleza ....

pode postar aqui neste topico ou mandar e-mail para guilherme@tn3.com.br

e boas férias

[]'s

"A mente que se abre a uma nova idéia jamais voltará ao seu tamanho original."(Albert Einstein)
[MSN]
fre_d
Java Ninja

Membro desde: 13/06/2007 17:42:02
Mensagens: 259
Localização: Lages - SC
Offline

Alguém pode disponibilizar o arquivo jasper do DANFE ??? Ajudaria bastante ? Qq coisa entre em contato por mp !!!

Valeu

Fred
 
Índice dos Fóruns » Java Avançado
Ir para:   
Powered by JForum 2.1.8 © JForum Team