Unter anderem soll das GAEB unterstützten, richtig
Ich habe ein Grid, welches mit der Datenbank verbunden ist (über eine
Query)
Dieses Grid hat 3 Aufgaben:
1. vorhandene Positionen darstellen
2. vorhandene Positionen bearbeiten
3. neue Positionen (manuell) erfassen
Das Grid ist also sowohl Eingabemaske als auch Darstellung. Das ist auch so gewollt...
Den Datenbankaufbau habe ich ja schon oben gepostet.
Man könnte die Positionsnummer natürlich auch komplett abspeichern (01.01.0001), aber genau das möchte ich nicht. Ich möchte (wie z.B. bei GAEB
XML) eine echte Hierarchie aufbauen, nur die jeweils für die Position relevante Ordnungszahl (01, 01, 0001) abspeichern und die komplette Positionsnummer aufgrund der Baumstruktur von meinem Programm aufbauen lassen.
Der Vorteil: Ich ändere bei einer Position nur die OZ, und alle Unterpositionen werden automatisch angepasst. (bzw. sie müssen gar nicht angepasst werden, weil die Positionsnr ja dynamisch erzeugt wird)
Ich suche jetzt eine passende Stelle, bei der ich diese Positionsnummer in meinem DataSet aufbauen kann. Dazu habe ich ein InternalCalcField, also ein Feld was nicht in die Datenbank geschrieben wird, und könnte das Feld über OnCalcFields entsprechend berechnen lassen.
Ich muss also innerhalb von OnCalcFields irgendwie auf die Parent-Position zugreifen können
Wenn ich das möglichst performant gelöst kriege, ist mein Problem gelöst
Ich hatte sowas schon mal in .NET mit ORMs programmiert. Dort hatte ich zu jeder Position ein Property "Parent"... Die Positionsnr war dann auch nur ein Property, welches in etwa diesen Getter hatte:
Code:
if (this.Parent == null)
{
value = this.OZ;
}else{
value = this.Parent.Positionsnr + "." + this.OZ;
}