Bonjour,
Je suis en train de monter une application qui visualise des historiques de données dans un réseau de distribution de fluide.
L'état actuel:
Aujourd'hui j'ai défini une table avec des points d'entrée de fluide et à quelle branche grossière du réseau ils appartiennent.
Ainsi par la sélection d'un des branches du réseau dans un combobox, j'affiche les points d'entrée dans une liste box, puis la sélection unique dans la liste box change la source de donnée des graphes.
exemple de données:
Flowstation | pipe
fs1 pipe north
fs2 pipe sud
fs3 pipe sud
Mon problème est que mon fournisseur m'envoie uniquement mais régulièrement les données de chaque point d'entrée et les possibles fuites dans le réseau et vu que je suis au Nigeria les noms des lieux de fuites sont locaux et pas forcément référencé dans google earth (donc pas question d'utilisé un SIG). On a donc de la difficulté à retrouver le potentiel perdu dans le réseau de distribution lorsqu'il y a une attaque ou une fuite sur un pipe. il faut parcourir tous les points d'entrée de chaque branche afin de retrouver nos petits.
Donc j'ai modélisé plus finement le réseau avec mes connaissances à la manière d'un dendogramme (pour ceux qui ont déjà utilisé SAS base et la procédure cluster j'ai une nouvelle table de ce type) et je souhaite donc passer ce réseau dans un control treeview et je ne sais pas comment faire programmatiquement, j'ai également ajouté des infos longueur des pipes entre deux nodes, type de noeuds etc...
Ensuite pour chaque noeud du control, je faire en sorte qu'en cliquant sur le noeud, je somme chaque production des noeud enfants et j'affiche des informations relative au noeud (derniers évènements, etc ...)
voici donc ma table de relation 'parents-enfants' du terminal de production au points d'entrée fluide. je rajoute également que stocké cela dans une table 'normale' ne me semble pas être le mieux car le nombre de noeud est variable sur chaque branche majeure de pipe et dépend du réseau.
vous vous doutez bien qu'évidemment j'ai plusieurs réseaux a analyser et donc que je veux pouvoir stocker d'autres réseaux et faire cela sous forme de routine lors du changement de réseau sélectionné
voici donc une table type (nom du noeud, noeud parents, type de noeud) :
Node | parents | type
T1 Terminal
n1 T1 noeud
n2 T1 noeud
fs1 n1 flowstation
fs2 n1 flowstation
n1_1 n1 noeud
fs4 n1_1 flowstation
fs4 n1_1 flowstation
etc... etc... j'ai 70 flowstations distribuées dans deux réseaux pour chaque type de fluide produit.
Aujourd'hui la seule solution que j'ai est de faire un code de ce type pour ajouter mes noeuds dans le tree view (à programmer, je vous tiendrez au courant):
recherche des enregistrements pour le terminal selectionné dans le champ Parents -> remplir les noeud du niveau 1 du treeview avec les valeurs de Node (et une image suivant le type)
Pour chaque items de P1, recherche de P1(i) dans le champs Parent -> remplir les noeuds du niveau suivant avec les valeurs de Node
etc... etc...
Est-ce que quelqu'un a déjà été confronter à ce type de problème et comment l'avez vous résolu ?
Merci d'avance
PS: j'ai bien lu le praticiel sur le tree view.
et on boucle ainsi de suite...
Partager