LabVIEWForum.de
Datenbank -> dynamisches Menü - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Datenbank & File IO (/Forum-Datenbank-File-IO)
+---- Thema: Datenbank -> dynamisches Menü (/Thread-Datenbank-dynamisches-Menue)



Datenbank -> dynamisches Menü - little-hedgehog - 05.04.2012 11:51

Hallo zusammen,

ich habe folgendes Problem.
Ich möchte mit LabView ein Simulationsgerät ansteuern (über RS232), die zugehörigen Befehle sind bekannt. Diese Befehle sollen in einer Art Datenbank strukturiert abgelegt werden, etwa so:
Obermenü 1
Untermenü 1
Befehl1
Befehl 2...

Untermenü 2
Untermenü 2.1
Befehl 3
Befehl 4

usw.
Ich hoffe, das ist einigermaßen verständlich.

Diese Struktur soll dann auch in meinem LabView-Programm dargestellt werden, also dass man sich z.B. durch Dropdown Menüs oder über Registerkarten da durch blättern kann.

Jetzt kommt das eigentliche Problem: Bei Programmstart soll diese Datenbank eingelesen werden und dann das Menü auf der Programmoberfläche automatisch der Struktur in der Datenbank angepasst werden, das ganz große Ziel wäre sozusagen, ein LabView Programm, mit dem auf veschiedene Datenbanken zugegriffen werden kann und das sich je nach Struktur der Datenbank anpasst.

Meine Frage nun: Ist das überhaupt möglich? Und mit welchen Funktionen und Datenbankdateien lässt sich das realisiseren?

Ich danke schonmal im Voraus für Antworten :-)

LG, l-h

PS: Es gibt schon ein Programm, in welchem die Befehle im Quelltext implementiert sind, das könnte ich hochladen, wenn es mit der Menüstruktur Verständnisprobleme gibt.


RE: Datenbank -> dynamisches Menü - Tschirno - 05.04.2012 22:09

Hallo,
so wie ich das verstanden habe, kannst du das auf mehrere Arten realiseren. Als Quelle für deine Einträge kannst du eine ganz normale Textdatei oder INI nehmen.
Die kannst du wie folgt aufbauen.

ID | Name | ParentID
1 | EintragA | 0
2 | SubA | 1
3 | BefehlA | 2
4 |EintragB | 0
5 | Sub B | 4
6 | BefehlB | 5
usw.
Als Anzeige bzw. Bedienelement könntest du das Runtime Menü des VIs, ein Runtime-Shortcut-Menü eines beliebigen Controls/Bedienelements oder ein Tree Control / Baum Struktur Bedienelement nehmen. Das bleibt dann dir überlassen. Alle kannst du programmatisch, dynamisch befüllen. Schau mal unter den Beispielen im ExampleFinder nach z.B. Dynamic Insert Demo.vi, Menu Selection Demo... alles unter dem Suchbegriff "Menus"

Gruß


RE: Datenbank -> dynamisches Menü - little-hedgehog - 17.04.2012 20:56

Hallo,
erstmal danke für die Antwort.
Wir sind jetzt einen Informationsschritt weiter, dahingehend, dass die Programmoberfläche schön grafisch auf dem Frontpanel dargestellt werden soll. Also nicht über LabView-Runtime Menü oder ähnliches.
Im alten Programm hatten wir das Menü über Registerkarten strukturiert. Gibt es da eine Möglichkeit, programmatisch die Anzahl der Reiter anzugeben, über Eigenschaftsknoten oder so? Haben heute auf unsrer Suche nichts dazu gefunden.
Geht das, dass man überhaupt Registerkarten während der Laufzeit erst erstellt, und Registerkarten auch verschachtelt?
Eine weitere Möglichkeit, die man vielleicht auch noch schön gestalten kann, wäre eine Baumstruktur. Allerdings sind wir da mit den vorhandenen Beispielprogrammen überhaupt nicht zurecht gekommen, weil die nur aus Sub-VI mit Sub-VI mit Sub-VI... bestehen. Hat da jemand einen Tipp, wie man diese Baumstruktur einlesen kann?
Liebe Grüße
l-h


RE: Datenbank -> dynamisches Menü - Tschirno - 18.04.2012 09:36

Registerkarten lassen sich, glaube ich, nicht zur laufzeit erstellen. Du hast aber die Möglichkeit, alle vorhandenen Registerkarten auszulesen und zu "manipulieren". [attachment=39496]

Allerdings würde ich das mit dem Tree Control machen. Man muss sich am Anfang vielleicht etwas reinfuchsen, aber wenn es klick macht... echt nett. Schaut mal das Beispiel "Tree Enhancements.vi" im ExampleFinder an. Reduziert es mal aufs wesentliche, wie Tree löschen, neuen Eintrag(Parent Tag) und neuen Subeintrag zum passende Parent Tag. Die zusätzlichen Spalten die sich im Tree control befinden, können z.B. als versteckte INFOS dienen.

Wenn du mit Runtime Menüs arbeiten willst, dann mich noch drauf hinweisen, das jedes Anzeige oder Bedienelement auch ein eigenes Menü haben kann. Auch zur Laufzeit änderbar!!!

Viel Spaß