DIAdem

cancel
Showing results for 
Search instead for 
Did you mean: 

Datenportal zusatz Informarionen

Hallo,

hab das Problem gelöst ich öffne einfach die *.tdm Datei aus meinem VBS Dialogfenster, d.h. ich habe einen Button Datei öffnen in mein Dialogfenster eingebaut.

Da das Setzen der Werte im Datenportal funktioniert wollte das ändern in den einzelnen Dialogfenstern auch, wie oben beschrieben, bin ich eigentlich so weit zufrieden.

Bis auf eine Sache, kann ich mit dem Befehl " GroupPropValGet " die Werte der Variablen in mein Dialogfenster wieder zurück schreiben?

Call GroupPropValGet(GroupIndexGet("Daten"), "TESTFILE", testfile_)

Ich beschreibe das mal kurz, ich öffne eine *.tdm Datei nun sind wieder alle Kanäle, Eigenschaften und Werte im Datenportal gesetzt. Nun wollte ich mit dem Befehl "GroupPropValGet" die Werte im Datenportal wieder in meine Dialogfenster (EditBox usw.) zurück schreiben. So das der Anwender z.B. nur einen Wert oder zwei ändert und die Berechnung neu Starten könnte, ohne alle Daten zu überprüfen und neu einzutragen.


 

 

0 Kudos
Message 21 of 33
(1,962 Views)
Hi,

Vorgehensweise:
Daten laden
SUD aufrufen
Im Event SUD initialize mit GroupPropValGet die Parameter auslesen und die SUD-Ojbekte füllen.
Beim Verlassen des Dialogs mit OK die Parameter mit
GroupPropValSet wieder zurück schreiben.

Gruß
Walter
0 Kudos
Message 22 of 33
(1,955 Views)

Hi,

ich dachte mir das eigentlich auch so das ich im Event unter dem Button "Daten Laden" mit dem Befehl

Call GroupPropValGet(GroupIndexGet("Daten"), "TESTFILE", testfile_) die Daten laden könnte aber er schreibt sie nicht zurück in die z.B EditBox.

Ich weis auch nicht warum mach ich etwas falsch, oder stimmt der Befehl so nicht ?

Danke

SAMIOL

0 Kudos
Message 23 of 33
(1,942 Views)
Hi,

ich habe ein kleines Beispiel gemacht. Vielleicht hilft das.

Gruß
Walter
0 Kudos
Message 24 of 33
(1,933 Views)

Hallo,

genau, setzten der Werte klappt wie in Ihrem Beispiel, das Laden funktioniert auch so das die Eigenschaften und Werte geladen werden wie sie abgespeichert wurden.

Bis dahin ist auch alles ok, jetzt aber zu meinem Problem,  wenn ich jetzt die *.tdm öffne stehen alle Informationen im Datenportal so wie sie abgespeichert wurden.

So soll es auch sein.
Wenn ich die *.tdm Datei lade und dann mein Skript starte, wird auch in Ihrem Beispiel, das Wort " z.B. Hallo" das ich eingegeben habe, mit dem Wort "MyNewProp" überschrieben ist ja auch logisch da das Skript mit

call DataDelAll
call DataFileLoad("Example.TDM")

.

.

.
alles wieder zurück gesetzt.

Hier ist auch das Problem, ich will die Werte im Datenportal nicht löschen oder zurücksetzen, sondern die sollten erhalten bleiben und in den Dialog (Dialoge) geladen werden . Das würde in Ihrem Beispiel heißen das nach dem laden der *.tdm und danach ausführen des Skriptes in dem Dialogfenster nicht "MyNewProp" stehen würde sonder "Hallo".

Kurz: Laden der *.tdm und zurückschreiben der geladen Werte aus dem Datenportal in meine *.sud (Dialoge).

Ich öffne meine *.tdm Datei aus meinem VBS.Script heraus d.h ich habe einen Button "Datei laden", mein Ansatz war das ich unter diesem "Button" mit Ereignisse den Befehl "Call GroupPropValSet.... " einfüge und dann die Werte aus dem Datenportal zurück geschreiben werden in meinen Dialog (EditBox) das funktioniert aber leider nicht.


Ist ein bischen lange die Erklärung aber vielleicht kann man es so besser Verstehen.



0 Kudos
Message 25 of 33
(1,930 Views)
ch öffne meine *.tdm Datei aus meinem VBS.Script heraus d.h ich habe einen Button "Datei laden", mein Ansatz war das ich unter diesem "Button" mit Ereignisse den Befehl "Call GroupPropValGet.... " einfüge und dann die Werte aus dem Datenportal zurück geschreiben werden in meinen Dialog (EditBox) das funktioniert aber leider nicht.

Das sollte "Get" heissen nicht "Set" sorry 😉
0 Kudos
Message 26 of 33
(1,924 Views)
Hi,

ehrlich gesagt bin ich etwas verwirrt. So richtig verstanden habe ich das nicht - das liegt aber vielleicht an mir. Hier noch ein paar Infos zu den Eigenschaften am Beispiel der Kanalgruppen:

Mit GroupPropGet kann man die Eigenschaften auslesen (der alte Inhalt wird also nicht verändert).
Mit GroupPropSet kann man die Eigenschaften neu setzen (der alte Inhalt wird somit verändert).
Mit GroupPropExist kan man prüfen of eine Eigenschaft schon existiert (somit kann geprüft werden, ob eine Eigenschaft schon vorhanden ist, bevor eine neue angelegt wird)
Soll in einem SUD eine Eigenschaft nur angezeigt werden, so kann das Edit-Feld auf nicht editierbar eingestellt werden.
Wenn der Inhalt einer Eigenschaft aus Datei A in Datei B übernommen werden soll, muss dieser Inhalt in einer Variablen zwischengespeichert werden, ehe er nach dem Laden von Datei B übertragen werden kann.

Gruß
Walter


0 Kudos
Message 27 of 33
(1,926 Views)
Hallo,

ich habe im Anhang auch mal ein kleines Beispiel, kurze Beschreibung.

1. Beim Ausführen des Skriptes öffnet sich ein Dialog
2. Hier kann das Fenster Datenart geöffnet und Variable geändert werden die sich dann auch im Datenportal ändern.
3. hier mal beliebig Werte eingeben ( vorgaben beachten)
4. Dann die Datei als *.tdm speichern
5. alle Daten im Datenportal löschen
6. nun wieder ausführen des Skriptes und über Datei laden im Dialogfenster die eben gespeicherte Datei *.tdm laden
7. nun sind wieder alle Daten im Datenportal ...... Schön so weit alles ok
8. Wenn man nun  mit dem Button  "Datenart" den Dialog öffnet stehen nicht die Werte wie im Datenportal drin sondern die Vorgegebenen variablen aus der *.vas und genau das wollte ich das diese Daten im Dialogfenter "Datenart" drin stehen zurück geschreiben werden wie auch immer. Hier sollte nicht der Wert 3 drin stehn sondern die Werte im Datenportal.





0 Kudos
Message 28 of 33
(1,921 Views)
Hi,

ich glaube ich habe es jetzt verstanden. Das Problem liegt darin, das der Dialog Datenart nur über die VAS initialisiert wird - es fehlt das Auslesen der aktuellen Werte, wenn der Dialog aufgerufen wird. Das kann im Initialize-Event des Dialogs gemacht werden. Das sieht dann für ein Property so aus:

Sub Dialog_EventInitialize()
Dim This : Set This = Dialog
    If GroupPropExist(GroupIndexGet("Datenart"), "Startfile") Then
      EditBox1.Text = GroupPropValGet(GroupIndexGet("Datenart"), "Startfile")
    End If
End Sub

Gruß
Walter
0 Kudos
Message 29 of 33
(1,917 Views)
Hallo,

nach einiger Zeit hab ich raus gefunden das man im DialogEditor unter Ereignisse den " EventInitialize() " findet, hab's nicht gleich gefunden ;-).

Super es funktioniert, könnte man diese Abfrage auch in dem Dialogfenster davor einfügen ?

Weil er trägt den Wert ja mit " EditBox1.Text = GroupPropValGet(GroupIndexGet("Datenart"), "Startfile") " in das Textfenster ein, würde mich mal Interessieren ob das geht.

Danke

MfG

SAMIOLS



0 Kudos
Message 30 of 33
(1,907 Views)