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.