Adicionar ou remover colunas em tempo de execução no iReport

5 respostas
F

Fala, galera…
Tô com um relatório aqui pra fazer e tá difícil.
No iReport puro não tem como fazer colunas dinâmicas, pelo que eu sei, mas tentei usar o DynamicJasper e não consegui trabalhar com o agrupamento.

O relatório ± no excel (da coluna material até impostos, as colunas são dinâmicas - vêm de um cadastro de famílias de custo):

Alguém saberia ajudar?
Valeu!

5 Respostas

F

ja usou ou ouviu falar em cross table?

ao que indica, eh a melhor solução para teu problema

segue um tutorialzinho by google search:

http://www.google.com.br/url?sa=t&rct=j&q=cross%20table%20ireport&source=web&cd=4&ved=0CHkQFjAD&url=http%3A%2F%2Fwww.furutani.com.br%2Fa%2Ftutorial_crosstab.pdf&ei=kFytT8HgJa_46QH5sLnoDA&usg=AFQjCNHCUIJicAjQF7kdDre6QEBbjX1awg&cad=rja

F

Já, sim. Tentei fazer esse tutorial, sem sucesso, mas vou tentar novamente. Provavelmente não me esforcei o bastante…
Até agora esse crosstable foi o que mais se aproximou de uma possível solução. Vou tentar implementar e volto.

Obrigado!

F

crosstab, é a coisa mais obscura que alguem pode fazer em um realtorio, qndo ela funcionar… delete o fonte e disponibilize soh o resultado(zueira XD … ou não)

sem condificar aqui no momento… e tentando entender a imagem que anexaste

tente fazer uma interface com tua crosstab, q tenha o cabeçalho a obra o valor… todos os dados que tu precisa, crie uma lista de objetos que implementam essa "casca"
cruze o dedos e teste (eu tentaria assim)

o/

F

crosstab, é a coisa mais obscura que alguem pode fazer em um realtorio, qndo ela funcionar… delete o fonte e disponibilize soh o resultado

sem condificar aqui no momento… e tentando entender a imagem que anexaste…

tente fazer uma interface com a configuraçao tua crosstab, q tenha o cabeçalho a obra o valor… todos os dados que tu precisa, crie uma lista de objetos que implementam essa "casca"
cruze o dedos e teste (eu tentaria assim)

o/

F

Tô tentando aqui, mas olha a excessão que deu:

Exception in thread "main" java.lang.ClassCastException: cannot assign instance of net.sf.jasperreports.crosstabs.base.JRBaseCrosstab to field net.sf.jasperreports.engine.base.JRBaseLineBox.boxContainer of type net.sf.jasperreports.engine.JRBoxContainer in instance of net.sf.jasperreports.engine.base.JRBaseLineBox
	at java.io.ObjectStreamClass$FieldReflector.setObjFieldValues(Unknown Source)
	at java.io.ObjectStreamClass.setObjFieldValues(Unknown Source)
	at java.io.ObjectInputStream.defaultReadFields(Unknown Source)
	at java.io.ObjectInputStream.readSerialData(Unknown Source)
	at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
	at java.io.ObjectInputStream.readObject0(Unknown Source)
	at java.io.ObjectInputStream.defaultReadFields(Unknown Source)
	at java.io.ObjectInputStream.defaultReadObject(Unknown Source)
	at net.sf.jasperreports.crosstabs.base.JRBaseCrosstab.readObject(JRBaseCrosstab.java:419)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at java.io.ObjectStreamClass.invokeReadObject(Unknown Source)
	at java.io.ObjectInputStream.readSerialData(Unknown Source)
	at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
	at java.io.ObjectInputStream.readObject0(Unknown Source)
	at java.io.ObjectInputStream.readObject(Unknown Source)
	at java.util.ArrayList.readObject(Unknown Source)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at java.io.ObjectStreamClass.invokeReadObject(Unknown Source)
	at java.io.ObjectInputStream.readSerialData(Unknown Source)
	at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
	at java.io.ObjectInputStream.readObject0(Unknown Source)
	at java.io.ObjectInputStream.defaultReadFields(Unknown Source)
	at java.io.ObjectInputStream.readSerialData(Unknown Source)
	at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
	at java.io.ObjectInputStream.readObject0(Unknown Source)
	at java.io.ObjectInputStream.defaultReadFields(Unknown Source)
	at java.io.ObjectInputStream.defaultReadObject(Unknown Source)
	at net.sf.jasperreports.engine.base.JRBaseReport.readObject(JRBaseReport.java:729)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at java.io.ObjectStreamClass.invokeReadObject(Unknown Source)
	at java.io.ObjectInputStream.readSerialData(Unknown Source)
	at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
	at java.io.ObjectInputStream.readObject0(Unknown Source)
	at java.io.ObjectInputStream.readObject(Unknown Source)
	at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:211)
	at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:603)
Criado 11 de maio de 2012
Ultima resposta 14 de mai. de 2012
Respostas 5
Participantes 2