Estou usando o Ireport para geração de relatórios, e pelo que vejo, é possível criar relatórios inicais apenas com uma página, há alguma maneira de adicionar nova página em branco ao relatório? É que uma página conterá um tipo de registros, e este relatório sempre terá duas páginas e os valores serão passados por parâmetros por um hashMap, desde já agradeço.
Inserir um novo grupo no relatório principal. Procure o botão Agrupamentos de relatório “na versão 3.0.0” Marcar opção iniciar em nova página. Na banda que for criada, colocar o sub-relatório.
Humm… Em tese consegui solucionar o problema, criei o Sub relatório com os parâmetros necessários e configuei para abrir em nova página como você disse.
O X da questão agora é como passar o Map para o Sub, esclarendo, não estou utilizando DataSource/Connection em nenhum campo do relatório é tudo parametros P${}, o primeiro relatório é preenchido corretamente, já no Sub, sendo uma cópia fiel do primeiro (Mudando alguns campos apenas), isso não acontece, vi alugma coisa pela internet para usar o JRBeanCollectionDataSource e passar um ArrayList como parâmetro, fiz isso, criei um Bean, setei os campos necessários, e o adicionei na lista, porém aí no relatório criei um Field do tipo #F{parameter_7}, só que ele retorna erro que não conseguiu encontar o field na classe informada, segue-se stackTrace:
13:44:51,884 ERROR [JRFillSubreport] Fill 864753675: exception
net.sf.jasperreports.engine.JRException: Error retrieving field value from bean : parameter_7
at net.sf.jasperreports.engine.data.JRAbstractBeanDataSource.getBeanProperty(JRAbstractBeanDataSource.java:123)
at net.sf.jasperreports.engine.data.JRAbstractBeanDataSource.getFieldValue(JRAbstractBeanDataSource.java:96)
at net.sf.jasperreports.engine.data.JRBeanCollectionDataSource.getFieldValue(JRBeanCollectionDataSource.java:100)
at net.sf.jasperreports.engine.fill.JRFillDataset.setOldValues(JRFillDataset.java:821)
at net.sf.jasperreports.engine.fill.JRFillDataset.next(JRFillDataset.java:785)
at net.sf.jasperreports.engine.fill.JRBaseFiller.next(JRBaseFiller.java:1482)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:126)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:946)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:864)
at net.sf.jasperreports.engine.fill.JRFillSubreport.fillSubreport(JRFillSubreport.java:613)
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(Thread.java:662)
Caused by: java.lang.NoSuchMethodException: Unknown property 'parameter_7' on class 'class br.teste.server.stock.Term'
at org.apache.commons.beanutils.PropertyUtilsBean.getSimpleProperty(PropertyUtilsBean.java:1322)
at org.apache.commons.beanutils.PropertyUtilsBean.getNestedProperty(PropertyUtilsBean.java:770)
at org.apache.commons.beanutils.PropertyUtilsBean.getProperty(PropertyUtilsBean.java:846)
at org.apache.commons.beanutils.PropertyUtils.getProperty(PropertyUtils.java:426)
at net.sf.jasperreports.engine.data.JRAbstractBeanDataSource.getBeanProperty(JRAbstractBeanDataSource.java:111)
... 12 more
Tenho a certeza que os nomes são identicos.
Não sei o que fazer , mas alguma sugestão flavioandreaz
Senhores, consegui resolver o problema, como citado os parâmetros existiam, e eu já havia feito o que foi citado pelo flavioandreaz, só que de uma forma um pouco diferente, pelos Wizard do Ireport 4 o X da questão foi criar getters para todos os parâmetros, creio que o Jasper trabalhe com reflexão, em vez de usar o acesso direto ao atributo ele procura os getter, estranho não?! . Solucionado