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

Envio email Macro

Boa tarde,

Preciso enviar emails para diferentes contatos de alguns relatórios do Qlikview, como não tenho o PDF Distribution e nem o NPrint a solução esta sendo por macro.

1-Consegui com a ajuda do post do Yuri gerar o arquivo PDF

2-não estou conseguindo enviar o emai

Poderiam me ajudar?

sub TesteEmail

Set objMsg = CreateObject("CDO.Message")

Set msgConf = CreateObject("CDO.Configuration")

  'Server Configuration

msgConf.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2

msgConf.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com" 'smtp do email

msgConf.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25

msgConf.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1

msgConf.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "meu@gmail.com"  'seu email

msgConf.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "minhasenha" 'senha

msgConf.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = 1

msgConf.Fields.Update

'End With

  objMsg.To = "parameu@hotmail.com" 'email pra quem voce quer mandar

  objMsg.From = "domeu@gmmail.com" 'seu email

  objMsg.Subject = "teste qlikview"

  objMsg.HTMLBody = "testando e-mail "

  'objMsg.AddAttachment "C:\...\tabela.jpg"

  objMsg.AddAttachment "C:\Users\twister\Desktop\PDF\TABELA_PRECO.pdf"

  objMsg.Sender = "Mr. Name"

  Set objMsg.Configuration = msgConf

  objMsg.Send

  msgbox("e-mail enviado")

  Set objMsg = nothing

  Set msgConf = nothing

end sub

Sub TabelaPreco

'Imprime Tabela de Preço

'Chamada da função passando os seguintes argumentos - 1: Nome do arquivo a ser gerado - 2: Nome do Report a ser gerado

PrintPDF "TABELA_PRECO", "RP01"

ActiveDocument.GetApplication.WaitForIdle

End Sub

Sub PrintPDF(ReportName, ReportID)

  'Caminho a ser gerado o relatório encontra-se na variável

  Path = ActiveDocument.Evaluate("vPathArquivos")

  'Criando instância do PDFCreator

    Set pdfjob = CreateObject("PDFCreator.clsPDFCreator")

  'Variáveis de configuração da biblioteca PDFCreator

    With pdfjob

   'Verificações da fila da impressora

      If .cStart("/NoProcessingAtStartup") = False Then

         If .cStart("/NoProcessingAtStartup", True) = False Then

           'Caso não tenha nenhum objeto na fila de impressão, termina a macro.

           Exit Sub

         End if

       

         'Caso tenha objeto na fila de impressão, torne a impressão visível

         .cVisible = True

      End If

      .cOption("UseAutosave") = 1 'Permitir o Autosave

      .cOption("UseAutosaveDirectory") = 1 'Permitir que grave no diretório

      .cOption("AutosaveDirectory") = Path 'Caminho que será gravado o relatório

      .cOption("AutosaveFilename") = ReportName 'Nome que será gravado o relatório

      .cOption("AutosaveFormat") = 0 'Formato PDF

      .cClearCache

  'Finalizando as configurações da biblioteca PDFCreator

    End With

    'Imprime o relatório

    ActiveDocument.PrintReport ReportID, "PDFCreator"

    'Aguarde até que o processo entre na fila de impressão

    Do Until pdfjob.cCountOfPrintjobs = 1

    ActiveDocument.GetApplication.Sleep 20

    Loop

    pdfjob.cPrinterStop = False

    'Aguarda até que a fila de impressão esteja vazia

    Do Until pdfjob.cCountOfPrintjobs = 0

    ActiveDocument.GetApplication.Sleep 20

    Loop

  

    'Termina o processo

    pdfjob.cClose

  

    'Zerando a variável

    Set pdfjob = Nothing

End Sub

Labels (5)
1 Solution

Accepted Solutions
afurtado
Partner Ambassador/MVP
Partner Ambassador/MVP

twister8,

segue o modelo alterado. Este modelo fazia um loop em um determinado campo e disparava um PDF para cada um com os dados deles.  Me parece que basta um unico PDF então mudei o código.

Segue um outro modelo de exemplo com uma exportação para jpg e envio de email no corpo.

Tem um outro pdf2 que tambem gera um pdf e envia email.

furtado@farolbi.com.br

View solution in original post

17 Replies
afurtado
Partner Ambassador/MVP
Partner Ambassador/MVP

twiester8, boa noite.

eu tenho um modelo  que eu uso.

Segue ele como exemplo e a configuracao do PDFCreator.  Ele tem que salvar automaticamento em uma pasta para o arquivo ser enviado por email.

Configuracao PDFCreator.png

furtado@farolbi.com.br
Not applicable
Author

Boa noite, desde já obrigado pela ajuda

Estou com problemas não esta gerando o arquivo .pdf e nem enviando o email.

se vc puder dar uma olhada em que estou erradno no .qvw

afurtado
Partner Ambassador/MVP
Partner Ambassador/MVP

twister8,

segue o modelo alterado. Este modelo fazia um loop em um determinado campo e disparava um PDF para cada um com os dados deles.  Me parece que basta um unico PDF então mudei o código.

Segue um outro modelo de exemplo com uma exportação para jpg e envio de email no corpo.

Tem um outro pdf2 que tambem gera um pdf e envia email.

furtado@farolbi.com.br
Not applicable
Author

Boa tarde,

Uma pergunta:

Considerando o seguinte cenário do ambiente qlikview, onde tenho servidores para a carga, para o access point e para as aplicações. Em quais dos servidores eu deveria instalar o PDFCreator 1.7.3

pablolabbe
Luminary Alumni
Luminary Alumni

Instale no mesmo servidor onde está o qlikview desktop, já que as macros são executadas através dele.

afurtado
Partner Ambassador/MVP
Partner Ambassador/MVP

conforme o Pablo falou, no server aonde tem o qv desktop. Eu alugaria licenca para ele e ainda desativar o update do pdfcreator senao fica perguntando se quer atualizar e nao roda o email.......‌

furtado@farolbi.com.br
Not applicable
Author

Boa tarde, obrigado pelas respostas.

Verifiquei que há instalado o PDF-XChange 3.0 vou tentar fazer utilizando esse.

Vocês sabem se é possível?

afurtado
Partner Ambassador/MVP
Partner Ambassador/MVP

Este é instalado pelo QlikServer. Mesmo assim eu instalo o PDFCreator pois tem que definir aonde vai salvar o arquivo .pdf que sera lido pela macro para enviar por email.

furtado@farolbi.com.br
Not applicable
Author

é então achei um código e estou tentando usar, funcionou gerou o PDF, mas ele abre a a tela do PDF-XChange para eu definir o local para salvar e o nome do arquivo.

Com o PDF-XChange eu não consigo definir onde salvar o arquivo de forma automática via macro, como o codigo que temos do PDFCreator? eu preciso realmente ter o PDFCreator instalado?

codigo usado do PDF-XChance

public Sub Print_PDF(sPDFPath_src, sPDFPath_dest, sPDFName_dest, sReportID)

ActiveDocument.PrintReport sReportID, "PDF-XChange 3.0", false

Set objFSO = CreateObject("Scripting.FileSystemObject")

'If the folder not exists then -> create

If Not objFSO.FolderExists(sPDFPath_dest) Then

  Set newfolder = objFSO.CreateFolder(sPDFPath_dest)

End If

PDFFullName = sPDFPath_dest & "\" & sPDFName_dest

'If the file exists then -> delete

If objFSO.FileExists(PDFFullName) then

  objFSO.DeleteFile PDFFullName

End If

objFSO.MoveFile sPDFPath_src, PDFFullName

Set objFSO = Nothing

ActiveDocument.GetApplication.Sleep 2000

End Sub