Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
Ribeiro
Specialist
Specialist

Automatizar envio de pdf

Bom pessoal,

Consigo enviar PDF via e-mail através de disparadores usando macro.

Mas crie bat para chamar aplicação pelo controle de tarefas do windows.

Mas estou enviando 02 email.

Preciso de uma dica.

acho que estou fazendo algo de errado.

o arquivo abaixo

Crie 03 Bat

//Carregar Bat: Bat1

start /MIN C:\Geral\Script\abrir.bat

//Abrir Qvw: Bat2

"C:\Program Files\QlikView\QV.EXE" /r "C:\Geral\EmailPDF\12.qvw"

@echo off

taskkill /F /IM Qv.exe

"C:\Geral\EmailPDF\12.qvw"

exit

//Fechar a aplicação: Bat3

@echo off

taskkill /F /IM Qv.exe

Alguma dica para automatizar este qvw em anexo

Neves
1 Solution

Accepted Solutions
nicolett_yuri

Isso mesmo

O que você pode ter notado que ele não atualiza é porque ele não esta gravando os dados após a atualização. O que isso quer dizer? Sua aplicação faz a recarga, atualiza os dados, gera o pdf e fecha o qlikview sem salvar. Para salvar, você pode adicionar uma linha de macro para isso:

ActiveDocument.Save

ActiveDocument.GetApplication.Quit

View solution in original post

11 Replies
nicolett_yuri

Agnaldo, não consegui entender qual a sua dúvida

Ribeiro
Specialist
Specialist
Author

Estou enviando email duas vezes.

Pois na hora que o arquivo qvw abre pelo bat ele gera o pdf.(email)

Depois que ele execultar o script também gerar o pdf.(email)

Então eu tenho dois email.

precisava uma dica, para saber como fazer gerar apenas um email.

Neves
Ribeiro
Specialist
Specialist
Author

Estou usando para gerar o macro PDFCreator

Esta funcionando 100%

Neves
nicolett_yuri

Agnaldo, tente fazer assim:

Adicione uma macro que faz a recarga da sua aplicação e no final feche o aplicativo, conforme exemplo:

sub PrintReport


ActiveDocument.Reload


  ActiveDocument.PrintDocReport "RP01","Teste"

  Set WSHShell = CreateObject("WScript.Shell")

  fln = "S:\BI\TecnoFlex\PDF\myreport.pdf"

  RegKey = "HKEY_CURRENT_USER\Software\QlikViewPDF\"

  WSHShell.RegWrite RegKey & "BypassSaveAs", 1

  WSHShell.RegWrite RegKey & "OutputFile", fln

  ActiveDocument.GetApplication.Sleep 2000

  WSHShell.RegWrite RegKey & "BypassSaveAs", 0

  WSHShell.RegWrite RegKey & "OutputFile", ""

  Set WSHShell = nothing

ActiveDocument.GetApplication.Quit

end sub

Agora em sua macro já existe o comando de fazer a recarga e feche o QlikView. O que você precisa alterar em seu batch é remover a linha de recarga de lá e também o processo de fechar o qlikview.

Ficaria mais ou menos assim:

start /wait "C:\Program Files\QlikView" Qv.exe /NoSecurity "C:\Arquivos\Relatorio Gestao 1.qvw"

Agora é só agendar esse bat que você criou.

OBSERVAÇÃO: Quando você adiciona essas linhas de comando (recarga e fechar o qlikview), você sempre terá que abrir essa aplicação ser executar a macro, como fazer isso? Deixe a aplicação aparecer na lista de documentos recentes abertos no seu qlikview e clique sobre ela segurando Ctrl + Shift.

Ribeiro
Specialist
Specialist
Author

Yuri,

o PDF está sendo enviado um só agora.

Mas o qlikview não está carregando. como estava antes.

Neves
Ribeiro
Specialist
Specialist
Author

O Script de carregar dados

Neves
nicolett_yuri

Quando você executa a linha de comando : start /wait "C:\Program Files\QlikView" Qv.exe /NoSecurity "C:\Arquivos\Relatorio Gestao 1.qvw"

ele abre a aplicação e faz uma recarga, isso se você adicionou as linhas em sua macro, conforme postei no comentário anterior, são elas:

ActiveDocument.Reload

e

ActiveDocument.GetApplication.Quit


Faça o teste, execute esta linha e veja o comportamento. O passo deve ser: Abre a aplicação, faz a recarga, gera o pdf e fecha a aplicação.

Ribeiro
Specialist
Specialist
Author

Ele faz a recarga oculta Yuri.

Pois fiz um teste com 1000.000 de registros ele demora a abrir.

É isto mesmo.

Neves
nicolett_yuri

Isso mesmo

O que você pode ter notado que ele não atualiza é porque ele não esta gravando os dados após a atualização. O que isso quer dizer? Sua aplicação faz a recarga, atualiza os dados, gera o pdf e fecha o qlikview sem salvar. Para salvar, você pode adicionar uma linha de macro para isso:

ActiveDocument.Save

ActiveDocument.GetApplication.Quit