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

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)
1 Solution

Accepted Solutions
afurtado
Partner Ambassador/MVP
Partner Ambassador/MVP

outra coisa seria fazer uma mudanca no email para nao mandar ainda para o destinatario do titulo.

   Destinatario  = "ramires@konsulter.com.br"

'   Destinatario = GetVariable("vDestinatario")

Assim, durante os testes nao sera mandado para o email que esta no titulo e sim para o seu

furtado@farolbi.com.br

View solution in original post

38 Replies
Clever_Anjos
Employee
Employee

Precisa de algum anexo? ou somente o texto?

Not applicable
Author

Somente o texto Clever.

afurtado
Partner Ambassador/MVP
Partner Ambassador/MVP

Ramires, boa tarde.

Segue um modelo modelo para enviar o email somente texto, conforme imagem abaixo

2015-10-03 19_51_45.jpg

   No modelo, tem que configurar a conta de email que sera usada para envio

2015-10-03 19_54_41.jpg

bem como setar as permissoes da macro....

2015-10-03 19_56_13.jpg

Lembrar que existem alternativas melhores que a macro para o envio (e que tem custo de licenca), como o NPrinting e o BIMail (que inclusive trabalho com ela).

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

Quem sabe algum com habilidades melhores que a minha em macro (se a opção for permanecer em macro) que consigam reduzir o código, usando o campo da tabela ao invés das variáveis (tanto no QV como na macro).

furtado@farolbi.com.br
Not applicable
Author

Alessandro, sou novato. Poderia me dizer onde é que eles diz qual tabela abrir? e qual campo ler? como configurar a conta de email? e setar as variaveis.

Naõ consigo baixar o qvw porque o meu é desktop (free) e já estourou a quantidade de arquivo que consigo abrir de outro qlikview.

abçs.

afurtado
Partner Ambassador/MVP
Partner Ambassador/MVP

Ramires,

vamos la......

Abre um modelo novo.   Da um CTRL E (ou editar script) e cola o seguinte codigo

Titulos:

LOAD * INLINE [

Destinatario                  , Titulo  , DataVencimento , Valor

xxx@nnnn.com.br               , 12345   , 10/10/2015     , 1000.50

xxx@nnnn.com.br               , 22345   , 15/10/2015     , 2000.50

xxx@nnnn.com.br               , 32345   , 20/10/2015     , 5000.00

];

Da um ok

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

Agora da um CTRL M

e cola o seguinte codigo

function GetVariable(varName)

        Dim v

        set v = ActiveDocument.Variables(varName)

        GetVariable = v.GetContent.String

end function

Sub Envio()

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

  For contEmail = 0 to TabelaEmails.Count - 1

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

  ActiveDocument.GetApplication.Sleep 1000

  vRepositorio  = GetVariable("vRepositorio")

  Porta         = GetVariable("smtpPorta")

  Server        = GetVariable("smtpServer")

  Usuario       = GetVariable("smtpUser")

  Senha         = GetVariable("smtpPWD")

  Origem        = GetVariable("smtpOrigem")

  Destinatario  = GetVariable("vDestinatario")

  Data          = GetVariable("vDataVencimento")

  Valor         = GetVariable("vValor")

  Titulo       = GetVariable("vTitulo")

  'msgbox Destinatario

  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

  objEmail.To       = Destinatario

  objEmail.From     = Origem

  objEmail.Subject  = "Pagamento Titulo : " & Titulo & " com vencimento em " & Data & " no valor de R$ " & Valor

  objEmail.HTMLBody = "Pagamento Titulo : " & Titulo & " com vencimento em " & Data & " no valor de R$ " & Valor

  objEmail.Send

  ActiveDocument.GetApplication.Sleep 1000

  Set filesys = Nothing

  Next

  ActiveDocument.Fields("Titulo").Clear

End Sub

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

Nao esquecer de setar a permissão dentro do CTRL M  (em vermelho)

2015-10-03 19_56_13.jpg

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

Criar as variaveis usadas....

CTRL ALT V

e criar com o mesmo nome e o conteudo com os seus dados....

2015-10-03 22_36_12.jpg2015-10-03 22_36_27.jpg

furtado@farolbi.com.br