6 Replies Latest reply: Nov 17, 2016 9:25 PM by Hector Vega RSS

    How to send report out to user by image format?

    Murali Srithar


      I'm using Personal Edition.

      I've to send report to user's emails with image (JPEG) format.

      I've a requirement like based on the customer column it should filter values and sent out to users email as image (jpeg) format, and also image should be seen in the body of the email page.

      How to achieve this?


      Thanks in advance,


        • Re: How to send report out to user by image format?
          sushil kumar



          Goto File>Export>Export Sheet Image



          • Re: How to send report out to user by image format?
            Umamaheswara Reddy

            Hi Murali, You want to send the report as IMAGE or you want to send the Image along with your report

              • Re: How to send report out to user by image format?
                Murali Srithar

                My report should be on image format and that should be sent out to users. I believe we can do it with module editor. Need help on sending reports as a image format to users.

                  • Re: How to send report out to user by image format?
                    saima siddiqui

                    You need to write macros for exporting chart as image and then mail it to users. You can even attach the image in mails body through macro

                    • Re: How to send report out to user by image format?
                      Jareb Patriquin

                      Hi Murali,


                      I've been able to do this and have been using it in multiple apps/reports for a couple of years. As a summary, we use a chart in a Qlikview app and capture it as a image, which gets emailed out to specific people. The same chart is re-used for different people, by using a list box that filters for those people. All this needs to be run via a macro within the macro module in Qlikview. It isnt the most efficient way, but it does the job, basically the app is triggered to open from a windows task scheduler, the data is reloaded, then the filters are applied, then the macro is run, which in our case uses Outlook for each image, (you can have a collection of images per email or just one image). The email is sent and then the macro goes to the next list box option and loops the export part, until it is complete and then the app closes, until next trigger.


                      Since there are a few steps in play, let us know which one you need help with. A lot of material on the community sites regarding export, macros, etc...


                      You will have to fine tune the export part, so that it looks good in the email, also quality of the export so that your emails aren't huge, etc.


                      Hope this helps!

                  • Re: How to send report out to user by image format?
                    Hector Vega

                    I am using a macro to store  the objects to JPG and then send those files to the recipients you want as an embebed image on the mail body.


                    The macro is :


                    Sub Init
                       Set Button1 = ActiveDocument.GetSheetObject("OBJECTID_HERE")
                       'Make a button on the designer and

                    end Sub

                    sub CreaObjetos

                         ActiveDocument.GetApplication.Sleep 2000
                         ExpJPG "TX213","Logo"
                         ExpJPG "CH218 Sales","GraphSales"    
                    End sub  

                    Sub PrepareReports 
                         ExportEmail "One.person@domainx.com"
                         'ExportEmail "other.person@domainx.com"
                    end sub


                    SUB setVariable(varName, varValue)
                    set v = ActiveDocument.Variables(varName)
                    v.SetContent varValue, true
                    END SUB

                    Sub ExpJPG(ObjId,ResName)
                      Set Objeto = ActiveDocument.GetSheetObject(ObjId)
                      Objeto.ExportBitmapToFile  "C:\dashboards\email\"& ResName &".jpg"
                    end Sub

                    Sub ExportEmail(Correo)
                      Dim objEmail
                      Const cdoSendUsingPort = 2    'Send the message using SMTP
                      Const cdoAnonymous = 0        'Do not authenticate
                      Const cdoBasic = 1            '    basic (clear-text) authentication
                      Const cdoNTLM = 2             '     NTLM
                      Const SMTPServer = "mail.domainx.com" ' changed for public consumption
                      Const SMTPPort = 25                 ' Port number for SMTP
                      Const SMTPTimeout = 120              ' Timeout for SMTP in seconds

                      Set objEmail = CreateObject("CDO.Message")
                      Set objConf = objEmail.Configuration
                      Set objFlds = objConf.Fields

                      With objFlds

                               .Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "Business.Intelligence@solmar.com"
                               .Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = your_pwd_here"              
                               .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") = cdoBasic  
                               .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 

                      End With



                      objEmail.To =  Correo    '"sender.person@domainx.com"    'Aqui sera Correo  
                      objEmail.From = "sender.person@domainx.com
                      objEmail.Subject = "Report Name Here"

                      HTML = "<!DOCTYPE HTML PUBLIC ""-//IETF//DTD HTML//EN"">" & chr(13) & chr(10)
                      HTML = HTML & "<html>"
                      HTML = HTML & "<head>"
                      HTML = HTML & "<meta http-equiv=""Content-Type"" content=""text/html; charset=iso-8859-1"">"
                      HTML = HTML & "<title>Title here</title>"
                      HTML = HTML & "</head>"
                      HTML = HTML & "<body bgcolor=""#FFFFFF"">"


                      HTML = HTML & "<table border=""1"" cellpadding=""1"" cellspacing=""1"">"
                      HTML = HTML & "  <tr>"
                      HTML = HTML & "    <td align=""center"" ><img src=""cid:Logo.jpg"" ></td>"
                      HTML = HTML & "  </tr>"
                      HTML = HTML & "</table>"

                      HTML = HTML & "<br><img src=""cid:GraphSales.jpg"" >"

                      HTML = HTML & "</body>"
                      HTML = HTML & "</html>"


                      Set objBP = objEmail.AddRelatedBodyPart("C:\dashboards\email\Logo.jpg", "Logo.jpg", CdoReferenceTypeName)
                      objBP.Fields.Item("urn:schemas:mailheader:Content-ID") = "<Logo.jpg>"

                      Set GraphObj= objEmail.AddRelatedBodyPart("C:\dashboards\email\GraphSales.jpg", "GraphSales.jpg", CdoReferenceTypeName)
                      GraphObj.Fields.Item("urn:schemas:mailheader:Content-ID") = "<TxtRojo.jpg>"

                      objEmail.HTMLBody = HTML



                      Set objFlds = Nothing
                      Set objConf = Nothing
                      Set objEmail = Nothing

                    End Sub      

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


                    Please let me know if you need more help on this.