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 03-07-2008 13:58:09

Nyphel  
Membre Power Geek
Lieu: Grenoble
Date d'inscription: 06-05-2008
Messages: 253
Pépites: 12
Banque: 529,705,333,097,693

Datawindow colum avec un EditMask : problème de 0

Bonjour,

Je suis confronté à un étrange problème que je ne parviens pas à résoudre.
J'ai une datawindow sans procedure : elle sert uniquement à récolter des données. Dans cette dernière il y a une colonne qui est visible comme un champ de saisie.

Ce champ correspond à un montant, donc je veux lui appliquer les règles suivantes :
- si le champ est vide, il prend 0
- si le champ vaut 0, il reste à 0
- la valeur peut-être positive ou négative
- la valeur tient sur 5 chiffres

Exemples :
10
0
99999
-555

Via le painter, je vais dans l'onglet 'Edit' du champ.
La propriété 'Style type' prend 'EditMask'
La propriété 'Mask' prend '####0'

Tout fonctionne parfaitement, sauf dans un cas très particulier :
- si l'utilisateur supprimer le contenu du champ avec les touches backspace ou del, il prend 0 (c'est bien ce que je souhaite)
- si l'utilisateur saisi tout le contenu du champ avec sa souris (surligne en bleu) et entre le chiffre 0, puis qu'il valide en cliquant ailleurs, alors le champ reprend sa valeur précédente o_O

J'ai été regardé mes itemchanged() et itemfocuschanged() events, mais le retour à la valeur précédente se fait avant qu'ils ne soient déclenchés. C'est bien le masque qui pose soucis.
J'ai testé le masque '#####' mais ca ne me convient pas : si l'utilisateur n'entre pas de valeur, alors le champ reste vide et ne prend pas la valeur 0. Par contre je peux alors lui specifier un format du type "##,##0;##,##0;##,##0;##,##0". Cela fonctionne mais dès que mon champ reprend le focus, alors il devient à nouveau vide.

Voyez-vous une solution, notamment par un masque ?

Merci pour vos conseils.

Dernière modification par Nyphel (03-07-2008 17:28:54)

Hors ligne

 

#2 03-07-2008 17:54:22

pick ouic  
La bourse ou la vie ^^
Award: gearotter
Lieu: Massy-Verrières
Date d'inscription: 30-05-2006
Messages: 4685
Pépites: 1,025
Banque: 2,147,483,647
Site web

Re: Datawindow colum avec un EditMask : problème de 0

salut,
c'est pas une histoire d'acceptext() ca ?


Connaitre son ignorance est une grande part de la connaissance.
http://animegifs.free.fr/anime/mazinger/mazinger.gif

Hors ligne

 

#3 03-07-2008 18:35:07

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: Datawindow colum avec un EditMask : problème de 0

DW externe alors ?
Quelle est le type de données de ta colonne ?
Numérique ?


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

Hors ligne

 

#4 04-07-2008 08:34:25

Nyphel  
Membre Power Geek
Lieu: Grenoble
Date d'inscription: 06-05-2008
Messages: 253
Pépites: 12
Banque: 529,705,333,097,693

Re: Datawindow colum avec un EditMask : problème de 0

Oui en effet j'ai une sheet dans laquelle je place cette datawindow.

Le type de mes données est bien numérique. (J'ai testé avec un type nummber et un decimal (2))

Je précise aussi que ca ne survient que lorsque je surligne et que je tappe le chiffre 0. Si je tappe un autre chiffre (1-9) alors ca fonctionne correctement, et le chiffre restera bien affiché dans mon champ.

Dernière modification par Nyphel (04-07-2008 08:40:55)

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22