LabVIEWForum.de
Tabelleneingabe kontrollieren - Druckversion

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



Tabelleneingabe kontrollieren - Hasenfuss - 14.11.2014 09:45

Guten Morgen!

Ich habe eine Tabelle erstellt und ich möchte den Inhalt der letzten Eingabe kontrollieren. Die Tabelle befindet sich in einem Zustandsautomat und ich möchte zunächst das letzte Element in einer Stringanzeige darstellen. Ich habe in der Eventstruktur unterschiedliche Events ausprobiert, u.a. das Ereignis "Tabellenelement-Wertänderung". Ich habe so meine Probleme, auf das letzte Element drauf zuzugreifen. Um auf das Element zuzugreifen, benutze ich den Eigenschaftsknoten-PosBearb.

Leider funktioniert mein bisheriger Ansatz noch nicht und ich habe noch keine richtige Idee, wie ich das Problem lösen kann. Es soll dann später auch so sein, dass das Element in der Stringanzeige überprüft wird, ob verbotene Zeichen vorhanden sind und dann der Anwender eine Meldung bekommt.

Falls ihr mir ein paar Tipps geben könntet, wie ich das Problem lösen kann, würde ich mich sehr freuen.

Das Beispielprogramm ist in der Version 2012 abgespeichert.


RE: Tabelleneingabe kontrollieren - Achim - 14.11.2014 10:06

Hi,
keine Lösung von mir, aber ein Hinweis über die Nutzung von Tabellen:

http://forums.ni.com/t5/LabVIEW-Idea-Exchange/Tables-should-be-indicators-by-default/idi-p/3042893

Gruß
Achim


RE: Tabelleneingabe kontrollieren - NoWay - 14.11.2014 11:23

Du arbeitest ja mit einem Array. Wenn du nun mit Array Size und Index Array arbeitest, bekommst du immer das letzte Element aus diesem Array. Bei einem 2D Array musst du dann nur noch das Element suchen, welches du anzeigen möchtest.


RE: Tabelleneingabe kontrollieren - Hasenfuss - 14.11.2014 11:55

"Du arbeitest ja mit einem Array. Wenn du nun mit Array Size und Index Array arbeitest, bekommst du immer das letzte Element aus diesem Array. Bei einem 2D Array musst du dann nur noch das Element suchen, welches du anzeigen möchtest. "

Genau darin liegt mein Problem. Mir gelingt es nicht so wirklich richtig, das letzte Element festzuhalten. Nutze ich das Event Wert verändert und will dann mit dem Eigenschaftsknoten drauf zugreifen, dann greife ich nur auf das zu, in dem ich grade bin. Es klappt nicht so richtig, die Position des Vorherigen zu speichern. Zumindest klappt es nicht bei den ersten beiden Mal beim Programmstart und ich finde einfach keinen Lösungsansatz.

Zuerst befindet sich der "Tabellenzeiger" auf -2/-2, weil ich im Initstate des Zustandsautomaten die Tabelle konfiguriere und damit Spaltenbreiten/Namen etc. definiere. Springe ich nun z.B. an die Stelle 1/3(row/col), dann war die vorige Position aber noch -2/-2. Tritt nun das Ereignis Wert verändert ein, dann nimmt mein Programm bisher noch die Stelle -2/-2 als Wert an und nicht die Position 1/3. Und beim zweiten Auslösen des Events funktioniert es auch noch nicht so richtig, sondern erst beim dritten Auslösen von dem Event und ich finde einfach zur Zeit einfach keine Möglichkeit, wie ich das Problem so in den Griff bekomme.
(14.11.2014 10:06 )Achim schrieb:  Hi,
keine Lösung von mir, aber ein Hinweis über die Nutzung von Tabellen:

http://forums.ni.com/t5/LabVIEW-Idea-Exchange/Tables-should-be-indicators-by-default/idi-p/3042893

Gruß
Achim

Hmm, ok. Ich kapiere aber noch nicht, was mir der Autor dieses Beitrages genau sagen will. Er schreibt dort, dass die Tabellen hervorragend sind, um Werte anzuzeigen, aber nicht besonders gut für Benutzereingaben.

Er schreibt dort in Klammern: "(this has already been corrected for the silver controls :smileyhappySmile."

Also soll ich die Tabelle aus Silber verwenden und nicht aus Modern oder Classic-Style?


RE: Tabelleneingabe kontrollieren - NoWay - 14.11.2014 12:32

Also das letzte Element aus einem 2D Array bekommst du z.B. so:
[attachment=51334]


RE: Tabelleneingabe kontrollieren - Hasenfuss - 14.11.2014 13:53

Ok, ich brauche aber nicht das letzte Element aus dem Array, sondern das letzte Element, dass ich bearbeitet oder verändert habe. Was ist, wenn man an an der Position (0/3) etwas verändert hat, dass Array aber Werte bis (5/13) hat? Ich muss also immer den Wert aus der Tabelle bzw. in dem Array auslesen, in dessen Zelle ich mich zum Schluss befunden habe.


RE: Tabelleneingabe kontrollieren - Trinitatis - 14.11.2014 14:50

probier´s mal so