Formations web et création graphique - Formatage de prix…

Fermer



Connexion

Formatage de prix…

Ben pourquoi les softs ne le font pas?

C'est vrai, la plupart des applications prévoient un formatage des prix (comme d'autres numérotations d'ailleurs : tél, codes postaux etc). Mais ce formatage est assez basique. Vous pouvez en général juste déterminer un nombre de décimales et un séparateur pour les milliers.

Voici la mésaventure de Flora qui devait récupérer des prix pour un catalogue de vins, fusionnés avec XData et préparés avec Filemaker (qui nous sauve pas mal de coups).

Les prix devaient être formatés comme suit :

  1. quand il n'y a pas de décimales on ne veut pas les voir : 100 € ne doit pas devenir 100,00 €
  2. quand il y a une décimale on doit avoir le zéro qui suit : 100,1 € doit devenir 100,10 €
  3. bien entendu les milliers doivent être séparés par un espace.

Du coup, pas question de formater basiquement, car si on demande 2 décimales le cas 1 n'est pas satisfait, etc…

Voici la façon dont nous avons procédé. Ce n'est peut-être pas la meilleure, mais au moins elle marche. En tous cas pour la plage de prix entre 1 et 10.000 € (Flora ne vend pas de vins de moins d'1 €)

Nous avons utilisé la fonction Cas qui permet de tester plusieurs possibilités à la file, que nous avons combiné avec un bon vieux Si

Il a d'abord fallut prévoir le cas ou les nombres sont entiers. Filemaker ne le prévoit pas, donc astuce : Si Nombre-Partie entière du nombre = 0 alors c'est bien un entier,

Ensuite il a fallut jongler avec les multiples de 0,1 0,01 etc via la fonction Mod (modulus ou modulo : reste après division par un nombre).

Voilà au final ce que cela a donné :

Si
(
prix - Ent ( prix ) = 0 ;Cas ( prix≥  1000  And prix  < 10000; Extrait ( prix  ; 1 ; 1 ) & " " & Extrait ( prix  ; 2 ; 3 );
prix≥  10000  And prix  < 100000; Extrait ( prix  ; 1 ; 2 ) & " " & Extrait (  prix  ; 3 ; 3 ) ;
Arrondi ( prix  ; 2 ) ) ;
Si ( Mod (prix  ;,1 ) = 0 ; Cas ( prix≥  1000  And prix  < 10000; Extrait ( prix  ; 1 ; 1 ) & " " & Extrait ( Arrondi ( prix  ; 2 ) ; 2 ; 6 );
prix   ≥  10000  And prix  < 100000; Extrait ( prix  ; 1 ; 2 ) & " " & Extrait ( Arrondi ( prix  ; 2 )  ; 3 ; 6 ) ;
Arrondi ( prix  ; 2 )  )
& "0" ;
Cas ( prix≥  1000  And prix  < 10000; Extrait ( prix  ; 1 ; 1 ) & " " & Extrait ( Arrondi ( prix  ; 2 ) ; 2 ; 6 );
prix≥  10000  And prix  < 100000; Extrait (prix  ; 1 ; 2 ) & " " & Extrait ( Arrondi ( prix  ; 2 )  ; 3 ; 6 ) ;
Arrondi ( prix  ; 2 ) ) )
)

E si vous voulez télécharger le fichier il est joint à cet article, vous pourrez vous amuser à l'améliorer. Tenez-moi au courant!

Fichiers joints:
FichierDescriptionTaille de fichier
Formatage prix 64 Kb