Bonjour!
je travaille en ce moment sur un logiciel de gestion de stock et de commande pour une entreprise en utilisant swing.
C'est en gros un logiciel qui gere une base de donnée de maniere transparente pour l'utilisateur .(base de donnée utilisée:Access).
Sur plusieurs fonctionnaliés j'a eu des problemes que je n'arrive pas à expliquer!
Par exemple, la table Stock contient les champs: produits,quantité initiale,quantits commandés, quantités restantes,prix coutant, prix vente, cout,recette ,benefice.
A chaque nouvelles commandes enregistrés depuis l'interface, les champs commandés, cout ,recette, et benefice sont mis à jour.
Avec un prix fixe, la formule cout ,recette est simple mais comme mon logiciel permet de changer de prix ,la formule est un peu plus compliqué(bien que pas trés sorcier):
cout=((somme de i=1 à n-1) (C(i+1)-C(i))*p(i)) +(C -C(n))*p(n)
C(i):niveau de commande au ieme changement
p(i):prix au ieme changement
C:niveau actuel de commande
pour que le logiciel se souvienne des C(i):p(i) j'ai crée deux tables cout et recettes.
Le probleme le voici:
dans la methode actionPerformed(ActionEvent evt), deux instructions censés etre traités de maniere sequentiel: une qui ajoute le nouveau prix à la table stock, l'autre qui enregistre le couple C(i):p(i) aux tables cout et recette.
Il est evident que la premiere instruction dot avoir terminée pour que l'autre puisse enregistrer le bon prix aux deux tables.
Mais voilà la deuxieme m'enregistre le prix avant changement, ce qui fausse bien evidemment le calcul.
J'ai utilisé des Threads avec verrou sur l'objet Sqlconnect(contenant les methodes selectionner, ajouter etc.), rien n'y fait!
J'ai fnalement contourné le probleme en integrant les instructions enregistant les prix dans un autre cadre et là c bon!
Quelqu'un aurait une explication?
Serait ce Access qui recoit les requetes mais ne les traite pas dans l'ordre où il les a recu ou est ce un probleme Java?
Merci d'avance!
Partager