Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
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
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
Agnaldo, não consegui entender qual a sua dúvida
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.
Estou usando para gerar o macro PDFCreator
Esta funcionando 100%
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.
Yuri,
o PDF está sendo enviado um só agora.
Mas o qlikview não está carregando. como estava antes.
O Script de carregar dados
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.
Ele faz a recarga oculta Yuri.
Pois fiz um teste com 1000.000 de registros ele demora a abrir.
É isto mesmo.
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