# Syntaxe

Les textes dynamiques dépendent d'une syntaxe particulière. Ce document explique les différentes manières de l'utiliser.

## Contexte

Les textes étendus dynamiques se basent sur la fonctionnalité standard des textes étendus.
Une syntaxe particulière est introduite pour permettre d'insérer des champs dynamiquement. Cette syntaxe se base exclusivement sur la dénomination des tables et des champs en anglais dans Business Central ou par leur numéro.

Lorsque vous créez un texte étendu dynamique, vous êtes toujours dans un contexte particulier. Ce contexte c'est l'entité pour laquelle vous créez le texte étendu (un article, une ressource, un compte général).

## Faire référence à un champ

La syntaxe est la suivante :

{_\<Nom champ\>_} ou {"_\<Nom champ\>_"} où _<Nom champ>_ est le nom en anglais du champ que vous souhaitez insérer. Vous devez mettre des guillemets dès que le nom champ contient des espaces, un point ou des accolades.

Par exemple, pour insérer le champ _N°_ dans le contexte de la table article :

```
{"No."}
```

## Faire référence à un champ dans une autre table

Vous pouvez faire référence à un champ d'une autre table.
La syntaxe est la suivante :

- {_\<Nom table\>_._\<Nom champ\>_ [_\<Nom champ destination\>_ = field(_\<Nom champ source\>_)]}
- {_\<Nom table\>_._\<Nom champ\>_ [_\<Nom champ destination\>_ = const(_\<Valeur\>_)]}
- {_\<Nom table\>_._\<Nom champ\>_ [_\<Nom champ destination\>_ = filter(_\<Filtre\>_)]}

Si vous avez plusieurs filtres pour faire la relation avec la table externe, alors séparez les filtres par une virgule (,).

Par exemple, dans le contexte de la table article, vous pouvez récupérer la _Description_ associée à la _Nomenclature produit_ ainsi :

```
{"Tariff Number".Description ["No." = field("Tariff No.")]}
```

## Personnaliser le format

Si vous récupérez une date (par exemple 28/09/2020) depuis la base de données, vous pourriez vouloir la formater d'une manière particulière. Par exemple en ne récupérant que l'année (2020).

Vous pouvez faire cela en ajoutant une règle de formatage après le nom du champ.

Par exemple, pour obtenir l'année depuis une date, vous pouvez procéder ainsi :

```
{"Posting Date" | Format("<Year4>")}
```

### Fonctions de formatage

| Nom de la fonction                                                                                                                                   | Description                                                                                                                                                                                                                                         | Exemple                                 |
|------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------|
| [CalcDate](https://docs.microsoft.com//dynamics365/business-central/dev-itpro/developer/methods-auto/system/system-calcdate-dateformula-date-method) | Calcule une nouvelle date basée sur une formule de date.                                                                                                                                                                                            | CalcDate(<1Y>)                          |
| [Abs](https://docs.microsoft.com/en-us/dynamics365/business-central/dev-itpro/developer/methods-auto/system/system-abs-method)                       | Calcule la valeur absolue d'un nombre.                                                                                                                                                                                                              | Abs                                     |
| [Date2DMY](https://docs.microsoft.com/en-us/dynamics365/business-central/dev-itpro/developer/methods-auto/system/system-date2dmy-method)             | Obtient le jour, mois, année à partir d'une date.                                                                                                                                                                                                   | Date2DMY(3)                             |
| [DT2Date](https://docs.microsoft.com/en-us/dynamics365/business-central/dev-itpro/developer/methods-auto/system/system-dt2date-method)               | Obtient la partie date d'un champ Date/heure.                                                                                                                                                                                                       | DT2Date                                 |
| [DT2Time](https://docs.microsoft.com/en-us/dynamics365/business-central/dev-itpro/developer/methods-auto/system/system-dt2time-method)               | Obtient la partie heure d'un champ Date/heure.                                                                                                                                                                                                      | DT2Time                                 |
| [CopyStr](https://docs.microsoft.com/en-us/dynamics365/business-central/dev-itpro/developer/methods-auto/text/text-copystr-method)                   | Obtient un sous-texte à partir d'un texte.                                                                                                                                                                                                          | CopyStr(5, 20)                          |
| [LowerCase](https://docs.microsoft.com/en-us/dynamics365/business-central/dev-itpro/developer/methods-auto/text/text-lowercase-method)               | Convertit toutes les lettres en minuscules.                                                                                                                                                                                         | LowerCase                               |
| [UpperCase](https://docs.microsoft.com/en-us/dynamics365/business-central/dev-itpro/developer/methods-auto/text/text-uppercase-method)               | Convertit toutes les lettres en majuscules.                                                                                                                                                                                         | UpperCase                               |
| PascalCase                                                                                                                                           | Convertit la première lettre d'un texte en majuscule et le reste en minuscules.                                                                                                                                                      | PascalCase                              |
| [Trim](https://docs.microsoft.com/en-us/dynamics365/business-central/dev-itpro/developer/methods-auto/text/text-trim-method)                         | Supprime tous les espaces au début et à la fin d'un texte.                                                                                                                                                                                          | Trim                                    |
| [Lookup](parsers-system-lookup.md)                                                                                                                           | Récupère la valeur d'un champ dans une table en filtrant sur une colonne de cette table.                                                                                                                                                            | Lookup("Tariff No.", Code, Description) |
| [Format](https://learn.microsoft.com/en-us/dynamics365/business-central/dev-itpro/developer/devenv-format-property)                              | Formate une valeur selon une règle de formatage.                                                                                                                                                                                                  | Format("<Day,2> <Month Text> <Year4>")  |
| Evaluate                                                                                                                                             | Convertit un texte en un autre type de données. Les types de données supportés sont ```integer```, ```decimal```, ```date``` et ```time```.                                                                                                         | Evaluate("decimal")                     |
| [Round](https://docs.microsoft.com/dynamics365/business-central/dev-itpro/developer/methods-auto/system/system-round-method)                         | Arrondit un nombre.                                                                                                                                                                                                                                 | Round(0.01, ">")                        |
| ToHtml                                                                                                                                               | Transforme un texte brut en HTML. Cette fonction remplace les chevrons par leur code HTML et les sauts de ligne par la balise &lt;br /&gt;                                                                                                          | ToHtml                                  |
| IIf                                                                                                                                                  | Transforme une valeur booléenne en texte. Le premier argument est le texte renvoyé si la valeur est vraie, le second argument est renvoyé si la valeur est fausse.                                                                                | IIf('Prix TTC', 'Prix HT')              |
| Base64ToText                                                                                                                                         | Transforme une chaîne de caractères en Base64 vers une chaîne de caractères dans l'encodage spécifié. Si l'encodage n'est pas spécifié, l'encodage UTF-8 est utilisé par défaut. Les encodages supportés sont : `UTF8`, `UTF16`, `Windows` et `MSDos`. | Base64ToText("utf8")                    |

### Formatter en cascade

Vous pouvez combiner plusieurs règles de formatage pour parvenir au résultat souhaité. Chaque règle de formatage doit être séparée par une barre verticale (|).

Par exemple, pour obtenir la date qui se situe une semaine après la date de comptabilisation formattée de manière lisible, vous pouvez procéder ainsi :

```
{"Posting Date" | CalcDate("<1W>") | Format("<Day> <Month Text> <Year4>")}
```

Si la date de comptabilisation est le _28/09/2020_, le résultat obtenu est _5 octobre 2020_.
