Qlik Community

Qlik Brasil

Welcome to the group for Brazil users. .All discussions will be in Portuguese.

Highlighted
Not applicable

Envio de Email com filtros diferentes.

Boa Tarde ,

eu tenho uma aplicação que envia relatório automático,

agora eu preciso enviar relatórios diferentes para filial diferentes segue exemplo :

Gerente Filial 1 só pode receber o relatório com informações sobre a filial 1.

Gerente Filial 2 só pode receber o relatório com informações sobre a filial 2.

Alguém tem alguma ideia?

Desde já agradeço!

JH

1 Solution

Accepted Solutions
Employee
Employee

Re: Re: Envio de Email com filtros diferentes.

João,tenho essa macro aqui, ela filtra de acordo com um campo (vc deveria escolher qual seria o mais apropriado), exporta para Excel (pode ser adaptado para gerar pdf) e envia para emails.

Talvez ajude

sub EnviaEmail

  Dim objEmail

  Const cdoSendUsingPort = 2   

    Const cdoAnonymous = 0    

    Const cdoBasic = 1        

    Const cdoNTLM = 2 

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

    'Configuração do servidor de e-mail

    SMTPServer = "seu server"

    Const SMTPPort = 25             

    Const SMTPTimeout = 60          

    Set objEmail = CreateObject("CDO.Message")

    Set objConf = objEmail.Configuration

    Set objFlds = objConf.Fields

          

    With objFlds

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

           ' SMTP server details

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

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

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

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

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

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

           .Update

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

    End With

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

   

  strDate = Year(Date()) &"_"& month(date()) &"_"& Day(Date())  

  set SelOperacao = ActiveDocument.fields("CampoFiltro").GetPossibleValues 

   

    vOperacao = SelOperacao.Item(0).Text  

    objEmail.To = "email@dominio.com.br"

    objEmail.From = "bi@dominio.com.br" 'Email Sender

    objEmail.Subject = "Email Diario"

    objEmail.TextBody = "Bom dia, segue anexo o relatório "_

    & chr(13) & "Em caso de divergências nos dados, favor entrar em contato."_

    & chr(13) & "Email automático do QlikView." 'Text Body        

  filepath="D:\tmp\\plan_" & vOperacao &"_"&strDate&".xls"

  objEmail.AddAttachment filepath

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

    objEmail.Send

    Set objFlds = Nothing

    Set objConf = Nothing

    Set objEmail = Nothing

    Set SelOperacao = Nothing

    Set SelCargo = Nothing

 

end sub

Sub CriaXls

  ActiveDocument.Sheets("SH03").Activate

  set objExcel = ActiveDocument.GetSheetObject("CH01")

  set SelOperacao = ActiveDocument.fields("CampoFiltro").GetPossibleValues 

    vOperacao = SelOperacao.Item(0).Text 

  strDate = Year(Date()) &"_"& month(date()) &"_"& Day(Date())

  filepath="D:\tmp\\plan_" & vOperacao &"_"&strDate&".xls"

  objExcel.ExportBiff filepath

  ActiveDocument.GetApplication.WaitForIdle

  set objExcel = Nothing

  set SelOperacao = Nothing

    set SelCargo    = Nothing

End Sub

Sub Processa

  set FldOperacao = ActiveDocument.Fields("CampoFiltro")

    set SelOperacao = FldOperacao.GetPossibleValues

   

  for i=0 to SelOperacao.Count-1

    FldOperacao.Select SelOperacao.Item(i).text

    GravaPDF

    EnviaEmail

  next

end Sub

10 Replies
Employee
Employee

Re: Envio de Email com filtros diferentes.

O que você chama de "enviar automático"?

Um excel, pdf, etc?

Mandar por email?

Enviar quando? Após recarga?

Not applicable

Re: Envio de Email com filtros diferentes.

Boa Tarde Clever,

eu envio um e-mail automático que em anexo um relatório em PDF, sim é depois da recarga!

qualquer outra duvida fico a disposição!

Att,

JH

rphpacheco
Contributor III

Re: Envio de Email com filtros diferentes.

Terás que fazer uma macro com o for que irá percorrer os valores das filiais e para cada laço ele enviará para o endereço correspondente.

Not applicable

Re: Envio de Email com filtros diferentes.

Sim Raphael,

também tinha pensando algo dessa forma, mas queria ver uma boa forma de fazer ou que a comunidade já use.

Muito Obrigado pela ajuda!

Employee
Employee

Re: Re: Envio de Email com filtros diferentes.

João,tenho essa macro aqui, ela filtra de acordo com um campo (vc deveria escolher qual seria o mais apropriado), exporta para Excel (pode ser adaptado para gerar pdf) e envia para emails.

Talvez ajude

sub EnviaEmail

  Dim objEmail

  Const cdoSendUsingPort = 2   

    Const cdoAnonymous = 0    

    Const cdoBasic = 1        

    Const cdoNTLM = 2 

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

    'Configuração do servidor de e-mail

    SMTPServer = "seu server"

    Const SMTPPort = 25             

    Const SMTPTimeout = 60          

    Set objEmail = CreateObject("CDO.Message")

    Set objConf = objEmail.Configuration

    Set objFlds = objConf.Fields

          

    With objFlds

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

           ' SMTP server details

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

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

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

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

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

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

           .Update

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

    End With

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

   

  strDate = Year(Date()) &"_"& month(date()) &"_"& Day(Date())  

  set SelOperacao = ActiveDocument.fields("CampoFiltro").GetPossibleValues 

   

    vOperacao = SelOperacao.Item(0).Text  

    objEmail.To = "email@dominio.com.br"

    objEmail.From = "bi@dominio.com.br" 'Email Sender

    objEmail.Subject = "Email Diario"

    objEmail.TextBody = "Bom dia, segue anexo o relatório "_

    & chr(13) & "Em caso de divergências nos dados, favor entrar em contato."_

    & chr(13) & "Email automático do QlikView." 'Text Body        

  filepath="D:\tmp\\plan_" & vOperacao &"_"&strDate&".xls"

  objEmail.AddAttachment filepath

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

    objEmail.Send

    Set objFlds = Nothing

    Set objConf = Nothing

    Set objEmail = Nothing

    Set SelOperacao = Nothing

    Set SelCargo = Nothing

 

end sub

Sub CriaXls

  ActiveDocument.Sheets("SH03").Activate

  set objExcel = ActiveDocument.GetSheetObject("CH01")

  set SelOperacao = ActiveDocument.fields("CampoFiltro").GetPossibleValues 

    vOperacao = SelOperacao.Item(0).Text 

  strDate = Year(Date()) &"_"& month(date()) &"_"& Day(Date())

  filepath="D:\tmp\\plan_" & vOperacao &"_"&strDate&".xls"

  objExcel.ExportBiff filepath

  ActiveDocument.GetApplication.WaitForIdle

  set objExcel = Nothing

  set SelOperacao = Nothing

    set SelCargo    = Nothing

End Sub

Sub Processa

  set FldOperacao = ActiveDocument.Fields("CampoFiltro")

    set SelOperacao = FldOperacao.GetPossibleValues

   

  for i=0 to SelOperacao.Count-1

    FldOperacao.Select SelOperacao.Item(i).text

    GravaPDF

    EnviaEmail

  next

end Sub

Employee
Employee

Re: Re: Envio de Email com filtros diferentes.

Postei um exemplo, caiu para a moderaçao, deve aparecer em pouco tempo

Not applicable

Re: Envio de Email com filtros diferentes.

Obrigado Clever,

Irei adaptar para meu caso!

Muito Obrigado!

Qualquer duvida que eu tiver entro em contato com você!

Att,

JH

israelcsouza
New Contributor III

Re: Envio de Email com filtros diferentes.

Boa tarde cleveranjos‌ ,

estava implementando esse exemplo em um dos meus painéis, porem me deparei com o seguinte erro

na linha onde esta setado o comando para enviar o email: objEmail.Send - Linha 48


mostra o seguinte erro:


O caminho da pasta de escolha é necessário e não foi especificado.


testei diversos servidores diferentes, mas ainda sim continua a mostrar o erro.

Employee
Employee

Re: Envio de Email com filtros diferentes.

Coloque sua macro aqui