Le forum (ô combien francophone) des utilisateurs de Powerbuilder.




Hors ligne
essayes par Visible non visible...

Hors ligne




dw_comptes.object.b_secu.enabled = false
j'ai essayé avec ca et ca me désactive les deux bontons sécurisation alors que je voudrais n'en désactiver qu'un.
Hors ligne











La propriété Enabled d'un bouton n'est pas gérable avec une expression au niveau d'une datawindow. Il vaut mieux que tu utilises la propriété "visible" et que tu codes une expression à son niveau en fonction des critères que tu souhaites.
Hors ligne
ok, sur pb7, ENABLED n'existe pas...
sous pb11, ok.
donc,
dw_comptes.Modify("b_secu.Enabled ='No'")

Hors ligne




Hors ligne














il faut passer par une colonne invisible virtuelle que tu modifies par SetItem pour chaque ligne
tu mets la propriété enabled du bouton en expression conditionnelle sur cette colonne
Hors ligne
dans quel cas le bouton doit etre enabled ?

Hors ligne











...d'où mon post. Avec ce code, tu ne peux pas préciser sur quelle ligne tu souhaites désactiver le bouton "sécurisation". Avec la propriété "Visible", tu peux coder une expression te permettant de gérer cette notion de ligne (Par exemple en te basant sur la valeur d'un champ de ta datawindow que tu fais varier ligne à ligne)
Hors ligne




un fait, j'ai une requete qui retourne un resultat et en fonction de ce resultat le bouton doit etre actif ou pas
Hors ligne











Pour info, en PB10, il ne semble pas possible de mettre d'expression conditionnelle sur la propriété "Enable" d'un champ (option non accessible).
Hors ligne
d'ou mon post du visible pas visible....

Hors ligne




mon probleme n'est pas l'expression conditionnelle, mon soucis et d'arriver a accéder aux propriétés d'un bouton situé sur une ligne d'une datawindow
Hors ligne














erasorz a écrit:
il faut passer par une colonne invisible virtuelle que tu modifies par SetItem pour chaque ligne
tu mets la propriété enabled du bouton en expression conditionnelle sur cette colonne
tu ajoutes une colonne "virtuelle" de type number dans ta requête
tu mets visible du bouton = la valeur de cette colonne
ensuite en script il te suffit de faire un SetItem( n°de ligne, 'la_colonne_virtuelle', 0 ou 1 )
si c'est le résultat d'une fonction SQL tu peux même éventuellement l'appeler directement dans le SQL de la DW et en faire ta colonne qui décidera de la visibilité du bouton
Hors ligne






Bonjour,
moi aussi, j'utilise ce genre de petites astuces, à savoir utiliser un champs de type numérique afin de gérer un affichage (mettre en caractère gras ou en couleur, rendre invisible une données ...)
Ensuite on fixe une valeur 0 pour visible et 1 pour invisible, puis tu mets une condition "IF" dans la propriété
visible de ton bouton.
De là, tu peux gérer à ta guise l'affichage de ta DW.
Hors ligne








Bonjour,
Pourquoi ne pas créer un poste dans la section astuce pour décrire ceci ?

Hors ligne


Bonjour,
Il n'y a pas de condition pour la propriété enabled des boutons dans une datawindow.
Afin d'avoir un affichage s'y rapprochant, tu peux créer deux boutons similaires que tu superposes.
L'un enabled = TRUE l'autre enabled = FALSE.
Ensuite, il suffit de gérer la condition de visibilité comme tu le souhaites sur ton bouton enabled = TRUE.
Sur l'autre bouton, tu pourras te contenter d'une condition en fonction du .visible du premier bouton.
De cette manière, tu auras bien l'affichage correspondant à ce que tu veux.
Hors ligne
Dans la propriété visible de ton bouton tu peux coder la fonction suivante :
if( ma_colonne_contenant_ la_valeur_a_tester = valeur_pour_visible, 1, 0)
exemple :
if(id_mandat = 2, 1, 0)
Cette fonction sera évaluée pour chaque ligne de ta datawindow. Si la colonne "ma_colonne_contenant_ la_valeur_a_tester" a la valeur "valeur_pour_visible" alors le bouton sera visible, sinon il ne le sera pas. A toi de déterminer quelle colonne est ta colonne contenant la vakleur à tester et quelle valeur tester.
Hors ligne