Bonjour
J'ai des soucis lors de la création d'un indexe sur une table dbf.
Voici le contexte.
Mon écran affiche plusieurs lignes qui peuvent être triées via une combo box sur telle ou telle colonne.
Chacune des colonnes contient des Strings. Evidemment le problème est que le tri fonctionne mal lorsqu'une colonne de ce type contient des entiers :
dans ce cas un exemple de tri mal ordonné est
111
2222
333
444
5555
au lieu de
111
333
444
2222
5555
Le tri se fait par l'utilisation des indexes sur tables DBF.
Mon idée pour faire le tri sur les valeurs numériques est de créer un indexe comme suit :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 worktbl.AddIndex('LUTRANA', 'cast(LUTRANA as integer)', [ixExpression]);
en m'inspirant de l'exemple souvent trouvé sur le web :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 AddIndex('name', 'Upper(L_NAME)+Upper(F_NAME)', [ixExpression]);
Mais la syntaxe est mauvaise puisque j'obtiens l'erreur "champ 'cast(LUTRANA as integer)' non trouvé".
Comment inciter l'indexe à utiliser la valeur numérique de la chaîne de caractères ?
Merci d'avance pour vos réponses
Partager