cplusn.com

collaboration : patrimoine : mobilité

Utilisation de la formule @Format

Voici quelques mois, j’avais écrit article montrant comment mettre en place un champ chrono, et à cette occasion, j’avais donné un exemple des fonctionnalités de la formule @Format. La syntaxe de cette fonction du langage MezzoScript est issue de celle disponible dans .NET, le langage de développement de Mezzoteam. Je vous propose de voir quelques exemples de paramétrage possible de cette fonction.

Syntaxe
La fonction @Format prend comme arguments un objet (qui peut être une chaîne de caractères, un nombre, une date…), une chaîne décrivant le format à appliquer, et renvoie la chaîne formattée.
@Format(object ,formatString) as stringFonctions sur les chaînes de caractères
Vous pouvez utiliser la notation {0} pour insérer une valeur variable dans une chaîne de caractères, plutôt que de recourir à l’opérateur de concaténation &. Ainsi :
@Format("premier","Mon {0} test")
retourne
Mon premier test

Fonctions sur les nombres
Pour formatter des nombres,vous avez deux tags à votre disposition : # et 0. Le premier tag renvoie le chiffre correspondant, ou rien s’il n’y en a pas. Le second renvoie le chiffre correspondant ou 0, ce qui est très pratique pour formatter les numéros d’ordre des documents. Ainsi :
@Format(123456,"00000000")
retourne
00123456

Par contre
@Format(123456,"########")
retourne
123456

Il est également possible d’utiliser ces tags pour formatter d’autres nombres, comme par exemple un numéro de téléphone (vous me direz, ils sont généralement stockés au format chaîne ;-), comme par exemple :
@Format(1234356789,"+33 (0) ### ### ###")
retourne
+33 (0) 123 456 789

Il existe également une syntaxe permettant d’alterner les représentations en fonction de la valeur (positive, négative, nulle). On peut ainsi écrire :
@format(1234,"€ #,##0.00;(€ #,##0.00);Zero")
qui retournera € 1 234,00 en passant 1234, (€ 1 234,00) en passant -1234, ou Zero en passant 0. Il est à noter que le formattage des nombres (espaces pour séparer les milliers, virgule pour les décimales) changera selon la langue choisie par l’utilisateur.

Fonctions sur les dates
Les possibilités de conversions les plus intéressantes (et les plus utiles) concernent les dates et les heures. Les plsu simples des tags permettent de récupérer la date et l’heure au format court ou long, selon les préférences de la langue de l’utilisateur. Par exemple :
@Format(maDateHeure,"D")
retourne vendredi 21 septembre 2007 si telle est le contenu de maDateHeure. Dans le même ordre d’idée, d permet de retourner une date courte (21/09/2007), t une heure courte (19:32) et T une heure longue (19:32:53) ; f combine une date longue et une heure courte, F une date longue et une heure longue ; f et G font la même chose, mais en variant la date au lieu de l’heure.

Il est également possible d’extraire une partie de la date ou de l’heure, en utilisant les tags suivants :
dd, ddd, dddd pour le jour, renvoie 21 ou ven. ou vendredi,
MM, MMM, MMMM pour le mois, renvoie 09 ou sept. ou septembre,
yy, yyyy pour l’année, renvoie 07 ou 2007.

hh pour l’heure renvoie 19,
mm pour les minutes renvoie 32,
ss pour les secondes renvoie 53.

Voilà, vous en savez déjà suffisamment pour pouvoir vous amuser ! Si vous souhaitez aller plus loin, vous pouvez vous plonger dans la documentation de .NET que vous trouverez (en anglais) sur msdn.microsoft.com. Attention tout de même, tous les types de formatages ne sont pas supportés par Mezzoteam.

Autres articles similaires :

  1. Paramétrer un champ chrono avec Mezzoteam (3)
    Dans les deux premières parties de notre série sur la gestion des champs chronos, nous avons vu comment mettre en place un chrono simple. Mais...
Catégories : Collaboration


2 commentaires

  1. Emmanuel dit :

    Dans le champ cible, vous devez mettre la formule suivante ; si MONTANT est le code du champ contenant votre valeur numérique décimale :

    $zero:=0;
    @ifs(MONTANT>$zero,MONTANT,-MONTANT)

    Bonne journée.

  2. BEN dit :

    Bonjour,

    Comment faire la valeur absolue d’une valeur d’un champ numérique (type décimal) :
    MONTANT = champs de type décimal
    Je veux être sûr que MONTANT est toujours positif, je crée un champ calculé contenant la valeur absolue de MONTANT … comment écrire une bonne formule qui marche ??? sachant que la comparaison de MONTANT à 0.0 ne marche pas vraiment !!!
    MErci



rvm

Installer RVM et Rai

RVM permet d'installer facilement plusieurs environnement Ruby sur une même ...

mainscreen

Démarrer avec iOS :

M'étant récemment lancé dans le développement d'applications pour les plateformes ...

Vue en liste

jQuery Mobile 2e par

Le précédent article de notre série sur jQuery Mobile annonçait ...

20111014-192127.jpg

Premières impression

J'ai pu sans trop de soucis mettre à jour mon ...

Steve Jobs

Ma première rencontr

La nouvelle nous a tous pris de court ce matin, ...