Página 1 de 1

[resolvido] Ao visualizar a impressão o sub relatório desaparece

Enviado: 20 Dez 2017, 18:47
por Lucio Warley Lippi
Olá Senhores;

Sou novato no Fórum, pesquisei mas não encontrei tópico parecido.

Estou desenvolvendo um sistema para condomínios e uma das funcionalidades é a emissão de um relatório que contem a taxa de condomínio. Nesse relatório há um sub relatório, cuja relação é muitos para muitos.

Quando abro o relatório todos os registros são carregados, inclusive os dados sub relatório.

Contudo, quando visualizo a impressão ou exporto o relatório para pdf, os dados do sub relatório não carregam (ficando em branco).

Alguma dica sobre o problema?

Obrigado

Re: Ao visualizar a impressão o sub relatório desaparece

Enviado: 20 Dez 2017, 20:11
por Lucio Warley Lippi
Para facilitar a compreensão do problema segue banco de dados versão 2007.

Favor rodar o formulário "TaxaDeCondominio", veja que o sub formulário apresenta dados.

Favor rodar o relatório "Relatório Previsão da Taxa de Condomínio". Depois tente visualizar o relatório e veja que o sub relatório desaparece ao visualizar impressão.

Antecipo agradecimentos.

Condomínio.zip

Re: Ao visualizar a impressão o sub relatório desaparece

Enviado: 21 Dez 2017, 12:47
por Avelino Sampaio
Lucio,

o seu subrelatório está vinculado com o relatório principal através dos seguintes campos:

Vincular campos MESTRES: Código
Vincular campos Filhos: Chave

No exemplo fornecido vc só tem dados de ocorrência relativo a chave 1224 e o ultimo código exibido no relatório principal é o 1259. Portanto o subrelatório não é exibido porque não tem dados correlacionados.

Como exemplo, fiz uma filtragem forçada pelo evento "ao carregar" do relatório, exibindo apenas o código 1224. Observe que o subrelatório será exibido.

Aguardamos

Re: Ao visualizar a impressão o sub relatório desaparece

Enviado: 21 Dez 2017, 13:44
por Lucio Warley Lippi
Senhor Avelino;

Ante de mais nada agradeço o material enviado na aquisição do PLANO F ( assinatura por 3 anos ). Tenho estudado o seu material e descobertos abordagens incríveis!!!

O arquivo que enviei é uma pequena amostra de uma série de registros. Ao carregar o filtro sugerido no evento Load:

Código:
Private Sub Report_Load()
Me.Filter = "código=1224"
Me.FilterOn = True
End Sub


... só é mostrado os dados no sub relatório quando o Código for 1224.

Mas e quando o valor do Código for outro? (Na tabela originária há inúmeros registros e portanto inúmeros valores para Código)

Outra situação... Antes do filtro sugerido pelo senhor, ao abrir o relatório na propriedade Modo Padrão = Modo Relatório, os dados do sub relatório eram mostrados; mas ao modificar a propriedade Modo Padrão = Visualização de Impressão, os dados não são mostrados.

Estou fazendo algo errado e não consegui descobrir onde!! Talvez o relacionamento muito para muitos que eu fiz não esteja correto!

Terei que rever a modelagem e o relacionamento ente as tabelas!

Obrigado!

Re: Ao visualizar a impressão o sub relatório desaparece

Enviado: 21 Dez 2017, 15:05
por Avelino Sampaio
Lucio

o filtro que eu apliquei foi apenas para demonstrar que o subrelatório aparece, pois este está vinculado o campo código do relatório principal. Para visualizar o subrelatório, independente do código exibido no relatório principal, limpe as duas propriedades abaixo, deixando em branco

Vincular campos MESTRES: Deixe em branco
Vincular campos Filhos: Deixe em branco

Aguardamos

Re: Ao visualizar a impressão o sub relatório desaparece

Enviado: 21 Dez 2017, 17:32
por Lucio Warley Lippi
Senhor Avelino;

Entendi o raciocínio, mas seu deixar os campos (LinkMasterFields e LinkChildFields) em branco todos os registros do sub relatório serão visualizados no relatório. (Na tabela do aplicativo existem inúmeros registros - no exemplo enviado por mim só há dois registros na tabela Ocorrência)

Ao abrir o relatório, os dados do sub relatório que carregarem devem guardar vínculo com o campo Código; fazendo com que os dados do sub relatório sejam os que estiverem vinculados.

Incluí uma tabela TblUniao para estabelecer uma relação muitos para muitos, impondo integridade referencial e propagando atualização dos campos relacionados; mas também não funciona!!!

Preciso que ao abrir o relatório os registros do sub relatório sejam os que guardam vínculos com os campos correspondentes.

No próximo mês outra taxa de condomínio será gerada e podem haver novas ocorrências (multa do apartamento X, mudança do apartamento Y, etc) vinculadas à taxa de condomínio em questão.

Obrigado!

Re: Ao visualizar a impressão o sub relatório desaparece

Enviado: 29 Dez 2017, 09:45
por Lucio Warley Lippi
Prezados;

Tentei uma abordagem que consiste na formulação de duas consultas que trazem as mesmas opções de critérios temporais (ano e mês), tal e qual como no evento on load do relatório. Assim no evento on load do sub relatório, temos:

Código:
If Month(Date) = 12 Then
Me.SubRelatórioOcorrência.SourceObject = "Relatório.SubRelatórioOcorrênciaJan"
Else
Me.SubRelatórioOcorrência.SourceObject = "Relatório.SubRelatórioOcorrênciaOutro"
End If


As consultas salvas "Relatório.SubRelatórioOcorrênciaJan" e "Relatório.SubRelatórioOcorrênciaOutro" foram estruturadas da seguinte forma:

"Relatório.SubRelatórioOcorrênciaJan"

Código:
SELECT Ocorrência.Código, Ocorrência.[Data ref], Ocorrência.[Aptº nº], Ocorrência.Ocorrência, Ocorrência.Valor,_
Ocorrência.Chave, TaxaDeCondominio.Código, TaxaDeCondominio.Ano, TaxaDeCondominio.Mês_
FROM TaxaDeCondominio INNER JOIN Ocorrência ON TaxaDeCondominio.Código = Ocorrência.Chave_
WHERE (((Ocorrência.Chave)=[TaxaDeCondominio].[Código]) AND ((TaxaDeCondominio.Ano)=Year(Date())+1) AND_
((TaxaDeCondominio.Mês)=1));


"Relatório.SubRelatórioOcorrênciaOutro"

Código:
SELECT Ocorrência.Código, Ocorrência.[Data ref], Ocorrência.[Aptº nº], Ocorrência.Ocorrência,_
Ocorrência.Valor, Ocorrência.Chave, TaxaDeCondominio.Código, TaxaDeCondominio.Ano, TaxaDeCondominio.Mês_
FROM TaxaDeCondominio INNER JOIN Ocorrência ON TaxaDeCondominio.Código = Ocorrência.Chave_
WHERE (((Ocorrência.Chave)=[TaxaDeCondominio].[Código]) AND ((TaxaDeCondominio.Ano)=Year(Date())) AND_
((TaxaDeCondominio.Mês)=Month(Date())+1));


Desta forma o relatório e o sub relatório que o acompanha, atendem ao previsto: emissão de um relatório que contem a taxa de condomínio, conforme o mês de referência.

RESOLVIDO - Re: Ao visualizar a impressão o sub relatório desaparece

Enviado: 29 Dez 2017, 09:48
por Lucio Warley Lippi
Em tempo;

Agradeço as contribuições do Sr. Avelino.