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 25-07-2007 08:34:11

Tron  
Membre Geek
Award: tron
Lieu: Antony
Date d'inscription: 25-07-2007
Messages: 35
Pépites: 1,419
Banque: 590,314,860,104

Expression de datawindow

Bonjour

Je dois déplacer des colonnes d’une datawindow suivant une condition. Je voudrais faire cela en utilisant une "expression" dans la propriété X de chaque colonne et écrire quelque chose qui ressemble à cela :

If ( macondition, x = x - 100, x )

Comment connaitre x?

J’ai essayé :

if ( macondition,
    long( describe( "maColonne.x"  ) ) - 100 ,
    long( describe( "maColonne.x"  ) )
)

Mais cela ne marche pas… long(describe( "maColonne.x" )) vaut toujours 0

Quelqun à une idée ?

Merci, Tron

Hors ligne

 

#2 25-07-2007 10:33:36

Tron  
Membre Geek
Award: tron
Lieu: Antony
Date d'inscription: 25-07-2007
Messages: 35
Pépites: 1,419
Banque: 590,314,860,104

Re: Expression de datawindow

Les expressions :

macolonne.x
ou
long( macolonne.x )

sont refusées par l'éditeur d'expression de Pb10.5 : "Expression is not valid"

Tron

Hors ligne

 

#3 25-07-2007 10:49:31

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

Re: Expression de datawindow

Salut et bienvenue,

Code: pb

long( describe( "Evaluate( 'maColonne.x'," + getrow() + ")"  ) )

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

Hors ligne

 

#4 25-07-2007 11:56:31

Tron  
Membre Geek
Award: tron
Lieu: Antony
Date d'inscription: 25-07-2007
Messages: 35
Pépites: 1,419
Banque: 590,314,860,104

Re: Expression de datawindow

L'expression est acceptée par l'éditeur, mais suite à un retrieve dans le préview, l'expression est considérée invalide et Pb plante ...

Tron

Hors ligne

 

#5 25-07-2007 13:54:11

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

Re: Expression de datawindow

en expression de DW ça doit être une sorte référence circulaire x=f(x)

il te reste la possibilité de faire ça via script (describe, modify)


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

Hors ligne

 

#6 25-07-2007 13:59:27

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

Re: Expression de datawindow

eRaSorZ a écrit:

il te reste la possibilité de faire ça via script (describe, modify)

ou de mettre ton x en dur ...
si x = 100  => if ( macondition, 0 ,  100)


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

Hors ligne

 

#7 25-07-2007 14:35:41

Tron  
Membre Geek
Award: tron
Lieu: Antony
Date d'inscription: 25-07-2007
Messages: 35
Pépites: 1,419
Banque: 590,314,860,104

Re: Expression de datawindow

C'est dommage, dans une expression, de ne pas pouvoir connaitre la valeur courante d'une propriété d'une datawindow...

Je vais utiliser le script ou des valeurs en dur...

Merci, Tron

Hors ligne

 

#8 25-07-2007 16:35:08

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: Expression de datawindow

ça ne répond pas à ta question, mais la propriété "Slide Left" d'une colonne de DW donne des réultats intéressants


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

Hors ligne

 

#9 26-07-2007 11:07:27

Tron  
Membre Geek
Award: tron
Lieu: Antony
Date d'inscription: 25-07-2007
Messages: 35
Pépites: 1,419
Banque: 590,314,860,104

Re: Expression de datawindow

Bonjour

Dans mon cas, la fonction describe( "macolonne.x" ) retourne une chaine du type "<Valeur par défaut > ~t <expression>".
On peut donc récupérer la valeur par défaut en faisant quelque chose comme :
mid( describe( "macolonne.x" ), 2, pos(describe( "macolonne.x" ), "~t") - 2)

Reste à trouver comment remplacer macolonne.x par quelque chose comme this.x pour que cela fonctionne quelque soit la colonne…

Tron

Dernière modification par Tron (26-07-2007 11:08:11)

Hors ligne

 

#10 20-08-2007 06:59:31

abdelta  
Bienfaitrice du site
Award: bf
Lieu: La Daguenière
Date d'inscription: 21-03-2007
Messages: 393
Pépites: 14,703
Banque: 9,223,372,036,854,776,000

Re: Expression de datawindow

Je ne sais pas si cette conversation est toujours d'actualité, mais ca me rapelle une question que j'avais posé il y a quelques temps.
On m'avait conseillé d'utiliser cette expression où ll_count est le numéro de ta colonne

Code: pb

ll_X = long( this.describe("#"+ string(ll_count) + ".X"))

Dernière modification par abdelta (20-08-2007 07:01:27)


La sirène noire
http://www.nerdtests.com/images/badge/bf1f6c78865210a9.gif

Hors ligne

 

#11 20-08-2007 09:35:51

Tron  
Membre Geek
Award: tron
Lieu: Antony
Date d'inscription: 25-07-2007
Messages: 35
Pépites: 1,419
Banque: 590,314,860,104

Re: Expression de datawindow

Bonjour

je me trompe peut-être, mais le code, que tu donnes, est placé dans dans le controle datawindow...

En fait, je voulais faire le déplacement de mes colonnes en utilisant une expression "générique" pour les colones concernées de ma DataWindow... quelque chose du genre : if  ( macondition, x - 100, x ) dans l'expression associée à la propriétée X des colonnes...

Sinon en PowerScript ça marche bien, mais c'est plus long..., et ca créer des dépendences avec toutes mes fenêtres utilisant cette dw...

A+, Tron

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22