Qlik Community

Qlik Brasil

Group community for Brazil users. discussion only in Portuguese.

Highlighted
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

Tags (1)
1 Solution

Accepted Solutions
MVP
MVP

Re: Envio email Macro

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.

16 Replies
MVP
MVP

Re: Envio email Macro

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

Not applicable

Re: Envio email Macro

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

MVP
MVP

Re: Envio email Macro

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.

Not applicable

Re: Envio email Macro

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
Valued Contributor II

Re: Envio email Macro

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

MVP
MVP

Re: Envio email Macro

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.......‌

Not applicable

Re: Envio email Macro

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?

MVP
MVP

Re: Envio email Macro

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.

Not applicable

Re: Envio email Macro

é 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