Skip to main content
Announcements
Have questions about Qlik Connect? Join us live on April 10th, at 11 AM ET: SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Macro envio PDF

Boa tarde pessoal,


Estou  com uma dúvida em relação a uma macro que envia um relatório PDF por email. A macro está executando corretamente, está enviando o email com o arquivo anexado, mas não está enviando todo o conteúdo do relatório.

Exemplo:

No relatório (RP01) está mapeado um objeto (CH30) que contém uma tabela dinâmica.

No momento que visualizo a impressão do relatório há 324 páginas, mas quando envio por PDF ele envia somente 12 páginas.

Não sei se o erro está na configuração do relatório ou da macro executada.

Anexo macro.

Agradeço a ajuda.

1 Solution

Accepted Solutions
Not applicable
Author

Muito obrigada pessoal.

Consegui resolver.

View solution in original post

8 Replies
Anonymous
Not applicable
Author

no momento que vc visualiza ele aparece certo... vc diz no qlikview? ou quando vc abre o pdf normal mesmo la no  "C:\testesMACRO_EMAIL\Teste.pdf" ??

Not applicable
Author

Oi Rodrigo,

Ele aparece correto no Qlikview, na visualização do relatório (RP01).

Não localizei este arquivo da macro, acredito que não salva no diretório antes de enviar.

luizclaudio
Creator
Creator

Taisa

Não sei se é o caso, mas encontrei uma macro de envio de e-mail onde é utilizado sleep (    ActiveDocument.GetApplication.Sleep 7500) para dar uma pausa.

Será que tem algo a ver com o tempo de carga do anexo?

Luiz Cláudio

Anonymous
Not applicable
Author

nao tem nenhum arquivo nesse diretório ? C:\testesMACRO_EMAIL\ ? estranho porque vc traz dele para anexar no email.

offjunior
Creator
Creator

Boa tarde Taisa!

Provavelmente está anexando ao email antes de terminar de produzir todas as paginas do PDF.

Tem a solução do SLEEP que nosso amigo postou, porem você de fato não sabe quanto tempo vai levar para produzir o arquivo PDF como um todo, então existe outros comandos um pouco mais proveitosos que acho que vão te ajudar, tenta usa-los antes do comando que envia o email;

ActiveDocument.GetApplication.WaitForIdle         'Espera a aplicação ficar livre para continuar

ActiveDocument.GetApplication.Refresh               'Da refresh em todo processo

Espero que sirva pra você.

rphpacheco
Creator III
Creator III

Para os casos em que não se sabe o tempo necessário para determinada ação, eu utilizo o ActiveDocument.GetApplication.WaitForIdle conforme sinalizado pelo Junior.

Not applicable
Author

Muito obrigada pessoal.

Consegui resolver.

Clever_Anjos
Employee
Employee

Já conseguiu a resposta? Se sim, marque essa questão como "Respondida"