Sub-report dataSource Jasper

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.


http://img651.imageshack.us/f/summary.jpg

http://img820.imageshack.us/i/subreport.jpg

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.