IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 Delphi Discussion :

Comment mettre à jour les entrées et sorties du stock


Sujet :

Delphi

  1. #1
    Membre à l'essai
    Inscrit en
    Juillet 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 11
    Points : 10
    Points
    10
    Par défaut Comment mettre à jour les entrées et sorties du stock
    bonjour à Tous je vais abuser un peu de votre temps et je vous remercié beaucoup pour toutes les réponses que vous m'avez envoyer
    je suis débutante alors des fois je me perd alors je m'en excuse
    je vous remercié encore une fois je vous souhaite à tous bonne journée

    le but est de mettre à jour le stock sachant que:
    j'ai une table FaireEntrer(table2) et FaireSortir(table3).Lorsque je fait Entrer
    un produit en stock j'enregistre comme suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    begin
     table2.insert;
     table2.fieldbyname('Code_Produit').asstring:=Combobox3.text;
     table2.fieldbyname('Code_Stock').asstring:=MaskEdit4.text;
     table2.fieldbyname('Date_Entrée').asstring:=MaskEdit1.text;
     table2.fieldbyname('Poids_Unitaire').asstring:=edit8.text;
     table2.fieldbyname('Nombre_Unités').asstring:=edit9.text;
     table2.fieldbyname('Poids_Total').asstring:=edit10.text;
     table2.Edit;
     table2.post;
     showmessage ('Opération d''enregistrement effectuée avec succés!!');
    end;
    Et lorsque je Fait Sortir un produit du stock j'enregistre comme suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    begin
     table3.insert;
     table3.fieldbyname('Code_Produit').asstring:=Combobox4.text;
     table3.fieldbyname('Code_Stock').asstring:=MaskEdit5.text;
     table3.fieldbyname('Date_Sortie').asstring:=MaskEdit2.text;
     table3.fieldbyname('Poids_Unitaire').asstring:=edit5.text;
     table3.fieldbyname('Nombre_Unités').asstring:=edit6.text;
     table3.fieldbyname('Poids_Total').asstring:=edit7.text;
     table3.Edit;
     table3.post;
     showmessage ('Opération d''enregistrement effectuée avec succés!!');
    end;
    et ça fonctionne trés bien.

    le problème est le suivant:

    A chaque Entrée d'un produit il faut vérifier l'existance de ce produit en stock:
    si oui: je met à jour sa "Quantité" (j'ai utilisé une table5:ResultatEntree pour récupérer
    le nom Produit et la Quantité déjà en stock et la sommer avec celle entrée.sinon je
    sauvegarde directement.


    voici le code:

    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
    begin
    table2.open;
    for i:=1 to table2.recordcount do
    if  table2.fieldValues['Code_Produit']=Combobox3.text then
      for j:=1 to table5.recordcount do
      if  table5.fieldValues['Produit_Entré']=Combobox3.text then
       begin
       edit3.text:=table5.FieldValues['Quantité_Entrée'];
       edit2.Text:=floattostr(strtofloat(edit3.text) + strtofloat(edit10.text));
       table5.Insert;
       table5.fieldbyname('Numero_Entree').asstring:=Maskedit7.text;
       table5.fieldbyname('Produit_Entré').asstring:=Combobox3.text;
       table5.fieldbyname('Quantité_Entrée').asstring:=edit2.text;
       table5.Post;
       end
     else
      begin
       table5.Insert;
       table5.fieldbyname('Numero_Entree').asstring:=Maskedit7.text;
       table5.fieldbyname('Produit_Entré').asstring:=Combobox3.text;
       table5.fieldbyname('Quantité_Entrée').asstring:=edit10.text;
       table5.Post;
       showmessage ('Opération d''Enregistrement effectuée avec succés!!')
       end
    else
     
    begin
     
     table5.insert;
     table5.fieldbyname('Numero_Entree').asstring:=Maskedit7.text;
     table5.fieldbyname('Produit_Entré').asstring:=Combobox3.text;
     table5.fieldbyname('Quantité_Entrée').asstring:=edit10.text;
     table5.Post;
     
     table2.insert;
     table2.fieldbyname('Code_Produit').asstring:=Combobox3.text;
     table2.fieldbyname('Code_Stock').asstring:=MaskEdit4.text;
     table2.fieldbyname('Date_Entrée').asstring:=MaskEdit1.text;
     table2.fieldbyname('Poids_Unitaire').asstring:=edit8.text;
     table2.fieldbyname('Nombre_Unités').asstring:=edit9.text;
     table2.fieldbyname('Poids_Total').asstring:=edit10.text;
     table2.post;
     showmessage ('Opération d''Enregistrement effectuée avec succés!!');
    end;
    ce code ne fonctionne pas comme prévu.

    A chaque Sortie d'un produit il faut vérifier l'existance de ce produit en stock:si oui
    je met à jour la "Quantité" (Diminuer la Quantité en stock c'est pas encors fait)
    et la Quantité

    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
    begin
     table2.First;
     for i:=1 to table2.RecordCount do
     if  table2.fieldValues['Code_Produit'].asstring<>Combobox4.text  then
     begin
     showmessage('Ce produit n''existe pas en stock,sélectionnez un autre produit');
     exit;
     end;
     
     table3.insert;
     table3.fieldbyname('Code_Produit').asstring:=Combobox4.text;
     table3.fieldbyname('Code_Stock').asstring:=MaskEdit5.text;
     table3.fieldbyname('Date_Sortie').asstring:=MaskEdit2.text;
     table3.fieldbyname('Poids_Unitaire').asstring:=edit5.text;
     table3.fieldbyname('Nombre_Unités').asstring:=edit6.text;
     table3.fieldbyname('Poids_Total').asstring:=edit7.text;
     table3.post;
     showmessage ('Opération d''Enregistrement effectuée avec succés!!');

  2. #2
    Membre éprouvé Avatar de BuzzLeclaire
    Homme Profil pro
    Dev/For/Vte/Ass
    Inscrit en
    Août 2008
    Messages
    1 606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev/For/Vte/Ass

    Informations forums :
    Inscription : Août 2008
    Messages : 1 606
    Points : 1 113
    Points
    1 113
    Par défaut
    @bonjour,

    Il faut éviter 2 postes pour la même question.

    Je t'ai déjà répondu ici

    http://www.developpez.net/forums/d98...k/#post5497759

    D'ailleur il serais intéressant pour ce qui t'aide de savoir où tu en est sur le post en question (résolu ?)


  3. #3
    Membre à l'essai
    Inscrit en
    Juillet 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 11
    Points : 10
    Points
    10
    Par défaut
    merci vous avez raison

    au fait j'ai un peu plus détailler mon code je voulais juste etre plus précis

    desolé pour la répétition c'etais pas dans mon intention

  4. #4
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 447
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 447
    Points : 24 849
    Points
    24 849
    Par défaut
    Quelle est la question lié à Delphi ?
    Quel est le problème lié au Langage ?
    N'est-ce qu'un problème fonctionnel ? Nous ne sommes pas compétent pour répondre à des problémes de Logistique Picking et Packing !
    Tu es plus précis, mais on ne va pas lire tout ton code, dis nous le message d'erreur ou la ligne qui ne fonctionne pas comme cela devrait !

    Bon, je suis trop sympa

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
      table2.insert;
     table2.fieldbyname...
     table2.Edit; // INUTILE
     table2.post;
    la boucle for n'est pas le bon type de boucle pour une table
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    table2.First;
    for i:=1 to table2.RecordCount do
     if  table2.fieldValues['Code_Produit'].asstring<>Combobox4.text  then
     begin
     showmessage('Ce produit n''existe pas en stock,sélectionnez un autre produit');
     exit;
     end;

    code plus standard
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    table2.First;
    while not table2.EOF do
    begin
      if  table2.fieldValues['Code_Produit'].asstring<>Combobox4.text  then
      begin
        showmessage('Ce produit n''existe pas en stock,sélectionnez un autre produit');
       exit;
      end;
     
      table2.Next(); // LE NEXT !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    end;
    code plus intelligent

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    table2.First;
    if not table2.Locate('Code_Produit', Combobox4.text, []) then
    begin
      showmessage('Ce produit n''existe pas en stock,sélectionnez un autre produit');
      exit;
    end;
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  5. #5
    Membre éprouvé Avatar de redoran
    Homme Profil pro
    Développeur-Amateur
    Inscrit en
    Juin 2010
    Messages
    1 346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur-Amateur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 346
    Points : 1 031
    Points
    1 031
    Par défaut
    salut ; suite à Buzz et shail faut localisé le produit et une fois localisé vous ouvré la table en mode edit et vous ajouté votre valeur a celle déja existante en stock.
    sauf si vos produit ont des critères d'entrés exemple date, n° lot,..... la vous passez par des append + boucle pour vous donné le total quantité produit.
    c'est en résumé

  6. #6
    Membre à l'essai
    Inscrit en
    Juillet 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 11
    Points : 10
    Points
    10
    Par défaut Un grand merci à tous
    Je vous remercie tous autant que vous êtes pour l'aide que vous m'avez donner et pour avoir été compréhensif avec moi qui est débutant pour vous dire que votre aide m'était d'un grand secoure et que sans vous je n'aurais pas réussi à finir ce que j'ai débuté.

    merci à tous encore une fois et bonne continuation à tous

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment mettre à jour les composants dbExpress ?
    Par WebPac dans le forum Bases de données
    Réponses: 1
    Dernier message: 28/04/2008, 18h37
  2. Réponses: 3
    Dernier message: 14/06/2007, 13h47
  3. Comment Mettre à jour via les ControleDB
    Par Korko Fain dans le forum Bases de données
    Réponses: 8
    Dernier message: 24/04/2007, 10h11
  4. [MySQL] Comment mettre à jour en conservant les données actuelles d'un champs
    Par MisterMacPhisto dans le forum PHP & Base de données
    Réponses: 14
    Dernier message: 17/04/2007, 15h49
  5. [VBA-E] comment ne pas mettre à jour les liaisons!
    Par max2245 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 30/12/2005, 12h05

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