Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

ENVIAR EMAIL COM DADOS DE UMA TABELA GRÁFICO

Boa tarde.

Estou tendo uma situação que nem sei por onde começar. Tenho uma tabela gráfico (abaixo) que preciso enviar email para cada linha dela com alguns dados dessas tabela.

Exemplo:

email da linha 1:

'Caro Sr/a '&cliente&' o seu boleto com vcto "&venc&' no valor R$'&vlparcela&'com linha digitavel '&linhadigitavel&'ja pode ser pago'

Email: Caro Sr/a Geiza o seu boleto com vcto 10/01/2015 no valor R$1901,63 com linha digitavel 00190.000.....19163 ja pode ser pago.

Enviar um email para cada linha abaixo, o email a ser enviado é a da 1a coluna.

Sou novato, o meu qlikview é desktop. Apreciaria muito a atencao de voces.  

OBRIGADO.

Capturarqlik.JPG

Labels (3)
38 Replies
Ribeiro
Specialist
Specialist

Alessandro tudo bem,

É o seu exemplo faz sucesso aqui comigo.

Ficou muito bacana. Mas como sempre tem alguém pede algo diferente.

Agora eles querem pdf enviado para cada email diferente.

Preciso de um norte.

Obrigado,

Vou esperar o exemplo do amigo.

Neves
afurtado
Partner Ambassador/MVP
Partner Ambassador/MVP

Agnaldo,

este exemplo tem uma tabela com um campo. O conteudo deste campo sao e-mails.  Mas poderia ser qualquer coisa. A macro faz um laço neste campo sendo um a um como se fosse selecionado e os dados somente relacionados a este filtro e enviado um e-mail.   Da para fazer para cada gerente, representante, etc.....

Sobre a impressora PDF eu uso ou a PDFCreator ou da para usar a BullZip.  A ultima da para eliminar algumas linhas da macro que verifica nome do arquivo e renomeia passando diretamente o nome do arquivo (eu sempre coloco o nome do destinatario, assim funciona como um log.....)

Espero que tenhas o norte.   

furtado@farolbi.com.br
Ribeiro
Specialist
Specialist

Alessandro, Funcionou bacana. Mas preciso enviar para dois gerente diferente.

Existe como?

Abaixo o exemplo funcionando.

http://consultoriasoft.com.br/email.zip

Mas não estou conseguindo enviar para dois como o exemplo abaixo:

Gerente - RP01

Gerente2 - RP02

2016-07-03_21-31-59.jpg2016-07-03_21-34-07.jpg !

Neves
afurtado
Partner Ambassador/MVP
Partner Ambassador/MVP

Bom dia.

Qual a regra? São e-mails fixos (sempre para os mesmos)? Ou dependendo do PDF vai para determinados Gerentes? Se for a segunda opção, na carga carrega um campo com mais e-mails separados por ;

AMF

furtado@farolbi.com.br
Ribeiro
Specialist
Specialist

É que no seu exemplo só existe um relatórios(Anexo)

Estou tentado criar 02 relatórios

Um para um gerente e outro gerente2.

Caso você coloque um exemplo com dois relatórios (anexos) Eu conseguiria entender.

Caso você tenha tempo Alessandro. Coloque 02 anexos para eu entender.

Obrigado Alessandro.

Neves
Ribeiro
Specialist
Specialist

Alessandro,

Desculpe-me novamente.

Preciso inserir o "RP02", "Gerente2" neste  laço (código)

Como faço?

Sub Envio()

  Set TabelaEmails = ActiveDocument.Fields("Gerente").GetPossibleValues(1000)

  For contEmail = 0 to TabelaEmails.Count - 1

  ActiveDocument.Fields("Gerente").Select TabelaEmails.Item(contEmail).Text

        ActiveDocument.PrintDocReport "RP01", "Gerente"

  PrintReport()

  ActiveDocument.GetApplication.Sleep 2000

  Set filesys = Nothing

        Set filesys = CreateObject("Scripting.FileSystemObject")

  If filesys.FileExists("C:\tmp\Relatório Gerente - " & TabelaEmails.Item(contEmail).Text & ".pdf") then

  filesys.DeleteFile "C:\tmp\Relatório Gerente - " & TabelaEmails.Item(contEmail).Text & ".pdf"

  End If

  ActiveDocument.GetApplication.Sleep 1000

  Set filesys = Nothing

      

  Set filesys = CreateObject("Scripting.FileSystemObject")

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

    filesys.MoveFile "C:\tmp\QlikView Printing.pdf", "C:\tmp\Relatório Gerente - " & TabelaEmails.Item(contEmail).Text & ".pdf"

  End If

Neves
Ribeiro
Specialist
Specialist

Alessandro bom dia,

Estou tentando inserir mais uma anexo no email

Mas está gerando os pdf certo.

Mas só está enviado apenas um anexo no email.

Alguma sugestão.

Abaixo o código que alterei.

O Código abaixo está funcionando.

Ele geras o pdf corretamente, Mas só gerar o email: "RP01" ,"Gerente"

Como faço para gerar também para o "RP02", "Gerente2"

Onde está errado a linha de código.

Alguma dica...

Estou tentando enviar dois anexo RP01 - Gerente  - athenas1200@gmail.com

                                                 RP02 - Gerente2 - contato@consultoriasoft.com.br

Lendo os email:

*************************************************************************************************************************

LOAD * INLINE [

    Gerente

    athenas1200@gmail.com

];

LOAD * INLINE [

    Gerente2

    contato@consultoriasoft.com.br

];

*******************************************************************************************************************************

Codigo do Macro:

Sub Envio()

  Set TabelaEmails = ActiveDocument.Fields("Gerente").GetPossibleValues(1000)

  For contEmail = 0 to TabelaEmails.Count - 1

  ActiveDocument.Fields("Gerente").Select TabelaEmails.Item(contEmail).Text

        ActiveDocument.PrintDocReport "RP01", "Gerente"

  PrintReport()

  ActiveDocument.GetApplication.Sleep 2000

  Set filesys = Nothing

        Set filesys = CreateObject("Scripting.FileSystemObject")

  If filesys.FileExists("C:\tmp\Relatório Gerente - " & TabelaEmails.Item(contEmail).Text & ".pdf") then

  filesys.DeleteFile "C:\tmp\Relatório Gerente - " & TabelaEmails.Item(contEmail).Text & ".pdf"

  End If

  ActiveDocument.GetApplication.Sleep 1000

  Set filesys = Nothing

  Set filesys = CreateObject("Scripting.FileSystemObject")

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

    filesys.MoveFile "C:\tmp\QlikView Printing.pdf", "C:\tmp\Relatório Gerente - " & TabelaEmails.Item(contEmail).Text & ".pdf"

  End If

  ActiveDocument.GetApplication.Sleep 1000

    Set TabelaEmails = ActiveDocument.Fields("Gerente2").GetPossibleValues(1000)

     ActiveDocument.Fields("Gerente2").Select TabelaEmails.Item(contEmail).Text

        ActiveDocument.PrintDocReport "RP02", "Gerente2"

  PrintReport()

  ActiveDocument.GetApplication.Sleep 2000

  Set filesys = Nothing

        Set filesys = CreateObject("Scripting.FileSystemObject")

  If filesys.FileExists("C:\tmp\Relatório Gerente - " & TabelaEmails.Item(contEmail).Text & ".pdf") then

  filesys.DeleteFile "C:\tmp\Relatório Gerente - " & TabelaEmails.Item(contEmail).Text & ".pdf"

  End If

  ActiveDocument.GetApplication.Sleep 1000

  Set filesys = Nothing

  Set filesys = CreateObject("Scripting.FileSystemObject")

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

    filesys.MoveFile "C:\tmp\QlikView Printing.pdf", "C:\tmp\Relatório Gerente - " & TabelaEmails.Item(contEmail).Text & ".pdf"

  End If

  ActiveDocument.GetApplication.Sleep 1000

  vRepositorio  = GetVariable("vRepositorio")

  Porta         = GetVariable("smtpPorta")

  Server        = GetVariable("smtpServer")

  Usuario       = GetVariable("smtpUser")

  Senha         = GetVariable("smtpPWD")

  Origem        = GetVariable("smtpOrigem")

  Set objEmail = CreateObject("CDO.Message")

  Set objConf = objEmail.Configuration

  Set objFlds = objConf.Fields

  With objFlds

  '---------------------------------------------------------------------

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

  .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = Server

  if len(Usuario) > 0 then

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

  .Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = Usuario

  .Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = Senha

  else

  .Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 0

  end if

  .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = Porta

  .Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = False

  .Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60

  .Update

  '---------------------------------------------------------------------

  End With

  Destinatarios     = TabelaEmails.Item(contEmail).Text

  'Destinatarios     = "teste@teste.ind.br"

  objEmail.To       = Destinatarios

  'objEmail.CC       = "nn@mm.com.br"

  objEmail.From     = "teste@contalsoft.com.br"

  objEmail.Subject  = "Gerencia : " & TabelaEmails.Item(contEmail).Text

  objEmail.HTMLBody = ""

  objEmail.AddAttachment "C:\tmp\Relatório Gerente - " & TabelaEmails.Item(contEmail).Text & ".pdf"

  objEmail.Send

        Set filesys = CreateObject("Scripting.FileSystemObject")

  If filesys.FileExists("C:\tmp\Relatório Gerente - " & TabelaEmails.Item(contEmail).Text & ".pdf") then

  'filesys.DeleteFile "C:\tmp\Relatório Gerente - " & TabelaEmails.Item(contEmail).Text & ".pdf"

  End If

  ActiveDocument.GetApplication.Sleep 2000

  Set filesys = Nothing

  Next

  ActiveDocument.Fields("Gerente","Gerente2").Clear ' Limpar Filtro por Email

End Sub

Neves
afurtado
Partner Ambassador/MVP
Partner Ambassador/MVP

Podes disponibilizar um modelo para ajudar?

furtado@farolbi.com.br
Ribeiro
Specialist
Specialist

Corrigir ou melhorar codigo macro email

Alessandro,

Abrir um dia atrás. Para ver ser alguém me ajudaria o modelo está neste tópico

Neves