# Fonctions sur des champs Ksaar

{% hint style="success" %}
Les fonctions sur les formules sont disponibles dans chacune des sous-pages dédiées :&#x20;

* [operateurs](operateurs "mention")
* [fonctions-de-texte](fonctions-de-texte "mention")
* [fonctions-mathematiques](fonctions-mathematiques "mention")
* [fonctions-de-date](fonctions-de-date "mention")
* [fonctions-de-formatage](fonctions-de-formatage "mention")
* [fonctions-de-liste](fonctions-de-liste "mention")
* [fonctions-sur-des-champs-ksaar](fonctions-sur-des-champs-ksaar "mention")
* [fonctions-de-logique-et-autres](fonctions-de-logique-et-autres "mention")

Des exemples de formules prêtes à l'emploi se trouvent ici : [bibliotheque-de-formules-classiques](bibliotheque-de-formules-classiques "mention")
{% endhint %}

## Adresse

<details>

<summary>ADDRESS_LAT</summary>

#### Résumé

La fonction `ADDRESS_LAT` renvoie la latitude d'une adresse donnée.

#### Syntaxe

`ADDRESS_LAT(adresse)`

#### Exemple

* `ADDRESS_LAT({Adresse})` → `48.849185`

</details>

<details>

<summary>ADDRESS_LNG</summary>

#### Résumé

La fonction `ADDRESS_LNG` renvoie la longitude d'une adresse donnée.

#### Syntaxe

`ADDRESS_LNG(adresse)`

#### Exemple

* `ADDRESS_LNG({Adresse})` → `2.337352`

</details>

<details>

<summary>ADDRESS_DESC</summary>

#### Résumé

La fonction `ADDRESS_DESC` renvoie la description d'une adresse donnée.

#### Syntaxe

`ADDRESS_DESC(adresse)`

#### Exemple

* `ADDRESS_DESC({Adresse})` → `15 Rue de Vaugirard, Paris, France`

</details>

<details>

<summary>ADDRESS_CITY</summary>

#### Résumé

La fonction `ADDRESS_CITY` renvoie la ville d'une adresse donnée.

#### Syntaxe

`ADDRESS_CITY(adresse)`

#### Exemple

* `ADDRESS_CITY({Adresse})` → `Paris`

</details>

<details>

<summary>ADDRESS_COUNTRY</summary>

#### Résumé

La fonction `ADDRESS_COUNTRY` renvoie le pays d'une adresse donnée.

#### Syntaxe

`ADDRESS_COUNTRY(adresse)`

#### Exemple

* `ADDRESS_COUNTRY({Adresse})` → `France`

</details>

<details>

<summary>ADDRESS_POSTCODE</summary>

#### Résumé

La fonction `ADDRESS_POSTCODE` renvoie le code postal d'une adresse donnée.

#### Syntaxe

`ADDRESS_POSTCODE(adresse)`

#### Exemple

* `ADDRESS_POSTCODE({Adresse})` → `75006`

</details>

## Plage de dates / Plage de dates avec heure

<details>

<summary>DATE_RANGE</summary>

#### Résumé

La fonction `DATE_RANGE` renvoie une plage des dates de début et de fin spécifiées.

#### Syntaxe

`DATE_RANGE(début, fin)`

#### Exemple

* `DATE_RANGE({Début}, {Fin})` → `01/01/2023 12:30 - 31/12/2023 12:30`

</details>

<details>

<summary>DATE_RANGE_BEGIN</summary>

#### Résumé

La fonction `DATE_RANGE_BEGIN` renvoie la date de début d'une plage de dates donnée.

#### Syntaxe

`DATE_RANGE_BEGIN(plage_de_dates)`

#### Exemple

* `DATE_RANGE_BEGIN({Plage de dates})` → `01/01/2023 12:30`

</details>

<details>

<summary>DATE_RANGE_END</summary>

#### Résumé

La fonction `DATE_RANGE_END` renvoie la date de fin d'une plage de dates donnée.

#### Syntaxe

`DATE_RANGE_END(plage_de_dates)`

#### Exemple

* `DATE_RANGE_END({Plage de dates})` → `31/12/2023 12:30`

</details>

## Single select

<details>

<summary>SINGLE_SELECT_TEXT</summary>

#### Résumé

La fonction `SINGLE_SELECT_TEXT` renvoie le texte de l'option sélectionnée d'un single select.

#### Syntaxe

`SINGLE_SELECT_TEXT(single_select)`

#### Exemple

* `SINGLE_SELECT_TEXT({Single select})` → `Option 1`
* `SINGLE_SELECT_TEXT({Liaisons multiples → Single select})` → `[Option 1, Option 2, Option 1]`

</details>

<details>

<summary>SINGLE_SELECT_NBR_VALUE</summary>

#### Résumé

La fonction `SINGLE_SELECT_NBR_VALUE` renvoie la valeur de l'option sélectionnée d'un single select.

#### Syntaxe

`SINGLE_SELECT_NBR_VALUE(single_select)`

#### Exemple

* `SINGLE_SELECT_NBR_VALUE({Single select})` → `10`
* `SINGLE_SELECT_NBR_VALUE({Liaisons multiples → Single select})` → `[10, 20, 10]`

#### Cas d'usage

Un prof (d'une table profs) est associé à plusieurs matières via une liaison multiple (`{lnkM_matiere_prof}`) et chaque matière (d'une table matières) est assignée à un département via un champ question à choix unique (`{qcu_departement_matiere}`). De plus, chaque valeur du QCU a une valeur numérique.

Pour récupérer la valeur numérique de ce champ dans la table profs il suffit d'utiliser cette formule :&#x20;

`SINGLE_SELECT_NBR_VALUE({lnkM_matiere_prof → qcu_departement_matiere})`

</details>

## Multi select

<details>

<summary>MULTI_SELECT_TEXT_VALUES</summary>

#### Résumé

La fonction `MULTI_SELECT_TEXT_VALUES` renvoie la liste des textes des options sélectionnées d'un multi select.

#### Syntaxe

`MULTI_SELECT_TEXT_VALUES(multi_select)`

#### Exemple

* `MULTI_SELECT_TEXT_VALUES({Multi select})` → `[Option 1, Option 3]`
* `MULTI_SELECT_TEXT_VALUES({Liaisons multiples → Multi select})` → `[[Option 1, Option 3], [Option 1]]`

</details>

<details>

<summary>MULTI_SELECT_NBR_VALUES</summary>

#### Résumé

La fonction `MULTI_SELECT_NBR_VALUES` renvoie la liste des valeurs des options sélectionnées d'un multi select.

#### Syntaxe

`MULTI_SELECT_NBR_VALUES(multi_select)`

#### Exemple

* `MULTI_SELECT_NBR_VALUES({Multi select})` → `[10, 30]`
* `MULTI_SELECT_NBR_VALUES({Liaisons multiples → Multi select})` → `[[10, 30], [10]]`

</details>

## Fichier

<details>

<summary>FILENAME</summary>

#### Résumé

La fonction `FILENAME` renvoie le nom d'un fichier.

#### Syntaxe

`FILENAME(fichier)`

#### Exemple

* `FILENAME({fichier})` → `nom_de_fichier.pdf`

</details>

## Fichiers Multiples

<details>

<summary>FILENAMES</summary>

#### Résumé

La fonction `FILENAMES` renvoie les noms des fichiers du champ fichiers multiples mis en paramètres.

#### Syntaxe

`FILENAME(Fichiers Multiples)`

#### Exemple

* `FILENAME({fichiers_multiples})` → `"nom_de_fichier_1.pdf, nom_de_fichier_2.pdf"`

</details>

<details>

<summary>COUNT_FILES</summary>

#### Résumé

La fonction `COUNT_FILES` renvoie le nombre de fichiers présents dans le champ fichiers multiples mis en paramètres.

#### Syntaxe

`COUNT_FILES(Fichiers Multiples)`

#### Exemple

* `COUNT_FILES({fichiers_multiples})` → `2`

</details>

## Couleur

<details>

<summary>COLOR_HEX</summary>

#### Résumé

La fonction `COLOR_HEX` récupère la valeur hexadécimale d'un champ couleur sous forme de texte.

#### Syntaxe

`COLOR_HEX(Couleur)`

#### Exemple

* `COLOR_HEX(Couleur)` → `"#000000"`

</details>

<details>

<summary>TO_COLOR</summary>

#### Résumé

La fonction `TO_COLOR` transforme une valeur hexadécimale en un champ couleur.

#### Syntaxe

`TO_COLOR("uneValeurHexadecimale")`

#### Exemple

* `TO_COLOR("#000000")` → `champ couleur avec valeur #000000`

**Remarque**

Il est aussi possible d'utiliser des noms de couleur plutôt qu'un code hexadécimal. Les couleurs prises en charge sont [les couleurs nommées du langage CSS](https://www.w3.org/TR/css-color-4/#named-colors).

</details>
