Powerbuilder pour les completement Geeks !

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 20-08-2007 11:39:16

Nephtis  
Bienfaiteur du site
Award: bf
Lieu: Longjumeau
Date d'inscription: 29-06-2007
Messages: 665
Pépites: 17,189,873,958
Banque: 9,223,372,036,854,775,808

[RESOLU] Sum champ for group 1 ...

Bonjour,

J'ai un probleme pour faire un sous total dans ma datawindow. C'est une datawindow avec le style d'affichage Group.

J'ai donc en premier lieu un groupe d'éditeurs qui on chacun un groupe de titre (chque titre pouvant avoir differentes parutions).
Dans la partie détail j'affiche les détails concernant le titre mais j'ai aussi un champ calculé qui me permet de savoir si la ligne est selectionnée où non

Champ tot_nb

Code: pb

if (IsSelected (), 1, 0)


Dans l'application déjà existante il y avait déjà un total des lignes selectionnées avec un total d'autres champs liés aux lignes : j'avais donc x lignes selectionnées pour les editeurs A,B,C,...

Désormais il faut que je rajoute le nombre de lignes selectionnées par editeur. J'ai donc rajouté des champs calculés dans mon trailer group id_editeur.

Seulement celà ne fonctionne plus pour récupérer le nombre de lignes selectionnées pour un editeur :

Champ sous_tot_nb_sel : le nombre de ligne selectionnées par editeur

Code: pb

sum( tot_nb for group 1 )


Champ tot_nb_sel : le nombre de ligne selectionnées total

Code: pb

sum (tot_nb for all)



J'ai a chaque fois 0 pour le champ sous_tot_nb_sel alors que le champ tot_nb_sel s'incremente bien au fur et a mesure que je selectionne (décrémente si je deselectionne des lignes)

Je ne vois pas trop où est ce que j'aurais fait une erreur donc si vous pouvez m'aider ça serait super

Merci d'avance pour vos reponses

Dernière modification par Nephtis (20-08-2007 14:26:46)


Qui sème des problèmes, récolte des réponses.
PB 6.5 || ASE 12.5.4 || XP SP3

Hors ligne

 

#2 20-08-2007 12:09:56

JCZ  
Builder Power
Award: bf
Lieu: 75019 paris
Date d'inscription: 21-05-2007
Messages: 1724
Pépites: 496,453,703,213
Banque: 9,223,372,036,854,775,808

Re: [RESOLU] Sum champ for group 1 ...

Il faut peut etre un groupcalc() après chaque selection


Face à l'agression, la puissance de l'intelligence

Hors ligne

 

#3 20-08-2007 12:58:41

Nephtis  
Bienfaiteur du site
Award: bf
Lieu: Longjumeau
Date d'inscription: 29-06-2007
Messages: 665
Pépites: 17,189,873,958
Banque: 9,223,372,036,854,775,808

Re: [RESOLU] Sum champ for group 1 ...

Merci pour ta reponse, maintenant ça marche bien

Mais j'ai une autre question. Depuis que j'ai codé les groupCalc(), le focus sur la datawindow revient à la toute première ligne. Est ce qu'il existe un moyen de rester sur la ligne où on avait cliqué ou est ce qu'il faut que je code un truc dans le genre :

je recupère ma ligne
je fais mon groupCalc()
je me repositionne sur la ligne que j'ai récupéré


Qui sème des problèmes, récolte des réponses.
PB 6.5 || ASE 12.5.4 || XP SP3

Hors ligne

 

#4 20-08-2007 14:19:17

Chrnico  
N2I Power
Award: bf
Lieu: Vanves
Date d'inscription: 05-06-2007
Messages: 1206
Pépites: 12,884,901,943
Banque: 9,223,372,036,854,775,808
Site web

Re: [RESOLU] Sum champ for group 1 ...

Nephtis a écrit:

Merci pour ta reponse, maintenant ça marche bien

Mais j'ai une autre question. Depuis que j'ai codé les groupCalc(), le focus sur la datawindow revient à la toute première ligne. Est ce qu'il existe un moyen de rester sur la ligne où on avait cliqué ou est ce qu'il faut que je code un truc dans le genre :

je recupère ma ligne
je fais mon groupCalc()
je me repositionne sur la ligne que j'ai récupéré

Avec un dw.SetRedraw(False) avant et un dw.SetRedraw(True) après et ça devrait être pas mal.
Par contre à ta place j'utiliserais un find sur des champs clés sauvegardés avant pour me repositionner car même si l'ordre des lignes change tu sera toujours sur la bonne ligne...


Tu dois donc tu peux (Kant)

Tu peux donc tu dois (N2i)
www.n2i.fr

Hors ligne

 

#5 20-08-2007 14:23:29

Nephtis  
Bienfaiteur du site
Award: bf
Lieu: Longjumeau
Date d'inscription: 29-06-2007
Messages: 665
Pépites: 17,189,873,958
Banque: 9,223,372,036,854,775,808

Re: [RESOLU] Sum champ for group 1 ...

Ok je voyais souvent des SetRedraw() mais je savais pas trop à quoi ça servais (je teste ça demain parce que là je suis retourné sur un projet java)


Qui sème des problèmes, récolte des réponses.
PB 6.5 || ASE 12.5.4 || XP SP3

Hors ligne

 

#6 21-08-2007 09:44:31

Nephtis  
Bienfaiteur du site
Award: bf
Lieu: Longjumeau
Date d'inscription: 29-06-2007
Messages: 665
Pépites: 17,189,873,958
Banque: 9,223,372,036,854,775,808

Re: [RESOLU] Sum champ for group 1 ...

J'ai codé ce script à la fin de mon évenement mais le curseur remonte toujours sur la première ligne :

Code: pb

dw_1.SetRedraw(False)
dw_1.GroupCalc()
dw_1.SetRedraw(True)


Est ce que j'ai fait une erreur?


Qui sème des problèmes, récolte des réponses.
PB 6.5 || ASE 12.5.4 || XP SP3

Hors ligne

 

#7 21-08-2007 09:46:07

foon  
N2iGeek + MangasGeek = foon
Award: bf
Lieu: Bonchamp-Lès-Laval
Date d'inscription: 28-02-2007
Messages: 2493
Pépites: 106
Banque: 9,223,372,036,854,775,808

Re: [RESOLU] Sum champ for group 1 ...

Bonjour,

Tu as juste oublié de te re-positionner sur ta ligne avant de faire le SetRedraw(True)


Seuls ceux qui ne font rien ne font jamais d'erreurs
http://www.nerdtests.com/images/badge/163124fb7fb459a3.gif

Hors ligne

 

#8 21-08-2007 09:54:42

Nephtis  
Bienfaiteur du site
Award: bf
Lieu: Longjumeau
Date d'inscription: 29-06-2007
Messages: 665
Pépites: 17,189,873,958
Banque: 9,223,372,036,854,775,808

Re: [RESOLU] Sum champ for group 1 ...

Ben au final je m'en sors avec le code suivant

Code: pb

dw_1.SetRedraw(False)
dw_1.GroupCalc()
dw_1.SetRedraw(True)

dw_1.ScrollToRow(row)


Dans l'évenement clicked c'est assez simple de retrouver la ligne sur laquelle on se trouve

J'avais testé sans les SetRedraw mais ça génère un petit cliping, pas génant mais qui au final sera assez désagréable (surtout pour deux lignes de code)

Dernière modification par Nephtis (21-08-2007 09:55:53)


Qui sème des problèmes, récolte des réponses.
PB 6.5 || ASE 12.5.4 || XP SP3

Hors ligne

 

#9 21-08-2007 09:56:32

foon  
N2iGeek + MangasGeek = foon
Award: bf
Lieu: Bonchamp-Lès-Laval
Date d'inscription: 28-02-2007
Messages: 2493
Pépites: 106
Banque: 9,223,372,036,854,775,808

Re: [RESOLU] Sum champ for group 1 ...

Par contre, si tu veux éviter que l'utilisateur ne voit que le curseur se déplace, il vaut mieux coder:

Code: pb

dw_1.SetRedraw(False)
dw_1.GroupCalc()
dw_1.ScrollToRow(row)
dw_1.SetRedraw(True)

Seuls ceux qui ne font rien ne font jamais d'erreurs
http://www.nerdtests.com/images/badge/163124fb7fb459a3.gif

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22