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. #1
    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 2 cellules les memes dans dbgrid
    bonjour
    dans mon prog j'utilise une dbgrid et ce que je souhaite faire c lorsque je veux ajouter un texte dans une cellule de ma dgbrid, cela verifie si une cellule du meme nom dans la meme colone existe deja, pour ne pas avoir 2 fois la meme cellule dans la meme colone
    merci

  2. #2
    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
    mon prog c ca pour ajouter :

    TGestionMateriaux->Append();
    TGestionMateriaux->Edit();
    TGestionMateriaux->FieldByName("Produit")->Value=EProduit->Text.c_str();
    et je veux que lorsque j'ajoute un produit, sil existe, cela ecrase le produit existant, sinon sela crée une autre cellule

  3. #3
    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
    Ne devrais tu pas en priorité voir au niveau de ta table (enfin si le DBGrid affiche directement une table), afin d'empecher directement les doublons ?
    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. #4
    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
    je sais pas comment faire

  5. #5
    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
    et est ce qu ecela ecraserais un enregistrement existant portant le meme nom de cellule ??

  6. #6
    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
    Un code du genre peut etre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    TGestionMateriaux->First();
    while(!TGestionMateriaux->EOF){
       if(EProduit->Text.c_str()!=TGestionMateriaux->FieldByName("Produit")->Value)
    {
           TGestionMateriaux->Append();
    }
    TGestionMateriaux->Next;
    }
    TGestionMateriaux->Edit();
    TGestionMateriaux->FieldByName("Produit")->Value=EProduit->Text.c_str();

    REEDIT :
    comme ca c pas mieux (modif en rouge)
    A voir

  7. #7
    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 rajoute qd meme le produit portant le meme nom

  8. #8
    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
    Avec les modif ca devrait etre mieux ^^

    J'avais rajouter une ligne dans le tableau si le texte etait pareil alors que c'est l'inverse, il doit en rajouter une si il ne l'a pas trouvé

  9. #9
    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
    non ca me fait toujours pareil
    si l'enregistrement existe ca me le rajoute qd meme

  10. #10
    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
    Je sais pourquoi je pense :

    Il faudrait qu'il pointe sur l'élément lorsqu'il le trouve pour le remplacer.

    J'y refléchi (apres mange lol) et je te dis si tu na toujours pas ta solution


  11. #11
    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
    C'est quoi le :
    EProduit
    ?

    Sur quel type de table travailles tu ?
    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

  12. #12
    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
    c du texte

  13. #13
    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
    ? C'est un TEdit ?
    Sinon, tu peut aussi bien utiliser le TDataSource qui doit 'alimenter' ton TDBGrid...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    TonDataSource->DataSet->Filtered = false;
    TonDataSource->DataSet->Filter = AnsiString("Produit= '") + EProduit->Text + ("'");
    TonDataSource->DataSet->Filtered = true;
    if (!TonDataSource->DataSet->IsEmpty())
    {
    //la valeur existe déja
     
    }
    else
    {
    //la valeur n'existe pas
    }
    TonDataSource->DataSet->Filtered = false;
    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

  14. #14
    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 fait pas ce ke je veux
    car en fait jai plusieurs autres colones et je veux que ca n'ecrive pas les autres colones non plus si le produit existe
    et ton filtrage ne serais pas une bonne solution car je ne peux pas rajouter un produit dont le debut et le meme qu'un autre mais pas la fin

  15. #15
    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


    Le filtre tel quel ne te renverra une valeur que si il a trouvé un enregistrement identique a 100 %, et pas dans ce cas si il trouve une partie du texte similaire a un enregistrement....

    //edit :
    Quel est le type de table utilisé ?
    Le type d'objets pour la connection : TTable, etc... ?
    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

  16. #16
    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
    je sais, justement cela ne fait pas dans mon cas
    y aurait il une autre solution ???

  17. #17
    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
    jai une table paradox
    et une ttable et un tdatasource

  18. #18
    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
    Bon je viens de manger, mon cerveau se remet en marche, essaye donc cela :

    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
     
    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();
    TGestionMateriaux->Post();
    TGestionMateriaux->Refresh();
    Essaye et dis moi je finirai bien par y arriver

    Je suis meme pas sur que les lignes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    TLocateOptions Option;
    TGestionMateriaux->Locate("produit",EProduit->Text.c_str(),Option)
    soit necessaire

  19. #19
    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 marche pas
    qd je rentre le meme nom de produit, ca le rajoute, et qd je rentre un nom diferent ca ne le rajoute pas, le contraire de ce ke ca devrais faire
    mais sa ne fait pas completement ce ke je voudrais, car je veux que lorsque le nom de produit existe, cela remplace les autres colones de la meme ligne et que lorsque le nom de produit existe pas, cela fasse une autre ligne

  20. #20
    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
    C'est quoi le nom de tes autres colonnes ? et les les TEdit ou autres ou il doit récuperer les autres données ?

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 3 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