LabVIEWForum.de
Enum Baumstruktur - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Enum Baumstruktur (/Thread-Enum-Baumstruktur)



Enum Baumstruktur - Hydrogencarbonat - 21.02.2017 12:37

Hi,

ich habe ein Enum im eine Baumstruktur eingefügt und kann in bestimmten Positionen wie zum Beispiel der Parents-Tags (Oberste Ebene) das Enum anzeigen und einen Wert verändern
(Siehe VI in Ordner: Ein Enum).
Jedoch möchte ich in jedes Enum unterschiedliche Werte auswählen können.In diesem Beispiel ist nur ein Enum mit seinen Werten im Tree eingefügt und wird an bestimmten Position ( Parent-Tags) angezeigt.
-> Problem: Ändern sich die Werte des Enums, dann wird in jedem angezeigten Enum des Trees logischerweise dessen neuen Werte angezeigt.

Also habe ich als 2 Testbeispiel etwas mit 4 Enums programmiert, die unterschiedliche Werte haben.
Diese Umsetzung ist jedoch sehr statisch und ich müsste bei einer Erweiterung immer ein neues Enum in das Programm einfügen bzw. mehrere, für jedes Parents oder Child-tag (untere Ebene).
Gehen wir mal davon aus , dass ich für jedes Child Tag von dem jeweiligen Parent ein Enum mit unterschiedlichen Werten haben möchte.
Dann müsste ich für jedes Child Tag per Hand ein Enum in mein VI einfügen, eine Referenz für das Cluster erzeugen und in dem Case Tree Mausbewegung für jedes Child Tag ein Case erstellen und noch andere Anpassungen im VI machen (siehe angehängtes VI).
Dies ist so sehr unvorteilhaft programmiert und kann bei großen Datenmengen nicht so genutzt werden.

Deswegen möchte ich, dass mein Tree mit den Enums dynamisch so programmiert haben, das für jedes Child-Tag ein Enum mit unterschiedlichen Werten in dem Tree auswählbar ist. (Die Werte von jedem Tree, die zur Auswahl stehen sollen, kommen später von einer Datenbank und sollen dann über einen Eigenschaftsknoten (weiss jetzt gerade nicht aus dem Kopf mit welcher Eigenschaft genau) in jedem Enum gesetzt werden)
In meinen Test VIs habe ich erstmal die Parents Tags für die Enums verwendet.

Ich hoffe ich habe mein Problem verständlich beschrieben und mir kann jemand weiterhelfen. (Die VIs sind angehängt)

Gruß HCO

Sry, hatte den falschen Ordner von "mehr Enums" hochgeladen.


RE: Enum Baumstruktur - jg - 21.02.2017 13:30

Nimm für die Auswahlanzeige ein Ring-Control anstatt ein Enum!!!!

vgl. https://lavag.org/files/file/31-type-sensitive-popup/

Gruß, Jens


RE: Enum Baumstruktur - Hydrogencarbonat - 21.02.2017 14:32

Hi,

das Beispiel Projekt, welches du als Link gepostet hast kann ich nicht ausführen. Habe alle Vis ersetzt, er meckert trotzdem rum das Typedefs fehlen etc.

Habe bei mir im VI mit einem Enum, das Enum durch ein Ringcontrol ausgetauscht.
Jedoch ist dies ja meiner Meinung nach genau das gleiche Prinzip, ob da nun ein Enum, ein Ring Control etc. im Tree verwendet wird (Kann mich auch irren).

Ich will ja nur an unterschiedlichen Position im Tree bei dem besagten "Control" der jeweiligen Zeile (Parents. oder Child-Tags) unterschiedliche Werte auswählen können, die ich in einem Array von der DB erhalten habe.

Hast du eventuell ein konkreteres Beispiel, als das, was du gepostet hast?


Gruß HCO


RE: Enum Baumstruktur - jg - 21.02.2017 15:57

Die Idee mit Ring anstatt Enum ist, dass du nur 1 Ring-Control brauchst, da du selber vor der Darstellung die Werte zur Laufzeit setzen kannst.

Mir ist bekannt, dass das verlinkte Tool beim Öffnen unter neueren LV-Versionen rumzickt.
Öffne mal das VI TSPopop.FG.Popup.vi. Dort folgendes machen:
1) Sortiere die Cases der Case-Struktur um (Rechtsklick auf Case-Struktur). Mache den "Initialize" Fall zum ersten Fall.
2) Dann die folgende Verbindung löschen und wieder neu anlegen:
[attachment=57382]
3) VI speichern und es läuft.

Vielleicht kannst du dir bei dieser API was abschauen.

Gruß, Jens


RE: Enum Baumstruktur - Hydrogencarbonat - 21.02.2017 16:41

Ok, habe ich gemacht.
Da tritt noch ein weiterer Fehler auf.
Was soll ich da machen?

Gruß HCO


RE: Enum Baumstruktur - jg - 21.02.2017 17:03

Hast du auch zuerst umsortiert - so wie geschrieben? Hat bei mir unter lv16_img funktioniert. Spiel mal ein wenig rum. Im Extremfall musst du das gesamte Shift-Register neu anlegen. Da kommt was durcheinander mit dem Datentyp durch das Hochkonvertieren.

Gruß, Jens


RE: Enum Baumstruktur - Hydrogencarbonat - 21.02.2017 21:17

Hi,
hab ein bischen rumgespielt.
Klappt jetzt endlich. Jetzt erstmal das VI anschauen.Danke für die Hilfe.


RE: Enum Baumstruktur - Hydrogencarbonat - 21.02.2017 22:19

Ok, top VI. Die dynamische Erstellung von Rings in dem Tree ist genau das was ich brauche und ich kann das Prinzip auch nach meinen Bedürfnissen in meinem Main VI einfügen/umsetzen. Jedoch bleibt noch ein Problem, da ich wie es in dem VI sehe jeder erstellte Ring die gleichen Werte hat.Die Werte des Rings werden im 1D-Array (String) vor der While Loop gesetzt.
Ich möchte jedoch unterschiedliche Werte in jedem Ring für jedes Child setzen.

Wie kann ich das am Besten umsetzen?

Gruß HCO


RE: Enum Baumstruktur - Hydrogencarbonat - 24.02.2017 00:01

Habe es endlich herausgefunden :=).

Man muss in dem Ereignis "Tests,Maustaste gedrückt" im True Case für die Childs,die man in dem Tree gesetzt hat und einen Ring bekommen sollen, den Prop Type des Rings bei einer Übereinstimmung des ermittelten Tags mit den Child_Names(Linker zellen String), sowie dessen individuellen "Ring String" setzen.

Gruß HCO