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