Hi,
ich bin gerade an einem Script dran, dass eine Baumansicht erstellt.
Das Script generiert die Struktur für die Darstellung via Javascript.
Diese sollte beispielsweise so aussehen:
--------------------------------------------------------------------------------
Ebene1 = (root, ("Name Ebene 1"))
Ebene2_1 = (Ebene1, ("Name Ebene 2_1"))
Ebene3_1 = (Ebene2_1, ("Name Ebene 3_1"))
Ebene3_2 = (Ebene2_1, ("Name Ebene 3_2"))
Ebene4 = (Ebene3_1, ("Name Ebene 4"))
Ebene2_2 = (Ebene1, ("Name Ebene 2_2")
--------------------------------------------------------------------------------
Das ist wie folgt zu lesen:
Ebene = (übergeordnete Ebene,("Dargestellter Name der Ebene im Baum"))
Nun das Problem; das Script erzeugt die Knoten sortiert nach Namen (Muss so sein); Das Ergebnis in einem konkreten Fall sieht so aus:
--------------------------------------------------------------------------------
Ebene1 = (root, ("Name Ebene 1"))
Ebene4 = (Ebene3_1, ("Name Ebene 4"))
Ebene2_1 = (root, ("Name Ebene 2_1"))
Ebene3_1 = (Ebene2_1, ("Name Ebene 3_1"))
Ebene3_2 = (Ebene2_1, ("Name Ebene 3_2"))
Ebene2_2 = (root, ("Name Ebene 2_2"))
--------------------------------------------------------------------------------
Das bedeutet, der Baum kann nicht, bzw. nur bis zur 1. Ebene aufgebaut werden, da der übergeordnete Knoten von Ebene 4 (in der 2. Zeile des obigen Codes) erst in Zeile 4 bekannt ist.
Das ist ein Problem. In diesem Beispiel könnte man zwar einfach sortieren, aber in einem realistischen Fall sieht das so aus:
--------------------------------------------------------------------------------
GMC_TEST = (root, ("GMC TEST"))
Litho = (Test_1_2, ("Litho"))
Test_1 = (GMC_TEST, ("Test 1"))
Test_1_1 = (Test_1, ("Test 1-1"))
Test_1_2 = (Test_1, ("Test 1-2"))
Test_2 = (GMC_TEST, ("Test 2"))
Test_3 = (GMC_TEST, ("Test 3")
--------------------------------------------------------------------------------
Litho steht also einfach an der falschen Stelle und müsste eigentlich unbedingt nach Test_1_2 kommen, da zu dem Zeitpunkt, bei dem Litho geschrieben wird, der zugewiesene übergeordnete Knoten Test_1_2 überhaupt nicht bekannt ist.
Das liegt daran, dass die Daten bei der Abfrage sortiert werden, was unbedingt notwendig ist.
Wie kann ich denn jetzt beispielsweise Litho wieder richtig einsortieren??
Also so:
--------------------------------------------------------------------------------
GMC_TEST = (root, ("GMC TEST"))
Test_1 = (GMC_TEST, ("Test 1"))
Test_1_1 = (Test_1, ("Test 1-1"))
Test_1_2 = (Test_1, ("Test 1-2"))
Litho = (Test_1_2, ("Litho"))
Test_2 = (GMC_TEST, ("Test 2"))
Test_3 = (GMC_TEST, ("Test 3")
--------------------------------------------------------------------------------
Irgendwelche Ideen?
Ich hoffe ich habe mich verständlich ausgedrückt.
ich bin gerade an einem Script dran, dass eine Baumansicht erstellt.
Das Script generiert die Struktur für die Darstellung via Javascript.
Diese sollte beispielsweise so aussehen:
--------------------------------------------------------------------------------
Ebene1 = (root, ("Name Ebene 1"))
Ebene2_1 = (Ebene1, ("Name Ebene 2_1"))
Ebene3_1 = (Ebene2_1, ("Name Ebene 3_1"))
Ebene3_2 = (Ebene2_1, ("Name Ebene 3_2"))
Ebene4 = (Ebene3_1, ("Name Ebene 4"))
Ebene2_2 = (Ebene1, ("Name Ebene 2_2")
--------------------------------------------------------------------------------
Das ist wie folgt zu lesen:
Ebene = (übergeordnete Ebene,("Dargestellter Name der Ebene im Baum"))
Nun das Problem; das Script erzeugt die Knoten sortiert nach Namen (Muss so sein); Das Ergebnis in einem konkreten Fall sieht so aus:
--------------------------------------------------------------------------------
Ebene1 = (root, ("Name Ebene 1"))
Ebene4 = (Ebene3_1, ("Name Ebene 4"))
Ebene2_1 = (root, ("Name Ebene 2_1"))
Ebene3_1 = (Ebene2_1, ("Name Ebene 3_1"))
Ebene3_2 = (Ebene2_1, ("Name Ebene 3_2"))
Ebene2_2 = (root, ("Name Ebene 2_2"))
--------------------------------------------------------------------------------
Das bedeutet, der Baum kann nicht, bzw. nur bis zur 1. Ebene aufgebaut werden, da der übergeordnete Knoten von Ebene 4 (in der 2. Zeile des obigen Codes) erst in Zeile 4 bekannt ist.
Das ist ein Problem. In diesem Beispiel könnte man zwar einfach sortieren, aber in einem realistischen Fall sieht das so aus:
--------------------------------------------------------------------------------
GMC_TEST = (root, ("GMC TEST"))
Litho = (Test_1_2, ("Litho"))
Test_1 = (GMC_TEST, ("Test 1"))
Test_1_1 = (Test_1, ("Test 1-1"))
Test_1_2 = (Test_1, ("Test 1-2"))
Test_2 = (GMC_TEST, ("Test 2"))
Test_3 = (GMC_TEST, ("Test 3")
--------------------------------------------------------------------------------
Litho steht also einfach an der falschen Stelle und müsste eigentlich unbedingt nach Test_1_2 kommen, da zu dem Zeitpunkt, bei dem Litho geschrieben wird, der zugewiesene übergeordnete Knoten Test_1_2 überhaupt nicht bekannt ist.
Das liegt daran, dass die Daten bei der Abfrage sortiert werden, was unbedingt notwendig ist.
Wie kann ich denn jetzt beispielsweise Litho wieder richtig einsortieren??
Also so:
--------------------------------------------------------------------------------
GMC_TEST = (root, ("GMC TEST"))
Test_1 = (GMC_TEST, ("Test 1"))
Test_1_1 = (Test_1, ("Test 1-1"))
Test_1_2 = (Test_1, ("Test 1-2"))
Litho = (Test_1_2, ("Litho"))
Test_2 = (GMC_TEST, ("Test 2"))
Test_3 = (GMC_TEST, ("Test 3")
--------------------------------------------------------------------------------
Irgendwelche Ideen?
Ich hoffe ich habe mich verständlich ausgedrückt.
Um Rekursionen zu verstehen, muss man zuerst Rekursionen verstehen...