Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Bonjour,
Je crée dynamiquement une colonne de type editmask dans une datawindow.
Mon soucis est que par exemple je veux que mon masque soit de type #0.##, lorsque le champs est crée à l'affichage j'obtiens 0, de plus le 0 est enregistré en base.
Hors ligne
tu ne remplirais pas 0 par defaut ?
au pire des cas, tu attribues un NULL
Hors ligne
Voici mon masque : #0,##;-#0,##;0;null
Le problème c'est que je ne veux pas que ça m'enregistre 0 en base si initialement il n'y a pas de valeur.
Et je veux que dans la colonne le format affiché soit 0,0.
Hors ligne
T'es sûre que tu parles bien d'un masque d'editMask là? Pas d'un display format par hasard...?
Sinon, vérifies ce que te dit Pick: n'as tu pas mis 0 comme valeur par défaut de ta colonne?
Hors ligne
Bonjour,
Attention, la virgule est le séparateur des milliers, le point est le séparateur décimal dans PB (ne tient pas compte des préférences régionales de la machine).
Si tu veux afficher 0,0 dans la colonne en l'absence de saisie avec saisie de la partie entière limité à 99 en saisie avec un chiffre significatif en partie décimale :
#0.0;-#0.0
Hors ligne
Je crée une colonne avec un mask dans une datawindow. Et non il n'y a pas de valeur par défaut.
ls_chaine = "column(" + & " band=detail" + & " id=" + st_zone.id + & " color='" + st_zone.color_text + "'" + & " background.color='" + st_zone.color_background + "'" + & " background.mode='" + st_zone.background_mode + "'" + & " height='" + st_zone.height + "'" + & " tabsequence=" + st_zone.tabsequence + & " width='" + st_zone.width + "'" + & " x='" + st_zone.x + "'" + & " y='" + st_zone.y + "'" + & " name=" + st_zone.name + & " alignment='" + st_zone.alignment + "'" + & " format='[general]'" + & " font.face=" + st_zone.fontface + & " font.height=" + st_zone.fontheight + & " font.weight='" + st_zone.weight + "'" + & " font.family='2'" + & " font.pitch='2'" + & " font.charset='0'" ls_chaine += " border='" + st_zone.border + "'" + & " format='#0,## '" + & " editmask.mask=''#0,## ;-'#0,##;0;null'" + & " editmask.focusrectangle=no" ls_chaine += " ) ~r~n"
Et ensuite j'applique un modify de ma chaîne
Hors ligne
bonjour djeckelle,
comme te l'a dis Buck, la virgule est le séparateur des milliers, il faut donc mettre un point dans ton editmask
ls_chaine = "column(" + & " band=detail" + & " id=" + st_zone.id + & " color='" + st_zone.color_text + "'" + & " background.color='" + st_zone.color_background + "'" + & " background.mode='" + st_zone.background_mode + "'" + & " height='" + st_zone.height + "'" + & " tabsequence=" + st_zone.tabsequence + & " width='" + st_zone.width + "'" + & " x='" + st_zone.x + "'" + & " y='" + st_zone.y + "'" + & " name=" + st_zone.name + & " alignment='" + st_zone.alignment + "'" + & " format='[general]'" + & " font.face=" + st_zone.fontface + & " font.height=" + st_zone.fontheight + & " font.weight='" + st_zone.weight + "'" + & " font.family='2'" + & " font.pitch='2'" + & " font.charset='0'" ls_chaine += " border='" + st_zone.border + "'" + & " format='#0.## '" + & " editmask.mask=''#0.## ;-'#0.##;0;null'" + & " editmask.focusrectangle=no" ls_chaine += " ) ~r~n"
Tu peux peut être utiliser la propriété format de ta colonne. L'inconvénéant est qu'elle ne guidera pas l'utilisateur lors de sa saisie, mais elle ne mettra pas non plus de valeur par défaut si l'utilisateur ne passe pas dedans.
Hors ligne