1. #1
    Nouveau Candidat au Club Avatar de MOHAMED Rachade
    Homme Profil pro
    Étudiant
    Inscrit en
    mai 2016
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : mai 2016
    Messages : 43
    Points : 0
    Points
    0

    Par défaut Mise à jour des enregistrements

    Salut !

    J'ai un projet qui consiste à concevoir un logiciel de gestion des stocks d'un petit magasin. Dieu merci, j'ai eu l'occasion de le finir.
    Lorsque je faisais le test, tout a fonctionné correctement.

    J'ai ensuite crée l'installable et je l'ai installé sur mon poste avant de le mettre sur le poste du magasin. Lorsque je saisissais les données j'ai fait une erreur de saisie sur la quantité d'un article qui été une entrée, je voulais modifier l'enregistrement, je me suis rendus compte que j'ai oublié cette fonctionnalité.

    J'ai repris le projet, lorsque je modifie l'enregistrement sur la table des entrées, la modification s’effectue correctement mais les enregistrements qui sont sur la table stock ne changent pas donc le stock disponible reste le même.

    Voici la fenêtre des entrées, elle contient la table intitulée : TABLE_ENTRÉES
    Nom : FENETRE LISTE DES ENTREE.png
Affichages : 91
Taille : 30,1 Ko

    Et la fenêtre STOCK qui contient la table intitulée : TABLE_STOCK
    Nom : FENETRE STOCK.png
Affichages : 90
Taille : 18,8 Ko

    Je ne sais pas comment mettre les enregistrements de la table stock à jour à chaque modification.

    Je pensais à utiliser les TIGGERS mais je ne m'y connais pas trop. Alors que ce n'est pas sur le guide d'autoformation.

    Pouvez-vous m'aider s'il vous plaît pour que je puisse finir ce projet.

    Merci !

  2. #2
    Membre confirmé

    Profil pro
    Inscrit en
    mars 2002
    Messages
    1 070
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mars 2002
    Messages : 1 070
    Points : 557
    Points
    557

    Par défaut

    Il faudrait le code ou vous effectuez la mise à jours. Il faut retirer la valeur avant modif et ajouter la valeur après modif.

    Personnellement j'évite d'utiliser des tables Stocks ou Cumuls.
    Je ne stocke que les lignes de détail.
    Pour afficher ou éditer les recaps j'utilise les fonction SUM, Count et Group By de SQL. Au moins vous êtes certain de rester toujours cohérent.

    Dans votre cas si vous ne voulez pas tout refaire je serai tenté d'écrire une fonction qui compte et enregistre les résultats dans votre table Stocks.
    Vous appelez la fonction avant chaque affichage de récap.
    Sinon vous aurez toujours le risque d'une invraissemblance.

  3. #3
    Expert éminent
    Homme Profil pro
    Développeur Freelance
    Inscrit en
    janvier 2009
    Messages
    3 151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Freelance

    Informations forums :
    Inscription : janvier 2009
    Messages : 3 151
    Points : 6 468
    Points
    6 468

    Par défaut

    Bonjour,
    Si les triggers ne sont pas couverts par le guide d'auto-formation, WinDev est livré avec un exemple qui en parle.
    Tu peux commencer par y jeter un œil, ainsi que dans l'aide en ligne.
    Ca te fait un bon point de départ.

    Tatayo.

  4. #4
    Nouveau Candidat au Club Avatar de MOHAMED Rachade
    Homme Profil pro
    Étudiant
    Inscrit en
    mai 2016
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : mai 2016
    Messages : 43
    Points : 0
    Points
    0

    Par défaut Mise à jour des enregistrements

    Merci beaucoup!

    Je recherche à consulter l'exemple ainsi que l'aide en ligne.

    Je vous tiendrais au courant de la suite.

  5. #5
    Nouveau Candidat au Club Avatar de MOHAMED Rachade
    Homme Profil pro
    Étudiant
    Inscrit en
    mai 2016
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : mai 2016
    Messages : 43
    Points : 0
    Points
    0

    Par défaut Mise à jour des enregistrements

    Salut à vous !

    Désolé d'avoir mis du temps à vous donner suite de mon problème. J'été souffrant et après je ne me suis pas connecté pour un problème de connexion.

    En fait, je n'ai pas pu trouvé de solution. J'ai pensé à ce que Delphi-ne a dit, de ne pas utiliser des cumuls sur la fiche STOCK.
    Donc j'ai refait l'analyse voir image ci-dessous:
    Nom : MCD_POSS.png
Affichages : 44
Taille : 19,0 Ko

    J'aimerais qu'à chaque entrée ou sortie la fiche STOCK soit remplit automatiquement.

    Voici l'analyse précédente:
    Nom : analyse.png
Affichages : 42
Taille : 26,2 Ko

    Avec ce code sur le Bouton Valider de la fiche ENTREE:

    *****************************
    Initialisation de BTN_Valider
    ******************************
    STOCK.Quantité_Stock_Entrée = 0
    STOCK.Quantité_Stock_Sortie = 0

    ********************
    Clic sur BTN_Valider
    *********************
    // Lecture des informations saisies
    EcranVersFichier()

    //S'il s'agit d'un nouvel enregistrement
    SI ENTREES..NouvelEnregistrement = Vrai ALORS
    // On l'ajoute
    HAjoute(ENTREES)

    // Il faut modifier le stock du produit en conséquence
    HLitRecherchePremier(STOCK, Référence, ENTREES.Référence)
    //STOCK.Quantité_Stock_Sortie = 0
    SI HTrouve(STOCK) = Faux ALORS
    HRAZ(STOCK)
    STOCK.Référence = ENTREES.Référence
    HAjoute(STOCK)
    FIN

    // XX produit en moins en stock
    STOCK.Quantité_Stock_Entrée += ENTREES.Quantité_Ent
    STOCK.Quantité_Stock_Actuel = STOCK.Quantité_Stock_Entrée - STOCK.Quantité_Stock_Sortie
    HModifie(STOCK)

    // Il faut modifier le stock du produit en conséquence
    HLitRecherchePremier(STOCK, Référence, ENTREES.Référence)
    //STOCK.Quantité_Stock_Sortie = 0
    SI HTrouve(STOCK) = Faux ALORS
    HRAZ(STOCK)
    STOCK.Référence = ENTREES.Référence
    HAjoute(STOCK)
    FIN

    FIN

    // Ajoute / Modifie l'enregistrement
    HEnregistre(ENTREES)


    // Ferme la fenêtre
    Ferme("",Vrai)

    ***************

    En utilisant désormais la première figure, et comme je ne fais pas des cumuls sur la fiche STOCK qu'est-ce que je dois enlever sur ce code?

    Quel code pouvez-vous me donner s'il vous plaît?

    Merci

  6. #6
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    juillet 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : juillet 2016
    Messages : 3
    Points : 4
    Points
    4

    Par défaut

    Bonjour,

    Si je reprend ton premier problème qui était que lorsque tu modifie un enregistrement, la table ne se met pas à jour.
    Tout dépend comment tu rempli ta table:
    Si elle est rempli par programmation, fait une procedure Remplir_Table qui va supprimer tous les éléments de la table et la remplir, tu va pouvoir appeler cette fonction après chaque modification.
    Si elle est rempli depuis une requête tu peux utiliser hExecuteRequête ou par liaison tu peux utiliser la fonction TableAffiche(Nom_De_La_Table).

    Reviens nous avec ta solution!

  7. #7
    Nouveau Candidat au Club Avatar de MOHAMED Rachade
    Homme Profil pro
    Étudiant
    Inscrit en
    mai 2016
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : mai 2016
    Messages : 43
    Points : 0
    Points
    0

    Par défaut Mise à jour des enregistrements

    D'accord, MERCI beaucoup !

  8. #8
    Nouveau Candidat au Club Avatar de MOHAMED Rachade
    Homme Profil pro
    Étudiant
    Inscrit en
    mai 2016
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : mai 2016
    Messages : 43
    Points : 0
    Points
    0

    Par défaut Mise à jour des enregistrements

    pianochaoz, j'essayais de créer une procédure locale dans la fenêtre où j'ai mis la TABLE_Stock, voici le code, vérifiez si c'est correcte :

    PROCEDURE Remplir_TableStock()

    TableSupprimeTout(TABLE_STOCK)

    //S'il s'agit d'un nouvel enregistrement
    SI ENTREES..NouvelEnregistrement = Vrai ALORS
    // On l'ajoute
    HAjoute(ENTREES)

    // Il faut modifier le stock du produit en conséquence
    HLitRecherchePremier(STOCK, Référence, ENTREES.Référence)
    STOCK.Quantité_Stock_Sortie = 0
    SI HTrouve(STOCK) = Faux ALORS
    HRAZ(STOCK)
    STOCK.Référence = ENTREES.Référence
    HAjoute(STOCK)
    FIN

    // XX produit en moins en stock
    STOCK.Quantité_Stock_Entrée += ENTREES.Quantité_Ent
    STOCK.Quantité_Stock_Actuel = STOCK.Quantité_Stock_Entrée - STOCK.Quantité_Stock_Sortie
    HModifie(STOCK)

    // Il faut modifier le stock du produit en conséquence
    HLitRecherchePremier(STOCK, Référence, ENTREES.Référence)
    STOCK.Quantité_Stock_Sortie = 0
    SI HTrouve(STOCK) = Faux ALORS
    HRAZ(STOCK)
    STOCK.Référence = ENTREES.Référence
    HAjoute(STOCK)
    FIN

    FIN

    Je voulais appeler cette procédure dans le code de la TABLE_Stock mais il n'y a pas la rubrique "A chaque modification". C'est seulement "Rafraîchissement par tirer/relâcher de TABLE_STOCK". OU BIEN ce n'est là que je dois appeler la procédure Remplir_TableStock

Discussions similaires

  1. Réponses: 4
    Dernier message: 02/08/2012, 19h58
  2. Réponses: 15
    Dernier message: 12/12/2011, 17h07
  3. Réponses: 0
    Dernier message: 08/04/2010, 12h58
  4. Réponses: 3
    Dernier message: 21/08/2006, 10h03
  5. Réponses: 4
    Dernier message: 03/05/2006, 16h26

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