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 :

generer treeview à partir de firebirb


Sujet :

Bases de données Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 13
    Par défaut generer treeview à partir de firebirb
    Bonjour,

    j'ai une base de données FIREBIRD contenant une table de 3 attributs (sujet string,parent entier,niveau entier), je n'arrive pas à charger un treeview car je ne sais pas utiliser le composant UIB et je n'ai pas la moindre idée de comment procéder.Si quelqu'un sait ou a deja reussi à le faire qu'il m'aide
    MERCI.

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 660
    Billets dans le blog
    65
    Par défaut
    Bienvenu sur le forum,

    pour répondre a ta question que cela soit avec UIB ou un autre composant de connexion ne changera rien.

    Le principe est simple : faire une requête ordonnée sur la table puis lire les enregistrements un à un .

    Voici un exemple dans une de mes applications
    Description sommaire de la table :
    CODE // code nomenclature
    PIECE // piece (description)
    LIGNE_ABSOLUE
    PARENT_NIVEAU
    LIGNE
    L'ordre est fait sur le champ LIGNE
    une exemple de SQL
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT a.CODE, a.PIECE, a.LIGNE_ABSOLUE, a.PARENT_NIVEAU, a.LIGNE
    FROM nomen_base a where CODE='ABORG'
    ORDER BY LIGNE_ABSOLUE
    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
     
    type TAnode = Record
        Onglet : TBookMark;
        Qte    : Double;
    end;
     
    procedure TAllNomen.Arbre;
    var ANode:TTreeNode;
        DataNoeud:^TAnode;
    begin
    ANode:=nil;
    with TreeView.Items,TBase do
       begin
         BeginUpdate;
         TreeView.OnChange:=nil;
         DisableControls;
         Data.TColoris.Close;
         Clear;
         CancelRange;
         // selectionne la nomenclature de base , ici ce n'est pas via un SQL 
         SetRange([TNomenDescCODE.value,0],[TNomenDescCODE.value,255]);
         while not EOF do
           begin
             if FieldByName('PARENT_NIVEAU').Value=0 then
                begin
                  DataNoeud:=AllocMem(SizeOf(TAnode));
                  DataNoeud.Onglet:=GetBookMark;
                  DataNoeud.Qte:=FieldByName('QTE_TOT').Value;
                  ANode:=AddObject(nil,'',DataNoeud);
                  NodeImage(Anode);
                  Next;
                end
             else Enfants(Anode,FieldByName('PARENT_NIVEAU').Value);
           end;
         TreeView.FullExpand;
         Data.TColoris.Open;
         TreeView.OnChange:=TreeViewChange;
         EndUpdate;
         EnableControls;
         if TreeView.Items.Count>0 then  TreeView.Selected:=TreeView.Items[0];
       end; {with}
    end;
     
    procedure TAllNomen.Enfants(ANode : TTreeNode;Niveau : Integer);
    var Node2 : TTreeNode;
        DataNoeud:^TAnode;
    begin
    with TreeView.Items,TBase do
     begin
      DataNoeud:=AllocMem(SizeOf(TAnode));
      DataNoeud.Onglet:=GetBookMark;
      DataNoeud.Qte:=FieldByName('QTE_TOT').Value;
      Node2:=AddChildObject(ANode,'',DataNoeud);
      NodeImage(Node2);
      Next;
      while not EOF do
        begin
          if Niveau>FieldByName('PARENT_NIVEAU').Value then break;
          if Niveau=FieldByName('PARENT_NIVEAU').Value then
             begin
                DataNoeud:=AllocMem(SizeOf(TAnode));
                DataNoeud.Onglet:=GetBookMark;
                DataNoeud.Qte:=FieldByName('QTE_TOT').Value;
                Node2:=AddObject(Node2,'',DataNoeud);
                NodeImage(Node2);
                Next;
             end
          else Enfants(Node2,FieldByName('PARENT_NIVEAU').Value);
        end;
     end; {with}
    end;
    Deux sujets toutefois à lire et voir
    un bon papier de SQLPRO sur les arborescences quoique pas Firebird dommage
    un treeview chargé à partir de xml pour apprendre a manipuler un Treeview , de toute façon cette adresse est une mine anglophone certes

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 13
    Par défaut
    Bonsoir,

    Merci pour ta réponse. Je vais m'en inspirer... Pourrais je avoir un exemple d'utilisation(les méthodes pour se connecter) d'UIB car la documentation est rare voir inexistante.
    Encore merci pour ta réponse si rapide

Discussions similaires

  1. Création d'un TreeView à partir de tables
    Par yamino dans le forum Bases de données
    Réponses: 10
    Dernier message: 23/02/2011, 10h25
  2. TreeView à partir d'un fichier XML
    Par Gulish dans le forum Qt
    Réponses: 1
    Dernier message: 03/07/2008, 17h53
  3. Remplir une TreeView à partir de mySQL
    Par sara21 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 10/04/2007, 20h56
  4. Chargement TreeView à partir d'une base Firebird
    Par ameno_123 dans le forum Delphi
    Réponses: 2
    Dernier message: 05/02/2007, 07h50
  5. Generer texte à partir de choix menu deroulant
    Par mattheoh dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 20/11/2006, 16h54

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