Estou tendo um problema semelhante. Tenho um relatório mestre e com dois subrelatórios. Setei dois parâmetros no mestre com o tipo java.util.List e o atributo “Data Source Expression” dos subreports como “new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($P{nomeParametro})”.
Quando tento executar meu relatório da aplicação vem o seguinte erro:
net.sf.jasperreports.engine.JRException: Incompatible net.sf.jasperreports.engine.data.JRBeanCollectionDataSource value assigned to parameter favorecidos in the reqPedidoDeslocamento dataset.
Estou usando jsf 1.2 e iReport 3.7.1., e jasperreports 3.1.2.jar
Bom dia, estou revivendo esse tópico pq me deparei com um problema que acredito que a solução seja simples. Tenho uma classe pedido que possui como atributo uma lista de itens pedido. Quero fazer um relatorio usando Javabeans que liste os pedidos e um subrelatorio com JRBeanCollectionDataSource. Criei um field listaItensPedido que representa o list e estou passando para o subrelatorio atraves da expressão:
new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F{listaItensPedido})
Porem o maldito no ireport 3.6.1 fica dando essa exceção:
ccefetpb, por padrão o ireport seta o relatorio como UTF-8 e não como UTF8 como esta no seu stacktrace.
Da uma olhada nas propriedades do relatorio, dentro de propriedades vc vai encontrar uma opção properties (isso mesmo propriedades dentro de propriedades, rs), la vai estar setado o ireport.encoding se não estiver como UTF-8 coloque isso no lugar do que estiver q deve funcionar.
Não deu pra saber muito pelo erro, mas como achei estranho esse UTF8 pode ser uma possibilidade.
Era mais ou menos o que vc disse. Coloquei o subreport no modo XML e no enconding estava UTF8, coloquei o traço e funcionou. Agora estou com problemas para gerar o relatorio. Fica aparecendo que o relatorio nao esta encontrando o Resource Bundle entretanto o caminho que estou colocando é o correto.
16/12/2010 15:02:01 net.sf.jasperreports.engine.fill.JRFillSubreport prepare
GRAVE: Fill 18820833: exception
java.util.MissingResourceException: Can't find bundle for base name Mensagens, locale pt_BR
at java.util.ResourceBundle.throwMissingResourceException(Unknown Source)
at java.util.ResourceBundle.getBundleImpl(Unknown Source)
at java.util.ResourceBundle.getBundle(Unknown Source)
at net.sf.jasperreports.engine.util.JRResourcesUtil.loadResourceBundle(JRResourcesUtil.java:568)
at net.sf.jasperreports.engine.util.JRResourcesUtil.loadResourceBundle(JRResourcesUtil.java:506)
at net.sf.jasperreports.engine.fill.JRFillDataset.loadResourceBundle(JRFillDataset.java:529)
at net.sf.jasperreports.engine.fill.JRFillDataset.setParameterValues(JRFillDataset.java:564)
at net.sf.jasperreports.engine.fill.JRBaseFiller.setParameters(JRBaseFiller.java:1231)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:862)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:830)
at net.sf.jasperreports.engine.fill.JRFillSubreport.fillSubreport(JRFillSubreport.java:561)
at net.sf.jasperreports.engine.fill.JRSubreportRunnable.run(JRSubreportRunnable.java:59)
at net.sf.jasperreports.engine.fill.JRThreadSubreportRunner.run(JRThreadSubreportRunner.java:205)
at java.lang.Thread.run(Unknown Source)
java.util.MissingResourceException: Can't find bundle for base name Mensagens, locale pt_BR
at java.util.ResourceBundle.throwMissingResourceException(Unknown Source)
at java.util.ResourceBundle.getBundleImpl(Unknown Source)
at java.util.ResourceBundle.getBundle(Unknown Source)
at net.sf.jasperreports.engine.util.JRResourcesUtil.loadResourceBundle(JRResourcesUtil.java:568)
at net.sf.jasperreports.engine.util.JRResourcesUtil.loadResourceBundle(JRResourcesUtil.java:506)
at net.sf.jasperreports.engine.fill.JRFillDataset.loadResourceBundle(JRFillDataset.java:529)
at net.sf.jasperreports.engine.fill.JRFillDataset.setParameterValues(JRFillDataset.java:564)
at net.sf.jasperreports.engine.fill.JRBaseFiller.setParameters(JRBaseFiller.java:1231)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:862)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:830)
at net.sf.jasperreports.engine.fill.JRFillSubreport.fillSubreport(JRFillSubreport.java:561)
at net.sf.jasperreports.engine.fill.JRSubreportRunnable.run(JRSubreportRunnable.java:59)
at net.sf.jasperreports.engine.fill.JRThreadSubreportRunner.run(JRThreadSubreportRunner.java:205)
at java.lang.Thread.run(Unknown Source)
O Mensagens esta dentro do pacote conf e para testar eu coloquei dois arquivos :
Mensagens_en_US.properties e Mensagens_pt_BR.properties
Não sei se vocês ainda lembram desse post, mas estou precisando de uma ajuda. Eu tenho como acessar um método da minha classe no subrelatório? Por exemplo eu tenho um atributo CNPJ que está sem formatação, mas eu tenho um método que faz a formatação para exibição do mesmo com os pontos e barras do cnpj.
Ao selecionar um field no Ireport, você pode ir na aba propriedades e aplicar um padrão para esse campo. Procure pela propriedade “pattern” com o field selecionado. Eu sempre faço isso para alguns fields do tipo Date, ou aqueles em que preciso mostrar no formato de moeda.
No IReport eu mapiei os dois primeiro com String e o atributo listaExtratos como java.util.List.
Agora o pulo do gato: Inseri o subreport e coloquei as seguintes propriedades:
connection type: use datasource
data souce expression: new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F{listaExtratos})
No subrepostes eu coloquei os atritutos contidos no meu objeto ExtratoTO com os mesmo data types.
E funcionou! :lol:
Obrigado e um abraço para todos.[/quote]
Oi,
Será que você pode passar uma projeto desses (classes Java + .jrxml) bem básico? Tipo um main apenas com objetos, uma lista e essa solução aí, porque preciso fazer um relatorio de uma classe que tem uma lista dentro dela e nao consigo de forma alguma, mesmo vendo varios tutoriais. VocÊ poderia me ajudar nisso?