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

C++Builder Discussion :

2 cellules les memes dans dbgrid


Sujet :

C++Builder

  1. #21
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 106
    Points : 51
    Points
    51
    Par défaut
    comme colonnes il y a : famille, fabriquant, produit, remarque, lien1, lien2, lien3, lien4, lien5
    et comme edit, c les meme noms avec un E en + devant le nom
    comme EFamille

  2. #22
    Membre habitué Avatar de Furlaz
    Homme Profil pro
    Responsable Qualité
    Inscrit en
    Mai 2006
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable Qualité
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 210
    Points : 131
    Points
    131
    Par défaut
    Autre chance :

    Les modif sont en rouges.

    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
    int stop = 0;
    TLocateOptions Option;
    
    TGestionMateriaux->First();
    while(!stop){
    
    if(EProduit->Text.c_str()==TGestionMateriaux->FieldByName("produit")->Value)
      {
      TGestionMateriaux->Locate("produit",EProduit->Text.c_str(),Option)   
      stop = 1;
      }
    
    if(TGestionMateriaux->EOF)
      {
      TGestionMateriaux->Append();   
      stop=1;
      }
    
    TGestionMateriaux->Next();
    }
    
    TGestionMateriaux->Edit();
    TGestionMateriaux->FieldByName("produit")->Value=EProduit->Text.c_str();
    TGestionMateruax->FieldByName("famille")->Value=EFamille->Text.c_str();
    TGestionMateruax->FieldByName("remarque")->Value=ERemarque->Text.c_str();
    TGestionMateruax->FieldByName("lien1")->Value=ELien1->Text.c_str();
    TGestionMateruax->FieldByName("lien2")->Value=ELien2->Text.c_str();
    TGestionMateruax->FieldByName("lien3")->Value=ELien3->Text.c_str();
    TGestionMateruax->FieldByName("lien4")->Value=ELien4->Text.c_str();
    TGestionMateruax->FieldByName("lien5")->Value=ELien5->Text.c_str();
    TGestionMateriaux->Post();
    TGestionMateriaux->Refresh();
    Normalement pour le changement de toute la ligne c'est bon par contre, c'est bizard qu'il te fasse l'inverse de ce que tu veuille
    A tout hasard (mais ca m'étonnerais) change == par != (donc l'inverse) dans le premier if :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if(EProduit->Text.c_str()==TGestionMateriaux->FieldByName("Produit")->Value)
      {
      ...

  3. #23
    Membre expert
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Points : 3 204
    Points
    3 204
    Par défaut
    Citation Envoyé par kalou26
    je sais, justement cela ne fait pas dans mon cas
    y aurait il une autre solution ???

    Aux persévérants aucune route n'est interdite.
    Celui qui ne sait pas se contenter de peu ne sera jamais content de rien.
    Current Status
    Avec 40% de pollinisateurs invertébrés menacés d'extinction selon les Nations Unies, l'homme risque fort de passer de la monoculture à la mono diète...
    Faîtes quelque chose de bien avec vos petits sous: Enfants du Mekong

  4. #24
    Membre habitué
    Inscrit en
    Octobre 2005
    Messages
    262
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 262
    Points : 133
    Points
    133
    Par défaut ok
    j'ai regardé votre code; il est bien :

    vous lisez la valeur de la cellule en cours, vous debutez la lecture de tous les champs en parallèle vous comparez les données de la cellule en cours d'édition avec celles existantes c'est bien.


    La question est celle ci que faites vous lorsque vous trouvez une correspondance ?

    Reponse supprimer la ligne en cours de lecture (continuer la recherche ? ou sortir de la boucle ? à vous de voir)

    vous devriez supprimer l'enregistrement en cours du datasource ( methode delete) qui n'apparait null part dans votre code.

    Felicatation pour ce que vous avez deja trouvé

  5. #25
    Membre actif
    Avatar de lanonyme
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    229
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 229
    Points : 290
    Points
    290
    Par défaut
    Citation Envoyé par Furlaz
    Bon je viens de manger mon cerveau se remet en marche, essaye donc cela :

    il manque une virgule, apres manger

    Mais sur le coup

    lanonyme

  6. #26
    Membre habitué Avatar de Furlaz
    Homme Profil pro
    Responsable Qualité
    Inscrit en
    Mai 2006
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable Qualité
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 210
    Points : 131
    Points
    131
    Par défaut
    Citation Envoyé par lanonyme

    il manque une virgule, apres manger

    Mais sur le coup

    lanonyme
    Effectivement, mais c'est peut etre pour ca que je trouve pas la solution

  7. #27
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 106
    Points : 51
    Points
    51
    Par défaut
    ton code marche presque furlaz
    en fait lorsque le produit n'existe pas, cela le crée en en ecrasant un otre, alors quil faudrait en crée un nouveau
    aussi, cela n'ecrase pas la bonne ligne, cela ecrase la ligne selectionnée et non celle qui porte le meme nom de produit

  8. #28
    Membre habitué Avatar de Furlaz
    Homme Profil pro
    Responsable Qualité
    Inscrit en
    Mai 2006
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable Qualité
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 210
    Points : 131
    Points
    131
    Par défaut
    Citation Envoyé par vacknov

    La question est celle ci que faites vous lorsque vous trouvez une correspondance ?
    La je pensé que lorsqu'on trouve une correspondance, on se pointe dessus.
    Du coup la boucle s'arrete (variable stop) et il n'y pas de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    TGestionMateriaux->Append();
    Donc normalement il edit tous les champs à l'endroit où il pointe soit sur la correspondance. Mais apparement ca n'a pas l'air de fonctionner

    On finira bien par y arriver

  9. #29
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 106
    Points : 51
    Points
    51
    Par défaut
    oui en + tu n'en est pas oin je pense

  10. #30
    Membre habitué Avatar de Furlaz
    Homme Profil pro
    Responsable Qualité
    Inscrit en
    Mai 2006
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable Qualité
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 210
    Points : 131
    Points
    131
    Par défaut
    Citation Envoyé par kalou26
    ton code marche presque furlaz
    Tu a mis != ou == dans le 1er if ?

  11. #31
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 106
    Points : 51
    Points
    51
    Par défaut
    ca ne vien pas de la en fait
    et je ne comprend pas pk sane crée pas de nouveau produit lorsquil n'existe pas

  12. #32
    Membre habitué Avatar de Furlaz
    Homme Profil pro
    Responsable Qualité
    Inscrit en
    Mai 2006
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable Qualité
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 210
    Points : 131
    Points
    131
    Par défaut
    on rééssaye :

    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
    int stop = 0;
    TLocateOptions Option;
    
    TGestionMateriaux->First();
    while(!stop){
    
    if(TGestionMateriaux->Locate("produit",EProduit->Text.c_str(),Option)==true)
      {   
      stop = 1;
      }
    
    if(TGestionMateriaux->EOF && !stop)
      {
      TGestionMateriaux->Append();   
      stop=1;
      }
    
    TGestionMateriaux->Next();
    }
    
    TGestionMateriaux->Edit();
    TGestionMateriaux->FieldByName("produit")->Value=EProduit->Text.c_str();
    TGestionMateruax->FieldByName("famille")->Value=EFamille->Text.c_str();
    TGestionMateruax->FieldByName("remarque")->Value=ERemarque->Text.c_str();
    TGestionMateruax->FieldByName("lien1")->Value=ELien1->Text.c_str();
    TGestionMateruax->FieldByName("lien2")->Value=ELien2->Text.c_str();
    TGestionMateruax->FieldByName("lien3")->Value=ELien3->Text.c_str();
    TGestionMateruax->FieldByName("lien4")->Value=ELien4->Text.c_str();
    TGestionMateruax->FieldByName("lien5")->Value=ELien5->Text.c_str();
    TGestionMateriaux->Post();
    TGestionMateriaux->Refresh();
    Verdict ?

  13. #33
    Membre habitué
    Inscrit en
    Octobre 2005
    Messages
    262
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 262
    Points : 133
    Points
    133
    Par défaut alors
    Citation Envoyé par Furlaz
    La je pensé que lorsqu'on trouve une correspondance, on se pointe dessus.
    Du coup la boucle s'arrete (variable stop) et il n'y pas de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    TGestionMateriaux->Append();
    Donc normalement il edit tous les champs à l'endroit où il pointe soit sur la correspondance. Mais apparement ca n'a pas l'air de fonctionner

    On finira bien par y arriver
    affectons à stop le nombre d'enregistrement +1; lorsqu'une correspondance est trouvé. ceci devrait arrêter la boucle

  14. #34
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 106
    Points : 51
    Points
    51
    Par défaut
    toujours pareil, ca ne crée pas de nouveau produit sil nexiste pas

  15. #35
    Membre habitué Avatar de Furlaz
    Homme Profil pro
    Responsable Qualité
    Inscrit en
    Mai 2006
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable Qualité
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 210
    Points : 131
    Points
    131
    Par défaut
    Citation Envoyé par vacknov
    affectons à stop le nombre d'enregistrement +1; lorsqu'une correspondance est trouvé. ceci devrait arrêter la boucle
    Mais la lorsqu'une correspondance est trouvé la variable stop se met à 1 et du coup le While n'étant plus respecté il arrete la boucle

  16. #36
    Membre habitué
    Inscrit en
    Octobre 2005
    Messages
    262
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 262
    Points : 133
    Points
    133
    Par défaut dans ce cas
    Citation Envoyé par Furlaz
    Mais la lorsqu'une correspondance est trouvé la variable stop se met à 1 et du coup le While n'étant plus respecté il arrete la boucle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    while(stop==0)
    {
      if (trouver)
     {
      stop==1
     }
    ...->Next();
    }

  17. #37
    Membre habitué Avatar de Furlaz
    Homme Profil pro
    Responsable Qualité
    Inscrit en
    Mai 2006
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable Qualité
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 210
    Points : 131
    Points
    131
    Par défaut
    Allez un de plus :

    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
    TLocateOptions Option;
    
    TGestionMateriaux->First();
    if(TGestionMateriaux->Locate("produit",EProduit->Text.c_str(),Option)==false)
      {   
      TGestionMateriaux->Append();
      }
    
    TGestionMateriaux->Edit();
    TGestionMateriaux->FieldByName("produit")->Value=EProduit->Text.c_str();
    TGestionMateruax->FieldByName("famille")->Value=EFamille->Text.c_str();
    TGestionMateruax->FieldByName("remarque")->Value=ERemarque->Text.c_str();
    TGestionMateruax->FieldByName("lien1")->Value=ELien1->Text.c_str();
    TGestionMateruax->FieldByName("lien2")->Value=ELien2->Text.c_str();
    TGestionMateruax->FieldByName("lien3")->Value=ELien3->Text.c_str();
    TGestionMateruax->FieldByName("lien4")->Value=ELien4->Text.c_str();
    TGestionMateruax->FieldByName("lien5")->Value=ELien5->Text.c_str();
    TGestionMateriaux->Post();
    TGestionMateriaux->Refresh();
    L'espoir fait vivre

  18. #38
    Membre habitué Avatar de Furlaz
    Homme Profil pro
    Responsable Qualité
    Inscrit en
    Mai 2006
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable Qualité
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 210
    Points : 131
    Points
    131
    Par défaut
    Citation Envoyé par vacknov
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    while(stop==0)
    {
      if (trouver)
     {
      stop==1
     }
    ...->Next();
    }
    heu oui
    mais dans l'autre aussi car lorsque que l'on arrive en fin de table (caractere EOF) le stop est mis a un aussi

  19. #39
    Membre habitué
    Inscrit en
    Octobre 2005
    Messages
    262
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 262
    Points : 133
    Points
    133
    Par défaut aussi
    tu dois garder dans une variable l'élément que tu souhaite ajouter en cas de suppression la grille s'actualise et tu ajoute par programmation le nouvel élément manuellement sans verification

  20. #40
    Membre habitué Avatar de Furlaz
    Homme Profil pro
    Responsable Qualité
    Inscrit en
    Mai 2006
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable Qualité
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 210
    Points : 131
    Points
    131
    Par défaut
    Mais en meme temps je viens de me rendre compte que la boucle elle ne sert a rien maintenant que l'on utilise Locate
    C'est d'ailleur pour ca que j'ai changé le code

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 3 PremièrePremière 123 DernièreDernière

Discussions similaires

  1. Réponses: 42
    Dernier message: 16/03/2015, 21h13
  2. ordonner les champs dans dbgrid
    Par supersoft5 dans le forum C++Builder
    Réponses: 1
    Dernier message: 16/05/2007, 22h34
  3. 2 lignes les memes dans une listbox
    Par kalou26 dans le forum C++Builder
    Réponses: 9
    Dernier message: 20/06/2006, 16h03
  4. [JTable] centrer les donnees dans les cellules
    Par cmoa59 dans le forum Composants
    Réponses: 5
    Dernier message: 20/05/2005, 11h35
  5. Des styles pour le texte et les liens dans la meme div?
    Par Donkey' Shot dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 26/01/2005, 20h03

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