format$ permet de formater une expression selon un format particulier.
format$( expr_c, exp )
Elément | Description | Restrictions |
expr_c | Expression de type Char contenant un format valide. | Format adapté au type de l'expression |
exp | Expression numérique, alphanumérique ou date. | 255 caractères. |
CHFOR = format$("D:[A Paris, le ]DD[ ]9M[ ]YYYY", date$)
CHTOTAL = format$("N3Z:12.2[ Francs]", sum(TTC))
format$( expr_c, exp ) renvoie l'expression exp formatée suivant le format expr_c.
Le type du résultat est Char.
Un format s'écrit sous forme d'une chaîne de caractères séparés par un ":" selon le schéma suivant :
Type / Options générales / options particulières : chaîne de formatage
Les types possibles sont :
On peut ajouter n options secondaires (n pouvant être nul). Elles dépendent de l'option générale. L'ordre dans lequel on les nomme n'a pas d'importance. Une option inconnue sera ignorée sans provoquer d'erreur.
OPTION commune pour tous les types de zonesCode | Signification du code |
< | Cadrage à gauche ( obsolète ) |
> | Cadrage à droite ( obsolète ) |
= | Centrage ( obsolète ) |
c | Affichage du champ en couleur selon la variable pcolor (géré uniquement sur les champs de bloc tableau). |
z | Pas d'affichage - même pas les commentaires - quand la valeur à afficher est nulle. |
P | Zone affichée |
X | Saisie masquée |
C | Zone complète obligatoire |
B | Affichage d'espace à la place des commentaires |
G | Beep si erreur |
Exemple :
format$("N:9.2[ Francs]",0) -> " 0,00 Francs"
format$("Nz:9.2[ Francs]",0) -> " "
Code | Signification du code |
A | Obligation de taper les caractères demandés majuscules ou minuscules. |
T | Tokenisation (c’est-à-dire reconnaissance des mots clés dans la saisie d’une formule de calcul) |
TD | Pas de mots clés autorisés |
b | Ajout de blancs pour compléter la fin du champ. |
v | Suppression des blancs. On indique l'option du vireblc à la suite du code v. |
vn (avec n allant de 0 à 5) permet d'appliquer l'option n de la fonction vireblc à la chaîne résultante.
Exemples :
format$("Kv0:20X"," A B C ") -> "A B C "
format$("Kv1:20X"," A B C ") -> " A B C"
etc
format$("Kv5:20X"," A B C ") ->" A B C "
Nota : c'est le seul cas où la longueur de la chaîne résultante est inférieure à celle déterminée par la chaîne de formatage.
Code | Signification du code |
D | Affichage du signe derrière le nombre. |
F | Nombres flottants |
Z | Ajout de zéro, à la fin de la partie décimale |
+ | Nombres positifs |
- | Affichage systématique du signe |
* | Complète avec des * devant le nombre |
0 | Complète avec des 0 devant le nombre |
3 | Séparateur de groupes de 3 chiffres de la partie entière (obsolète) |
Nota : en cas de dépassement de capacité numérique, c'est à dire quand dans la chaîne de formatage, le nombre de chiffres avant le séparateur décimal est trop petit pour le nombre à afficher, aucune erreur n'est provoquée, la chaîne résultante est remplie avec le caractère défini comme étant le "caractère de dépassement de capacité numérique". Celui-ci est déterminé par la variable Adonix [S]adxsca. C'est le 5ème caractère de cette chaîne. On a vu plus haut que l'option secondaire A permet de changer ce comportement.
Exemple : ( avec mid$([S]adxsca,5,1) = "*" )
format$("N:6.2",1234567.12) -> "******,**"
Par contre, la partie décimale sera tronquée si elle est trop petite.
Exemple :
format$("N:3.2",123.456) -> "123,45"
Le séparateur entre groupes de 3 chiffres est le 3ème caractère de [S]adxsca mais n'est pas utilisé (obsolète).
Le séparateur décimal est le 4ème de cette variable [S]adxsca.
Code | Signification du code |
Z | Date nulle autorisée |
chaîne DE FORMATAGE
La chaîne de formatage décrit les caractères utilisés pour afficher la chaîne et les commentaires qui y seront inclus.
Ils peuvent être en début de chaîne, en milieu de chaîne ou enfin de chaîne.
Ils se délimitent avec les caractères "[" et "]".
Exemple :
format$("D:[Le ]DD[ du mois de ]MMMMMMMM",date$) -> "Le 12 du mois de Janvier"
On peut soit donner un caractère par position, soit indiquer le nombre de caractères par un nombre devançant le caractère.
Exemple :
format$("LA1:XXX",OK) est identique à format$("LA1:3X",OK)
Les codes possibles dépendent du type d'expression à afficher et donc de l'option primaire de formatage. Il y a des codes standards, définis dans Adonix et ceux définis par les variables [S]adxtuc, [S]adxtul, et [S]adxtut. Voilà le tableau des principaux codes Adonix.
Code | Types | Signification du code |
X | K | Caractères imprimables quelconques |
# | N | Chiffre (0 à 9). Type par défaut en cas de facteur de répétition suivi d'un "." Par exemple , 12.2 est un nombre de 12 positions et de 2 décimales |
. | N | Position du séparateur décimal en format fixe. |
F | N | Nombre en format flottant. |
A | K | Lettres majuscules (A à Z). conversion automatique sauf si option A. |
a | K | Lettres minuscules (a à z). conversion automatique sauf si option A. |
L | K | Lettres minuscules et majuscules (A à Z, a à z) |
B | K | Lettres majuscules et chiffres (A à Z, 0 à 9) |
b | K | Lettres minuscules et chiffres (a à z, 0 à 9) |
C | K | Lettres majuscules, minuscules et chiffres (A à Z, a à z, 0 à 9) |
H | K | Chiffres hexadécimaux (0 à 9, A à F) |
| K | Espaces |
D | D | Jour d'une date |
M | D | Mois d'une date |
Y | D | Année d'une date |
h | D | Heures |
m | D | Minutes |
s | D | Secondes |
Les codes # et F sont utilisables avec les types K et L à condition que les chaînes à afficher ne contiennent que des chiffres. Sinon, la chaîne résultante ne contiendra que des espaces. C'est d'ailleurs toujours le cas lorsqu' un des caractères à afficher est incompatible avec le format demandé. Exemple :
format$("K:10#","12345.6") -> " "
Pour les chaînes de caractères et les menus locaux, le type "X" est le plus utilisé, puisqu'il ne ménage pas de mauvaises surprises.
Pour les dates, notons que :
Pour les années, les seuls formats acceptables sont 2Y et 4Y.