|
Formatter des numériques |
|
Animateur WDF
Inscrit: 26/06/2002 16:24
De wdforge.org
Post(s): 2822
|
Existe-t il une ressource qui formatte les numériques en chaînes qui permette la saisie du format final.
Je dois produire une interface utilisateur qui paramètre numériqueverschaine, mais l'idéal fut qu'il puisse saisir directement le format désiré. L'objectif étant d'apporter à l'utilisateur la plus grande facilité d'utilisation. Exemple valeur entrée : "1123456,789" format "-999 999 999.99" résultat : " -1 123 456.79"
Pour l'instant j'ai réussi en proposant un ensemble plus ou moins lisible de cases à cocher et champs de saisie pour définit la chaine de paramètre qui me sert dans NumeriqueVersChaine. Je suis donc loin de la simple saisie du format désiré.
Attention, il y a toutefois un ecceuil : NumeriqueversChaine utilise le séparateur de millier de Windows et ne permet donc pas un formattage paramétrable de cela?
Bien cordialement
Contribution le : 30/05/2007 10:05
Edité par R&B sur 30/5/2007 16:17:31
|
|
|
Re: Formatter des numériques |
|
ChefDeProjet WDF
Inscrit: 02/05/2006 21:28
Post(s): 160
|
je ne comprends pas trop ton "écueil": si dans ton masque de format tu mets une "," WD le traite bien
NumériqueVersChaîne(12345.5, "10,2fS") // Renvoie " 12 345,50" (le séparateur décimal est une ",")
Contribution le : 30/05/2007 20:17
|
|
|
Re: Formatter des numériques |
|
Animateur WDF
Inscrit: 19/01/2004 13:48
De www.sigmasys.fr
Post(s): 988
|
Bonjour Romu, Voici le code qu'il te faut (Fait et testé ce soir ):
chFormat est une chaîne = "-999 999 999.99" //Chaîne utilisée pour le formatage
chChiffreSaisies est une chaîne = "1123456,789423" //Chaîne passée en paramètre
chResultat est une chaîne = ""
i est un entier
eTaille est un entier
eTailleFormat est un entier = Taille(chFormat)
//*** Calcul du nombre de chiffre après la virgule ***//
eNbChiffresApresVirgule est un entier = ChaîneOccurrence( ExtraitChaîne(Remplace(chFormat,",","."), 1, ".",DepuisFin), "9")
bCaractereSeparationUtilise est un booléen = Faux //Permet de savoir si le caractère de séparation a déjà été utilisé
//*** On remplace les espaces saisie dans les chiffres passés en paramètre ***//
chChiffreSaisies = Remplace(chChiffreSaisies," ","")
//*** On remplace une éventuelle virgule dans les chiffres saisies ***//
chChiffreSaisies = Remplace(chChiffreSaisies,",",".")
SI eNbChiffresApresVirgule=0 ALORS
chChiffreSaisies = PartieEntière( Val(chChiffreSaisies) )
SINON
chChiffreSaisies = ExtraitChaîne(chChiffreSaisies, 1, ".") + "." + Gauche(ExtraitChaîne(chChiffreSaisies,2,"."), eNbChiffresApresVirgule)
FIN
eTaille = Taille(chChiffreSaisies)
//*** Parcours de la chaine format depuis la fin de la chaîne ***//
POUR i=eTailleFormat A 1 PAS -1
SI chFormat[[ i ]]="9" ALORS
//*** Si le format correspond à un chiffre on l'ajoute au résultat ****//
chResultat = chChiffreSaisies[[ eTaille ]] + chResultat
eTaille--
SI eTaille=0 ALORS
SORTIR
FIN
SINON
//*** Le caractère a rajouter au résultat n'est pas numérique ***//
chResultat = chFormat[[ i ]] + chResultat
SI (chFormat[[ i ]]="." _OU_ chFormat[[ i ]]=",") _ET_ PAS bCaractereSeparationUtilise ALORS
//*** Si le caractère est un séparateur . ou , ***//
eTaille--
bCaractereSeparationUtilise = Vrai
FIN
FIN
FIN
SI Gauche(chFormat,1)<>"9" ALORS
//*** On rajoute le caractère signe si présent ***//
chResultat = Gauche(chFormat,1) + chResultat
FIN
Info(chResultat)
Bon dév., Totof
Contribution le : 30/05/2007 22:17
|
|
|
Re: Formatter des numériques |
|
Animateur WDF
Inscrit: 26/06/2002 16:24
De wdforge.org
Post(s): 2822
|
Merci Totof et désolé pour WD3000 qui devrais relire (je parle du séparateur de MILLIER).
Contribution le : 31/05/2007 13:23
|
|
Vous ne pouvez pas débuter de nouveaux sujets.
Vous pouvez voir les sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.
|
Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
|