Hallo an alle,
auch ich habe einige Anregungen zum Thema Parent-Child.
Ich weiß nicht, wie in sPlan die Objekte aufgebaut sind, d.h. ob es sich intern um echte Objekte im Sinne der objektorientierten Programmierung handelt. Ich könnte ich mir folgendes dabei vorstellen:
Jedes Bauteil bekommt zu den beiden Eigenschaften
Bezeichner und
Wert eine zusätzliche Eigenschaft
Zusatzwerte, welche ähnlich den Anwendervariablen eine Liste aus Variablenname und Variablenwert ist. Diese speziellen Variablen sind nun aber nur mit dem Bauteil verknüpft, stellen also eine anwenderspezifische Eigenschaft dar. Die feste Variable
<PARENT_VALUE> fungiert nun nicht mehr als Übermittler des Wertes der Eigenschaft
Wert des Parents sondern als Übermittler des Wertes derselben Eigenschaft des Parents.
Man kann also beim Parent eine ganze Reihe von Informationen ablegen. Im Bauteileditor kann man dann diese zusätzlichen Eigenschaften mit ihrem Namen aufrufen z.B. die Variable
Baugröße mit
<BAUGROESSE> und anzeigen lassen. Existiert nun ein Child, der genau dieselben Variablennamen in der Eigenschaft
Zusatzwerte aufweist wie der Parent und werden die Variablenwerte mit der festen Variable
<PARENT_VALUE> vom Parent übertragen, so können beliebige Werte vom Parent an den Child übertragen und dort angezeigt werden.
Code: Alles auswählen
Eigenschaften des Parents:
=========================
Bezeichner = K1
Wert = Pumpe
Zusatzwert[POSITIONPARENT] = /<PAGENO>
Zusatzwert[BAUGROESSE] = BG1
Zusatzwert[SPANNUNG] = 230V AC
Zusatzwert[STROM] = 0,23 A
Zusatzwert[UNBENUTZT] = Lorem ipsum ...
Eigenschaften des Child:
=========================
Bezeichner = <PARENT_VALUE>
Wert = <PARENT_VALUE>
Zusatzwert[POSITIONPARENT] = <PARENT_VALUE>
Zusatzwert[BAUGROESSE] = <PARENT_VALUE>
Zusatzwert[SPANNUNG] = <PARENT_VALUE>
Zusatzwert[STROM] = <PARENT_VALUE>
Die feste Variable
<PARENT_VALUE> überträgt nun alle Eigenschaftswerte vom Parent an die passenden Eigenschaften des Childs. Wenn ein Variablenname der Eigenschaft
Zusatzwerte beim Child nicht vorhanden ist, wohl aber beim Parent, dann wird dieser wert auch nicht übertragen (siehe im Beispiel die Variable UNBENUTZT). Die Anzeigedatenkonstzellation würde dann wie folgt ausschauen, wenn sich der Parent auf Schaltplanseite
15 befindet:
anzeigbare Eigenschaften des Parents:
Bezeichner =
K1
Wert =
Pumpe
Zusatzwert[POSITIONPARENT] =
/15
Zusatzwert[BAUGROESSE] =
BG1
Zusatzwert[SPANNUNG] =
230V AC
Zusatzwert[STROM] =
0,23 A
Zusatzwert[UNBENUTZT] =
Lorem ipsum ...
anzeigbare Eigenschaften des Child:
Bezeichner =
K1
Wert =
Pumpe
Zusatzwert[POSITIONPARENT] =
/15
Zusatzwert[BAUGROESSE] =
BG1
Zusatzwert[SPANNUNG] =
230V AC
Zusatzwert[STROM] =
0,23 A
Dasselbe Szenario könnte ich mir mit einer festen Variable
<CHILD_VALUE> vorstellen, die ihrerseits Werte(sätze) von den Childs an den Parent überträgt. Existieren mehrere Childs zu einem Parent, so müssten die Werte dann gesammelt und als kommaseparierte Liste in einer Zeile oder untereinanderstehend angezeigt werden können.
Code: Alles auswählen
Eigenschaften des Parents:
=========================
Bezeichner = K1
Wert = Pumpe
Zusatzwert[POSITIONPARENT] = /<PAGENO>
Zusatzwert[POSITIONCHILD] = <CHILD_VALUE>
Eigenschaften des Child1:
=========================
Bezeichner = <PARENT_VALUE>
Wert = <PARENT_VALUE>
Zusatzwert[POSITIONPARENT] = <PARENT_VALUE>
Zusatzwert[POSITIONCHILD] = /<PAGENO>
Eigenschaften des Child2:
=========================
Bezeichner = <PARENT_VALUE>
Wert = <PARENT_VALUE>
Zusatzwert[POSITIONPARENT] = <PARENT_VALUE>
Zusatzwert[POSITIONCHILD] = /<PAGENO>
Eigenschaften des Child3:
=========================
Bezeichner = <PARENT_VALUE>
Wert = <PARENT_VALUE>
Zusatzwert[POSITIONPARENT] = <PARENT_VALUE>
Zusatzwert[POSITIONCHILD] = /<PAGENO>
Auf diese Weise wäre es sehr leicht Querverweise zwischen Parents und Childs aufzubauen und anzuzeigen (Parent auf Seite 15, die Childs auf den Seiten 2, 3 und 11):
anzeigbare Eigenschaften des Parents:
Bezeichner =
K1
Wert =
Pumpe
Zusatzwert[POSITIONPARENT] =
/15
Zusatzwert[POSITIONCHILD] =
/2, /3, /11 <== Parent sammelt die Werte seiner Childs
anzeigbare Eigenschaften des Child 1:
Bezeichner =
K1
Wert =
Pumpe
Zusatzwert[POSITIONPARENT] =
/15
Zusatzwert[POSITIONCHILD] =
/2
anzeigbare Eigenschaften des Child 2:
Bezeichner =
K1
Wert =
Pumpe
Zusatzwert[POSITIONPARENT] =
/15
Zusatzwert[POSITIONCHILD] =
/3
anzeigbare Eigenschaften des Child 3:
Bezeichner =
K1
Wert =
Pumpe
Zusatzwert[POSITIONPARENT] =
/15
Zusatzwert[POSITIONCHILD] =
/11
Das war nun eine ganze Menge und ich hoffe, ich habe meine Idee verdeutlichen können. Sollte es möglich sein z.B. sPlan 8.0 mit einer derartigen Übertragungsmöglichkeit von Daten zwischen Parents und Childs auszurüsten, dann wären sicher kaum noch wünsche offen
So, nun bitte ich um rege Diskussion über Sinn oder Unsinn meiner Idee hier
Gruß Dirk
