LabVIEWForum.de
Cluster Scripting Methode "Set Cluster Order" funktioniert (bei mir) nicht - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Cluster Scripting Methode "Set Cluster Order" funktioniert (bei mir) nicht (/Thread-Cluster-Scripting-Methode-Set-Cluster-Order-funktioniert-bei-mir-nicht)

Seiten: 1 2


Cluster Scripting Methode "Set Cluster Order" funktioniert (bei mir) nicht - triumvirn - 18.02.2013 00:11

Hallo Leute,

ich habe ein kleines Problem, nämlich das ich ums Verrecken die Methode "Set Cluster Order" nicht zum laufen bekomme.
Ich hole mir mit dem Property "Controls[]" die Elemente aus dem Cluster, sortiere die um, schiebe sie bei "Element Refs" rein. Keine Fehler, aber am Ende, wenn ich Controls[] wieder abfrage ist alles beim Alten.

Über Probes habe ich sichergestellt, dass das Array von Referenzen auch wirklich umsortiert ist, wenn ich es in "Element Refs" schiebe, also das ist nicht das Problem.

Welche Fehlerquellen seht ihr denn noch so?

Vom Vorgehen habe ich mich hier inspirieren lassen.

Wenn ich das Problem nicht ausreichend beschrieben habe, bitte beschweren!

Vielen Dank schon mal!


Ciao!


RE: Cluster Scripting Methode "Set Cluster Order" funktioniert (bei mir) nicht - Trinitatis - 18.02.2013 00:18

Hallo triumvirn,

du startest das VI, dessen Clusterinhalte du neu sortieren willst. So wie du zur Laufzeit eines VIs nicht die Namen von Controls ändern kannst, geht auch das nicht.

Du müsstest das VI starten, die Clusterreferenzen auslesen und nach dem Stoppen des VIs die Referenzen in einem anderen VI verwenden, um die Elemente umzusortieren. Dieser Umweg ist natürlich nur zu gebrauchen, wenn du diese Umsortierung nur einmal bzw. selten machst.


Gruß, Marko

Edit:

Sorry, vergiss die Antwort, hab gerade gesehen, dass du das VI nur in den Speicher lädst und nicht startest.

Kannst du dein VI mal unter 2011 speichern?


RE: Cluster Scripting Methode "Set Cluster Order" funktioniert (bei mir) nicht - triumvirn - 18.02.2013 01:00

(18.02.2013 00:18 )Trinitatis schrieb:  Kannst du dein VI mal unter 2011 speichern?
Danke trotzdem schon mal!

Ich habe das mal als 11er abgespeichert. Ich hoffe das ist richtig so.


RE: Cluster Scripting Methode "Set Cluster Order" funktioniert (bei mir) nicht - Morpheus - 18.02.2013 08:10

Hallo triumvirn

Also bei mir hats funktioniert lv12_img
Hab die Kontrolle aber nicht programmatisch (Controls[]) ausgeführt, sondern direkt im VI, bzw. Cluster überprüft.

Gruss
Chris


RE: Cluster Scripting Methode "Set Cluster Order" funktioniert (bei mir) nicht - triumvirn - 18.02.2013 09:51

(18.02.2013 08:10 )Morpheus schrieb:  Hallo triumvirn

Also bei mir hats funktioniert lv12_img
Hab die Kontrolle aber nicht programmatisch (Controls[]) ausgeführt, sondern direkt im VI, bzw. Cluster überprüft.

Gruss
Chris
Hallo!

Bei mir zwar nicht, aber du hast mich zumindest in die Richtung gestoßen, wo der Hund begraben scheint:

An sich geht das Umsortieren, wenn ich z.B. Elementare Datentypen wie String, Boolean oder Numerics nehme (in meinem Beispiel "drei" mit "vier" tauschen).
Auch wenn ich in meinem Cluster ein anderes kleines Untercluster (in meinem Beispiel "eins" oder "zwei") habe und es gegen einen elementaren Datentyp tausche geht es noch.
Wenn ich aber zwei Cluster gegeneinander tauschen will, dann tut sich nichts (weder bei Controls[] noch in der visuellen Darstellung im Typedef-Fenster mit "Reorder Controls in Cluster").

Kann mir jemand eine Erklärung liefern, warum das so ist. Und was man dagegen machen kann?

Ich habe mal kleines Beispiel mit dem angepassten VI angehängt (als 2011er).

Danke schon mal!

Gruss


RE: Cluster Scripting Methode "Set Cluster Order" funktioniert (bei mir) nicht - triumvirn - 18.02.2013 10:26

Kann leider nicht mehr editieren:

Untercluster, die mit einer (der gleichen) Typedef verbunden sind, kann ich NICHT tauschen. Wenn ich die Verbindung zur Typedef bei Beiden löse, aber sonst nichts ändere kann ich sie tauschen.


RE: Cluster Scripting Methode "Set Cluster Order" funktioniert (bei mir) nicht - Morpheus - 18.02.2013 16:04

Hallo triumvirn

Hast Du schon mal versucht den Typdef programatisch (nur temporär) zu ändern (Typdef zu Control) und nach dem Tauschen wieder auf Typdef zu setzen?
Muss allerdings zugestehen, dass ich dies selber nie ausprobiert habe Big Grin

Gruss
Chris


RE: Cluster Scripting Methode "Set Cluster Order" funktioniert (bei mir) nicht - triumvirn - 18.02.2013 16:08

Es muss irgendeine System-interne Unverträglichkeit/Einschränkung geben.

Ich habe folgendes versucht: Statt Typedef-Cluster zu vertauschen habe ich ein Numeric erstellt, das sich (wie in den Vorpost beschrieben) mit jeweils einem Typedef-Cluster problemlos tauschen lässt.

Wenn ich jetzt ein Typedef-Cluster mit einem anderem Typedef-Cluster tauschen möchte, tausche ich solange nach einem einfachen Algorithmus das Numeric mit anderen Typedef-Cluster, sodass am Ende die Reihenfolge der Typedef-Cluster richtig ist/wäre und das erstellte Numeric gelöscht werden kann.

Das klappt auch wunderbar bis zum LETZTEN Schritt, dann leite ich die letzte Tauschaktion ein, wo ich eigentlich danach nur noch den Numeric löschen müsste und dann springt auf mirakulöser Weise die gesamte Reihenfolge wieder auf den Ausgangszustand zurück, als ich das Numeric hinzugefügt habe.
Also macht LV aus irgendeinem Grund 5,10 oder 20 Aktionen auf einen Schlag rückgängig!

Nachdem das kein Zufall sein kann, gehe ich davon aus, dass LV die ganzen Wechsel mitprotokolliert und bei der letzten Aktion (bei der ich am Ziel wäre) alles wieder auf Anfang setzt, da ihm das Tauschen von (gleichen?) Typedef-Cluster aus irgendeinem Grund nicht passt.


Da hätte man in der Dokumentation der Funktion wirklich schreiben können dass das nicht geht! Hätte mir viel Zeit erspart.


RE: Cluster Scripting Methode "Set Cluster Order" funktioniert (bei mir) nicht - triumvirn - 18.02.2013 16:50

(18.02.2013 16:04 )Morpheus schrieb:  Hallo triumvirn

Hast Du schon mal versucht den Typdef programatisch (nur temporär) zu ändern (Typdef zu Control) und nach dem Tauschen wieder auf Typdef zu setzen?
Muss allerdings zugestehen, dass ich dies selber nie ausprobiert habe Big Grin

Gruss
Chris
Hallo!

Danke.
Ich habe es mal ausprobiert und es "klappt" schon, bloß sind danach im großen Cluster alle Untercluster nicht mehr mit der Typedef verbunden.

Oder kann man per Script ein Cluster mit seiner Typedef verbinden. Ich kann das sonst nur per Hand über "Select Control..."?!

Ich kann mir auch gar nicht vorstellen, was es für LV für einen Unterschied machen soll, ob ich Typedef-Cluster umsortiere oder normale Cluster umsortiere. Per Hand geht ja auch beides.


Gruss


RE: Cluster Scripting Methode "Set Cluster Order" funktioniert (bei mir) nicht - Morpheus - 19.02.2013 10:33

Ob es mit Scripting geht weiss ich nicht.
Bin jetzt auch am Punkt, wo ich es selber ausprobieren müsste Big Grin

Falls ich dazu komme, schau ichs mir mal an.

Gruss
Chris