DIAdem

cancel
Showing results for 
Search instead for 
Did you mean: 

Sortieren im Datenportal

Hallo,
 
ist es möglich im Datenportal unter Eigenschaften noch eine Untergruppe zu bilden.
(siehe Bild)
 
 
Ich Frage deshalb weil ich in meiner Sud die Werte die Eingetragen werden ins Datenportal schreibe, dadurch kann ich mit speichern der *.tdm und späteres öffnen der *.tdm alle Werte beim laden wieder in die Dialogfenster zurückschreiben.
 
Nun habe ich bis zu 40 Personen die mit Grösse, Gewich usw. ins Datenportal geschreiben werden wenn ich hier jetzt noch einen Unterordner machen könnte, könnte ich darin die Daten zu jeder Person ablegen.
 
z.B. : Person_1
                  Grösse
                  Gewicht
         Person_2
                  Grösse
                  Gewicht
 
Wenn dies nicht möglich ist was ich befürchte, ist es möglich die Zusatzinformationen so zu Ordnen das es z.B. so aussieht.
 
Person_1
Grösse_1
Gewicht_1
Person_2
Grösse_2
Gewicht_2
usw.
 
MfG
 
SAMIOLS
 
0 Kudos
Message 1 of 15
(5,321 Views)

Hallo,

ich würde gerne eine Schleife einfügen so das über die Variable Probanz_ im Datenportal Eigenschaften angelegt werden. Mit dem Beispiel unten hab ich es Versucht Diadem Script briingt zwar keine Fehlermeldung aber es wird auch nichts ins Datenportal geschrieben.

Call GROUPCREATE("Probandendefinition",4)

  Sub Proband_Anzahl
    For i = 1 to Probanz_
      Call GroupPropValSet(GroupIndexGet("Probandendefinition"), "Proband", "")
      Call GroupPropValSet(GroupIndexGet("Probandendefinition"), "Grösse", "")
      Call GroupPropValSet(GroupIndexGet("Probandendefinition"), "Gewicht", "")
      Call GroupPropValSet(GroupIndexGet("Probandendefinition"), "Hüftbreite", "")
    Next
  End Sub

Könnte das so ähnlich gehen ?

Danke

0 Kudos
Message 2 of 15
(5,304 Views)
Hallo SAMIOLS!
 
Ich muss gestehen ich verstehe die Anforderung nicht so ganz. Darum werde ich mal den Aufbau des Datenportals erklären und mal ein paar Hinweise geben.
 
Die Hierachie im Datenportal hat drei Ebenen:
  • Wurzel
  • Kanalgruppe
  • Kanal
Die Anzahl Ebenen ist durch den Anwender nicht zu ändern! Er ist aber in der Lage an Elementen jeder Ebene eigene Eigenschaften anzuhängen die einen eindeutigen Namen haben muss und ungleich den vordefinierten Name sein muss. Ich nehme nun mal an das zu jedem Probanden mehrere Kanäle mit verschiedenen Messwerten exisitieren. Es macht dann Sinn diese in einer Kanalgruppe zusammenzufassen. Der Name der Kanalgruppe könnte dann 'Proband_1' sein. Die charackteristischen Werte des Probanden wie z.B. Gewicht können dann als Eigenschaft an diese Kanalgruppe gehängt werden. Die Befehle um das alles zu machen hast du ja in deinem Beispiel verwendet. Erklär das vielleicht nochmal genauer.
 
Zu deinem Code: Was mir fehlt ist ein 'Call Proband_Anzahl()'. Wenn man den einbaut gibt es aber einen Laufzeitfehler da die Variable 'Probanz_' undefiniert ist. In der der Schleife wird dann n-mal das selbe gemacht. Warum?
 
Matthias

Message Edited by Twigeater on 11-01-2007 02:42 PM

Matthias Alleweldt
Project Engineer / Projektingenieur
Twigeater?  
0 Kudos
Message 3 of 15
(5,298 Views)

Hallo Twigeater,

war ein falscher Ansatz von mir das mit dem Sortieren und der Schleife, alles noch mal auf Null.

Ich erklär kurz mein Problem und stelle noch ein kleines Script rein. Beim start der Scripts öffnet sich ein Dialog zur Eingabe der Parameter, wenn nun in den Dialogen Werte geändert werden findet man diese nach einem Klick auf „Ok“ im Datenportal wieder. Vorteil beim Speichern der *.tdm werden diese Werte (Variablen) mit gespeichert und beim nächsten öffnen wieder in die Dialoge zurück geschrieben. Bei " Datenart" klappt das auch so weit, einfach testen.

Bei Probandendefinition habe ich im Dialog ein "Table1" benutzt hier weis ich nicht wie ich an die eingegebenen Werte komm, um sie ins Datenportal zu schreiben.

Und genau das ist mein Problem, wie kann ich die Werte, wie bei Datenart, ins Datenportal schreiben?

 

MfG

Samiols

 

0 Kudos
Message 4 of 15
(5,278 Views)

Sorry,

jetzt hab ich auch noch das Beispiel Vergessen.

Samiols

 

0 Kudos
Message 5 of 15
(5,275 Views)

Hallo Samiols!

Ich hab mir dein Beispiel angeschaut und nach meinem Verständis würde ich aus deinem Codeabschnitt

Call GROUPCREATE("Probandendefinition",4)
Call GroupPropValSet(GroupIndexGet("Probandendefinition"), "Proband_1", "Pos_1")
Call GroupPropValSet(GroupIndexGet("Probandendefinition"), "Grösse", "")
Call GroupPropValSet(GroupIndexGet("Probandendefinition"), "Gewicht", "")
Call GroupPropValSet(GroupIndexGet("Probandendefinition"), "Hüftbreite", "")

eine Schleife für alle Probanden machen

For i=1 To Probanz_
  Call GroupCreate("Proband_" & i)
  z = GroupIndexGet("Proband_" & i)
 
  Call GroupPropValSet(z, "Proband", "Pos" & i)
  Call GroupPropValSet(z, "Grösse", "")
  Call GroupPropValSet(z, "Gewicht", "")
  Call GroupPropValSet(z, "Hüftbreite", "")
Next

So kann man dann immer indiziert auf die Gruppe zum Probanden zugreifen und an die Gruppe alle probandenspezifische Daten hängen.

Matthias

Matthias Alleweldt
Project Engineer / Projektingenieur
Twigeater?  
0 Kudos
Message 6 of 15
(5,260 Views)

Hallo Matthias,

danke das Du dir mein Beispiel angeschaut hast, dein Tipp war super hab das ganze noch ein bisschen abgeändert aber so geht es wie Du es oben beschrieben hast.

Ich bin jetzt aber schon ein Stück weiter und hab ein kleines Problem mit dem zurück schreiben der Daten in die Tables, ich dachte das es genau so geht wie mit den z.B Text.Box1.

Also wenn ich aus einer TextBox den Wert zurück schreibe verwende ich diesen Code:

If GroupPropExist(GroupIndexGet("Datenart"), "testfile") Then
      EditBox1.Text = GroupPropValGet(GroupIndexGet("Datenart"), "testfile")

End If ........................... das Funktioniert so weit auch.

Nun wollte ich aus einem z.B Tabel1, einer Tabelle die Werte aus dem Datenportal zurück schreiben aber leider geht es so nicht.

If GroupPropExist(GroupIndexGet("Test_1"), "Test_2") Then
       Table1.Rows(1).Cells(1).Value = GroupPropValGet(GroupIndexGet("Test_1"), "Test_2")
   End If

Nach dem einfügen einer MsgBox zwischen der ersten und zweiten Zeile,

 If GroupPropExist(GroupIndexGet("Probanddefinition_1"), "Position") Then
   
msgbox GroupPropExist
       Table1.Rows(1).Cells(1).Value = GroupPropValGet(GroupIndexGet("Probanddefinition_1"), "Position")
   End If

ist die Meldung bei GroupPropExist = Falsch d.h. würde doch heissen das er die Gruppe bei der Prüfung mit GroupPropExist nicht gefunden hat und deswegen den Wert nicht zurück schreiben kann, oder?

Kann mir jemand sagen wie ich aus dem Datenportal in die Table1.Rows(1).Cells(1) schreiben kann?

 

Danke

 

0 Kudos
Message 7 of 15
(5,237 Views)

Hallo Samiols!

Das 'MsgBox GroupPropExist' 'Falsch' ausgibt liegt an den fehlenden Parametern. Das die Box aber kommt zeigt ja schon mal das die Eigenschaft da ist.

Was mich wundert ist warum du die Zellen der Tabelle besetzt wo sie doch im SUD mit Variablen verbunden sind. Der Inhalt sollte dann eigentlich aus denen übernommen werden. Schau dir das nochmal an.

Matthias

Matthias Alleweldt
Project Engineer / Projektingenieur
Twigeater?  
0 Kudos
Message 8 of 15
(5,232 Views)

Hallo Matthias,

hab es gestern noch hinbekommen hab dann auch die  Fehlenden Parameter bemerkt, es funktioniert jetzt auch.

Was ich bei deinem Tip nicht Verstehe,  wenn ich mit den Variablen arbeite wie kann ich dann genau auf Zelle (2,1) zugreifen um Sie ins Portal zu schreiben ?

Oder besser wie kann ich auf Zellen und Spalten zugreifen, und zum Verständnis (Anfänger) warum wäre das besser wenn ich nicht die Zellen der Tabelle besetze 

MfG

Samiols

 

 

0 Kudos
Message 9 of 15
(5,218 Views)
Hallo Samiols!
 
Wenn man einem SUD Control eine Variable zuweist dann kümmert sich DIAdem darum die Werte beim Öffnen des Dialogs aus der Variable zu übernehmen und sie bei Änderungen dort immer rein zu schreiben. Füllt man also vor dem Öffnen des Dialoges die Variable sollte das Control auch gefüllt sein. Bei der Tabelle ist jeder Spalte einer Variable zugeordnet die dann ein Vektor seinn sollte. Spaltenzuordnung geht dann alos über den Variablennamen, Zeilenzuordnung geht über den Vektorindex.
 
Dein Zugriff auf eine Zelle ist natürlich auch OK! Ist aber m.E. ein wenig doppelt. Ich verwende die Tabelle immer ohne Variablenzuordnung, dann ist dies der einzige Weg für den Zugriff.
 
Matthias
Matthias Alleweldt
Project Engineer / Projektingenieur
Twigeater?  
0 Kudos
Message 10 of 15
(5,215 Views)