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

Composants VCL Delphi Discussion :

Comment créer une Grille numérotée ?


Sujet :

Composants VCL Delphi

  1. #1
    Membre éclairé Avatar de bassim
    Homme Profil pro
    Ingénieur Réseaux
    Inscrit en
    Février 2005
    Messages
    666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2005
    Messages : 666
    Points : 695
    Points
    695
    Par défaut Comment créer une Grille numérotée ?
    Bonjour à tous les developpeurs ,

    Voila je voudrais concevoir une grille qui hérite de TDBGrid
    avec comme fonction supplementaire de numéroter tout les
    enregistrements de la DBGrid ( de 1 jusqu'à Nombre_enreg affichés à ce moment )
    , et tout cela sera affichés dans la première colonne de la grille .

    Alors je sais pas si je dois créer un nouveau composant
    en surchargeant une méthode ou en ajoutant une propriété ,
    ou bien s'il y a une astuce dans le composant (DBGrid)lui même
    sans recourir au domaine compliqué de la création de composants .

    j'espere que j'ai été assez clair , sinon faites-le moi savoir !?

    Merci à vos réponses ! Tchao

  2. #2
    Membre confirmé
    Avatar de Manopower
    Inscrit en
    Décembre 2003
    Messages
    516
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 516
    Points : 453
    Points
    453
    Par défaut
    le plus simple sera d'avoir un champ indice dans le dataset sur lequel pointe ta DBGrid, en premier champ avec une numérotation automatique.

    Ce n'est pas forcément ce que tu cherches mais c'est la méthode la plus facile

  3. #3
    Membre expert
    Avatar de e-ric
    Homme Profil pro
    Apprenti chat, bienfaiteur de tritons et autres bestioles
    Inscrit en
    Mars 2002
    Messages
    1 561
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Apprenti chat, bienfaiteur de tritons et autres bestioles

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 561
    Points : 3 951
    Points
    3 951
    Par défaut
    Salut

    Je vais être bestial !!!

    Définis un champ calculé qui retourne la valeur RecNo (attention elle n'est pas valide dans tous les ensembles de données, c'est un héritage du BDE si je me souviens bien)

    En outre, la numérotation ainsi réalisée ne suit pas l'ordre de tri si celui est modifié, elle est toujours dans l'ordre.

    Sans garantie (la fin de semaine est dure pour tout le monde)

    cdlt

    e-ric

  4. #4
    Membre éclairé Avatar de bassim
    Homme Profil pro
    Ingénieur Réseaux
    Inscrit en
    Février 2005
    Messages
    666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2005
    Messages : 666
    Points : 695
    Points
    695
    Par défaut
    Citation Envoyé par Sylvain Leray
    le plus simple sera d'avoir un champ indice dans le dataset sur lequel pointe ta DBGrid, en premier champ avec une numérotation automatique
    Le probleme c'est que je dois créer ce champ physiquement dans la BDD ,
    et ça serait inutile de le faire juste pour l'affichage .

    Citation Envoyé par e-ric
    Définis un champ calculé qui retourne la valeur RecNo
    J'ai essayé ta méthode e-ric , comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    procedure TModuleConsu.MaTableCalcFields(DataSet: TDataSet);
    begin
        MaTableNumero.Value:=MaTable.RecNo;
    end;
    mais lors d'un filtrage de la table (puisque chaque enregistrement sera lu et comparé avec le filtre )l'affichage sera complètement faussé , car tout les enregistrements ne seront pas forcément pris .

  5. #5
    Membre expert
    Avatar de e-ric
    Homme Profil pro
    Apprenti chat, bienfaiteur de tritons et autres bestioles
    Inscrit en
    Mars 2002
    Messages
    1 561
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Apprenti chat, bienfaiteur de tritons et autres bestioles

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 561
    Points : 3 951
    Points
    3 951
    Par défaut
    Sorry

    C'était sans garantie, j'ai pas fait le test et cela fait longtemps que je n'ai pas fait d'application BD.

    cdlt

    e-ric

  6. #6
    Membre émérite Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Points : 2 770
    Points
    2 770
    Par défaut
    Citation Envoyé par bassim
    [J'ai essayé ta méthode e-ric , comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    procedure TModuleConsu.MaTableCalcFields(DataSet: TDataSet);
    begin
        MaTableNumero.Value:=MaTable.RecNo;
    end;
    mais lors d'un filtrage de la table (puisque chaque enregistrement sera lu et comparé avec le filtre )l'affichage sera complètement faussé , car tout les enregistrements ne seront pas forcément pris .
    j'espére que Pierre Castelain ne sera pas dans les parages
    ok: si ma mémoire est bon:
    quant tu accéde a une base il est dabort ouvére

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    var z:integer;
    procedure TDataModule2.TableBLBeforeOpen(DataSet: TDataSet);
    begin
         z:=0;
    end;
     
    procedure TDataModule2.TableBLCalcFields(DataSet: TDataSet);
    begin
         inc(z);
         MaTableNumero.Value:=z;
    end;
     
    end.
    pas test

  7. #7
    Membre éclairé Avatar de bassim
    Homme Profil pro
    Ingénieur Réseaux
    Inscrit en
    Février 2005
    Messages
    666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2005
    Messages : 666
    Points : 695
    Points
    695
    Par défaut
    Ton idée est juste edam ,mais le problème reste au niveau du filtrage et j'en utilise beaucoup dans mon application.

    Je crois qu'aprés chaque filtrage il faut relire tout l'ensemble de données ,
    je vais essayer ça et je vais voir ...

Discussions similaires

  1. Comment créer une grille des projet avec C#
    Par Moh1267 dans le forum C#
    Réponses: 2
    Dernier message: 31/01/2014, 18h07
  2. Comment créer une grille dans VB.net
    Par AndreDvl dans le forum VB.NET
    Réponses: 10
    Dernier message: 05/03/2008, 12h13
  3. Créer une grille avec centage
    Par lil_jam63 dans le forum Algorithmes et structures de données
    Réponses: 10
    Dernier message: 16/08/2004, 16h21
  4. Comment créer une Table dans 1 Bdd ACCESS avec Builder??
    Par makandja dans le forum C++Builder
    Réponses: 6
    Dernier message: 17/03/2004, 20h21

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