Vous êtes sur le site Web historique de la documentation de 4D. Les documentations sont progressivement déplacées vers developer.4d.com

Accueil

 
4D v20 R7
Chaine

Chaine 


 

Chaine ( expression {; format {; heureComb}} ) -> Résultat 
Paramètre Type   Description
expression  Expression in Expression à convertir en chaîne (peut être de type Réel, Entier, Entier long, Date, Heure, Alpha, Texte, Booléen, Indéfini ou Null)
format  Entier long, Chaîne in Format d'affichage
heureComb  Heure in Heure à combiner si expression est une date
Résultat  Chaîne in expression convertie en chaîne alphanumérique

La commande Chaine retourne sous forme de chaîne alphanumérique l'expression de type numérique, Date, Heure, chaîne ou Booléen que vous avez passée dans le paramètre expression.

Si vous ne passez pas le paramètre optionnel format, la chaîne est retournée dans le format par défaut du type de données correspondant. Si vous passez le paramètre format, vous pouvez définir suivant vos besoins le formatage de la chaîne retournée.

Le paramètre optionnel heureComb permet d'ajouter une heure à une date dans un format combiné. Il est utilisable uniquement lorsque le paramètre expression est une date (voir ci-dessous).


Expressions numériques

Si expression est du type numérique (Réel, Entier, Entier long), vous pouvez passer le paramètre optionnel de formatage de la chaîne. Voici quelques exemples :

ExempleRésultatCommentaire
Chaine(2^15)"32768"Format par défaut
Chaine(2^15;"### ##0 habitants")"32 768 habitants"
Chaine(1/3;"##0.00000")"0,33333"
Chaine(1/3)"0,3333333333333"Format par défaut(*)
Chaine(Arctan(1)*4)"3,14159265359"Format par défaut(*)
Chaine(Arctan(1)*4;"##0.00")"3,14"
Chaine(-1;"&x")"0xFFFFFFFF"
Chaine(-1;"&$")"$FFFFFFFF"
Chaine(0 ?+ 7;"&x")"0x0080"
Chaine(0 ?+ 7;"&$")"$80"
Chaine(0 ?+ 14;"&x")"0x4000"
Chaine(0 ?+ 14;"&$")"$4000"
Chaine(50,3;"&xml")"50.3"Toujours "." comme séparateur décimal
Chaine(Num(1=1);"Vrai;;Faux")"Vrai"
Chaine(Num(1=2);"Vrai;;Faux")"Faux"
Chaine(Log(-1))""Nombre indéfini
Chaine(1/0)"INF"Nombre infini positif
Chaine(-1/0)"-INF"Nombre infini négatif

(*) L'algorithme de conversion des valeurs réelles en texte est basé sur 13 chiffres significatifs.

Le format est défini de la même manière que pour un champ numérique dans un formulaire. Pour plus d'informations sur le formatage des numériques, reportez-vous à la section Formats d'affichage du manuel "Mode Développement" de 4D. Vous pouvez également passer le nom d'un style personnalisé dans format. Dans ce cas, le nom du style doit être précédé du caractère “|”.

Note : La fonction Chaine n'est pas compatible avec les champs de type "Entier 64 bits" en mode compilé.


Expressions de type Date
Si expression est de type Date et si vous omettez le paramètre format, la chaîne est retournée dans le format par défaut défini dans le système. 

Sinon, dans le paramètre format, vous pouvez passer :

  • soit un format prédéfini disponible via les constantes suivantes du thème Formats d'affichage des dates (Entier long) :
    Constante Valeur Comment
    Date RFC 1123 10 Fri, 10 Sep 2010 13:07:20 GMT
    Interne date abrégé 6

    29 déc 2006

    Interne date court 7

    29/12/2006

    Interne date court spécial 4 06/12/06 (mais 06/12/1896 ou 06/12/2096)
    Interne date long 5

    29 décembre 2006

    ISO Date 8

    2006-06-12T00:00:00

    ISO Date GMT 9 2010-09-13T16:11:53Z
    Système date abrégé 2 mer. 25 déc. 2006
    Système date court 1 06/12/2006
    Système date long 3 mercredi 6 décembre 2006
    Vide si date nulle 100

    À ajouter à la constante format. Indique que dans le cas d'une valeur nulle, 4D doit retourner une chaîne vide au lieu de zéros.


    Exemples :

     $vsResultat:=Chaine(!2023-11-27!) //"11/27/2023"
     $vsResultat:=Chaine(!2023-11-27!;Internal date long) // "November 27, 2023"
     $vsResultat:=Chaine(!2023-11-27!;ISO Date GMT// "2023-11-26T23:00:00Z" dans le fuseau horaire français

  • soit un format personnalisé basé sur un modèle (Chaîne)

    Exemples :

     $vsResultat:=Chaine(!2023-11-27!;"EEEE d MMMM y GGGG") //"Monday 27 November 2023 Anno Domini"
     $vsResultat:=Chaine(!2023-11-27!;"E dd/MM/yyyy zzzz") //"Mon 27/11/2023 GMT+01:00" dans le fuseau horaire français

Note : Les formats peuvent varier en fonction des paramétrages système.

Paramètre heureComb
Lors du traitement des expressions Date, vous pouvez également passer une heure dans le paramètre heureComb. Ce paramètre vous permet de combiner une date et une heure afin de générer des marqueurs de temps conformes aux normes en vigueur (constantes ISO Date GMT et Date RFC 1123. Ces formats sont particulièrement utiles dans le contexte des traitements XML et Web. Le paramètre heureComb est utilisable uniquement lorsque le paramètre expression est une date. 

Ce paramètre peut être utilisé pour les formats de date prédéfinis comme pour les formats de date basés sur des modèles. Exemples :

 $dateHeure:=Chaine(!2010-09-09!;ISO Date GMT;Heure courante//"2010-09-09T08:30:41Z"
 $dateHeure2:=Chaine(!2023-11-27!;"E dd/MM/yyyy 'at' hh:mm aa O";?11:15:00?) //"Mon 27/11/2023 at 11:15 AM GMT+1"

Notes sur les formats prédéfinis combinés date/heure :

  • Le format ISO Date GMT correspond à la norme ISO8601, contenant une date et une heure en tenant compte de la zone de fuseau horaire (heure GMT).
     $madate:=Chaine(Date du jour;ISO Date GMT;Heure courante// retourne par exemple 2010-09-13T16:11:53Z

    A noter le caractère "Z" final qui indique le format GMT.
    Si vous ne passez pas le paramètre heureComb, la commande retourne la date à minuit heure locale exprimée en heure GMT, ce qui peut entraîner un décalage :
     $madate:=Chaine(!13/09/2010!;ISO Date GMT// retourne 2010-09-12T22:00:00Z en France
  • Le format ISO Date est semblable au format ISO Date GMT, à la différence près qu'il exprime la date et l'heure sans tenir compte de la zone de fuseau horaire. A noter que ce format n'étant pas conforme à la norme ISO8601, son utilisation est à réserver à des usage très spécifiques.
     $madate:=Chaine(!13/09/2010!;ISO Date// retourne 2010-09-13T00:00:00 quel que soit le fuseau horaire
     $madate:=Chaine(Date du jour;ISO Date;Heure courante// retourne 2010-09-13T18:11:53
  • Le format Date RFC 1123 permet de formater un ensemble date/heure suivant la norme définie par les RFC 822 et 1123. Ce format est nécessaire par exemple pour fixer la date d'expiration des cookies dans un en-tête HTTP.
     $madate:=Chaine(Date du jour;Date RFC 1123;Heure courante// retourne par exemple Fri, 10 Sep 2010 13:07:20 GMT

    L'heure est exprimée en tenant compte de la zone de fuseau horaire (heure GMT). Si vous passez uniquement une date, la commande retourne la date à minuit heure locale exprimée en heure GMT, ce qui peut entraîner un décalage :
     $madate:=Chaine(Date du jour;Date RFC 1123// retourne Thu, 09 Sep 2010 22:00:00 GMT


Expressions de type Heure
Si expression est de type Heure et si vous omettez le paramètre format, la chaîne est retournée dans le format par défaut HH:MM:SS

Sinon, dans le paramètre format, vous pouvez passer :

  • soit un format prédéfini disponible via les constantes suivantes du thème Formats d'affichage des heures (Entier long) :
    Constante Valeur Comment
    h mn 2 01:02
    h mn Matin Après Midi 5 1:02 du matin
    h mn s 1 01:02:03
    Heures minutes 4 1 heure 2 minutes
    Heures minutes secondes 3 1 heure 2 minutes 3 secondes
    ISO heure 8

    0000-00-00T01:02:03. Correspond à la norme ISO8601, contenant en principe une date et une heure. Comme ce format ne prend pas en charge les dates/heures combinées, la partie date est remplie avec des 0. Ce format exprime l'heure locale.

    Minutes secondes 7 62 minutes 3 secondes
    mn s 6 62:03
    Système heure court 9 01:02:03
    Système heure long 11 1:02:03 AM HNEC (Mac uniquement)
    Système heure long abrégé 10 1•02•03 AM (Mac uniquement)
    Vide si heure nulle 100

    À ajouter à la constante format. Indique que dans le cas d'une valeur nulle, 4D doit retourner une chaîne vide au lieu de zéros.


    Exemples : 

     $vsResultat:=Chaine(?17:30:45?;HH MM AM PM) //"5:30 PM"
     $vsResultat:=Chaine(?17:30:45?;Hour Min Sec) //"17 hours 30 minutes 45 seconds"


Expressions de type chaîne

Si expression est de type Alpha ou Texte, la commande retourne la même valeur que celle passée en paramètre. Ce fonctionnement est utile notamment dans le cadre d’une programmation générique utilisant des pointeurs.
Dans ce cas, le paramètre format, s'il est passé, est ignoré.

 

Expressions de type Booléen
Si expression est de type Booléen, la commande retourne la chaîne “Vrai” ou “Faux” dans la langue de l’application (“True” ou “False” dans une version anglaise de 4D).
Dans ce cas, le paramètre format, s'il est passé, est ignoré.

 

Expressions de type indéfini
Si l'évaluation de l'expression est indéfinie, la commande retourne une chaîne vide. Ce principe est utile lorsque le code attend toujours une chaîne alors que l'évaluation de l'expression peut parfois aboutir au type indéfini (par exemple dans le cas des attributs d'objets).

 

Expressions de type Null
Si l'évaluation de l'expression est Null, la commande retourne la chaîne "null". Ce principe est utile lorsque le code attend toujours une chaîne alors que l'évaluation de l'expression peut parfois aboutir au type null (par exemple dans le cas des attributs d'objets).



Voir aussi  

Bool
Chaine heure
Date
Num
Timestamp

 
PROPRIÉTÉS 

Produit : 4D
Thème : Chaînes de caractères
Numéro : 10
Nom intl. : String

Commande(s) éligible(s) à l'exécution dans un process préemptif

 
PAGE CONTENTS 
 
HISTORIQUE 

Modifié : 4D v11 SQL
Modifié : 4D v12.1
Modifié : 4D v14 R3
Modifié : 4D v16 R5
Modifié : 4D v20 R4

 
UTILISATION DE L'ARTICLE

4D - Langage ( 4D v20 R7)