Bonjour,
Je cherche à appliquer un masque d'affichage particulier sur un champ numérique, je souhaiterais que si l'on saisi 2,00 que cela affiche finalement 2 donc si en décimal ont à zéro ne pas afficher les décimales. Est-ce possible ?
Merci.
Bonjour,
Je cherche à appliquer un masque d'affichage particulier sur un champ numérique, je souhaiterais que si l'on saisi 2,00 que cela affiche finalement 2 donc si en décimal ont à zéro ne pas afficher les décimales. Est-ce possible ?
Merci.
Bon, j'ai trouvé une solution correct je pense
Dans le code de sortie de mon champ
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 SI ChaîneOccurrence(MoiMême, ".") = 0 ALORS MoiMême..MasqueAffichage = Remplace(MoiMême..MasqueSaisie, ",", "") SINON MoiMême..MasqueAffichage = MoiMême..MasqueSaisie FIN
Salut
une paire de petites choses...
- PartieDécimale sur la valeur à la place de la recherche de "."
- Une troncature à la place de la suppression de la virgule... qui crée un risque normalement non vérifié vu qu'on n'a pas de décimale
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 lc_Mask est une chaine = MoiMême..MasqueSaisie ln_Dec est un entier = Position(lc_Mask,",") // position du séparateur de décimale dans le masque (>1 pour avoir au moins une position en partie entière) SI PartieDécimale(Val(MoiMême)) = 0 _ET_ ln_dec>1 ALORS MoiMême..MasqueAffichage = lc_Mask[[A ln_dec-1]] // Coupe le masque au séparateur de décimale SINON MoiMême..MasqueAffichage = lc_Mask FIN
Bonjour,
R&B m'a coiffé au poteau pour PartieDécimale.
A priori, Modulo() pourrait également faire l'affaire.
Hemgé
Bonjour,
Merci pour votre participation
Pour PartieDécimale, ok c'est effectivement plus propre. Mais je ne comprend pas l'utilité de Position... ?
Re
Pour l'utilité de la "Position", voici un exemple
Avec un masque initial "999,999", dans ton traitement tu remplace le symbole décimal par rien ce qui donne le masque suivant "999999"
Cela fonctionne mais n'est pas exact.
En effet si on a dans le masque, un simple séparateur de millier ou n'importe quoi d'autre (devise devant ou après la valeur) on va avoir
"999 999,99999" qui devient "999 99999999"... et donc 123456 qui s'affichait "123 456,00000" devient "123456"
Alors qu'avec une troncature sur le séparateur de décimale (sur la base de sa position), on va avoir :
"999 999,99999" -> "999 999" (on a pris ce qui précédait le séparateur) et donc 123456 qui s'affichait "123 456,00000" devient "123 456"
CQFD
Je te laisse interpréter dans le masque les autres caractère selon le masque de départ (monétaires etc etc)
Bon courage.
Partager