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: 
Ribeiro
Specialist
Specialist

Como salvar o Nome PDF

Tenho o código abaixo de uma macro, que está funcionando perfeitamente.

Precisava, trocar o nome do PDF Salvo.

QlikView Printing.pdf. igual na imagem

Algo que pudesse colocar ao lado do ID do Relatório.

a)Alguma dica, de como melhorar o código abaixo, para que posso escolher o nome do pdf.

b)Existe como salvar o mesmo pdf no mesmo email anexado.

Tipo dois anexos no mesmo email.

Estou usando PDFCreator. a enviar para ele ele enviar email automaticamente.

2015-12-26_19-40-18.png

sub PrintReport

  ActiveDocument.Reload

  ActiveDocument.PrintDocReport "RP01","Teste"

  ActiveDocument.PrintDocReport "RP02","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.Save

ActiveDocument.GetApplication.Quit

end sub

Neves
1 Solution

Accepted Solutions
afurtado
Partner Ambassador/MVP
Partner Ambassador/MVP

Agnaldo,

segue o modelo com 3 no mesmo email.

Na macro, tem comentado aonde gera cada PDF e aonde renomeia eles.  Fica mais facil se tiver que colocar ou tirar algum.

furtado@farolbi.com.br

View solution in original post

14 Replies
afurtado
Partner Ambassador/MVP
Partner Ambassador/MVP

sub PrintReport

  'ActiveDocument.Reload

  ActiveDocument.PrintDocReport "RP01","Teste"

  ActiveDocument.PrintDocReport "RP02","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.Sleep 1000

  Set filesys = Nothing

      

  Set filesys = CreateObject("Scripting.FileSystemObject")

  If filesys.FileExists("C:\QlikView Printing.pdf") then

    filesys.MoveFile "C:\QlikView Printing.pdf", "C:\Relatório Gerente.pdf"

  End If

  ActiveDocument.GetApplication.Sleep 1000

 

 

  ActiveDocument.Save

'ActiveDocument.GetApplication.Quit

end sub

furtado@farolbi.com.br
afurtado
Partner Ambassador/MVP
Partner Ambassador/MVP

Precisa somente atualizar o caminho aonde esta sendo gravado o PDF

furtado@farolbi.com.br
afurtado
Partner Ambassador/MVP
Partner Ambassador/MVP

na macro acima....

furtado@farolbi.com.br
Ribeiro
Specialist
Specialist
Author

Alessandro,

Como ficou o código:

A unica coisa sentir de diferente é que o nome QlikView Printing_3.pdf, QlikView Printing_4.pdf, gerado pelo PDFCreator.

a)Será que existe como, os dois e-mail abaixo que gerou ele ficarem apenas em um e-mail com dois anexos.

b)Existe como eu trocar o nome QlikView Print? para um nome que eu queira.

filesys.MoveFile "C:\pdf\teste.pdf", "C:\pdf\teste1.pdf" (Parte do código abaixo)

Obrigado,

sub PrintReport

  'ActiveDocument.Reload

  ActiveDocument.PrintDocReport "RP01","Teste"

  ActiveDocument.PrintDocReport "RP02","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.Sleep 1000

  Set filesys = Nothing

     

  Set filesys = CreateObject("Scripting.FileSystemObject")

  If filesys.FileExists("C:\QlikView Printing") then

    filesys.MoveFile "C:\pdf\teste.pdf", "C:\pdf\teste1.pdf"

  End If

  ActiveDocument.GetApplication.Sleep 1000

  ActiveDocument.Save

'ActiveDocument.GetApplication.Quit

end sub

1-Salvando o pdf.

2015-12-27_08-36-02.png

2- 02 email gerando, gostaria que gera-se apenas um. com 02 anexos.

2015-12-27_08-36-45.png

3-O nome do anexo de um e-mail.

2015-12-27_08-37-58.png

Neves
afurtado
Partner Ambassador/MVP
Partner Ambassador/MVP

Agnaldo,

Primeiro teria que desmarcar a opção de usar somente nomes únicos (esta na linha de cima da seta em vermelho da sua imagem)......Desta forma, o nome nunca sera o mesmo (possivelmente _1 , _2 , _3  esta sendo adicionado....). O nome que vai ser salvo por padrão podes mudar no PDFCreator.

Neste post

Envio email Macro

Tem a rotina que gera o arquivo, renomeia ele e envia por e-mail.   Se você usar o envio do PDFCreator, sera sempre para o(s) mesmo(s) destinatários.   Pela macro do post, você pode fazer com que seja gerado 1 e-mail para cada representante por exemplo e ele recebera somente as informações dele....E se quiser, poderá ainda mandar mais anexos juntos, inclusive PDF e XLS se quiser. Basta anexar mais arquivos.....

furtado@farolbi.com.br
Ribeiro
Specialist
Specialist
Author

Alessandro,

Seu exemplo funcionou perfeitamente.

a)Apenas gostaria de saber como faço para enviar o relatório Teste do email2 - RP02

b)Onde no código do macro eu troco o nome do pdf salvo. Exemplo em vez do Relatório Gerente (Vendas do Dia)

c) Existe como eu anexar, mais pdf por email.

obrigado,

2015-12-27_17-06-05.jpg

2015-12-27_16-58-55.jpg

Neves
afurtado
Partner Ambassador/MVP
Partner Ambassador/MVP

Agnaldo, esta funcionando.

2015-12-28 16_11_59.jpg

Basta colocar server , user e senha do email e alterar a pasta que eu uso (tmp) para a sua (pdf).

furtado@farolbi.com.br
Ribeiro
Specialist
Specialist
Author

Alessandro,

Está funcionando sim. 100%

Mas eu só gostaria de fazer salver dois Relatórios com anexos.

Exemplo abaixo tem 03 relatórios, RP01, RP02 e RP03

Existe como eu anexar os três no mesmo email.?

2015-12-28_17-05-40.png

Neves
afurtado
Partner Ambassador/MVP
Partner Ambassador/MVP

Agnaldo,

segue o modelo com 3 no mesmo email.

Na macro, tem comentado aonde gera cada PDF e aonde renomeia eles.  Fica mais facil se tiver que colocar ou tirar algum.

furtado@farolbi.com.br