Seguinte, eu tenho um relatorio principal, e ele tem um sub-relatorio. No relatorio principal, quando eu gero ele em tempo de execução no java, eu uso:
JRBeanCollectionDataSource beanCollectionDataSource = new JRBeanCollectionDataSource(documents);
jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, beanCollectionDataSource);
JasperExportManager.exportReportToPdfFile(jasperPrint, "reports/" + REPORT_NAME + ".pdf");
O problema é que o subRelatorio só aceita Collection como dataSource… dai nas propriedades do sub-relatorio eu fui no campo Data Source Expression e coloquei:
O problema é que Summary é um objeto e não um arrayList/collection… compreenderam meu problema??? :?
existe algum dataSource que seja pra OBJECT apenas? Ou terei que criar/customizar um dataSource?
Dei uma olhada nesse link: http://jasperforge.org/uploads/publish/jasperreportswebsite/trunk/sample.reference/datasource/index.html
Ele explica sobre os dataSources, mas o que eu preciso não achei
Att.
André Mayer
Amigo oque você quer é passar apenas uma informação para o seu subRelatorio?
Se sim, é o seguinte.
Voce pode passar parametros para o seu subRelatorio.
Exemplo: supondo que você queira passar uma String “tituloSubRelatorio” para o seu subRelatorio.
Entao vc tera que passar essa informação primeiramente no sei Map assim:
parameters.put("tituloSubRelatorio", "SEU TITULO");
Agora no relatorio principal do jasper, voce tera que declarar o tituloSubRelatorio como parametro.
Agora na propiedade do subRelatorio que está no relatorio principal, vc tera que informar qual parametro deve ser passado para o subrelatorio. Na aba “Sub-Relatório (Outros)” outra aba “Parâmetros do Subrelatório”. Aqui, voce deve informar qual parametro deve ser passado ao subrelatorio.
Entao você adiciona o parametro “tituloSubRelatorio” para ser passado ao sub, com o mesmo nome do principal de preferencia.
Agora no seu subRelatorio, voce declara o pametro “tituloSubRelatorio” tambem. Agora so utilizar ele normalmente.
Resumindo.
Para um subrelatorio acessar os parametros que sao passado atraves do MAP, eles devem ser passados atraves do relatorio principal para o sub.
Qualquer duvida fala ae, e se resolver diz ae tb.
Abraço.
kra eu fiz isso que tu falou e não deu certo…
criei o parametro summary no relatorio principal do tipo String.
criei o parametro tambem no subRelatorio com o tipo String tambem.
No relatorio principal nas propriedades do sub-relatorio eu referenciei o parametro do relatorio principal pra ser passado pro sub-rel.
nao sei oq fiz de errado :S
eu só quero passar um objeto ‘-’ sem precisar passar uma lista…
cara, vc teve ter feito algo errado no ireport.
Voce selecionou o parametro assim $P{summary} para ser passado ?
Verifique q vc declarou como parameter e n como field.
Qualquer coisa me manda os .jrxml p eu dar uma olhada.
eu coloco o parametro no sub-relatorio na propriedade “Parameter Map Expression” ou “Parameters” ?
Primeiro vá ate seu relatório principal e declare o summary como parametro do tipo String.
Agora nas propriedades do subRelatorio que está contido no relatorio principal, passe o parametro do relatorio principal para o subRelatorio, como na imagem:
Agora entre em seu subRelatorio e declare o parametro igual declarou no relatorio principal, summary como parametro do tipo String.
Agora so utiliza-lo!!
Caso tenha duvida, me mande o jrxml, ou me add no msn: rdmardegam@hotmail.com
Abraço.
nao estamos usando a mesma versão do iReport, eu to usando a 3.7.3
Certo, mas existe a mesma funcionalidade tb !!
Olha como passa os parametros neste versao.
N esta funcionando a imagem do subreport.
Aparentemente está correto a passagem do parametro para o sub
[URL=http://img248.imageshack.us/i/subreport.jpg/]
[/URL]
Uploaded with [URL=http://imageshack.us]ImageShack.us[/URL]
A banda detail so serve para ser utilizada quando existe uma colecao de objeto, mesmo q seja apenas um elemento vazio.
Tente colocar a informacao do subrelatorio em outra banda, exemplo “Title” e veja se funciona.
Senão funcionar, veja qual banda está sendo passado o subrelatorio, se n contem nenhuma colecao no relatorio principal, o relatorio principal tb n deve ter a banda detail.
ja tentei de tudo ‘-’ vou desistir kkkkkkkk
cara, me passa o jrxml ou me add no msn. Isso é facil veio haha. me add ae:
rdmardegam@hotmail.com
Ou me manda os jrxml.
Cara, tenhos relatorios q passo mais de 100 parametros para o subrelatorio, mando colecoes para o subrelatorio. Deve ser alguma coisinha que você deve ta esquecendo de fazer.