Daten mit Indizes gruppieren

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Sortieren und Indizieren


Wenn Sie in einer Client-Datenmenge einen Index verwenden, wird damit automatisch eine Sortierreihenfolge für die Datensätze festgelegt. Aufgrund dieser Reihenfolge enthalten benachbarte Datensätze normalerweise identische Werte in den Feldern, aus denen sich der Index zusammensetzt. Betrachten Sie beispielsweise den folgenden Ausschnitt aus einer Auftragstabelle, die nach den Feldern SalesRep (Vertreter) und Customer (Kunde) indiziert ist:



SalesRep Customer OrderNo Amount

1

1

5

100

1

1

2

50

1

2

3

200

1

2

6

75

2

1

1

10

2

3

4

200



Aufgrund der Sortierreihenfolge stimmen benachbarte Werte in der Spalte SalesRep überein. Innerhalb der Datensätze für SalesRep 1 sind benachbarte Werte in der Spalte Customer identisch. Das bedeutet, die Daten werden nach SalesRep gruppiert, und innerhalb von SalesRep nach Customer. Jeder Gruppierung ist eine Ebene zugeordnet. In diesem Beispiel hat die Gruppe SalesRep die Ebene 1 (weil sie in keiner anderen Gruppe verschachtelt ist), und die Gruppe Customer hat die Ebene 2 (weil sie in die Gruppe mit der Ebene 1 verschachtelt ist). Die Gruppierungsebene entspricht der Feldreihenfolge im Index.

Bei einer Client-Datenmenge können Sie ermitteln, wo sich der aktuelle Datensatz innerhalb einer bestimmten Gruppierungsebene befindet. Auf diese Weise kann Ihre Anwendung die Datensätze unterschiedlich anzeigen, abhängig davon, ob sie der erste Datensatz in der Gruppe sind, in der Mitte einer Gruppe liegen oder der letzte Datensatz in einer Gruppe sind. So können beispielsweise doppelte Werte ausgeschlossen werden, indem ein Feldwert nur dann angezeigt wird, wenn er sich im ersten Datensatz befindet. Diese Möglichkeit führt bei der vorherigen Tabelle zu folgender Anzeige:



SalesRep Customer OrderNo Amount

1

1

5

100

2

50

2

3

200

6

75

2

1

1

10

3

4

200



Um festzustellen, wo sich der aktuelle Datensatz innerhalb einer Gruppe befindet, verwenden Sie die Methode GetGroupState. GetGroupState akzeptiert einen Integer als Parameter, der die Gruppenebene angibt, und gibt einen Wert zurück, der anzeigt, wo der aktuelle Datensatz innerhalb der Gruppe liegt (erster Datensatz, letzter Datensatz oder keines von beiden).

Wenn Sie einen Index erstellen, können Sie die von ihm unterstützte Gruppierungsebene angeben (bis zur Anzahl der im Index verwendeten Felder). GetGroupState kann keine Informationen über Gruppen oberhalb dieser Ebene bereitstellen, selbst wenn der Index Datensätze nach zusätzlichen Feldern sortiert.

Siehe auch