Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Bonjour,
La question se trouve déjà dans le titre de la discussion : peut on trier dans un groupe?
Tout ceci concerne une datawindow avec une présentation de type group
Exemple :
J'ai le modèle suivant :
---------------------------
Groupe 1
Ligne 1 - 4
Ligne 2 - 6
Ligne 3 - 5
Groupe 2
Ligne 1 - 9
Ligne 2 - 1
Et je voudrais avoir l'affichage suivant :
----------------------------------------------
Groupe 1
Ligne 1 - 4
Ligne 3 - 5
Ligne 2 - 6
Groupe 2
Ligne 1 - 9
Ligne 2 - 1
Or ce que j'ai pour l'instant en utilisant le tri c'est :
----------------------------------------------------------
Groupe 2
Ligne 2 - 1
Groupe 1
Ligne 1 - 4
Ligne 3 - 5
Ligne 2 - 6
Groupe 2
Ligne 1 - 9
Je ne cherche pas absolument à retrouver le premier résultat de tri mais c'est pour avoir une reponse face au client si il me demande pourquoi ce n'est pas facile à développer.
Merci d'avance pour vos réponses.
Hors ligne
Salut
il y a des sorts dans les DW et dans les groupes
Il faut les specifier ...
Hors ligne
Si tu veux trier par ordre ascendant dans le groupe 1, et par ordre descendant dans le groupe 2, la réponse est NON : ce n'est pas posssible.
Tu trie d'abord ta DW, puis tu lui applique les groupes
Hors ligne
JCZ a écrit:
Salut
il y a des sorts dans les DW et dans les groupes
Il faut les specifier ...
J'ai trouvé ça dans l'aide de PowerBuilder mais ça n'a pas eu d'effet
Sorting and groups To sort a DataWindow object with groups, call GroupCalc after you call Sort.
// On a toutes les options en main pour pouvoir finalement // lancer le tri dw_1.SetSort(ls_tri) dw_1.Sort() dw_1.SetRedraw(False) dw_1.GroupCalc() dw_1.ScrollToRow(row) dw_1.SetRedraw(True)
Hors ligne
Va sur le groupe de ta DW (entete ) et clic droit propriete il y a un 'group sort'
et mets les colonnes que tu veux ...
Hors ligne
JCZ a écrit:
Va sur le groupe de ta DW (entete ) et clic droit propriete il y a un 'group sort'
et mets les colonnes que tu veux ...
Je dois le faire dynamiquement le tri, c'est quand l'utilisateur double clique sur l'une des entetes que je lance un tri donc je vois pas trop l'utilité du 'group sort'.
Sauf si c'est pour prévenir la datawindow qu'on va surement lancer un tri sur les colonnes que l'on a choisi
Hors ligne
JCZ a écrit:
regarde ici
C'est peut etre cela que tu recherches
C'est un bon script du petit canard (manque un petit peu de commentaire tout de même et de la balise code=pb ) mais je ne pense pas qu'il convienne à mon problème.
Mon probleme c'est que je me retrouve vraiment avec des doublons de groupes comme dans l'exemple que j'ai donné en début de discussion (ceci même avec le GroupCalc)
Hors ligne
Nephtis a écrit:
C'est un bon script du petit canard (manque un petit peu de commentaire tout de même et de la balise code=pb :
c'est fait pour la balise code=pb (c'était un code antérieur à la mise en place de la coloration syntaxique)
Hors ligne
Sans les groupes les données sont bien triées ?
Il faut aussi parfois mettre plusieurs GroupCalc() (surtout pour les champs calculés)
Peux tu mettre la DW avec des données ( view , data puis clic droit insertrow )
ainsi que des exemples de ls_tri
Hors ligne
Je me permets de remonter ce sujet, car j'ai exactement le même soucis : je dois trier mes données à l'intérieur de mon groupe.
Lorsque j'indique - via le painter - un critère de tri sur mon groupe, il semblerait que le tri ne se fasse pas.
Edition : en revanche, via powerscript, ça semble fonctionner pas trop mal si je mets bien les GroupCalc().
idw_datawindow.SetSort("type_line ASC, compute_16 ASC")
idw_datawindow.Sort()
idw_datawindow.groupcalc()
Dès qu'il y a plusieurs rows retournés, ça ne fonctionne plus et j'ai des résultats étranges... Un peu comme si le tri s'appliquait à toute la datawindow et pas seulement aux contenus des groupes.
Dernière modification par Nyphel (03-11-2008 10:37:11)
Hors ligne
Il faut faire aussi attention a l'ordre de tri de la DW
Tu peux nous donner un exemple de données et de tri souhaité et obtenue
Hors ligne
Merci JCZ, grâce à ta remarque je me suis rendu compte qu'il y avait un tri sur ma datawindow, tri qui perturbait tout. Ça peut sembler tout bête, mais moi je ne l'avais pas remarqué dans la mesure où il y avait déjà un ORDER BY dans ma procédure stockée Oracle
Mon problème est donc résolu !
Hors ligne