Ysance - Your Data in Action

    Publier un objet Qlikview par email

    [fa icon="calendar"] 24/07/06 12:46 / par Romain Chaumais

    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:tempimage.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 " &amp; AllRegions.item(iRegion).Text &amp; " : " &amp; AllAgences.count &amp; " agences." &amp; vbCrLf     Set AllEMails =  ActiveDocument.Fields("EMAIL").GetPossibleValues     for iEmail = 0 to 1 - 1        sendMailTo AllEMails.item(iEmail).text, str, 1     next   next
       msgbox "Result : " &amp; vbCrLf &amp; vbCrLf &amp; str

    end sub

    S'abonner au blog