Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
Posting on Qlik Community is temporarily paused for some users. Thank you for patience and we'll update you soon!
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
Partner Ambassador
Partner Ambassador

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

Did you find a solution to your question? Mark the solution as accepted and if you found it useful, press the like button! | Follow me on Linkedin
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