Après windows pour les nuls, voici PB pour les bons (ou presque).

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 22-08-2007 14:27:13

Mr Pink Eyes  
Power Excel
Award: bf
Lieu: Helsinki
Date d'inscription: 14-06-2007
Messages: 226
Pépites: 10,800
Banque: 24,007,877,677,213

[RESOLU] Coloriage de ligne de DW

Bonjour!

Voià, j'aimerais pouvoir changer la couleur d'une ligne d'une datawindow si son paramètre Truc est différent de celui de la ligne précédente. Le problème c'est que je sais pas trop comment m'y prendre.

Il m'avait sembler avoir vu un topic un peu dans le même genre sur pbadonf mais après recherche, ça ne semble pas correspondre avec mes besoins.

Je pensais mettre une sorte de

Code: pb

if(not(truc[row]=truc[row-1]),rgb(x,y,z),rbg(x2,y2,z2))

mais je sais pas où le mettre ni comment sont vraiment gerer les couleurs (car il faudra que je récupère aussi la couleur de la ligne précédente).

Merci de m'éclairer un peu

Gros bisoux

Dernière modification par Mr Pink Eyes (22-08-2007 15:28:52)


http://www.blagoticone.com/avatar/animes/017.gif

Hors ligne

 

#2 22-08-2007 14:33:47

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] Coloriage de ligne de DW

Dans la propriété "Background color" de chacune de tes colonnes


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

Hors ligne

 

#3 22-08-2007 14:37:43

Mr Pink Eyes  
Power Excel
Award: bf
Lieu: Helsinki
Date d'inscription: 14-06-2007
Messages: 226
Pépites: 10,800
Banque: 24,007,877,677,213

Re: [RESOLU] Coloriage de ligne de DW

Okay, merci!

Et pour récuperer la couleur d'une autre ligne ?


http://www.blagoticone.com/avatar/animes/017.gif

Hors ligne

 

#4 22-08-2007 14:41:52

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

Re: [RESOLU] Coloriage de ligne de DW

Mr Pink Eyes a écrit:

Okay, merci!

Et pour récuperer la couleur d'une autre ligne ?

Méthode de sioux (Y'en a d'autres peut-être plus belles, mais bon): ajouter un champ compute caché dans lequel tu codes l'expression suivante:

Code: pb

if(not(truc[row]=truc[row-1]),"rgb(x,y,z)","rbg(x2,y2,z2)")


Ensuite, tu récupères pour ta ligne l'expression affichée dans la compute
=> Tu as ta couleur


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

Hors ligne

 

#5 22-08-2007 14:43:26

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] Coloriage de ligne de DW

Aarghhhhhhhhhhhh !
Tu peux pas faire autrement ?

Genre if(mod (getrow(),2))=0, , ) ?


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

Hors ligne

 

#6 22-08-2007 14:46:05

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

Re: [RESOLU] Coloriage de ligne de DW

shahin a écrit:

Aarghhhhhhhhhhhh !
Tu peux pas faire autrement ?

Genre if(mod (getrow(),2))=0, , ) ?

Arf! celle-ci sera mieux effectivement.
A force de chercher des trucs tordus pour faire tourner NS-DK, je raconte n'importe nawak
C'est mon tour!


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

Hors ligne

 

#7 22-08-2007 14:47:46

Mr Pink Eyes  
Power Excel
Award: bf
Lieu: Helsinki
Date d'inscription: 14-06-2007
Messages: 226
Pépites: 10,800
Banque: 24,007,877,677,213

Re: [RESOLU] Coloriage de ligne de DW

:\ en fait disons que je veux faire un coup bleu, un coup vert. Donc faut que je sache si je dois changer du vert au bleu ou du bleu au vert. Et là je vois pas trop comment y arriver avec ta méthode...


http://www.blagoticone.com/avatar/animes/017.gif

Hors ligne

 

#8 22-08-2007 14:48:43

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

Re: [RESOLU] Coloriage de ligne de DW

il me semblait qu'il fallait mettre la position relative, dans ton cas : column_name[-1]
cela ne fonctionne pas avec les computes, uniquement les colonnes

par contre si c'est simplement pour alterner : effectivement avec un modulo de 2 (ou plus) et getrow()


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

Hors ligne

 

#9 22-08-2007 14:50:18

Mr Pink Eyes  
Power Excel
Award: bf
Lieu: Helsinki
Date d'inscription: 14-06-2007
Messages: 226
Pépites: 10,800
Banque: 24,007,877,677,213

Re: [RESOLU] Coloriage de ligne de DW

eRaSorZ a écrit:

il me semblait qu'il fallait mettre la position relative, dans ton cas : column_name[-1]
cela ne fonctionne pas avec les computes, uniquement les colonnes

Ouais, exactement. En fait le changement de couleur se fait en fonction de l'égalité ou non d'une colonne par rapport à la ligne précédente.

Dernière modification par Mr Pink Eyes (22-08-2007 14:50:48)


http://www.blagoticone.com/avatar/animes/017.gif

Hors ligne

 

#10 22-08-2007 14:55:21

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

Re: [RESOLU] Coloriage de ligne de DW

Y'a pas, il va falloir que tu te palluches un script de mise à jour de ta dw.
Il faut reprendre l'idée du champ caché, mais qui peut prendre 3 valeurs
(exemple: 1 = Pas de couleur,
                2 = bleu,
                3 = vert )
Dans l'expression de ton backgroundcolor, tu testes la valeur du champ, et tu appliques le RGB qui va bien.
Et dans ton script de mise à jour de ta dw, tu mets à jour la valeur du champ caché en fonction:
- De la valeur de "truc" courant et de "truc" de la ligne précédente
- Et de la valeur de ton champ caché de la dernière ligne précédente pour laquelle tu as affiché bleu ou vert


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

Hors ligne

 

#11 22-08-2007 15:04:48

Mr Pink Eyes  
Power Excel
Award: bf
Lieu: Helsinki
Date d'inscription: 14-06-2007
Messages: 226
Pépites: 10,800
Banque: 24,007,877,677,213

Re: [RESOLU] Coloriage de ligne de DW

Okay, ça me va comme idée. C'est ce que j'avais grosso-modo en tête mais je voulais savoir si on pouvait passer par les priopriétés des champs.

Comment on récupère une ligne en Powerscript ? Un dw.Object.Row.Color ? un truc du genre ? J'ai encore un peu de mal avec les trucs dans le genre


http://www.blagoticone.com/avatar/animes/017.gif

Hors ligne

 

#12 22-08-2007 15:05:10

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,776,000
Site web

Re: [RESOLU] Coloriage de ligne de DW

Non, pas d'usine à gaz via powerscript !

la réponse de shahin est la bonne :

dans la propriété BackgroundColor de la ligne il faut simplement coder

if(mod(getrow(),2)=0, vert, bleu)

La fonction modulo retournera 0 une ligne sur deux, ce qui changera la couleur de tes lignes une ligne sur deux.


Tu dois donc tu peux (Kant)

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

Hors ligne

 

#13 22-08-2007 15:07:54

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

Re: [RESOLU] Coloriage de ligne de DW

Chrnico a écrit:

Non, la réponse de shahin est la bonne

dans la propriété BackgroundColor de la ligne il faut simplement coder

if(mod(getrow(),2)=0, vert, bleu)

La fonction modulo retournera 0 une ligne sur deux

Sauf que j'ai cru comprendre qu'il ne s'agissait pas d'avoir les lignes bleues ou vertes alternativement, mais:
Des lignes bleues tant que "truc" est identique, puis des lignes vertes, puis des lignes bleues etc...
Et là, c'est plus


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

Hors ligne

 

#14 22-08-2007 15:11:47

Mr Pink Eyes  
Power Excel
Award: bf
Lieu: Helsinki
Date d'inscription: 14-06-2007
Messages: 226
Pépites: 10,800
Banque: 24,007,877,677,213

Re: [RESOLU] Coloriage de ligne de DW

foon a écrit:

Chrnico a écrit:

Non, la réponse de shahin est la bonne

dans la propriété BackgroundColor de la ligne il faut simplement coder

if(mod(getrow(),2)=0, vert, bleu)

La fonction modulo retournera 0 une ligne sur deux

Sauf que j'ai cru comprendre qu'il ne s'agissait pas d'avoir les lignes bleues ou vertes alternativement, mais:
Des lignes bleues tant que "truc" est identique, puis des lignes vertes, puis des lignes bleues etc...
Et là, c'est plus

Exactement! Une ligne sur deux, je m'en serai sorti ^^


http://www.blagoticone.com/avatar/animes/017.gif

Hors ligne

 

#15 22-08-2007 15:12:18

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,776,000
Site web

Re: [RESOLU] Coloriage de ligne de DW

Dans ce cas, il faut faire un compute avec cumulativesum(if(toto=toto[-1],0,1)) et dans le Background if(mod(compute,2)=0, vert, bleu)


Tu dois donc tu peux (Kant)

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

Hors ligne

 

#16 22-08-2007 15:16:32

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

Re: [RESOLU] Coloriage de ligne de DW

Chrnico a écrit:

Dans ce cas, il faut faire un compute avec cumulativesum(if(toto=toto[-1],0,1)) et dans le Background if(mod(compute,2), vert, bleu)

Ca, ça devrait effectivement faire l'affaire. chrnico


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

Hors ligne

 

#17 22-08-2007 15:19:46

Mr Pink Eyes  
Power Excel
Award: bf
Lieu: Helsinki
Date d'inscription: 14-06-2007
Messages: 226
Pépites: 10,800
Banque: 24,007,877,677,213

Re: [RESOLU] Coloriage de ligne de DW

Chrnico a écrit:

Dans ce cas, il faut faire un compute avec cumulativesum(if(toto=toto[-1],0,1)) et dans le Background if(mod(compute,2), vert, bleu)

Le if(mod(compute,2), vert, bleu) ne lu iplait pas... TRU/FALSE Expression expected. Si en plus PB fait le difficile!

Edit : il suffisait de mettre if(mod(compute,2)=0, vert, bleu)! Merci Chrnico!!

Dernière modification par Mr Pink Eyes (22-08-2007 15:21:46)


http://www.blagoticone.com/avatar/animes/017.gif

Hors ligne

 

#18 22-08-2007 15:21:13

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,776,000
Site web

Re: [RESOLU] Coloriage de ligne de DW

=0

j'ai corrigé la ligne, va voir


Tu dois donc tu peux (Kant)

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

Hors ligne

 

#19 22-08-2007 15:22:06

Mr Pink Eyes  
Power Excel
Award: bf
Lieu: Helsinki
Date d'inscription: 14-06-2007
Messages: 226
Pépites: 10,800
Banque: 24,007,877,677,213

Re: [RESOLU] Coloriage de ligne de DW

Plus rapide que moi ^^


http://www.blagoticone.com/avatar/animes/017.gif

Hors ligne

 

#20 22-08-2007 15:28:22

Mr Pink Eyes  
Power Excel
Award: bf
Lieu: Helsinki
Date d'inscription: 14-06-2007
Messages: 226
Pépites: 10,800
Banque: 24,007,877,677,213

Re: [RESOLU] Coloriage de ligne de DW

Okay, tout marche impec'!

Distribution de pépites! (dans la limite du raisonnable ;))


http://www.blagoticone.com/avatar/animes/017.gif

Hors ligne

 

#21 22-08-2007 15:35:25

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

Re: [RESOLU] Coloriage de ligne de DW

Mr Pink Eyes a écrit:

Distribution de pépites! (dans la limite du raisonnable ;))

Pas pour moi: j'ai été archimauvais sur ce coup là (y'a que la question que j'ai bien pigé)
Cela dit, faire du PB sans PB c'est pas facile tous les jours...


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

Hors ligne

 

#22 22-08-2007 16:04:42

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] Coloriage de ligne de DW

foon a écrit:

Cela dit, faire du PB sans PB c'est pas facile tous les jours...

T'inquiète Foon, avec un peu de chance tu feras du VB 6 à la rentrée


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

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22