IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WinDev Discussion :

EmailCherchePremier, affectation d'une variable de type Email


Sujet :

WinDev

  1. #1
    Membre habitué
    Inscrit en
    Juin 2009
    Messages
    346
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 346
    Points : 163
    Points
    163
    Par défaut EmailCherchePremier, affectation d'une variable de type Email
    Bonjour les amis,
    Dans Windev j'ouvre une session Outlook pour faire apparaître les "expéditeur", "objet"... dans un tableau. Ca marche au poil.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    IDSession est un entier = EmailOuvreSessionOutlook("Outlook")
    EmailLitEntêtePremier(IDSession)
    TANTQUE  Email.EnDehors = Faux
    TableAjouteFils(TABLEH_Mails,Catégorie,Email.DateRéception,Email.ID,DateVersChaîne(Email.DateRéception,"Jjj JJ Mmm à HHhmm"),Email.Expéditeur,Email.Sujet)
    FIN
    Ceci n'utilise pas de variable Email à proprement parler (pour les connaisseurs, Email.Sujet... est écrit en bleu dans Windev).

    Pour affecter une variable Email je fais comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    MonMessage est un Email 
    EmailLitPremier(IDSession,MonMessage)
    Et ensuite je récupère les infos par "MonMessage.Sujet" etc...

    Cela fonctionne aussi.


    Par contre et c'est ce qui m'amène. Dans mon tableau j'ai stocké Email.ID dans une colonne (TABLEH_Mails.COL_IdMail) et je veux faire en sorte que lorsque je clique sur une ligne du tableau, le mail correspondant à Email.ID soit stocké dans une variable de type Email.

    Cela fonctionne avec le code de "sélection d'une ligne du tableau" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    MonMessage est un Email
    EmailLitPremier(IDSession,MonMessage)
    TANTQUE MonMessage.ID<>TABLEH_Mails.COL_IdMail
    	EmailLitSuivant(IDSession,MonMessage)
    FIN
    Seulement c'est très lent car il lit tous les mails bêtement... Je suis sûr qu'il faut utiliser la fonction "EmailCherchePremier" qui est plus rapide mais je n'y arrive pas.

    (pour info j'ai testé : EmailCherchePremier(IDSession,MonMessage,emailMessageID,TABLEH_Mails.COL_IdMail) mais c'est débile car EmailCherchePremier renvoie un booléen... j'espérais qu'il me stocke le mail dans la variable MonMessage).

    Si vous avez une idée...

    Amicalement,

    Eric.

  2. #2
    Membre émérite
    Homme Profil pro
    Développeur et responsable micros/réseaux
    Inscrit en
    Octobre 2010
    Messages
    1 286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur et responsable micros/réseaux
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 286
    Points : 2 562
    Points
    2 562
    Par défaut
    Bonjour,

    si tu regardes l'exemple lié à l'aide de cette fonction EmailCherchePremier, http://doc.pcsoft.fr/fr-FR/?3032131&...emier_fonction, tu remarqueras que lorsque tu vas faire le parcours ensuite, il va garder en mémoire ces critères et n'afficher que les messages correspondant ... Donc si tu cherches un mail avec un ID particulier, alors le parcours ne devrais en trouver qu'un !

    Bon courage,

    Nicolas

  3. #3
    Membre habitué
    Inscrit en
    Juin 2009
    Messages
    346
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 346
    Points : 163
    Points
    163
    Par défaut
    Bonjour et merci de ta réponse.
    Cela dit j'ai lu l'aide windev sur ce sujet au moins 50 fois et rien n'y fait.
    D'après toi je devrais taper :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    MonMessage est un Email
    EmailCherchePremier(IDSession,MonMessage,emailMessageID+emailCorps+emailSujet,"a")
    Info(MonMessage..Sujet)
    Cela dit MonMessage..Sujet est toujours vide (or j'ai 200 mails dans la liste donc bien sûr qu'il y a un "a" dans un des mails.)
    En fait EmailCherchePremier me renvoie toujours faux :/

    Qu'ai je fais de mal ?

    Motif de l'erreur :




    Appel WL :
    Traitement de 'Sélection d'une ligne de TABLEH_Mails' (ImportMail.TABLEH_Mails), ligne 14, thread 0
    Fonction 'EmailCherchePremier', syntaxe 6

    Que s'est-il passé ?
    MAPI a renvoyé l'erreur 80070057.

    Code erreur : 520034
    Niveau : erreur non fatale (EL_ONRETURN)

    Code d'erreur système : -2147024809
    Message d'erreur système :
    Paramètre incorrect.

    Dump de l'erreur du module 'WD190MESS.DLL' (19.0.5.0).
    Informations de débogage :
    Fonction (10,249)
    Informations supplémentaires :
    EIT_PILEWL :
    Sélection d'une ligne de TABLEH_Mails (ImportMail.TABLEH_Mails), ligne 14
    EIT_DATEHEURE : 21/08/2014 11:55:40




    Quelqu'un s'est-il déjà servi de cette fonction ?

    Amicalement,

    Eric.

  4. #4
    Membre chevronné Avatar de EDM-TAHITI
    Homme Profil pro
    Directeur Service informatique et projet développement
    Inscrit en
    Janvier 2010
    Messages
    994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Directeur Service informatique et projet développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2010
    Messages : 994
    Points : 1 995
    Points
    1 995
    Par défaut
    Hello,
    Va voir de ce côté là...
    http://support.microsoft.com/kb/982736/fr
    Ca pourrait t'aider.
    le savoir est dans les livres, 'the magic touch F1'
    Amicalement
    Eric

  5. #5
    Membre émérite
    Homme Profil pro
    Développeur et responsable micros/réseaux
    Inscrit en
    Octobre 2010
    Messages
    1 286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur et responsable micros/réseaux
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 286
    Points : 2 562
    Points
    2 562
    Par défaut
    Je pense que tu n'as pas lu l'aide sinon tu aurais un code tel que celui-ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    // Ouverture d'une session Outlook
    IDSession est un entier
    IDSession = EmailOuvreSessionOutlook("")
     
    // Recherche des emails contenant la chaîne "PC Soft" 
    // dans le sujet ou dans le corps du message
    // Seuls les emails reçus sont pris en compte
    SI EmailCherchePremier(IDSession, emailMessageID, TABLEH_Mails.COL_IdMail) = Vrai ALORS
    // Enumération des emails trouvés
     TANTQUE Email.EnDehors = Faux
    		// Affiche l'expéditeur et le sujet dans un champ Table
    		Info(Email.Expéditeur, Email.Sujet,Email.Corps)
    		// Email trouvé suivant
    		EmailLitSuivant(IDSession)
     FIN
    SINON
    Info("Aucun email n'a été trouvé")
    FIN
    ....

  6. #6
    Membre habitué
    Inscrit en
    Juin 2009
    Messages
    346
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 346
    Points : 163
    Points
    163
    Par défaut
    J'ai bien lu l'aide, et plutôt 50 fois qu'une.

    Cette solution ne me va pas car je veux que le mail se charge dans une variable de type email.

    Voici ce que je viens de découvrir :

    Ce code fonctionne je n'ai pas d'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    MonMessage est un Email
    SI EmailCherchePremier(IDSession,MonMessage,emailSujet,TABLEH_Mails.COL_Objet,emailTous)=Faux ALORS
    	SAI_SansNom1=ErreurInfo(errComplet)
    SINON
    	Info(MonMessage..Sujet)
    FIN
    Ce code ne fonctionne pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    MonMessage est un Email
    SI EmailCherchePremier(IDSession,MonMessage,emailMessageID,Id,emailTous)=Faux ALORS
    	SAI_SansNom1=ErreurInfo(errComplet)
    SINON
    	Info(MonMessage..Sujet)
    FIN
    (Même résultat si je ne stocke pas dans une variable Email (ici MonMessage))

    Si je fais une recherche sur emailMessageID j'ai l'erreur évoquée dans mon post précédent.

    Ce qui est problématique car je peux avoir 2 mails avec le même objet...

    Bref, je vais aller voir ce que dit l'erreur 80070057.

    Bizarre.

    Amicalement,

    Eric.

  7. #7
    Membre émérite
    Homme Profil pro
    Développeur et responsable micros/réseaux
    Inscrit en
    Octobre 2010
    Messages
    1 286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur et responsable micros/réseaux
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 286
    Points : 2 562
    Points
    2 562
    Par défaut
    Le fait de mettre MonMessage dans la fonction EmailCherchePremier veut dire que tu fais la recherche dans ce mail uniquement ..... confère l'aide :
    Recherche dans une variable de type Email -> <Email> : Variable de type Email

    Message dans lequel la recherche sera faite.
    si tu veux juste récupérer le message dans une variable, alors tu fais MonMessage = Email si un message est trouvé. De plus si tu cherches sur l'ID, normalement il n'y en aura qu'un.

Discussions similaires

  1. Non affectation d'une variable de type string
    Par forum2015 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 12/08/2014, 20h36
  2. Affecter des valeur à une variable de type Mat
    Par younes1980 dans le forum OpenCV
    Réponses: 1
    Dernier message: 25/05/2014, 13h19
  3. Réponses: 2
    Dernier message: 31/10/2007, 15h40
  4. affecter une variable de type stringstream
    Par sorari dans le forum SL & STL
    Réponses: 3
    Dernier message: 24/03/2005, 11h14
  5. Ajouter a une variable de type string, un entier
    Par Little-Freud dans le forum SL & STL
    Réponses: 12
    Dernier message: 05/03/2005, 19h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo