Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
On dirait que Sybase s'est encore pris les pieds dans le tapis avec des specs en "logique floue" pour les tris dans une DW...
Déjà la doc de SetStort() est un WFT en soi (extrait) :
The following table shows the recognized values for order. These values are case insensitive. For example, as, s, AS, or S all specify a case-sensitive sort in ascending order.
Order value Resulting sort order
a, asc, ascending, ai, i Case-insensitive ascending
d, desc, descending, di Case-insensitive descending
as, s Case-sensitive ascending
ds Case-sensitive descending
Autrement dit, dans la syntaxe SetSort("colonne type_de_tri") on peut utiliser un tas de syntaxes différentes pour choisir entre ascendant / descendant et sensible ou insensible à la casse (cette partie je viens de la découvrir).
Seulement il semble que ces différentes syntaxes soient mal interprétées (voire même buggent, étonnant )
Si dans une DW je fais
setsort( "col desc" )
sort()
et que juste derrière je fais
describe("datawindow.table.sort") // il me retourne -> "col desc D"
Le 'D' majuscule montre bien que ce n'est pas issu de la syntaxe qui lui est donnée au départ.
Mon problème c'est que dans notre appli on reparse la syntaxe des tris pour afficher des boîtes de dialogue personnalisées à la place de la boite de tri "système" qui est un peu compliquée pour un luser standard et que cette syntaxe à la con plante notre parsing...
Du coup je teste les autres valeurs possibles et voici le résultat (je n'ai pas cherché à vérifier si la gestion de la casse était ok, ici je résume différentes valeurs successives avec les ..) :
Tri ascendant, théoriquement "insentive"
col a -> col A <--- le seul tri ascendant qui fonctionne correctement
col asc -> col asc A
col ai -> col ai A
col i -> col i A
non supporté, mais semble fonctionner
col asc..ascending -> col asc..ascending A
ascendant "sensitive"
col as -> col as D (!!!)
col s -> col s D (!!!)
descendant "insensitive"
col d -> col D <--- le seul tri descendant qui fonctionne correctement
col desc -> col desc D
col descending -> col descending D
col di -> col di D
Apparemment pas du tout supporté (mais ce n'est pas dans la doc)
col de..des -> col de..des A
col desce..descendin -> col desce..descendin A
descendant sensitive
col ds -> col ds D
Bon, le bug on va le contourner (en utilisant exclusivement 'A' et 'D'), mais vous aviez déjà remarqué ça ?
Hors ligne