PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → parcourire une table pour envpyer un mail
parcourire une table pour envpyer un mail
Iniciado por alezan, 22,nov. 2019 10:50 - 8 respuestas
Miembro registrado
47 mensajes
Publicado el 22,noviembre 2019 - 10:50
bonjour,
mon besoin, j'ai une table (mailpalette)




je doit parcourir cette table est envoyer un mail pour chaque enregistrement dans la table en utilisant l’e-mail, le nom et le commentaire de la table pour mon mail.

j'ai fait cela, mais cela ne marche pas.
En debug il passe directement de "pour tout smail " au dernier fin ?

si quelqu'un a une idée de l'endroit ou je me trompe.

mailpalette est une structure
sCODE_CLIENT est une chaîne
sNOM_CLIENT est une chaîne
sEMAIL_ADMINCLI est une chaîne
sCOMMENTAIRE_ADMINCLI est une chaîne

FIN
tabmails est un tableau de mailpalette

POUR TOUT sMail de tabmails
sText est une chaîne
sText="Bonjour "+mailpalette.nom_client+" Pouvez-vous nous envoyer votre décompte du solde de palettes Europe, dû pour le mois dernier" +" "+mailpalette.commentaire

//OUVERTURE d'une session SMTP POUR envoi du mail
sNomuser est une chaîne="******"
sMotDePAsse est une chaîne="******"
sServeurSMTP est une chaîne="smtp.office365.com"
EmailOuvreSessionSMTP(sNomuser,sMotDePAsse,"smtp.office365.com",587,Faux,emailOptionSécuriséTLS)
SI ErreurDétectée ALORS
Erreur()
RETOUR
FIN

//Remise à zéro des variables Email
EmailRAZ()

//Expéditeur du message
Email.Expéditeur = "support@ducournau.fr"
//Destinataire(s) du message
Email.Destinataire[1] = mailpalette.Adresse_email
Email.NbDestinataire = 1

//Sujet et contenu du message
Email.Sujet = "Merci de nous envoyer votre decompte palette ducournau transport"
Email.HTML = sText
Sablier(Vrai)
//Envoi du message
SI EmailEnvoieMessage(sNomuser)=Faux ALORS
Erreur()
ErreurInfo(errMessage)

FIN

FIN
Miembro registrado
352 mensajes
Publicado el 22,noviembre 2019 - 11:37
Bonjour, oui c'est normal, car vous ne faites pas appel au fichier de données mailpalette, mais à une classe qui elle est ... VIDE de données.
Si vous débutez dans la programmation en wlangage, vous devriez regarder le livre d'auto formation, qui est bien fait
Miembro registrado
47 mensajes
Publicado el 22,noviembre 2019 - 14:06
je débute, mais depuis 2 ans déjà, j'ai deja fait des petites application facile.

j'ai aussi fait l'auto formation
quelque serai la bonne syntaxe pour lister mon fichier de donnée, bouclé pour envoyer un mail sur chaque enregistrement.
Mensaje modificado, 22,noviembre 2019 - 14:08
Miembro registrado
352 mensajes
Publicado el 22,noviembre 2019 - 14:23
Petite parenthèse, ffin de mettre en avant un point quand on code en wlangage, la notion de table, ce n'est pas ce qu'on trouve dans une base HSQL, une table, c'est un champ, et ce qu'on trouve en base, c'est un fichier de données...

Pour commencer, vous allez supprimer dans votre code la déclaration de la structure mailpalette (je ne parle pas du fichier de données, mais bien de la structure, vu que vous avez mis des noms identiques, qui peut prêté à confusion. et d'autre part, supprimer la déclaration de tabmails .

Pour parcourir un fichiers de données, le wlangage propose plusieurs façons de procéder, il existe justement de la documentation à ce sujet ici :
https://doc.pcsoft.fr/fr-FR/?20010
Miembro registrado
47 mensajes
Publicado el 22,noviembre 2019 - 14:45
merci, c'est cette doc la que je chercher au départ. et je n'avais trouver que celle ci https://doc.pcsoft.fr/fr-FR/?1510016&name=instruction_pour_tout_pour_tous_parcours_tableaux
d’où mon erreur

mais c'est plus claire concernant la différence entre une " table" et fichier donner." l'inverse de ce que fait en oracle ou sql erveur. 8)
encor merci.
avec le bon mot clés on trouve les bonne info.
Mensaje modificado, 22,noviembre 2019 - 14:46
Miembro registrado
1.640 mensajes
Publicado el 22,noviembre 2019 - 14:48
@alezan
En reprenant les base de ton code, tu peux faire quelque chose comme ça (c'est une base.. a améliorer par la suite)

//OUVERTURE d'une session SMTP POUR envoi du mail
sNomuser est une chaîne="******"
sMotDePAsse est une chaîne="******"
sServeurSMTP est une chaîne="smtp.office365.com"
EmailOuvreSessionSMTP(sNomuser,sMotDePAsse,"smtp.office365.com",587,Faux,emailOptionSécuriséTLS)
SI ErreurDétectée ALORS
Erreur()
RETOUR
FIN

HLitPremier(MailPalette)
POUR TOUT MailPlaette
sText est une chaîne
sText="Bonjour "+mailpalette.nom_client+" Pouvez-vous nous envoyer votre décompte du solde de palettes Europe, dû pour le mois dernier" +" "+mailpalette.commentaire

EmailRAZ()

//Expéditeur du message
Email.Expéditeur = "support@ducournau.fr"
//Destinataire(s) du message
Email.Destinataire[1] = mailpalette.Adresse_email
Email.NbDestinataire = 1

//Sujet et contenu du message
Email.Sujet = "Merci de nous envoyer votre decompte palette ducournau transport"
Email.HTML = sText
Sablier(Vrai)

//Envoi du message
SI EmailEnvoieMessage()=Faux ALORS
ErreurInfo(errMessage)
FIN
FIN
Miembro registrado
47 mensajes
Publicado el 22,noviembre 2019 - 15:11
François C. a écrit :
@alezan
En reprenant les base de ton code, tu peux faire quelque chose comme ça (c'est une base.. a améliorer par la suite)

//OUVERTURE d'une session SMTP POUR envoi du mail
sNomuser est une chaîne="******"
sMotDePAsse est une chaîne="******"
sServeurSMTP est une chaîne="smtp.office365.com"
EmailOuvreSessionSMTP(sNomuser,sMotDePAsse,"smtp.office365.com",587,Faux,emailOptionSécuriséTLS)
SI ErreurDétectée ALORS
Erreur()
RETOUR
FIN

HlitPremier(MailPalette)
POUR TOUT MailPlaette
sText est une chaîne
sText="Bonjour "+mailpalette.nom_client+" Pouvez-vous nous envoyer votre décompte du solde de palettes Europe, dû pour le mois dernier" +" "+mailpalette.commentaire

EmailRAZ()

//Expéditeur du message
Email.Expéditeur = "support@ducournau.fr"
//Destinataire(s) du message
Email.Destinataire[1] = mailpalette.Adresse_email
Email.NbDestinataire = 1

//Sujet et contenu du message
Email.Sujet = "Merci de nous envoyer votre decompte palette ducournau transport"
Email.HTML = sText
Sablier(Vrai)

//Envoi du message
SI EmailEnvoieMessage()=Faux ALORS
ErreurInfo(errMessage)
FIN
FIN

François C. a écrit :
@alezan
En reprenant les base de ton code, tu peux faire quelque chose comme ça (c'est une base.. a améliorer par la suite)

//OUVERTURE d'une session SMTP POUR envoi du mail
sNomuser est une chaîne="******"
sMotDePAsse est une chaîne="******"
sServeurSMTP est une chaîne="smtp.office365.com"
EmailOuvreSessionSMTP(sNomuser,sMotDePAsse,"smtp.office365.com",587,Faux,emailOptionSécuriséTLS)
SI ErreurDétectée ALORS
Erreur()
RETOUR
FIN

HlitPremier(MailPalette)
POUR TOUT MailPlaette
sText est une chaîne
sText="Bonjour "+mailpalette.nom_client+" Pouvez-vous nous envoyer votre décompte du solde de palettes Europe, dû pour le mois dernier" +" "+mailpalette.commentaire

EmailRAZ()

//Expéditeur du message
Email.Expéditeur = "support@ducournau.fr"
//Destinataire(s) du message
Email.Destinataire[1] = mailpalette.Adresse_email
Email.NbDestinataire = 1

//Sujet et contenu du message
Email.Sujet = "Merci de nous envoyer votre decompte palette ducournau transport"
Email.HTML = sText
Sablier(Vrai)

//Envoi du message
SI EmailEnvoieMessage()=Faux ALORS
ErreurInfo(errMessage)
FIN
FIN



merci c'est presque ce que je venais de faire avec l'exemple. :merci:
Miembro registrado
47 mensajes
Publicado el 22,noviembre 2019 - 17:51
alors pour la postérité et surtout pour ceux qui tomberais sur se poste dans le future.
ci dessous mon code final qui fonctionne

HLitPremier(mailpalette, nom_client)
TANTQUE PAS HEnDehors(mailpalette)
sText est une chaîne
sText=TexteVersHTML("Bonjour "+mailpalette.nom_client+ RC+ "Pouvez-vous nous envoyer votre décompte du solde de palettes Europe, dû pour le mois dernier" +" "+mailpalette.commentaire+RC+"")
ssignature est une Image
ssignature= ""
//OUVERTURE d'une session SMTP POUR envoi du mail
sNomuser est une chaîne="toto@toto.fr"
sMotDePAsse est une chaîne="****"
sServeurSMTP est une chaîne="smtp.office365.com"
EmailOuvreSessionSMTP(sNomuser,sMotDePAsse,"smtp.office365.com",587,Faux,emailOptionSécuriséTLS)
SI ErreurDétectée ALORS
Erreur()
RETOUR
FIN

//Remise à zéro des variables Email
EmailRAZ()

//Expéditeur du message
Email.Expéditeur = "toto@toto.fr"
//Destinataire(s) du message
Email.Destinataire[1] = mailpalette.Adresse_email
Email.NbDestinataire = 1

//Pièces jointes
Email.Attache[1] =fRepEnCours() + "\signature.png"
Email.NbAttache = 1
//Sujet et contenu du message
Email.Sujet = "Merci de nous envoyer votre decompte palette pour les transport ducournau"
//Email.Message =sText
Email.HTML = sText+RC+"<IMG SRC=""signature.png"">"
Sablier(Vrai)
//Envoi du message
SI EmailEnvoieMessage(sNomuser)=Faux ALORS
Erreur()
ErreurInfo(errMessage)

FIN
HLitSuivant(mailpalette, nom_client)
FIN
Mensaje modificado, 22,noviembre 2019 - 17:53
Publicado el 28,junio 2020 - 15:09
Grand merci à toi l'ami le code fonction pour moi..