L4G >  format$  

Afficher tout Masquer tout

format$ permet de formater une expression selon un format particulier.

 

Syntaxe

   format$( expr_c, exp )

 

Paramètres

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.

 

Exemples

   CHFOR   = format$("D:[A Paris, le ]DD[ ]9M[ ]YYYY", date$)
   CHTOTAL = format$("N3Z:12.2[ Francs]", sum(TTC))

 

Description

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

Type

Les types possibles sont :

  • K        affichage d'une chaîne de caractères
  • N        affichage d'un nombre
  • D        affichage d'une date
  • LA      affichage d'un menu local (doit être suivi de son numéro)

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 zones

Code

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)     -> " "

OPTION  pour les zones ALPHANUMERIQUES

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.

OPTIONS  pour des zones NUMERIQUES

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.

OPTION  pour des zones DATE

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.

Les commentaires

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"

Caractères de la chaîne.

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

 

Remarques

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 :

  • les seuls codes utilisables sont D, M et Y.
  • les jours et les années sont toujours sous forme numérique, précédée d'un "0", le cas échéant.
  • les mois sont sous forme numérique quand le facteur de répétition est 2.
    Quand le facteur de répétition est 3, c'est le format "militaire" à 3 lettres qui est utilisé.
    Exemple :
    format$("D:MMM",[1/1/1994])                      -> "JAN"
    Au dela, c'est le nom en toute lettre du mois qui sera affiché, tronqué si le nombre de caractères de la chaîne de formatage le nécessite, ou bien encore, complété avec des espaces.
    Exemples :
    format$("D:MMMM",[1/1/1994])                       -> "Janv"
    format$("D:MMMMMMMMMM",[1/1/1994])       -> "Janvier "
    Dans ce cas, le mois provient du fichier message Adonix. Il est donc traduisible et dépend de la valeur de la variable Adonix [S]messname.
  • Pour les dates, et seulement pour les dates, existent des "formats nationnaux" (liés au fichier des messages Adonix, et donc
    traduisibles). Il s'agit de :
    • DD1 : format$("DD1",[1/1/1994])      -> "01/01"
      DD2 :
      format$("DD2",[1/1/1994])      -> "01/01/94"
      DD3 :
      format$("DD3",[1/1/1994])      -> "01 Janvier 1994 14:38"
      DD4 :
      format$("DD4",[1/1/1994])      -> "01 Janvier 1994 14:38:21"
      Où les heures, minutes et secondes sont celles de l'heure courante donnée par l'ordinateur.

Pour les années, les seuls formats acceptables sont 2Y et 4Y.

 

Erreurs associées

Erreur

Description

ERMODE (10)

La valeur de expr_c n'est pas de type Char.

 

Mots-clés associés

MESSNAME - ADXSCA - ADXTUL - ADXTUC - ADXTUT