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 :

Création d'un TreeView à partir de tables


Sujet :

Bases de données Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    186
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2003
    Messages : 186
    Par défaut Création d'un TreeView à partir de tables
    Bonjour,

    Je cherche à créer une arborescence à partir de données qui se trouve dans 3 tables.

    Mes tables sont : Etages, Secteurs, Bureaux.
    Donc dans Secteurs j'ai la clé externe d'Etages et dans Bureaux la clé externe de Secteurs, ce qui me permet de savoir pour un bureau à quel étage et dans quel secteur il se trouve.
    J'ai réalisé celà avec 3 DBGrid mais je ne trouve pas ça très convivial pour l'utilisateur.

    J'aimerais donc que mon treeview soit présenter comme ceci

    Rez-de-chaussée
    | --A0
    | | --BureauA
    | | --BureauB
    | | --BureauC
    | --B0
    | --C0
    1er étage
    2ème étage
    | --A2
    | --B2
    | | --BureauH
    | --C2
    3ème étage
    ...

  2. #2
    Membre Expert
    Avatar de aityahia
    Homme Profil pro
    CIEPTAL CARS SPA
    Inscrit en
    Mars 2006
    Messages
    1 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Algérie

    Informations professionnelles :
    Activité : CIEPTAL CARS SPA
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 938
    Par défaut
    Comment est structuré ra table du dernier niveau.

    parce ça peut êtres long si vous devez passer du dernier niveau au permier par le second niveau
    alors je préfère que tu structure ta dérnière table de la sorte.

    Num|Num_Level1| Num_Level2| les autres champs.

    Alors tu pourra construire ton arbre avec une seul table.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    186
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2003
    Messages : 186
    Par défaut
    merci de ta réponse aityahia

    Comme je l'ai dit j'ai 3 tables avec clé externe pour la liaison...
    Je suis assez libre au niveau de mes tables donc je veux bien tout regrouper en une seule c'est pas un problème.
    Maintenant je vois pas trop comment la structurer...

    Est-ce impossible de créer une vue via requête SQL qui me présenterait bien mes données ?

    En faisant ce ci ça fonctionne mais je vois pas comment je pourrais intégrer les bureaux :
    SELECT * FROM etages, secteurs WHERE etages.etage_id = secteurs.fk_etage ORDER BY etage

  4. #4
    Membre Expert
    Avatar de ALWEBER
    Homme Profil pro
    Expert Delphi
    Inscrit en
    Mars 2006
    Messages
    1 542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Expert Delphi

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 542
    Billets dans le blog
    10
    Par défaut
    Voila un exemple de table pour générer un treView

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Id|IdParent|Quoi|Description
    Tu mets une clé primaire sur Id et un clé (index) secondaire sur IdParent. Tu switch sur l'index secondaire et tu parcoures la table

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    1;0;Racine;Batiment
    2;1;Etage;Rez-de-chaussée
    3;2;Secteur;A0
    4;3;Bureau;BureauA
    5;3;Bureau;BureauB
    6;3;Bureau;BureauC
    7;2;Secteur;B0
    8;2;Secteur;C0
    9;1;Etage;1er étage
    ....
    De cette manière tu peux plus facilement construire ton arbre. J'ai un exemple que je te transmettrai sous peu.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    186
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2003
    Messages : 186
    Par défaut
    Bonjour ALWEBER,

    J'attends ton exemple avec impatience

    D'avance merci beaucoup

  6. #6
    Membre confirmé
    Inscrit en
    Décembre 2002
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 32
    Par défaut
    Bonjour
    aityahia a raison, il ne faut pas 3 tables
    il faut que tu revois ta base de données
    je verrais bien 2 tables
    une table que tu pourrais appeler Niveau(Num, Libellé)
    ex 0, rez de chaussée
    -1, 1er sous sol
    1, 1er étage etc...
    une autre table Bureaux (Etage,Secteur,Bureau)
    La colonne Etage étant du numérique , c'est plus facile de faire un classement
    dans l'ordre qu'avec de l'alpha , surtout pour des étages (essaie un classement rez de chaussée, 1er étage !!!)

    ex 0,A0,BureauA
    un lien (requête) Bureaux/Niveau te permet de récupérer le libellé de l'étage
    et tu fais ton treeview (si tu en a encore besoin) à partir de la requête

Discussions similaires

  1. Réponses: 2
    Dernier message: 29/02/2012, 17h26
  2. Réponses: 11
    Dernier message: 18/01/2010, 11h29
  3. Remplir un TreeView à partir d'une seule table
    Par naindjardin dans le forum Windows Presentation Foundation
    Réponses: 2
    Dernier message: 07/05/2009, 00h25
  4. Générer un treeview à partir d'une table
    Par ruff15 dans le forum Développement Web en Java
    Réponses: 3
    Dernier message: 14/08/2008, 22h03
  5. Pb de création de table à partir de tables existantes
    Par ankou29666 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 14/04/2008, 21h42

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