Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
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
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
Salut et bienvenue,
long( describe( "Evaluate( 'maColonne.x'," + getrow() + ")" ) )
Hors ligne
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
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)
Hors ligne
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)
Hors ligne
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
ça ne répond pas à ta question, mais la propriété "Slide Left" d'une colonne de DW donne des réultats intéressants
Hors ligne
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
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
ll_X = long( this.describe("#"+ string(ll_count) + ".X"))
Dernière modification par abdelta (20-08-2007 07:01:27)
Hors ligne
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