par angellife51 » Lun Juin 28, 2010 7:52 am
i est pour le client qui est selectionner
JE marque les 2 procédures :
ThreadBoutEnvoie :
i, index sont des entier
bOK est un booléen
//sMsg est une chaine
resteDivision est un réel
index = 0
// initialisation de la table
POUR i=1 A TableOccurrence(TABLE1)
olemail2.TABLE1.Statut[i] = ""
FIN
// pour chaque ligne de la table
POUR i=1 A TableOccurrence(TABLE1)
// si le client fait partie des destinataires
SI olemail2.TABLE1.C_MARQUE[i]=1 ALORS
timeout est un entier
timeout = EmailLitTimeOut()
Trace(timeout)
TableSelectPlus(TABLE1,i)
olemail2.TABLE1.Statut[i]="En cours"
Message("Envoi du mail à "+ olemail2.TABLE1.Mail_Cli[i]) ; MultitâcheRepeint()
// Message(chaineconstruit("Envoi du mail à ",ColMail[i])) ; multitacherepeint()
// Personnalisation du message
SI Mail_Cli[i]<>clientsuiv ALORS
STOP
ad_mail=Mail_Cli[i]
nfac=NUFAC[i]
dc=DATEC[i]
treg=RESTEREG[i]
mont=MONTH[i]
smsg=sPrepareMessage(Mail_Cli[i],i)
SI smsg = "erreur" ALORS
olemail2.TABLE1.C_MARQUE[i]="Echec" ; MultitâcheRepeint()
SINON
// Envoi du message
bOK=bEnvoyerMessage (olemail2.TABLE1.C_MARQUE[i],"",smsg,"")
SI PAS bOK ALORS
SI PAS gbSessionOuverte ALORS
olemail2.TABLE1.Statut[i]="Abandon"; MultitâcheRepeint()
SORTIR
SINON
olemail2.TABLE1.Statut[i]="Echec"; MultitâcheRepeint()
FIN
SINON
olemail2.TABLE1.C_MARQUE[i] =Faux
olemail2.TABLE1.Statut[i]="Envoyé" ; MultitâcheRepeint()
index++
//Tempo de 10sec tout les 5 mails envoyés
resteDivision = modulo ( index , 5 )
SI resteDivision = 0 ALORS
Message("tempo 10 secondes")
Multitâche(tempo)
EmailFermeSession(gsUser)
gbSessionOuverte = Faux
FIN
FIN
FIN
FIN
FIN
FIN
//sablier(faux)
Message()
SI bOK ALORS
Info("Envoi des eMails terminé.")
// Déconnexion du serveur de messagerie
SI gbSessionOuverte ALORS
EmailFermeSession(gsUser)
gbSessionOuverte = Faux
FIN
FIN
BoutonEnvoi..Etat = Actif
BoutonParamConnexion..Etat = Actif
CONTREP..Etat = Actif
ORDONN2..Etat = Actif
ROTATIO..Etat = Actif
CHERCHE1..Etat = Actif
ANNULE3..Etat = Actif
ANNULE4..Etat = Actif
IMPRIME..Etat = Actif
//ThreadArrête("ThreadEnvoie")
ET sPrepareMessage
// Syntaxe :
//[ <Résultat> = ] sPrepareMessage (<sMessageType>, <nLigne>)
//
// Paramètres :
// sMessageType : <indiquez ici le rôle de sMessageType>
// nLigne : <indiquez ici le rôle de nLigne>
// Valeur de retour :
// chaîne : <indiquez ici les valeurs possibles ainsi que leur interprétation>
FONCTION sPrepareMessage(sMessageType,nLigne)
sContenu est une chaîne = sMessageType
// sContenu = remplace(sContenu, "%CIV%",Civilite[nligne])
// sContenu = remplace(sContenu, "%NOM_PRENOM%",olemail2.table1.NOM[nligne])
clientsuiv=ad_mail
ente_rel est une chaîne
ente_rel="Numéro Date facture Montant Echéance Réglé Solde"
datef est une chaîne
djap est un monétaire
suiv est un entier
STOP
HLitRecherche("PARADIV","TOPCD","R"+Complète(SAISIE1,5))
SI HTrouve() ET PARADIV.TOP="R" ET SansEspace(PARADIV.CODE)=SansEspace(SAISIE1) ALORS
suiv=0
sContenu=PARADIV.MEMO1+RC
sContenu=ente_rel+RC
HLitRecherche(Echeanc,factech,"E"+nfac+dc)
SI HTrouve(Echeanc) ALORS
datef=Echeanc.datefact
djap=Echeanc.montregF
FIN
sContenu=sContenu+nfac+TAB+datef+TAB+mont+TAB+dc+TAB+djap+TAB+treg+RC
POUR suiv=1 A 10
SI Mail_Cli[i+suiv]=clientsuiv ALORS
sContenu=sContenu+NUFAC[i+suiv]+TAB+datef+TAB+MONTH[i+suiv]+TAB+DATEC[i+suiv]+TAB+djap+TAB+RESTEREG[i+suiv]+RC
SINON
SORTIR
FIN
FIN
sContenu=PARADIV.MEMO1+RC+sContenu+RC+PARADIV.MEMO2
FIN
RENVOYER sContenu
POur le 1er client selectionner cela marche mais pour le suivant il ne trouve pas
Merci