Hierarchische Sortierung

<< Click to Display Table of Contents >>

Navigation:  Datenauswertung > Sortierung >

Hierarchische Sortierung

Sollen lange und/oder komplex strukturierte Codepläne sortiert werden, sollte die hierarchische Struktur der Codes, d.h. die Einteilung in OVER-(OVER-)CODES erhalten bleiben.

Dafür stellt GESStabs zwei Tabellenformate (TABLEFORMAT) bereit:

1.AUTOSORTTREE: kleinteilige Baum-orientierte Methode

2.AUTOOVERSORT: Sortierung der Gesamttabelle mit mehreren Häufigkeiten

AUTOSORTTREE ersetzt als verbesserte Neuimplementierung AUTOOVERSORT (siehe dafür Abgelöste Befehle).

Bestehende Skripte, in denen AUTOOVERSORT verwendet wird, werden unverändert nach der AUTOOVERSORT-Methode abgearbeitet.

Die beiden Methoden sind nicht kompatibel; daraus ergibt sich, dass die Verwendung beider TABLEFORMATs zu einem Fehlerabbruch (Syntaxfehler 744) führt.


AutoSortTree

Tabellenformat zur hierarchischen Sortierung von Tabellen.

Syntax:

TABLEFORMAT +/- AUTOSORTTREE;

Im Folgenden werden

die grundlegenden Begrifflichkeiten geklärt,

typische Code-Strukturen in Tabellen beschrieben,

manuelle Einstellungsmöglichkeiten für Einzellabels sowie

die optische Kennzeichnung zusammenhangsloser Labels erläutert,

die gezielte Positionierung von Overcodes ohne Obermenge beschrieben und

Anwendungsbeispiele für AUTOSORTTREE gegeben.

Begrifflichkeiten

In der AUTOSORTTREE-Methode spielen die Begriffe 'Teilmenge' und 'Obermenge' eine wichtige Rolle: Wenn OVERCODE A alle Codes eines anderen OVERCODE B enthält, A und B aber nicht identisch sind, dann wird B als eine echte Teilmenge von A betrachtet, Für das vorliegende Problem der Sortierung bedeutet das, dass A dann in der Hierarchie B übergeordnet ist, A ist eine Obermenge von B.

Tipp: Verwendet man im Skript die syntaktischen Konstrukte OVERCODE/OVEROVERCODE, dann ist automatisch sichergestellt, dass alle Overcodes, die in einem Ovrocercode benannt werden, echte Untermengen des Overovercodes sind.

Vor der Sortierung werden im ersten Schritt alle Overcodes daraufhin untersucht, ob sie Untermengen von anderen Overcodes darstellen. Die Overcodes werden in einen Baum sortiert, der die Eigenschaften Untermengen/Obermengen und die Zählergebnisse berücksichtigt.

Typische Code-Strukturen in Tabellen

Betrachtet man die zu sortierenden Tabellen unter der Perspektive der Hierarchie der Overcodes, sind mehrere typische Konstellationen erkennbar.

A.Es gibt einen Overcode, der die Obermenge der Codes aller übrigen Overcodes enthält. Dann gibt es einen Baum mit einer Wurzel, von der alle Elemente abhängen.

B.Die Tabelle besteht aus mehreren Teilbäumen nebeneinander. Der einfachste Fall sind mehrere Overcodes, die jeweils disjunkte Codes enthalten: die Hierarchie ist dann sehr flach, es gibt nur Codes unter Overcodes. Relativ beliebt sind auch Tabellen, deren Labels in zwei logisch nebeneinander stehenden Hierarchien angeordnet sind: die Menge aller positiven Nennungen und die Menge der negativen.

C.Die Tabelle enthält Codes, die überhaupt keinem Overcode zugeordnet sind, für die in der hierarchisch aufgebauten Tabelle ein Platz zu finden ist. Die Konvention ist, dass diese nach allen Overcodes/Codes am Ende der Tabelle ausgegeben werden.

Manuelle Einstellungen

Grundsätzlich ist es für den/die Tabellen-Leser/in am einfachsten nachvollziehbar, wenn die sortierte Struktur sich strikt aus der Hierarchie und den Zählergebnissen ergibt. Die Welt mit Kunden kennt aber oft andere Prioritäten und der/die Tabellierer/in muss dann händisch eingreifen.

Die Werkzeuge zur händischen Änderung der Sortierreihenfolge sind die Label-Eigenschaften BOTTOM und SORTCLASS:

Mittels der SORTCLASS als Eigenschaft von Codes und Overcodes kann man im Skript in die Reihenfolge von Objekten auf derselben Ebene eingreifen. Die Sortierung findet immer nur zwischen Objekten derselben Ebene statt. Oben wurde die Zuordnung der atomaren Codes zu dem direkt darüber liegenden Overcode erwähnt. Eine SORTCLASS kann die Positionierung nur innerhalb der Elemente der direkten Obermenge beeinflussen.

Auch mit der Label-Eigenschaft BOTTOM kann man die Position von Codes und Overcodes modifizieren. Deren Wirkung ist elementar: es wird lediglich die betroffene Zeile verschoben, und zwar zum Bottom, dem Ende der Tabelle.

RechiPrefix

Optische Kennzeichnung von Labels, die aus der Sortierung ausgeschlossen sind (z.B. aufgrund von NORANKING oder SORTCLASS).

Syntax:

RECHIPREFIX = "<Zeichenfolge>";

Die definierte Zeichenfolge wird dem/n betroffenen Labeltext/en in der Tabellenansicht automatisch vorangestellt.

SortPosition

Gezielte Positionierung von Overcodes, die keinem übergeordneten OverOvercode angehören.

Syntax:

OVERCODE "OCname" SORTPOSITION LINE <number>
OVERCODE "OCname 1" SORTPOSITION AFTER <OCname 2>

LINE positioniert den Overcode absolut an der angegebenen Zeilennummer in der Tabelle.
Mit AFTER kann relativ angegeben werden, nach welchem anderen Overcode der Overcode platziert werden soll.

Anwendungsbeispiele

Grundlage

Beispiel 1: Sortierung mit TableFormat AutoSortTree und RechiPreFix

Beispiel 2: SortPosition

Beispiel 3: Keine Overcodes

Beispiel 4: Sortiereigenschaft Bottom

Beispiel 5: Sortiereigenschaft SortClass

Beispiel 6: Codes ohne Overcodes

Beispiel 7: SORTCLASS und BOTTOM im Vergleich