Utilisation des index pour regrouper les données

De RAD Studio
Aller à : navigation, rechercher

Remonter à Tri et indexation

Lorsque vous utilisez un index dans votre ensemble de données client, il impose automatiquement un ordre de tri sur les enregistrements. En raison de cet ordre de tri, des enregistrements adjacents contiennent généralement les mêmes valeurs dans les champs qui composent l'index. Par exemple, considérons la portion de table de commandes suivante indexée sur les champs SalesRep et Customer :

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



En raison de l'ordre de tri, les valeurs identiques dans la colonne SalesRep apparaissent regroupées. A l'intérieur des champs relatifs au représentant (SalesRep) 1, les valeurs identiques de la colonne des clients (Customer) apparaissent regroupées. En d'autres termes, les données sont regroupées par représentant (SalesRep) puis, dans le groupe SalesRep, par client (Customer). A chaque regroupement est associé un niveau. Dans notre exemple, le groupe SalesRep est le niveau 1 (car il n'est imbriqué dans aucun autre groupe) et le groupe Customer est le niveau 2 (car il est imbriqué dans le groupe de niveau 1). Le niveau de regroupement correspond à l'ordre des champs dans l'index.

Les ensembles de données client vous permettent de déterminer la position de l'enregistrement en cours dans un niveau de regroupement donné. Cela permet à votre application d'afficher les enregistrements différemment, suivant qu'ils se trouvent en tête, au milieu ou à la fin d'un groupe. Par exemple, vous pouvez afficher une valeur de champ que si elle figure dans le premier enregistrement d'un groupe et éliminer ainsi les doublons. Le résultat est le suivant à partir de la table précédente :



SalesRep Customer OrderNo Amount

1

1

5

100

2

50

2

3

200

6

75

2

1

1

10

3

4

200



Pour déterminer la position de l'enregistrement en cours dans un groupe, utilisez la méthode GetGroupState. GetGroupState accepte une valeur entière représentant le niveau du groupe et renvoie une valeur indiquant la position de l'enregistrement en cours dans le groupe (première position, dernière position ou aucune des deux positions).

Lorsque vous créez un index, vous pouvez spécifier le niveau de regroupement qu'il prend en charge (jusqu'au nombre de champs présents dans l'index). GetGroupState ne peut fournir d'information sur les groupes au delà de ce niveau, même si l'index classe les enregistrements sur d'autres champs.

Voir aussi