| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 24/03/2009 10:00:56
|
DirceuSobrinho
JavaChild
![[Avatar]](/images/avatar/8f7d4d570dd8d2de4e4713dc37719db8.jpg)
Membro desde: 21/01/2007 08:49:02
Mensagens: 139
Localização: Maceió - AL
Offline
|
Olá.
Estou tentando gerar um relatorio que contem um subreport, e dentro do subreport outros subreports(a principio ainda nao estou fazendo os subs dentro dos subs).
estou obtendo os dados do relatorio atraves de uma coleção(List); e dentro de cada elemento da coleção tem outra lista que deve ser a base de dados do subrelatorio.
O problema que estou tendo, é que: o relatorio é gerado sem exibir o subrelatorio. (apesar da coleção está populada, acho que o subreport nãio está conseguindo obter os seus dados)
Como eu fiz os relatórios:
1. criei o relatório principal no iReport, adicionei os CAMPOS SIMPLES, e um campo PROGRAMASDETRABALHO que se referencia a uma lista do objeto principal e esse campo deverá popular o subreport
2. adicionei o subrelatorio através EDITAR->INSERIR ELEMENTO -> SUBRELATORIO
3. selecionei a opção: Usuando um relatorio já existente (anteriormente fiz o relatorio do subreport), em seguida, marquei a opção UTILIZANDO UMA EXPRESSÃO JRDATASOURCE, e preenchi com a expressão $F{programasTrabalho} criada no item 1. E deixei marcado: Armazenar nome do diretorio em um parametro $P{SUBREPORT_DIR} + ...
após a criação do subreport, dou um duplo clique no mesmo e obtenho os seguintes campos preenchidos:
- SUBRELATORIO: usar a conexão do relátorio $P{REPORT_CONNECTION}
- Sub-Relátorio (outro): $P{SUBREPORT_DIR} + "programa.jasper"
pronto, foi assim que criei os relatorios e o sub (É preciso fazer algo mais no ireport?)
agora o processo de geração do relátorio:
OBS. Os objetos PlanejamentoOrcamentario possui o metodo getProgramasTrabalho() que retorna list<ProgramaTrabalho>() populada que deverá preencher o subreport!
a unica associação do atributo programasTrabalho de PlanejamentoOrçamentario com o relatorio é somente na criação de um campo programasTrabalho do tipo objeto, isso no ireport? ou tem mais alguma associação no método de geração do relatorio?
Att. Dirceu Sobrinho
This message was edited 1 time. Last update was at 24/03/2009 11:52:23
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 24/03/2009 10:33:10
|
felipecaparelli
Thread.start()
![[Avatar]](/images/avatar/b45da944356527405715c356a9ac9379.jpg)
Membro desde: 05/07/2007 17:06:47
Mensagens: 31
Localização: São Paulo - SP - Brasil
Offline
|
O que geralmente causa essa ausência de renderização dos subreports é a falta de passagem dos parametros necessários para o subreport a partir do report que o contém.
Para verificar isso, selecione o subreport dentro do report (caso esteja utilizando o iReport) e clicando com o botão direito vá em Propriedades.
Depois selecione a aba Sub-Relatório (Outro) e verifique se os parametros necessários de serem 'vazados' para o subreport estão presentes nesta listagem.
Espero que isso já ajude.
|
Felipe Caparelli
Deus é minha fortaleza |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 24/03/2009 11:44:32
|
DirceuSobrinho
JavaChild
![[Avatar]](/images/avatar/8f7d4d570dd8d2de4e4713dc37719db8.jpg)
Membro desde: 21/01/2007 08:49:02
Mensagens: 139
Localização: Maceió - AL
Offline
|
na aba sub-Relatórios (Outro) só tem apenas a expressão de sub-relatorio: $P{SUBREPORT_DIR} + "programa.jasper"
não tenho nenhum paramentros declarado.
preciso declarar algum? a principio não vejo necessidade de passar parametros nesse subrelatorio, apenas do datasource
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/03/2009 09:38:52
|
felipecaparelli
Thread.start()
![[Avatar]](/images/avatar/b45da944356527405715c356a9ac9379.jpg)
Membro desde: 05/07/2007 17:06:47
Mensagens: 31
Localização: São Paulo - SP - Brasil
Offline
|
Você só precisa declarar esses parametros caso dentro do subreport você os utilize para algum fim. Ainda mais se estiver utilizando algum para verificar se o mesmo deve ser impresso. Outro fator que pode estar interferindo é o de o datasource que você acreita estar passando não esteja sendo realmente passado para o subreport.
Se você puder de alguma forma colocar o código do jasper ai ajuda.
|
Felipe Caparelli
Deus é minha fortaleza |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 26/03/2009 07:57:46
|
DirceuSobrinho
JavaChild
![[Avatar]](/images/avatar/8f7d4d570dd8d2de4e4713dc37719db8.jpg)
Membro desde: 21/01/2007 08:49:02
Mensagens: 139
Localização: Maceió - AL
Offline
|
codigo do jasper
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 26/03/2009 10:42:35
|
felipecaparelli
Thread.start()
![[Avatar]](/images/avatar/b45da944356527405715c356a9ac9379.jpg)
Membro desde: 05/07/2007 17:06:47
Mensagens: 31
Localização: São Paulo - SP - Brasil
Offline
|
Pelo que pude notar, olhando com mais calma, na linha 07 parametros.put("SUBREPORT_DIR", pathDiretorio+"/"); você não passou o arquivo do subreport, apenas o diretório.
Verifique se foi isso mesmo.
|
Felipe Caparelli
Deus é minha fortaleza |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 26/03/2009 12:53:31
|
DirceuSobrinho
JavaChild
![[Avatar]](/images/avatar/8f7d4d570dd8d2de4e4713dc37719db8.jpg)
Membro desde: 21/01/2007 08:49:02
Mensagens: 139
Localização: Maceió - AL
Offline
|
o problema não é a linha 07.
a linha 07 deve receber só o diretorio mesmo.
pois no jasper eu defino para concatenar diretorio passado como parametro com o nome do arquivo que ja foi declado no ireport como pode ser ver a baixo:
<subreportExpression class="java.lang.String"><![CDATA[$P{SUBREPORT_DIR} + "programas.jasper"]]></subreportExpression>
mas mesmo assim alterei a linha 07 adicionando o nome do arquivo jasper.
ai obtive o seguinte error:
net.sf.jasperreports.engine.JRException: Could not load object from location : C:\workspace-sesau\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\SESAU1\rel/programas.jasperprogramas.jasper
infelizmente não é isso =/
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 30/03/2009 18:44:43
|
felipecaparelli
Thread.start()
![[Avatar]](/images/avatar/b45da944356527405715c356a9ac9379.jpg)
Membro desde: 05/07/2007 17:06:47
Mensagens: 31
Localização: São Paulo - SP - Brasil
Offline
|
De que forma você está gerando o arquivo .jasper? direto pelo iReport ou está gerando um objeto JasperReport via código com a classe:
JasperCompileManager.compileReport("arquivo.jrxml"); Dependendo da forma você pode estar criando somente o .jasper do Report e não do SubReport.
Eu sugiro que como forma de teste vc criar um outro report de forma bem simples e introduzir um subreport com dados texto sem muita coisa, para ver se não é algum problema com o arquivo ou algo assim. As vezes deixamos passar essas coisinhas.
|
Felipe Caparelli
Deus é minha fortaleza |
|
|
 |
|
|