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

Bases de données Delphi Discussion :

mise à jour stock


Sujet :

Bases de données Delphi

  1. #21
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2003
    Messages : 119
    Points : 115
    Points
    115
    Par défaut
    Salut,
    Tu devrais aussi modifier la ligne ci-dessous afin d'accélérer le traitement.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    (dm1.tstock.recordcount> 0)
    en
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    not(dm1.tstock.bof and dm1.tstock.eof)

  2. #22
    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 not
    merci jean , je prend note

  3. #23
    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 case
    salut; j'ai essayé la méthode de linkin mais malheureusement y'a des messages d'erreurs type LessThanValue,EqualsValue et GreaterThanValue non déclarés...
    alors j'ai utilisé la Boucle For to do

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    procedure:( evénementonclick du button)
    begin
    .................................//// condition principale
    For I:1 to dm1.tstock.recordcount do
       if condition....
        then.............
          begin
           instruction
          end;
       if condition......
    
    end;
    ca marche très bien le seul problème c'est le dernier message : "" n'est pas un entier....... donc je crois que c'est un problème due à une opération de calcule je transmettrai la solution une fois avoir détecté l'origine de l'erreur

  4. #24
    Membre chevronné

    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 288
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2002
    Messages : 1 288
    Points : 1 936
    Points
    1 936
    Par défaut
    Avec un petit F1 sur LessThanValue, tu verrai quelle unité ajoutée (Unité Types)
    Delphi 7/XE2/XE3
    C#
    Oracle 9i à 12c
    SQL Server 2008 à 2014

  5. #25
    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
    j'ai passé par F1 est j'ai pas trouver la solution peut être que j'ai pas bien lu le help merçi

  6. #26
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2003
    Messages : 119
    Points : 115
    Points
    115
    Par défaut
    Salut,
    Tu dois ajouter Types dans Uses

  7. #27
    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 mise à jour du stock
    Slt; voila j'ai trouvé un algorithme qui me permet de mettre à jour le stock du médicament A quelque soit la quantité saisie et la disponibilité en stock on utilisant la Boucle For I:1 to dm1.tstock.recordcount

    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
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    if  (dm1.tstok.RecordCount>0)
             then
                begin
                edit2.Text:=edit4.Text;
                for i:=1 to dm1.tstok.RecordCount do   // début de la boucle
                    begin
                       if strtoint(edit4.Text)> strtoint(qtstock.Caption) // condition 1
     // quantité saisie est supérieure à la quantité de la première ligne de stock du même médicament A                  
                           THEN
                         BEGIN
                         ersult.Text:=
                                inttostr(strtoint(edit4.Text)-strtoint(qtstock.Caption));
                        edit4.Text:=ersult.Text;
                        dm1.tstok.Delete;
     
                       DM1.tstok.Filtered:=false;
                       dM1.tstok.Filter:='med = '+ QuotedStr(emedic.Text);
                       DM1.tstok.Filtered:=true;
     
                       m1:=0;
                       dm1.tstok.First;
                          while not(dm1.tstok.Eof) do
                          begin
                          m1:=m1+ dm1.tstokQT.Value;
                          dm1.tstok.Next;
                          end;
                          sumqt.Caption:=intToStr(m1);
                         dm1.tstok.First;
                  end;
             end;
     
     
                  if strtoint(edit4.Text)= strtoint(qtstock.Caption)// condition 2
    // quantité saisie est égale à la quantité de la première ligne de stock du même médicament A  
                         then
                         begin
     
               ersult.Text:= inttostr(strtoint(edit4.Text)-strtoint(qtstock.Caption));
                          edit4.Text:='0';
                         dm1.tstok.delete;
     
                         DM1.tstok.Filtered:=false;
                         DM1.tstok.Filter:='med = '+ QuotedStr(emedic.Text);
                         DM1.tstok.Filtered:=true;
     
     
                         m1:=0;
                       dm1.tstok.First;
                          while not(dm1.tstok.Eof)do
                          begin
                          m1:=m1+ dm1.tstokQT.Value;
                          dm1.tstok.Next;
                          end;
                          sumqt.Caption:=intToStr(m1);
                         dm1.tstok.First;
                         EXIT; 
                         end;
     
                   if strtoint(edit4.Text)< strtoint(qtstock.Caption)  // condition 3 
                   // quantité saisie est inférieure à la quantité de la première ligne  de stock du même médicament A   
                   THEN 
     
                     begin                 
                 ersult.Text:=inttostr(strtoint(qtstock.Caption)-strtoint(edit4.Text));
     
                         dm1.tstok.Edit;
                         dm1.tstokQT.Value:=strtoint(ersult.Text);
                         dm1.tstok.Post;
                         edit4.Text:='0';
     
                         DM1.tstok.Filtered:=false;
                         DM1.tstok.Filter:='med = '+ QuotedStr(emedic.Text);
                         DM1.tstok.Filtered:=true;
     
     
                       m1:=0;
                       dm1.tstok.First;
                          while not(dm1.tstok.Eof)do
                          begin
                          m1:=m1+ dm1.tstokQT.Value;
                          dm1.tstok.Next;
                          end;
                          sumqt.Caption:=intToStr(m1);
                         dm1.tstok.First;
                         exit;
     
                      end;
     
    end;
     
    end;
    edit2.text : c'est le champ qui reçoit la première valeurs saisie dans l'edit4.text afin d'étre utilisé dans la table ligne.
    edit4.text: est utilisé pour la saisie des quantités afin de les vérifies et aussi pour stock la différence entre les quantités dans le cas ou la quantité saisie est supérieure al quantité du stock.

    le principe de cet algorithme est :
    1) si quantité saisie est supérieure al quantité du stock; alors on fait la soustraction de la quantité on supprimant l'enregistrement ensuite en rafraichi la table stock et si toujours la quantité restante est supérieure a la quantité du nouveau premier enregistrement on fait la même chose ainsi de suite...

    2) si quantité saisie est égale à la quantité de la première ligne de stock du même médicament A ; alors alors on fait la soustraction de la quantité on supprimant l'enregistrement et on rafraichi la table stock.

    3) si quantité saisie est inférieure à la quantité de la première ligne de stock du même médicament A ; alors on fait la soustraction de la quantité et met la table stock en mode édition et on modifier la valeur du stock.

    voila en général l'explication de mon algorithme sachant que c'est la première fois que je réalise ce type d'algorithme, a cet effet toute remarque ou modification ou correction soit la bien venu.
    la boucle fonctionne correctement (avec plusieurs test).
    y'a une partie du code de contrôle avant cette boucle qui vérifier les différentes contraintes (désolé pour cet oubli)

  8. #28
    Membre émérite
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 401
    Points : 2 304
    Points
    2 304
    Par défaut Bravo !
    d'abord je tiens à m'excuser car j'ai pas tenu ma promesse pour la simple raison que j'ai vu que Linkin avait résolu le problème avec une grande simplicité et souplesse.

    néanmoins, la question qui se pose est : où est la différence entre ce que tu as fais et la solution de Linkin ? de mon coté, je trouve que la solution de Linkin (avec des tests) est beaucoup plus compréhensive et bien structurée surtout avec l'utilisation des constantes de Delphi.

    bravo tout de même.
    Bon courage ou Bonne Chance (selon le contexte)
    Mon blog sur WordPress

  9. #29
    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 suite mise à jour stock
    salut justsoft; c'est a nous de vous remercier ainsi que l'équipe du forum pour votre disponibilité et pas de souci de mon coté (promesse: je vous comprend).
    j'ai essayé la methode de linkin que je remercie de passage et j'avais des messages genre" identificateur non déclaré...." et d'apres linkin je doit ajouté l'unité type.
    exacte c'est structuré et je vé la testé ce soir et je voterai pour linkin merçi

  10. #30
    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
    Bonjour; j'ai essayé une autre fois la solution de linkin mais toujours les mêmes messages d'erreurs "identificateur non déclaré : compar.. less..." , j'ai pas su ou ajouté la déclaration ni comment merci pour votre aide

  11. #31
    Membre chevronné

    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 288
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2002
    Messages : 1 288
    Points : 1 936
    Points
    1 936
    Par défaut
    Dans les uses, tu rajoutes Types,Math,

    Pour la déclaration, tu la mets avec les autres fonctions de ta Form, je suppose. Comme une fonction classique.

    Si tu as encore un souci envoies-moi ton unité. Je te le corrigerai.
    Delphi 7/XE2/XE3
    C#
    Oracle 9i à 12c
    SQL Server 2008 à 2014

  12. #32
    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
    merci linkin pour votre réponse rapide et votre disponibilité .

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. [AC-2007] Problème mise à jour stock
    Par Bestia_negra dans le forum Access
    Réponses: 3
    Dernier message: 24/04/2015, 09h47
  2. [V7] Mise à jour STOCK SUR ENTREPOT
    Par 7ammouda dans le forum Odoo (ex-OpenERP)
    Réponses: 6
    Dernier message: 25/03/2015, 16h56
  3. Procedure Stocké et mise à jour de ligne
    Par Andry dans le forum SQL
    Réponses: 2
    Dernier message: 26/11/2004, 10h22
  4. Procedure stockée de mise à jour
    Par Cambon dans le forum SQL
    Réponses: 4
    Dernier message: 26/01/2004, 20h35

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