(2Vias documento relatorio) & (Exception após atualizar) - IReport
52 respostas
M
Marky.Vasconcelos
Olá, eu procurei de varias formas na internet e não achei o que eu queria.
Como eu repito o mesmo resultado do IReport duas vezes em uma pagina?
Eu tenho duas situações, a primeira é uma fatura que precisa ser impressa duas vezes, atualmente eu mando imprimir uma e viro a folha e imprimo denovo.
A segunda, são etiquetas, e se possivel gostaria de saber se é possivel alterar o numero de repetições no relatorio para evitar imprimir coisas desnecessarias.
Olá, eu procurei de varias formas na internet e não achei o que eu queria.
Como eu repito o mesmo resultado do IReport duas vezes em uma pagina?
Eu tenho duas situações, a primeira é uma fatura que precisa ser impressa duas vezes, atualmente eu mando imprimir uma e viro a folha e imprimo denovo.
A segunda, são etiquetas, e se possivel gostaria de saber se é possivel alterar o numero de repetições no relatorio para evitar imprimir coisas desnecessarias.
Ty. []'s
Nunca tive que fazer isso, mas chuto o seguinte: os relatórios do Jasper seguem o DP Composite. Seria possível você pegar o relatório que você quer duplicar, colocar dois desses num relatório “macro” (como se eles fossem sub-reports) e tentar de novo?
Quanto ao número de repetições, você pode controlar isso com um DataSource customizado.
[]´s
N
nel
Bom dia.
Exatamente como o asaudate comentou. Utilize sub-report. Em relação ao número de repetições, você controla no Data Source, enviando uma lista com 0…N valores.
E isso não é um chute, é certeza.
Abraços.
A
Alexandre_Saudate
nel:
Bom dia.
Exatamente como o asaudate comentou. Utilize sub-report. Em relação ao número de repetições, você controla no Data Source, enviando uma lista com 0…N valores.
E isso não é um chute, é certeza.
Abraços.
OU implementando a própria versão de DataSource. No método next(), pode-se avaliar se precisa continuar ou não (de acordo com o parâmetro q vc definir).
[]´s
M
Marky.Vasconcelos
Hmm… obrigado, vou tentar isso.
Sinceramente eu tinha medo de ter que usar sub-reports.
Vou implementar algo para a fatura que é o que preciso mais urgente.
M
Marky.Vasconcelos
Hmm… estou tentando, mas não consegui usar esses sub-relatorios.
Indiquei para ser o mesmo relatorio mas nao deu certo.
T
TheKill
Fácil, você usa Collections??
A
Alexandre_Saudate
Mark_Ameba:
Hmm… estou tentando, mas não consegui usar esses sub-relatorios.
Indiquei para ser o mesmo relatorio mas nao deu certo.
Como você está fazendo pra inserir? Posta uns print-screen aí pra gente ver…
Ps.: Usar Group fica muito mais facil… Porque não usa eles?
Att. Jonas
M
Marky.Vasconcelos
Eu só quero o resultado do relatorio duas vezes.
Como se fosse duas vias.
A
Alexandre_Saudate
Novamente, é só um chute, mas o que acontece se você tirar o espaço do nome do .jrxml ? Aliás, você disse que o sub-relatório é o mesmo que o relatório pai, é isso? Você precisa ter, na verdade, dois relatórios (um com a via e outro com o relatório macro, contendo as duas vias). Senão, é como se ele iniciasse uma recursão.
[]´s
M
Marky.Vasconcelos
bem, acredito que o espaço não seja o problema, é só o nome do arquivo.
E não sei por que, mas não me parece que eu precise usar sub-relatorios para fazer isso.
A não ser que meu relatorio tenha dois sub-relatorios desse que quero repetir, conforme voce disse eu acho.
T
TheKill
eu falei para usar grupos, mas acho que não leu…
estamos tentando ajudar, mas então beleza =)
M
Marky.Vasconcelos
Eu tentei usar grupos sim.
Mas não entendi como.
Voce quis dizer grupos no relatorio ou grupos no SQL?
T
TheKill
no relatório mesmo…
é o caminho mais fácil, eu odeio e ignoro utilização de subRelatórios
Mas uma coisa é quase certa, não tem como fazer o sql repertir…
então aconselho enviar uma Collection com os dados populados…
Assim sendo, vc vai conseguir enviar 2x a mesma informação…
No grupo, vc teria que repetir todos os campos de forma igual ao Detail…
Deve funcionar, eu entendi seu objeto final… E acredito que assim resolve de maneira simples
M
Marky.Vasconcelos
Bem… eu não consegui repetir o resultado mas tenho outra duvida mais urgente.
Preciso fazer um relatorio que tenha duas bandas detail.
Meu caso é o seguinte.
Tenho a tabela romaneio e as tabelas ordemcoleta e conhecimento.
Quero que o header seja do romaneio e tenha a banda detail para a ordemcoleta e uma segunda para o conhecimento. É possivel?
Até onde vi não consegui.
Acredito que não seja pelo fato da SQL não separar os dados dessa forma, isso seria um caso para realmente usar sub-report?
T
TheKill
não entendi qual o problema nisso…
o primeiro detail sera para a ordemcoleta,
e o segundo detail conhecimento…
tranquilo… deu algum erro?
como que saiu?
M
Marky.Vasconcelos
Entao… nao consegui criar duas bandas detail.
Até tentei colocar em uma outra banda mas apareceu só o 1° resultado.
E tentei a mesma lógica para imprimir duas vias mas também aconteceu a mesma coisa.
T
TheKill
nao conseguiu criar 2 banda detail??
add another band
M
Marky.Vasconcelos
Uma print de como estou tentando fazer com os grupos para as duas vias.
Não vou te dizer com 100% certeza…
Mas te digo com 99,9% que seja no seu SQL o problema,
se entendi bem… vc nao quer que repita os dados…
Talvez seria o caso de usar distinct
AS Bandas >
Report Inspector
M
Marky.Vasconcelos
Ñão é que o resultado repetiu, mas o que eu queria é que para cada resultado em baixo tem um em cima, quando coloquei dois resultados do 1° detail, ficou mais estranho ainda.
T
TheKill
ta estranho, nao entendi mto bem oque vc quer
M
Marky.Vasconcelos
Bem. Fiz um novo exemplo que provavelmente da para entender o que quero fazer.
Imagine que tenha 2 registros na tabela coleta e 5 no ctrc.
esquerda -> resultado
direita -> o que espero
E o que eu queria das bandas era realmente trocar de lugar com outra banda.
Mas não estou entendendo o que você quer fazer o.O
Só vejo informações repetidas no lado esquerdo…
e no lado direito informações que não repetem…
Tá dificil compreender oque realmente quer que o relatório faça
T
TheKill
vc quer que apareça na aba da direita, os resultados que vc mostrou?
porque não esta mostrando isso??? só aparece o resultado esquerdo… e vc quer q aparece o lado direito conforme mostrou na imagem?
PS.: VC TEM O LADO ESQUERDO!! E QUER QUE APAREÇA O LADO DIREITO CONFORME IMAGEM, PORQUE TA VINDO EMBRANCO.
é isso?
M
Marky.Vasconcelos
O lado esquerda é o que aparece para mim.
O lado direito eu editei que é o que quero.
Pensei que com duas bandas detail isso aconteceria. Mas pensei ser impossivel por causa do SQL.
Talvez isso realmente seja um caso para usar sub-report.
T
TheKill
mas é facil.
nao é questao nem de grupo.
seria o fato de criar um pequeno frame ali para aquelas informações…
e enviar collection para o relatorio ao invés de um simples SQL…
vc vai ter que se ater aos critérios… como é o filtro para o lado direito?
quais condições tem que atender para que seja impresso ali?
Sendo assim… vc vai verificar as informações do lado esquerdo…
e qndo estas atenderem ao que vc espera, vc imprime no lado direito que é um frame na mesma banda detail
T
TheKill
Veja este relatório…
Acho que é o que esta querendo fazer
M
Marky.Vasconcelos
Não exatamente, eu só coloquei lado esquerdo e direito na foto para visualizar melhor meu problema, mas o que eu quero é que mostre apenas o lado direito.
O que eu quero é que primeiro ele liste todas ordem_coletas depois ele liste todos os conhecimentos.
Mas não precisa ser lado esquerdo e direito.
Sem querer abusar da sua bondade tem como me mostrar um exemplo de como fazer duas vias do mesmo relatorio usando grupos?
T
TheKill
Mark_Ameba:
Não exatamente, eu só coloquei lado esquerdo e direito na foto para visualizar melhor meu problema, mas o que eu quero é que mostre apenas o lado direito.
O que eu quero é que primeiro ele liste todas ordem_coletas depois ele liste todos os conhecimentos.
Mas não precisa ser lado esquerdo e direito.
Sem querer abusar da sua bondade tem como me mostrar um exemplo de como fazer duas vias do mesmo relatorio usando grupos?
Pra isso, vc deve criar grupo da seguinte forma. group expression = ordemcoletas_id…
e entao dentro do grupo vc coloca os 2 fields… $F{ordemcoletas_id } e $F{conhecimentos}
Para o grupo repetir o mesmo relatorio, é o mesmo sentido desse relatorio.
vc vai pegar as informações que vai repetir e copialas no grupo…
Sendo o group expression o codigo da nota por exemplo… Este código é 1 por nota
T
TheKill
Veja em anexo
M
Marky.Vasconcelos
Ahh… eu acho que voce não entendeu por um motivo, são duas tabelas separadas, ordem_coleta e conhecimento.
E preciso listar a 1° em cima e a 2° embaixo.
Anyway… pediram para fazer o relatorio de outro jeito então não vou precisar disso, mas estou realmente curioso de como fazer.
Mas mesmo assim ainda preciso imprimir duas vias daquela relatorio.
T
TheKill
Eu entendi que são duas tabelas separadas o.O …
Chegou a testar?? Saiu errado? Deu erro?
Como saiu?
Nunca tive problemas o.O
Da forma que eu falei… ele ia imprimir tudo da primeira listagem, e depois da segunda oO
É… o relatorio esta correto, o que eu espero que está errado.
Mas e o caso de duas vias? Alguma dica?
E outra… o relatorio novo que criei com esse IReport não está rodando com o jar antigo que tenho no sistema.
Mesmo salvando com compatibilidade 3.0.0
Vou ter que mudar o jar do sistema e recompilar todos relatorios?
T
TheKill
eu aconselho atualizar os jars para a versão nova…
e recompilar todos os relatórios novamente…
se manter atualizado é uma boa escolha…
qnto ao outro relatorio é como te falei no exemplo de grupo…
group expression $F{codigo}
e dentro do grupo todos os campos igual o detail do relatorio
M
Marky.Vasconcelos
Ta vou tentar.
Eu só tenho MSN aqui no trampo
T
TheKill
pootz, mas se vc tiver gmail… é so entrar no email que da pra conversar la…
é mais facil pra se comunicar… se nao quiser tudo bem… é que msn meu chefe nao vai gostar hehe
M
Marky.Vasconcelos
Bem… atualizei os jars… e agora quando tento executar qualquer relatorio acontece a seguinte exception.