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...
Description
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
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
Partager