LabVIEWForum.de - dynamische Tabelle im Diagramm darstellen

LabVIEWForum.de

Normale Version: dynamische Tabelle im Diagramm darstellen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo Leute,
ich habe mir hier ein Programm geschrieben (siehe Unten):

LV 8.5
[attachment=12867]

So, nun würde ich gerne diese Tablle in mehreren Diagrammen (für jede Auswahl ein Diagramm) darstellen und zwar wie folgt:

Wenn ich eine oder mehrere Kästchen aus dem Cluster "Auswahl" (blau eingerahmt) getätigt habe, dann sollte sich für jede Auswahl ein Diagramm auftun und mir die Tabelle (rot eingerahmt) im Diagramm darstellen. Natürlich ist der rot-eingerahmte Bereich nur für die erste Auswahl. Für die 2te, 3te..., nte Auswahl wird die Tabelle zu groß, um sie heir als jpg-Bild darzustellen.
Wichtig ist halt auch, dass wenn das Diagramm schließe auch das Kästchen im Cluster "Auswahl" ausgeht.

Hat das schon jemand gemacht? Oder kann mir helfen es zu realisieren?

Gruß Joe
' schrieb:Hallo Leute,
ich habe mir hier ein Programm geschrieben (siehe Unten):

LV 8.5
[attachment=40137:Unbenannt.JPG]

So, nun würde ich gerne diese Tablle in mehreren Diagrammen (für jede Auswahl ein Diagramm) darstellen und zwar wie folgt:

Wenn ich eine oder mehrere Kästchen aus dem Cluster "Auswahl" (blau eingerahmt) getätigt habe, dann sollte sich für jede Auswahl ein Diagramm auftun und mir die Tabelle (rot eingerahmt) im Diagramm darstellen. Natürlich ist der rot-eingerahmte Bereich nur für die erste Auswahl. Für die 2te, 3te..., nte Auswahl wird die Tabelle zu groß, um sie heir als jpg-Bild darzustellen.
Wichtig ist halt auch, dass wenn das Diagramm schließe auch das Kästchen im Cluster "Auswahl" ausgeht.

Hat das schon jemand gemacht? Oder kann mir helfen es zu realisieren?

Gruß Joe


Weiß keiner wie es geht?

Gruß Joe
Dazu weiß man zu wenig, was sich hinter Deinem Programm verbirgt, z.B. wie das Array (die Tabelle) mit dem Cluster zusammenhängt.
Im Prinzip könntest Du doch aber Dein Cluster abfragen und mit ein paar Cases (gefüllt mit Array-Funktionen) Deine Tabelle erstellen.

Gruß Markus
Hi,
ich würde ein Eventcase mit "ValueChanged" auf jede Checkbox anwenden. Wenn geklickt wird, poppt ein VI als Dialog auf und stellt das Diagramm dar. Das Auslesen der Daten aus der Tabelle machst du in UrsprungsVI und übergibst diese Daten an das Dialog-VI. Wenn du das Dialog-VI wieder schließt, setzt du per lokaler Variable die Checkbox wieder auf False.

Zu mehr hab ich jetzt keine Zeit...sorry!

A.
' schrieb:Hi,
ich würde ein Eventcase mit "ValueChanged" auf jede Checkbox anwenden. Wenn geklickt wird, poppt ein VI als Dialog auf und stellt das Diagramm dar. Das Auslesen der Daten aus der Tabelle machst du in UrsprungsVI und übergibst diese Daten an das Dialog-VI. Wenn du das Dialog-VI wieder schließt, setzt du per lokaler Variable die Checkbox wieder auf False.

Zu mehr hab ich jetzt keine Zeit...sorry!

A.


Hallo,
danke erstmal für die Antworten.
Ich habe es gerade mit dem Eventcase probiert. Dabei entstehen bei mir 2 Probleme:

1. Wenn das Eventcase meine SubVI (Graph) ausführt, kann ich das HauptVI nicht mehr bedienen. Dabei wollte ich wenn es geht mehrere Schaubilder öffnen. Habe ich vielleicht was übersehen?
2. Ich habe eine Variable gesetzt, aber wie kann ich damit meine Checkbox im HauptVI verändern? Die Checkbox ist doch ein Bedienelement.

Gruß Joe
' schrieb:1. Wenn das Eventcase meine SubVI (Graph) ausführt, kann ich das HauptVI nicht mehr bedienen. Dabei wollte ich wenn es geht mehrere Schaubilder öffnen. Habe ich vielleicht was übersehen?
2. Ich habe eine Variable gesetzt, aber wie kann ich damit meine Checkbox im HauptVI verändern? Die Checkbox ist doch ein Bedienelement.

1. Du kannst bei der Konfiguration des Eventcase unten ein Häkchen deaktivieren: "Lock frontpanel..." Außerdem hast du evtl. dein DialogVI in dessen Properties auf "Modal" gestellt, dann kannst du nix anderes mehr bedienen

2. Naja du musst die Variable des Bedienelementes natürlich im HauptVI setzen, und zwar nachdem dein SubVI beendet wurde. Dazu könntest du dem SubVI einen booleschen Ausgang geben, der die Variable im HauptVI beschreibt. Alternativ könntest du über eine Referenz des Bedienelementes, die du dem DialogVI als Eingang übergibst, das Bedienelement direkt im SubVI zurücksetzen

A.
' schrieb:1. Du kannst bei der Konfiguration des Eventcase unten ein Häkchen deaktivieren: "Lock frontpanel..." Außerdem hast du evtl. dein DialogVI in dessen Properties auf "Modal" gestellt, dann kannst du nix anderes mehr bedienen

2. Naja du musst die Variable des Bedienelementes natürlich im HauptVI setzen, und zwar nachdem dein SubVI beendet wurde. Dazu könntest du dem SubVI einen booleschen Ausgang geben, der die Variable im HauptVI beschreibt. Alternativ könntest du über eine Referenz des Bedienelementes, die du dem DialogVI als Eingang übergibst, das Bedienelement direkt im SubVI zurücksetzen

A.


Danke nochmals. Hat soweit alles geklappt. Jedoch habe ich nun ein neues Problem:

Ich habe ein SubVI gemacht, welches mir den Graphen darstellt. Wenn ich es nun in mehreren Eventcase mit unterschiedlichen Parametern gleichzeitig benutzen will, geht es nicht. Es poppt immer nur ein Graph auf. Erst wenn dieser beendet ist, poppt der nächste Graph auf. Gibt es dafür eine Lösung oder muss ich nun für jede zu zeichnende Spalte ein neues VI erstellen?

Gruß Joe
' schrieb:Gibt es dafür eine Lösung oder muss ich nun für jede zu zeichnende Spalte ein neues VI erstellen?

Mir ist aufgefallen, dass es nicht am SubVI liegt, sondern am Eventcase. Dieser wartet natürlich bis mein SubVI abgearbeitet ist und läuft dann erst weiter. Kann ich den Eventcase gleich weiterlaufen lassen, ohne dass er auf die Abarbeitung meines VIs abwartet?
Hi,
wenn bei solchen Fragen auch mal Code dabei wär...würde die Antwort leicher fallen...

Ich vermute, du rufst dein Graph-SubVI direkt im Eventcase auf, oder? Dann ist's klar...das Eventcase wird erst beendet, wenn dessen Inhalt abgearbeitet ist, d.h. das VI wieder geschlossen wurde. Wenn du das DialogVI nicht mehr modal konfiguriert hast kann es in den Hintergrund rücken, d.h. du siehst es nicht mehr sofort. Dein Programm geht aber erst dann weiter, wenn du das VI geschlossen hast. Du könntest dein VI im Eventcase aber z.B. per VI Server aufrufen. Dieses Beispiel sollte dir den Weg zeigen, auch wenn es schon ein bisschen veraltet ist!

Generell sollten in Eventcases nur "kurze" Aktionen durchgeführt werden, wie z.B. eine Einstellung/Skalierung ändern oder das Laden einer Datei. Wenn längere Aktionen durchgeführt werden sollen, z.B. eine komplizierte Berechnung sollte die Abarbeitung parallel erfolgen. Es gibt hier verschiedene Ansätze, z.B. eine Producer-Consumer-Struktur deines Programmes oder die "abwechselnde" Abarbeitung verschiedener Aufgaben in einer State Machine.

Das alles sind aber nur Vermutungen...für genauere Analyse deines Problems müssten wir mal deinen Code sehen

Gruß
Achim
Referenz-URLs