Accueil

Publier un objet Qlikview par email

Voici un exemple de code Qlikview (testé en 7.2 et 7.5) permettant de :

- Boucler sur une valeur filtrée (liste de région) - Afficher en détail une table pivot - ‘Copier’ son image bitmap et l’envoyer par email à un destinaire sur dépassement de valeur

(Ca marche aussi avec des alertes, mais l’idée ici est d’envoyer par email une “photo” d’un objet et la placer dans le corps de l’email).

Il y a aussi une petite DLL sur le web qui permet de convertir l’image BMP en JPG. Je la retrouverai à l’occasion…


sub sendMailTo(strTo, strStr, intWithImage)

Set mail = CreateObject(”CDO.Message”)

Set mailConf = CreateObject(”CDO.Configuration”)

mail.Subject = “Hello from QV”

mail.From = “EMMETTEUR_EMAIL”

mail.To = strTo

mail.HtmlBody = “<html><head></head><body>” & strStr & “<br><img src=’image.bmp’></body></html>” if (intWithImage=1) then

mail.AddAttachment “c:\temp\image.bmp”

end if

mailConf.Fields(”http://schemas.microsoft.com/cdo/configuration/sendusing”)=2 mailConf.Fields(”http://schemas.microsoft.com/cdo/configuration/smtpserver”)=”SERVEUR_SMTP” mailConf.Fields(”http://schemas.microsoft.com/cdo/configuration/smtpserverport”)=”25″ mailConf.Fields(”http://schemas.microsoft.com/cdo/configuration/smtpauthenticate”)=1 mailConf.Fields(”http://schemas.microsoft.com/cdo/configuration/sendusername”)=”UTILISATEURSMTP” mailConf.Fields(”http://schemas.microsoft.com/cdo/configuration/sendpassword”)=”MOTDEPASSESMTP”

mailConf.Fields.Update

mail.Configuration = mailConf

mail.Send

Set mail = nothing Set mailConf = nothing

end sub

sub doForRegion()

  ' fldRegion = Le champ region   Set fldRegion = ActiveDocument.Fields("CODE_REGION")   fldRegion.Clear   ' AllRegions = Liste de toutes les regions possibles   Set AllRegions =  fldRegion.GetPossibleValues   str = ""   Set fldAgence = ActiveDocument.Fields("NOM_AGENCE")   ' CH01 est la table pivot   Set Pivot = ActiveDocument.GetSheetObject("CH01")   ' Boucle sur toutes les réions   for iRegion = 0 to 1 - 1     ' On sélectionne une région   	 fldRegion.Clear   	 fldRegion.Select Allregions.item(iRegion).text     set AllAgences = fldAgence.GetPossibleValues     Pivot.ExportBitmaptoFile "c:tempimage.bmp"
    str = "Region " & AllRegions.item(iRegion).Text & " : " & AllAgences.count & " agences." & vbCrLf     Set AllEMails =  ActiveDocument.Fields("EMAIL").GetPossibleValues     for iEmail = 0 to 1 - 1        sendMailTo AllEMails.item(iEmail).text, str, 1     next   next
   msgbox "Result : " & vbCrLf & vbCrLf & str

end sub

No comments yet. Be the first.

Leave a reply