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

Access Discussion :

Treeview - XML et références


Sujet :

Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2003
    Messages : 42
    Par défaut Treeview - XML et références
    Bonsoir tout le monde,

    Suis en train de développer un treeview afin de visualiser un message XML. J'avance lentement mais sûrement... J'ai trouvé sur la toile le code annexé - code que j'ai adapté en fonction de mes besoins. Pour l'instant tout fonctionne...

    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
     
    Option Compare Database
    Option Explicit
     
    Dim objTreeview As MSComctlLib.Treeview
     
    Private Sub Form_Load()
        Set objTreeview = Me!tvwTreeview.Object
        TreeviewRekursivFuellen 0
    End Sub
     
    Private Sub TreeviewRekursivFuellen(Numéro As Long)
        Dim db As DAO.Database
        Dim rst As DAO.Recordset
        Dim objNode As MSComctlLib.Node
        Set db = CurrentDb
        If Numéro = 0 Then
            Set rst = db.OpenRecordset("SELECT * FROM Message_bis WHERE [Référence] IS NULL")
        Else
            Set rst = db.OpenRecordset("SELECT * FROM Message_bis WHERE [Référence] = " & Numéro)
        End If
        Do While Not rst.EOF
            If Numéro = 0 Then
                Set objNode = objTreeview.Nodes.Add(, , "Message_bis" & rst![NoIndex], rst!Contenu)
            Else
                Set objNode = objTreeview.Nodes.Add("Message_bis" & Numéro, tvwChild, "Message_bis" & rst![NoIndex], rst!Contenu)
            End If
            TreeviewRekursivFuellen rst![NoIndex]
            rst.MoveNext
        Loop
     
        Set objNode = Nothing
        rst.Close
        Set rst = Nothing
        Set db = Nothing
    End Sub
    Description
    Les diverses hierarchies constituant le message XML sont gérées par le bais de références. Principe utilisé: tout élément ne présentant aucune référence dans ma table de données de base se situe sur le premier échelon de ma hierarchie. Les éléments se trouvant au deuxième niveau de la hierarchie et liés à un élément du premier échelon font obligatoirement référence à un objet situé au niveau supérieur. Ansi dans l'exemple annexé les éléments "BGM" et "DTM" font par exemple état du chiffre "11" puisque ceux-ci sont subordonnés à l'élément "AVIS".
    Tout ce travail de référence a été effectué manuellement pour l'exemple ci-joint. Etant entendu que mes messages XML présentent plus de 700 lignes, je suis à la recherche d'un artifice pour automatiser ce travail de référence. Notons au passage que la hierarchie des messages est bien visible par le biais d'un parser, mais que cette même dimension "3D" n'est plus perceptible dans ma table - puisque toutes les informations sont enregistrées "à plat".

    Merci d'avance pour toute proposition.

    Papillon00
    Images attachées Images attachées   
    Fichiers attachés Fichiers attachés

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2003
    Messages : 42
    Par défaut
    Bonsoir

    ...j'avance gentiment mais sûrement (cf. fichier annexé). Comment dois-je à présent procéder pour faire apparaitre sur la droite de mon Treeview à la manière de l'explorer de Windows le contenu des divers éléments de données activés dans le treeview (cf. exemple pratique annexé).

    Amicalement

    Papillon00
    Fichiers attachés Fichiers attachés

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2003
    Messages : 42
    Par défaut
    Bien le bonjour

    J'ai depuis ma dernière intervention analyser le code que j'ai trouvé sur la toile. Malheureusement je ne suis pas parvenu à corriger une première erreur à savoir que dans mon Treeview (fichier Read_XML_X0100.zip annexé plus haut), certaines informations de mon fichier XML n'apparaissent pas. Toujours est-il qu'entre temps je sais qu'il s'agit de données de type "Value" (valeur) et "Desc" (description). Pour quelles raisons ces informations n'apparaissent pas m'échappe toujours - merci pour toute explication.

    Dans mon ébauche, une activation de l'arborescence (double click) engendre l'affichage d'un texte contenant les informations de détail contenues dans la branche en question. Ces informations apparaissent de bout à bout en d'autres termes sans espace entre les différents champs. Comment dois-je procéder pour pouvoir afficher ces informations avec des espaces ou encore mieux les unes sur les autres. Ci-joint un extrait du code en question - du moins à mon humble avis...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
    For Each oElemKnoten In oRoot(0).childNodes
            Set oNodeRoot = oTree.Nodes.Add(Text:=oElemKnoten.baseName)
            oNodeRoot.Bold = True
            oNodeRoot.Expanded = True
            For Each oElemData In oElemKnoten.childNodes
                Set oNode = oTree.Nodes.Add(oNodeRoot, tvwChild, Text:=oElemData.baseName)
                oNode.ForeColor = vbBlue
                'oNode.Expanded = True
                Set oNodeSub = oTree.Nodes.Add(oNode, tvwChild, Text:=oElemData.Text)
                oNodeSub.ForeColor = vbBlack
    Du reste je suis toujours à la recherche d'un code pour pouvoir afficher toutes ces infos (données de détail à la manière de l'explorer Windows) sur mon form dans un deuxième sous-formulaire situé sur la droite du premier (celui contenant le treeview) sous la forme d'un tableau (cf. exemple pratique dans le fichier intitulé "Tree2002_4.zip").

    Amicalement

    Papillon00

Discussions similaires

  1. De TreeView à XML
    Par Marina20 dans le forum Delphi
    Réponses: 1
    Dernier message: 14/12/2006, 02h02
  2. Réponses: 2
    Dernier message: 02/12/2006, 21h58
  3. Choix techno pour treeview XML?
    Par kobe dans le forum XML/XSL et SOAP
    Réponses: 4
    Dernier message: 20/04/2006, 11h27
  4. [Treeview XML]
    Par lucimast dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 08/03/2006, 23h20
  5. [XML-XSL] références interfichiers
    Par tatiana dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 02/08/2005, 10h25

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