PB à toute heure et à tout moment. (à parcourir avec modération)

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 06-08-2010 12:33:38

Curios  
Membre Geek
Date d'inscription: 27-04-2007
Messages: 24
Pépites: 149
Banque: 0

[RESOLU] Faire un "group" dynamique à plusieurs champs

Bonjour,
j'ai une datawindow avec un group. Pouvons nous modifier par un bout de code les champs qui constituent mon groupe.
En clair dans ma datawindow j'ai dans le champ "group definition" as_champs1, je voudrais en appuyant sur un bouton changer cette définition par as_champs1, as_champs2.

J'ai analysé la source de ma datawindow et le champs est répertorié comme

Code:

group(level=1 header.height=0 trailer.height=0 by=("champs1" )

J'ai cherché sur le forum et sur l'aide pb mais je n'ai rien trouvé, je ne dois pas connaître le champ exact.
Merci d'avance.

PB 9.0.3 sous windows XP
Oracle 10G

Dernière modification par Curios (06-08-2010 13:42:14)

Hors ligne

 

#2 06-08-2010 12:55:11

shahin  
Modérateur
Award: bf
Lieu: val de marne
Date d'inscription: 26-09-2006
Messages: 938
Pépites: 8,675,050,269
Banque: 16,218,225,127,617

Re: [RESOLU] Faire un "group" dynamique à plusieurs champs

pas sûr que ce soit possible.
Pourquoi tu veux faire ça ?

Parfois, quand tu veux faire un truc trpo compliqué, il vaut mieux tout remettre à plat


never let people work on more than one thing at once.

Hors ligne

 

#3 06-08-2010 13:02:27

Curios  
Membre Geek
Date d'inscription: 27-04-2007
Messages: 24
Pépites: 149
Banque: 0

Re: [RESOLU] Faire un "group" dynamique à plusieurs champs

Le but est de faire une statistique dynamique.
Exemple :
J'ai un nombre de ventes par magasins et vendeurs.
Je voudrais avoir la possibilité avec une même stat de ressortir le nombre de vente par magasin ou par vendeur ou (par magasin et par vendeur).
Le nombre de champs à utiliser n'est pas prédéfini à l'avance.

J'ai une solution en créant un compute_field par champs à mettre dans mon group mais dans mon cas il faut au minimum que je créé 4 computefield. Ensuite j'ai juste à mettre dans mon code compute_field1 = as_magasin, compute_field2 = as_vendeur et faire un groupcalc().

Hors ligne

 

#4 06-08-2010 13:03:50

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: [RESOLU] Faire un "group" dynamique à plusieurs champs

Tu peux faire un computed field dont l'expression est as_champs1 et grouper par ce computed.
Ensuite tu change dynamiquement l'expression du compute par champs1+champs2, sans oublier de refaire un groupcalc() et un sort().

NB :


Edit : tu as posté entretemps un msg avec les computed...


N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

#5 06-08-2010 13:14:22

Yanis  
Modérateur
Lieu: paris
Date d'inscription: 16-06-2010
Messages: 349
Pépites: 665
Banque: 150

Re: [RESOLU] Faire un "group" dynamique à plusieurs champs

Salut,

     La manipulation directe du GROUP est impossible. ( il n'existe pas de fonction ou de propriété pour les manipuler )

      La seule méthode ( un peu bidouille) est de récupérer la syntaxe de ta datawindow et de modifier la chaine correspondant au groupe

Code: PB

String ls_syntax 
string ls_error

dw_1.Describe("Datawindow.Syntax" )
// Ajouter le code de recherche dans la chaine ls_syntax pour trouver la position du group 
//remplacer par ce que tu veut
...
...
// puis recréer la datawindow avec la nouvelle syntaxe que tu as modifier
dw_2.Create( ls_syntax, ls_error)


NB : Attention si tu change le nombre de colonne dans ton group n'oubli pas de modifier l'ordre de tri de ta datawindow

cdt
Yanis

Dernière modification par Yanis (06-08-2010 13:15:36)

Hors ligne

 

#6 06-08-2010 13:41:35

Curios  
Membre Geek
Date d'inscription: 27-04-2007
Messages: 24
Pépites: 149
Banque: 0

Re: [RESOLU] Faire un "group" dynamique à plusieurs champs

Merci les gars, je valide la discussion comme résolue.
Je vais essayer de modifier la datawindow syntax pour voir ce que ça donne.

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22