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 :

Drag & Drop Outlook vers Table Windev


Sujet :

WinDev

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 210
    Points : 164
    Points
    164
    Par défaut Drag & Drop Outlook vers Table Windev
    Bonjour,

    J'utilise la procédure suivante pour glisser-déposer des fichiers de l'explorer vers une table windev,maintenant je voudrais faire la même chose à partir d'Outlook afin d'envoyer les messages vers une table et les sauver.

    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
     
     
    // Initialisation du dialogue
    ExplorerAccepte(Vrai, "FEN_Fiche_client")
    Evénement("Recup_mail", "*.", 563)
     
     
    VL_NbFic est un entier = ExplorerRécupère(_EVE.wParam)
    VL_NomFic est une chaîne
    // Récupération de tous les fichiers
    POUR VL_Indice = 1 A VL_NbFic
    	VL_NomFic = ExplorerRécupère(_EVE.wParam, VL_Indice)
    	TableAjouteLigne(TABLE_FICHATT_client,Droite(fExtraitChemin(VL_NomFic,fExtension),4),ExtraitChaîne(VL_NomFic,1,"\",DepuisFin),fDate(VL_NomFic),fTaille(VL_NomFic),VL_NomFic,TABLE_FICHATT_client.COL_Commentaires)
     
    FIN
    Si quelqu'un a une idée ?

  2. #2
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 937
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 937
    Points : 9 249
    Points
    9 249
    Par défaut
    Bonjour,

    et voici une solution OLE OLE (automation) en utilisant une liaison OLE à la place du presse-papier normalement utilisé dans un drag and drop.

    dans les déclarations de sa fenêtre ajouter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MonOutlook est un objet OLE "OutLook.Application"
    en considérant que le lâcher va s'effectuer sur le champ image IMG_CIBLE :

    dans Initialisation de la fenêtre rajouter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    IMG_Cible..DndCible=dndProgrammé
    DnDEvénement(ProcSurvolCible,IMG_Cible,dndSurvol)
    DnDEvénement(ProcLâcherCible,IMG_Cible,dndLâcher)
    et voici les procédures ProcSurvolCible,ProcLâcherCible :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    PROCEDURE ProcSurvolCible()
    // Cette procédure est automatiquement appelée
    // lorsque l'utilisateur survole le champ cible
    	DnDCurseur(dndCopier)
    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
    19
     
    PROCEDURE ProcLâcherCible()
    i est un entier
    Sujets est un tableau de chaînes
    tabCorpsMessage est un tableau de chaîne
    MailItem est un objet Automation dynamique
    QUAND EXCEPTION DANS
    		POUR i = 1 _A_ MonOutlook>>ActiveExplorer>>Selection>>Count
    			MailItem = MonOutlook>>ActiveExplorer>>Selection(i)
    			Ajoute(Sujets,MailItem>>Subject)
    			// on affiche les sujets des messages
    			Info (Sujets[i])
    			//	on peut récupérer toutes propriétés de  MailItem
    			// mais attention à la sécurité 		
    			Ajoute(tabCorpsMessage,MailItem>>Body)							
    		FIN
     
    FAIRE
    FIN
    voili, voilou

    Ami calmant, J.P
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 210
    Points : 164
    Points
    164
    Par défaut
    merci bcp pour ton aide.... je vais tester

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 210
    Points : 164
    Points
    164
    Par défaut
    En fait après avoir tester, je m'aperçois que je récupère bien le mail et son contenu ,mais je voulais récupérer le fichiers Outlook du message et l'inserer comme pièce jointe dans un tableau pour pouvoir l'ouvrir par la suite.

  5. #5
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 937
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 937
    Points : 9 249
    Points
    9 249
    Par défaut
    tu peux enregistrer temporairement les fichiers puis les mettre dans la base et les effacer du répertoire temporaire il suffit de faire pour enregistrer les fichiers en format msg :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MailItem>>SaveAs("c:\temp\mail.msg")
    Ami calmant, J.P
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 210
    Points : 164
    Points
    164
    Par défaut
    ok merci

  7. #7
    Membre émérite

    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 751
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 751
    Points : 2 368
    Points
    2 368
    Par défaut
    Waouhhh !

    Une fois de plus, il faut souligner la qualité de tes interventions jurassic pork !

    Et celle-ci, le Drag-&-Drop dans le sens Microsoft Outlook vers Application WinDev, mérite 10 étoiles !
    (bon, sur le forum DVP, il faudra se contenter de 5 étoiles)

    En effet, cette question est un classique des forums WinDev, sans solution en WLangage "pur", publiée à ce jour (à ma connaissance).

    C'est une excellente contribution qui devrait figurer en bonne place dans le sous-forum ad-hoc !


    _

  8. #8
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 937
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 937
    Points : 9 249
    Points
    9 249
    Par défaut
    Bonjour,

    Merchi JBO, mais dans la prochaine LST (la LST 84) il y a apparemment la solution :

    Une solution pour récupérer les emails présents dans Outlook dans une application WINDEV par un simple Drag and Drop.

    L’exemple “WD DnD Outlook” propose une solution pour réaliser un Drag & Drop d’un e-mail Outlook vers une application WINDEV.
    Il suffit de déplacer un e-mail sur un champ d’une fenêtre WINDEV pour remplir automatiquement la structure Email du WLangage.

    J'espère qu'elle n'utilise pas le même procédé que moi sinon PCSOFT risque de m'envoyer devant les tribunaux pour "divulgation publique d'un exemple LST"

    Je vous jure que je l'ai pas copiée cette solution d'ailleurs la LST n'est pas encore diffusée.

    Ami calmant, J.P
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  9. #9
    Membre émérite

    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 751
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 751
    Points : 2 368
    Points
    2 368
    Par défaut
    Bonjour à tous et plus particulièrement à jurassic pork,

    Citation Envoyé par jurassic pork Voir le message
    Merchi JBO, mais dans la prochaine LST (la LST 84) il y a apparemment la solution :
    [...]
    L’exemple “WD DnD Outlook” propose une solution pour réaliser un Drag & Drop d’un e-mail Outlook vers une application WINDEV.
    Il suffit de déplacer un e-mail sur un champ d’une fenêtre WINDEV pour remplir automatiquement la structure Email du WLangage.
    Bon, bien, on ne va pas bouder notre plaisir...
    ...Sauf que tout le monde n'est pas abonné à la LST.

    Citation Envoyé par jurassic pork Voir le message
    J'espère qu'elle n'utilise pas le même procédé que moi sinon PCSOFT risque de m'envoyer devant les tribunaux pour "divulgation publique d'un exemple LST"

    Je vous jure que je l'ai pas copiée cette solution d'ailleurs la LST n'est pas encore diffusée.
    Tu dramatises sérieusement, ou bien tu plaisantes ?


    Si la solution de la LST est "sérieuse", je pense qu'elle doit se baser sur le Drag and Drop OLE.
    Je vous donne un lien vers un excellent tutoriel qui montre son utilisation en C:

    Dans la partie 4 de ce tutoriel, on peut voir une copie d'écran qui présente tous les formats des "flux" disponibles lors d'un Drag and Drop OLE dont l'origine est Outlook Express.
    Parmi tous ces formats, on trouve le "format": __ Internet Message rfc822/rfc1522

    C'est ce format qui est enregistré dans un fichier .eml d'Outlook Express et qui peut être utilisé par la fonction EmailImporteSource().

    Si l'implémentation du OLE Drag and Drop dans Microsoft Outlook propose aussi un flux Internet Message rfc822/rfc1522, on peut donc procéder de la même manière.


    Ce qui m'enthousiasme particulièrement dans la solution de jurassic pork c'est la simplicité du procédé, surtout par comparaison avec l'OLE Drag and Drop.
    _

  10. #10
    Nouveau Candidat au Club
    Inscrit en
    Août 2011
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Août 2011
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Bonjour, cette solution est en effet la plus simple. Cependant, dans le cas où on D&D d'autres types de données que les mails, elle n'est pas adapté. La solution serait de reconnaitre le type D&D, mais étant donné que ce n'est pas un fichier, pas simple ! La LSTpropose une solution plutot compliqué, utilisant du COM. et avec des procédures dont j'ai du mal à comprendre le sens. N'y a t'il pas plus simple?
    merci !

  11. #11
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 210
    Points : 164
    Points
    164
    Par défaut Reprise de discussion DND Outlook vers Windev
    Bonjour,

    La solution de jurassic pork fonctionnait à merveille jusqu'à l'apparition de WINDOWS 8.1 et là plus rien à faire.Le mail ne veut se mettre dans ma table.J'ai renter une désinstalle de IE 11 ,mais rien à faire je n'arrive plus à glisser/dépose des emails d'Outlook vers Une table Windev. Il y a un bémol , en mode débogage ça marche mais une fois l'appli installé ça ne marche plus. Est ce problème de droits ?

    Merci pour vos conseils...

  12. #12
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 937
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 937
    Points : 9 249
    Points
    9 249
    Par défaut
    hello,
    je ne sais pas si cela existe sous windows 8.1 mais en cliquant droit sur ton exécutable et en choisissant propriétés, si l'onglet compatibilité est présent, sélectionne Exécuter ce programme en mode de compatibilité pour Windows 7 et aussi peut-être Exécuter ce programme en temps qu'administrateur.

    Ami calmant, J.P
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  13. #13
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 210
    Points : 164
    Points
    164
    Par défaut
    Oui, ça existe, j'ai essayer avec WINDOWS 7 et 8 Mode compatibilité , mis tout les droits mais rien y fait . Ce qui est étrange , pourquoi cela fonctionne t il en mode débogage sous Windev 19 et sur le même poste.

  14. #14
    Membre éprouvé Avatar de WDKyle
    Homme Profil pro
    Analyste-Programmeur
    Inscrit en
    Septembre 2008
    Messages
    1 200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-Programmeur

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 200
    Points : 962
    Points
    962
    Par défaut
    Bonjour,

    Je me permet de remonté le topic, j'utilise ton code jurassic pork qui fonctionne à merveille ! Par contre, tu "simule" un drag & drop depuis Outlook mais il y a t'il un moyen pour connaitre la source du drag & drop ? Car dans mon application, je peux faire des drag & drop depuis l'explorateur et je souhaiterais distinguer les deux pour être sûr d'exécuter le bon code selon la source du drag.

    Merci.

  15. #15
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 937
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 937
    Points : 9 249
    Points
    9 249
    Par défaut
    hello WDKyle,
    quelle est la cible ? Est-ce qu'un champ supplémentaire (contrôle Dotnet forms : par exemple label avec comme texte : déposez moi ici) servant de cible drag and drop est envisageable dans ton cas ?
    Le problème avec Windev c'est qu'apparemment on ne peut pas mixer un ExplorerAccepte - Evénement(x,x,563) avec un dndProgrammé - DnDEvénement

    Ami calmant, J.P
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  16. #16
    Futur Membre du Club Avatar de DeathPlayer
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2016
    Messages : 2
    Points : 5
    Points
    5
    Par défaut
    Bonjour à vous,
    Je me permets de déterrer le sujet dans un premier temps pour remercier jurassik pork qui m'a permis de faire mes drag&drop depuis Outlook vers WinDev, merci !
    Ensuite pour partager avec vous, mon code qui va permettre de mixer le dndProgrammé et le ExplorerAccepte. En fait, il "suffit" de reprendre le code d'exemple de WinDev "DNDVersExplorateur" de la page suivante : http://doc.pcsoft.fr/fr-FR/?3030001&...donne_fonction et le renverser pour faire l'inverse, c'est à dire, accepter les fichiers de l'explorateur. Ça va nous permettre d'accepter les fichiers dropés sans ExplorerAccepte et voilà ce que cela donne :

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
     
    PROCEDURE asDropFileDepuisExplorateur()
    // Structure Windows permettant de gérer 
    // le Glisser/Déplacer avec l'explorateur
    POINT est une Structure
    	x, y sont des entiers
    FIN
     
    DROPFILES est une Structure
    	// Pointeur vers la liste des fichiers
    	pFiles est un entier
    	// Position d'origine de la souris
    	PT est un POINT
    	// Réservé
    	fNC est un booléen 
    	// Vrai si la liste des fichiers est en UNICODE, Faux sinon
    	fWide est un booléen 
    FIN
     
    // Initialise une structure HDROP
    stDROPFILES est un DROPFILES
     
    bufDonneesDrop est un Buffer
    nTaille est un entier
    lnIndice est un entier
    lsChaineUnicode est une chaîne UNICODE
    lsChaineANSI est une chaîne ANSI
    lasFichiers est un tableau de chaînes
     
    //Récupération des données
    bufDonneesDrop = DnDRécupère(CF_HDROP)
    //Récupération de la taille du buffer
    nTaille = Taille(bufDonneesDrop) - Dimension(stDROPFILES)
     
    //Récupération de la structure Windows
    Transfert(&stDROPFILES, &bufDonneesDrop,Dimension(stDROPFILES))
    //ANSI ou Unicode ?
    SI stDROPFILES:fWide = Vrai ALORS
    	//Unicode
    	//Récupération de la liste des fichiers
    	lsChaineUnicode = Répète(CaractUnicode(0),nTaille)
    	Transfert(&lsChaineUnicode,&bufDonneesDrop + Dimension(stDROPFILES),nTaille)
    	lsChaineANSI = UnicodeVersAnsi(lsChaineUnicode)
    SINON
    	//ANSI
    	//Récupération de la liste des fichiers
    	lsChaineANSI = Répète(Caract(0),nTaille)
    	Transfert(&lsChaineANSI,&bufDonneesDrop + Dimension(stDROPFILES),nTaille)
    FIN
     
    //Les chemins sont séparés par le caractère 0
    ChaîneVersTableau(lsChaineANSI,lasFichiers,Caract(0))
     
    //On supprime tous les doublons (Surtout les chaines vides en fait)
    TableauSupprimeDoublon(lasFichiers)
    //On supprime la dernière chaine vide.
    lnIndice = TableauCherche(lasFichiers,tcLinéairePremier,"")
    TableauSupprime(lasFichiers,lnIndice)
     
    //On renvoi enfin la liste des fichiers dropés.
    RENVOYER lasFichiers
    En espérant en aider d'autres !

  17. #17
    Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 21
    Points : 61
    Points
    61
    Par défaut Merci DeathPlayer
    Le bout de code fonctionne parfaitement et m'a effectivement bien aidé. Gain de temps. Merci !

  18. #18
    Nouveau Candidat au Club
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2021
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Janvier 2021
    Messages : 1
    Points : 0
    Points
    0
    Par défaut Besoin aide
    Bonjour,

    j'utilise la méthode de DRAG and DROP pour Outlook semblable à celle de Jurassic Pork mais le problème est que certains usagers utilisent le courriel WEB office 365 et dans ce cas, peux même pas DRAG and DROP et en plus pas de session OUTLOOK,
    alors ça ne fonctionne pas.

    MonOutlook est un objet OLE "OutLook.Application"

    Comment résoudre mon problème?

    Merci!

Discussions similaires

  1. [WD15] Drag and Drop, Explorer vers Table hierarchique
    Par Jeje9 dans le forum WinDev
    Réponses: 4
    Dernier message: 26/06/2012, 13h16
  2. [WD16] Drag and Drop Outlook vers Windev
    Par METHOSITY dans le forum WinDev
    Réponses: 3
    Dernier message: 15/06/2011, 22h25
  3. [WD11] Drag and drop arbre vers table
    Par sycoulibaly dans le forum WinDev
    Réponses: 0
    Dernier message: 01/03/2011, 15h04
  4. [WD10] Drag and drop Outlook Express >> appli Windev
    Par pedro_delavega dans le forum WinDev
    Réponses: 1
    Dernier message: 08/09/2008, 15h55
  5. [delphi 7] drag drop outlook vers delphi
    Par PH69 dans le forum Delphi
    Réponses: 2
    Dernier message: 30/08/2006, 16h54

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