# Declare

L'instruction Declare permet de créer des définitions de champ, qui précisent les relations entre des champs ou des fonctions. Un ensemble de définitions de champ peut servir à générer automatiquement des champs dérivés, que vous pouvez ensuite utiliser comme dimensions. Par exemple, vous pouvez créer une définition de calendrier, qui vous sert à générer les dimensions associées, telles que l'année, le mois, la semaine et le jour, à partir d'un champ de date.

L'instruction Declare vous permet de configurer une nouvelle définition de champ ou de créer une définition de champ basée sur une définition existante.

## Configuration d'une nouvelle définition de champ

definition\_name:

Declare [Field[s]] Definition [Tagged tag\_list ]

[Parameters parameter\_list ]

Fields field\_list

| Argument | Description |
| --- | --- |
| definition\_name | Nom de la définition de champ, se terminant par deux-points.<br><br>Note AvertissementN'utilisez pas autoCalendar comme nom pour les définitions de champs, car ce nom est réservé aux modèles de calendrier générés automatiquement.<br><br>`Calendar:` |
| tag\_list | Liste de balises séparées par des virgules à appliquer à des champs dérivés de la définition de champ. L'application de balises est facultative, mais si vous n'appliquez pas de balises servant à spécifier l'ordre de tri, telles que $date, $numeric ou $text, le champ dérivé sera trié par défaut par ordre de chargement.<br><br>`'$date'Thank you for bringing this to our attention, and apologies for the inconvenience.`<br><br>[Balises de champ](https://help.qlik.com/fr-FR/sense/November2024/Subsystems/Hub/Content/Sense_Hub/Scripting/field-tags.htm) |
| parameter\_list | Liste de paramètres séparés par des virgules. Un paramètre se définit sous la forme `name=value` et se voit attribuer une valeur de départ, qu'il est possible de remplacer en cas de réutilisation d'une définition de champ. Facultatif.<br><br>`first_month_of_year = 1` |
| field\_list | Liste de champs séparés par des virgules à générer lorsque la définition de champ est utilisée. Un champ se définit sous la forme `<expression> As field_name tagged tag`. Utilisez `$1` pour faire référence au champ de données à partir duquel les champs dérivés doivent être générés.<br><br>`Year($1) As Year tagged ('$numeric')` |

```
Calendar:
DECLARE FIELD DEFINITION TAGGED '$date'
   Parameters
      first_month_of_year = 1
   Fields      
```

```
      Year($1) As Year Tagged ('$numeric'),
      Month($1) as Month Tagged ('$numeric'),
      Date($1) as Date Tagged ('$date'),
      Week($1) as Week Tagged ('$numeric'),
      Weekday($1) as Weekday Tagged ('$numeric'),
      DayNumberOfYear($1, first_month_of_year) as DayNumberOfYear Tagged ('$numeric')
;
```

```
 
```

Le calendrier est à présent défini. Vous pouvez l'appliquer aux champs de date qui ont été chargés, dans ce cas OrderDate et ShippingDate, au moyen de la clause Derive.

[Champs dérivés](https://help.qlik.com/fr-FR/sense/November2024/Subsystems/Hub/Content/Sense_Hub/Scripting/derived-fields.htm) (exemple complet)

## Réutilisation d'une définition de champ existante

&lt;definition name&gt;:

Declare [Field][s] Definition

Using &lt;existing\_definition&gt;

[With &lt;parameter\_assignment&gt; ]

| Argument | Description |
| --- | --- |
| definition\_name | Nom de la définition de champ, se terminant par deux-points.<br><br>MyCalendar: |
| existing\_definition | Définition de champ à réutiliser lors de la création de la nouvelle définition. La nouvelle définition de champ fonctionnera de la même façon que la définition initiale, à moins que vous n'utilisiez parameter\_assignment pour modifier une valeur employée dans les expressions de champ.<br><br>Using Calendar |
| parameter\_assignment | Liste d'affectations de paramètres séparées par des virgules. Une affectation de paramètre se définit sous la forme name=value et remplace la valeur de paramètre définie dans la définition du champ de base. Facultatif.<br><br>first\_month\_of\_year = 4 |

Dans cet exemple, nous réutilisons la définition de calendrier créée au cours de l'exemple précédent. Dans ce cas, nous souhaitons utiliser un exercice fiscal qui commence en avril. Pour ce faire, nous affectons la valeur 4 au paramètre first\_month\_of\_year, ce qui modifiera le champ DayNumberOfYear qui est défini.

Dans cet exemple, nous partons du principe que les échantillons de données et la définition des champs de l'exemple précédent sont réutilisés.

MyCalendar: DECLARE FIELD DEFINITION USING Calendar WITH first\_month\_of\_year=4;

DERIVE FIELDS FROM FIELDS OrderDate,ShippingDate USING MyCalendar;

Lorsque vous avez rechargé le script de données, les champs générés sont disponibles dans l'éditeur de feuille, sous les noms OrderDate.MyCalendar.\* et ShippingDate.MyCalendar.\*.

## En savoir plus

* [Derive](https://help.qlik.com/fr-FR/sense/November2024/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Derive.htm)