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 string
Fonctions 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.