Bonjour,
Je bosse sur une petite appli de gestion de commande.
L'utilisateur peut modifier une commande existante et l'envoyer par mail, l'imprimer ou ne rien faire. Cela fonctionne bien mais il y a un truc étrange qui se produit après l'envoi par mail si l'utilisateur veut éditer la même ou une autre commande dans la foulée. La commande s'ouvre mais la table contenant les lignes de la commande est vide. Pour revenir à un affichage normal je suis obligé de fermer ou ré-ouvrir l'appli.
Voici le cheminement des actions que l'utilisateur fait :
Double clic sur la commande
Ouverture de la commande
Modification de commande (une quantité par ex..)
Clic sur le bouton validez (qui ouvre une fenêtre de choix)
Sélection du choix :
-1 enregistrer/fermer
-2 envoi par mail (génère le BC en pdf et l'envoie par mail avec outlook) et fermer
-3 imprimer (génère le pdf et l'imprime) et fermer
Les codes :
ouverture de la commande (sur double clic)
Modification de la commande
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 xgnobc est une chaîne xgnobc = TABLE_REQ_COMMANDES.COL_NoBC..ValeurAffichée //récupère le n° de bon de commande Ouvre (FEN_BON_DE_COMMANDE_edit,xgnobc)
Code bouton validez
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 //Initialisation de Table_REQ_commande_edit // Paramètres de la requête 'REQ_commande_edit' MaSource.ReqNobc = gnobc HExécuteRequête(REQ_commande_edit,hModifieFichier)
Code des choix (clic bouton continuer)
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 monnocmde est une chaîne monnocmde = SAI_NumBC //HLitRecherche(LigneCde,IDLigneCde,COL_IDLigneCde) Commande.TotalHT = SAI_TotalCMDEHT HModifie(Commande) //// Recalcule le total de la commande CalculeTotalCommande() TableAffiche (FEN_accueil.TABLE_REQ_COMMANDES,taRéExecuteRequete) DonneFocus(FEN_accueil.TABLE_REQ_COMMANDES) Ouvre (FEN_validecmde,monnocmde) // Ferme la fenêtre Ferme(FEN_BON_DE_COMMANDE_edit)
J'ai mis des points d'arrêt, les paramètres sont bien alimentés...
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77 SI SEL_choix_envoi = 3 ALORS iInitRequêteEtat(ETAT_bc,SAI_Ref) iAperçu(iapZoom100) iImprimeEtat(ETAT_bc) Ferme(FEN_validecmde) FIN SI SEL_choix_envoi = 2 ALORS NomFichier est une chaîne = ComplèteRep(fRepDonnées()) + ... "\" + "Bon de Commandes" + "\" + SAI_Ref + ".PDF" iInitRequêteEtat(ETAT_bc,SAI_Ref) iDestination(iPDF,NomFichier) iImprimeEtat(ETAT_bc) LanceAppliAssociée(NomFichier) //recuperation du mail fournisseur REQ_mail_fournisseur.Pnbc = SAI_Ref HExécuteRequête(REQ_mail_fournisseur) HLitPremier sMailfournisseur est une chaîne sMailfournisseur = REQ_mail_fournisseur.Mail1 //1 : &Envoyer //2 : &Ne pas envoyer SELON Dialogue("Voulez-vous envoyer le Bon de Commande par Mail ?") // &Envoyer CAS 1 HLitRecherche(parametres,IDparametres,1) smtpadresseexpe est une chaîne smtpadresseexpe = parametres.adresse_mail sMtpadressedesti est une chaîne sMtpadressedesti = sMailfournisseur smtpsujet est une chaîne smtpsujet = "Bon de commande" smtpmessage est une chaîne smtpmessage = "Bonjour" + RC + RC + ... "Veuillez trouver ci-joint le Bon de Commande N°" + " " + SAI_Ref + " " + RC + RC + ... "Cordialement" // Envoi d'un message avec pièce jointe EmailRAZ() Email.Destinataire[1] = sMtpadressedesti Email.NbDestinataire = 1 Email.Sujet = smtpsujet Email.Message = smtpmessage Email.Attache[1] = NomFichier Email.NbAttache = 1 EmailLanceAppli() HLibèreRequête(REQ_mail_fournisseur) EmailRAZ() Ferme(FEN_validecmde) // &Ne pas envoyer CAS 2 Info("La commande est enregistrée") Ferme(FEN_validecmde) FIN FIN SI SEL_choix_envoi = 1 ALORS Info("La commande est enregistrée") Ferme(FEN_validecmde) FIN
Je ne vois pas trop d'où cela peut venir...
Si quelqu'un à une idée et peux me filer une piste..
Merci d'avance
Partager