Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Bonsoir,
J'ai une fenêtre, je doubleclic sur une ligne qui permet de faire un open d'une autre fenêtre avec une datawindow contenant 30 champs :
et en fonction de la valeur d'un flag : flag_remise :s'il est à oui je dois mettre la datawindow à readonly sauf un champ qui est le commentaire
Alors pour éviter de passer en revue tous les champs, j'ai mis le code suivant :
Si flag_remise = 'O' alors
je mets la dw_1 à readonly = 'yes'
et ensuite j'utilise settaborder ('commentaire' , 50) pour rendre le champ commentaire accessible
fin si
le résultat me donne la datawindow en lecture seulement et mon champ commentaire est inaccessible
Auriez-vous une idée qui me permettra de rendre le champ accessible ?
Merci
Hors ligne
oui le problème ici c'est que toute ta dw est inaccessible, je vais regarder ca
si le flag est à non il se passe quoi ?
Hors ligne
Salut,
et si tu mettais la dw accessible avec tous les taborder à zéro sauf celui du commentaire ?
Hors ligne
je pensais à ca mais ce qui l'embete peut etre c'est qu'il y ait 30 champs dont il doit modifier le taborder.
Hors ligne
si le flag est à non la dw est accessible, mais mon souci c'est le flag à oui, et justement c'est pour éviter de modifier tous les autres champs.
Merci
Hors ligne
tu peux utiliser la propriété protect pour protéger toutes les colonnes de la datawindow sauf le champ commentaire :
string ls_column_name integer i FOR i = 1 to integer( dw_1.Object.DataWindow.Column.Count) ls_column_name = dw_1.Describe( "#" + string(i) + ".name" ) if ls_column_name = 'commentaire' then dw_1.Modify(ls_column_name +".Protect=0") else dw_1.Modify(ls_column_name +".Protect=1") end if NEXT
seule la colonne commentaire sera alors modifiable.
(tu peux utiliser la même méthode pour modifier le taborder ...., l'intérêt du code ci-dessus est que tu ne "nommes" pas les colonnes une par une )
Hors ligne
oui exact bien joué
Hors ligne
Salut,
Bravo INFERNI ça marche, bien joué
Merci à tous
Hors ligne