Le champ CHO_REF_ART (un champ en sortie de type Adelia ALPHA) qui contient la reference d'un article au format suivant :
AA<tiret>N ou AA est un ALPHA(2) et N et un NUM_BIN_4 (positif).
On souhaite trier cette colonne sur la valeur de AA puis N.
Exemple de valeurs a trier : AB-1, AB-11, CD-0, AB-2.
Apres tri, on doit avoir : AB-1, AB-2, AB-11, CD-0.

Exemple 1 : Tri par defaut

Ref article

Si on utilise le tri par defaut sur la colonne CHO_REF_ART (de type ALPHA), on obtiendra AB-1, AB-11, AB-2, CD-0 (car tri sur des valeurs alphanumeriques, donc '1' < '11' en tri ascendant), ce qui n'est pas le resultat escompte.

Exemple 2 : Tri en decoupant CHO_REF_ART en 2 zones

CHO_REF_ART est scindé en 2 champs en sortie : CHO_REF_ALPHA (de type ALPHA de 2) et CHO_REF_NUM (de type NUM_BIN_4). Le tri de la colonne "Ref article" se fait d'abord sur CHO_REF_NUM puis sur CHO_REF_ALPHA (cf definition de la fonction Javascript createTableSorterTBL_2)

Ref article
-

Exemple 3 : Tri défini par l'utilisateur

On ne veut pas scinder CHO_REF_ART en deux zones. Pour que le tri fonctionne suivant notre hypothèse, il faut définir un tri utilisateur.
Pour cela, on definit une fonction Javascript getValFct qui retournera une valeur de type "utilisateur" contenant les valeurs des champs AA et N pour chaque ligne de la table liste.
Puis, on definit une fonction de comparaison compareFct pour comparer deux valeurs (retournées par la fonction getValFct) de l'objet CHO_REF_ART dans la table liste associee.

Ref article