Pas d'inquiétude, avec PBAdonf, c'est dans la poche ! ^^

Le forum (ô combien francophone) des utilisateurs de Powerbuilder.

Recherche rapide

Annonce

Certaines rubriques, dont des cours, sont uniquement visibles par les membres du forum ^^.
Dans la rubrique Liens & Références, vous avez accès à un sommaire de téléchargement, profitez-en !
Il existe maintenant un nouveau TOPIC "Votre CV en Ligne" accessible uniquement par demande.

#1 12-08-2008 10:50:19

disneb  
Membre completement Geek
Lieu: Bejaia
Date d'inscription: 16-01-2008
Messages: 118
Pépites: 1,622
Banque: 0

tri sur une grid

bonjour,
j'ai une datawindow de type grid, je veux faire un tri sur une colonne, je fais bien un sort que ce soit dans le menu row ou lors du select, mais ça marche pas il m'affiche lors du retrieve mes données non triées
qqn aurait il une idée?

Hors ligne

 

#2 12-08-2008 10:54:54

Nyphel  
Membre Power Geek
Lieu: Grenoble
Date d'inscription: 06-05-2008
Messages: 253
Pépites: 12
Banque: 529,705,333,097,693

Re: tri sur une grid

Je n'ai jamais utilisé les type GRID, mais ceci fonctionne sur une datawindow 'simple' :

Code: pb

    DW.setsort("nom_colonne a")
    DW.sort()

Tu peux trier sur plusieurs colonnes en les séparant par des virgules
Tu peux aussi enlever le redraw pendant le calcul du tri (setredraw(false) et setredraw(true))

C'est peut-être pas la solution, mais si ca ne fonctionne  ni dans le select ni dans l'interface, il reste le script à essayer ;)

Dernière modification par Nyphel (12-08-2008 10:56:19)

Hors ligne

 

#3 12-08-2008 10:59:27

disneb  
Membre completement Geek
Lieu: Bejaia
Date d'inscription: 16-01-2008
Messages: 118
Pépites: 1,622
Banque: 0

Re: tri sur une grid

je viens d'essayer de passer par le powerscript mais ça marche toujours pas

Hors ligne

 

#4 12-08-2008 11:02:49

Cortex  
Modérateur
Lieu: Arlon
Date d'inscription: 08-02-2008
Messages: 194
Pépites: 6,904
Banque: 2,109,818,425,070

Re: tri sur une grid

disneb a écrit:

bonjour,
j'ai une datawindow de type grid, je veux faire un tri sur une colonne, je fais bien un sort que ce soit dans le menu row ou lors du select, mais ça marche pas il m'affiche lors du retrieve mes données non triées

Attention, il y a une différence entre le sort que tu définis en design dans le datawindow painter (dans le menu row), et celui du select (clause ORDER BY).
Et en plus, tu peux définir un sort a l'exécution (dw.setsort() puis dw.sort())

Si tu définis un ORDER BY, je suis sur a 99.999% qu'en faisant un retrieve tu auras tes lignes triées.
Si tu définis un sort en design, idem, un simple retrieve lance le sort embeddé dans ta dw.
Et si tu fais un sort a l'exécution, et que tu n'oublies pas de faire le dw.sort(), c'est pareil.

Si tu es bien d'accord avec moi jusqu'ici, alors c'est d'après moi un effet de bord du a un de tes algorithmes... As tu testé ta datawindow en faisant un retrieve directement en design dans le datawindow painter? La, il n'y aura pas d'interférence et tu vas fatalement voir tes données triées selon ton/tes sort...

Hors ligne

 

#5 12-08-2008 11:53:35

FMolinas  
Membre Geek
Lieu: Lyon
Date d'inscription: 12-06-2007
Messages: 87
Pépites: 97
Banque: 6,435,474,948,567

Re: tri sur une grid

À ma connaissance, le type de présentation en grille ne change pas le comportement des tris. D'où, rien à redire par rapport à l'intervention de Cortex. (Ah si, le 0,001 % d'incertitude doit sans doute couvrir les cas de bugs dans la clause ORDER BY du SGBD )
Par contre, je pense à autre chose : si tu as des colonnes dont le style utilise des DropDownDataWindows ou la propriété "Use Code Table", possible galère. En effet, le tri se fait sur les valeurs des colonnes, et pas sur la valeur affichée à l'utilisateur par l'intermédiaire des DDDW ou tables de code !

Hors ligne

 

#6 12-08-2008 11:59:44

Cortex  
Modérateur
Lieu: Arlon
Date d'inscription: 08-02-2008
Messages: 194
Pépites: 6,904
Banque: 2,109,818,425,070

Re: tri sur une grid

FMolinas a écrit:

Par contre, je pense à autre chose : si tu as des colonnes dont le style utilise des DropDownDataWindows ou la propriété "Use Code Table", possible galère. En effet, le tri se fait sur les valeurs des colonnes, et pas sur la valeur affichée à l'utilisateur par l'intermédiaire des DDDW ou tables de code !

Oula, oui. Bien vu FMolinas!

Et dans ce cas, il faut faire un:

Code: pb

dw_1.setsort('lookupdisplay(nomColonne)')

Comme ca, on trie par valeur visibles...

Hors ligne

 

#7 12-08-2008 13:08:19

disneb  
Membre completement Geek
Lieu: Bejaia
Date d'inscription: 16-01-2008
Messages: 118
Pépites: 1,622
Banque: 0

Re: tri sur une grid

FMolinas a écrit:

Par contre, je pense à autre chose : si tu as des colonnes dont le style utilise des DropDownDataWindows ou la propriété "Use Code Table", possible galère. En effet, le tri se fait sur les valeurs des colonnes, et pas sur la valeur affichée à l'utilisateur par l'intermédiaire des DDDW ou tables de code!

j'ai compris, mon prob vient de la, j'attends un tri des valeurs affichées par ma datawindow

Cortex a écrit:

Et dans ce cas, il faut faire un:

Code: pb

dw_1.setsort('lookupdisplay(nomColonne)')

je pense que comme ça  ça ira

Hors ligne

 

#8 12-08-2008 13:20:38

FMolinas  
Membre Geek
Lieu: Lyon
Date d'inscription: 12-06-2007
Messages: 87
Pépites: 97
Banque: 6,435,474,948,567

Re: tri sur une grid

Cortex a écrit:

Et dans ce cas, il faut faire un:

Code: pb

dw_1.setsort('lookupdisplay(nomColonne)')

Comme ca, on trie par valeur visibles...

Caramba, ça c'est intéressant ! Dommage que ce ne soit documenté ni dans SetSort() ni dans lookupdisplay(), j'étais passé à côté...
Encore une formule miracle pour alléger le code ; je retourne l'amabilité, un grand

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22