Contexte de l'enregistrement

Cet article a été traduit de l'anglais par IA et peut contenir des erreurs. Vos commentaires nous aideront à l'améliorer.

Les formules peuvent être évaluées dans le contexte d'un enregistrement de formulaire. Cela inclut :

  • Les formules de champ calculé
  • Les formules de préfixe de numéro de série
  • Les règles de pertinence
  • Les règles de validation
  • Les verrouillages d'enregistrement
  • Les autorisations au niveau de l'enregistrement

Dans chacun de ces cas, la formule est évaluée dans le contexte de chacun des enregistrements du formulaire. Dans ce contexte, vous pouvez vous référer aux valeurs des champs de l'enregistrement, aux enregistrements et sous-enregistrements associés, ainsi qu'aux métadonnées relatives à l'enregistrement.

Étant donné que la formule est calculée enregistrement par enregistrement, ce n'est pas dans ce contexte que vous calculerez des agrégats comme le pourcentage de participants qui sont des femmes. De telles statistiques peuvent être calculées à l'aide de tableaux croisés dynamiques.

Valeurs des champs

Dans un contexte d'enregistrement, vous pouvez vous référer aux champs en utilisant le code du champ, l'étiquette du champ, ou l'identifiant interne du champ et la syntaxe des symboles. Un symbole s'écrit dans les formules sans guillemets.

Capture d'écran d'un champ dans le concepteur de formulaires
Capture d'écran d'un champ dans le concepteur de formulaires

Par exemple, si vous avez un champ de texte avec l'étiquette "Nombre d'étudiants" et le code NUM_STUDENTS, vous pourriez calculer le nombre d'enseignants requis, en supposant un ratio souhaité de 30:1, en utilisant l'une des formules suivantes :

  • Students / 30
  • NUM_STUDENTS / 30
  • csr4lu5lfl1n0swr / 30

Le texte csr4lu5lfl1n0swr est l'identifiant interne du champ attribué par ActivityInfo, qui peut être trouvé via l'API.

Si l'étiquette d'un champ contient des espaces ou d'autres caractères spéciaux, le symbole doit être échappé à l'aide de crochets. Par exemple, si le champ ci-dessus avait l'étiquette "Nombre d'étudiants", vous devriez vous y référer en tant que [Nombre d'étudiants] dans la formule.

Notez que les étiquettes de champ n'ont pas besoin d'être uniques au sein d'un formulaire. Il est courant d'avoir plusieurs champs avec l'étiquette "Autre", par exemple. Si vous vous référez à un champ par son étiquette et qu'il existe plusieurs champs avec cette étiquette, la valeur du premier champ sera utilisée.

Pour cette raison, nous recommandons d'attribuer des codes à tous les champs si vous prévoyez d'utiliser des formules.

Champs de texte

Les champs Texte, Texte multiligne, Numéro de série et Code-barres ont tous un type de formule texte dans le contexte de l'enregistrement.

Champs de sélection

Les champs de sélection unique et de sélection multiple ont respectivement un type de formule "struct" et liste de "struct".

Si votre formulaire inclut des champs de référence, vous pouvez inclure les valeurs des champs des enregistrements associés dans les formules.

Champs de référence

Lorsque vous ajoutez un champ de référence à un formulaire, ActivityInfo stocke l'ID d'enregistrement intégré de l'enregistrement sélectionné comme partie du champ.

Par exemple, disons que vous ajoutez une référence au formulaire District afghan dans la Géodatabase publique avec le code DISTRICT. Lors de la saisie ou de l'importation de données, ActivityInfo présentera à l'utilisateur les champs clés de l'enregistrement associé pour l'aider à sélectionner le bon enregistrement :

Capture d'écran de la saisie de données
Capture d'écran de la saisie de données

Cependant, lorsque l'enregistrement est sauvegardé, ActivityInfo stocke en réalité l'ID de l'enregistrement associé. Cela garantit que même si le nom du district changeait, la relation entre les deux enregistrements est préservée.

Si vous référencez DISTRICT dans une formule, le résultat sera l'ID de l'enregistrement, comme "z0000454985" :

Capture d'écran d'un tableau
Capture d'écran d'un tableau

Champs associés

Dans la plupart des cas, l'ID de l'enregistrement associé ne sera pas très utile. À la place, vous pourriez vouloir faire référence au nom du district, ou à sa population. Pour cela, vous pouvez utiliser la notation par points pour rechercher la valeur associée :

DISTRICT.NAME

Si le formulaire associé a également des champs de référence, vous pouvez utiliser plusieurs points pour suivre le chemin. Dans ce cas, le formulaire District a un champ de référence PROVINCE avec son propre champ NAME. Pour trouver le nom de la Province associée, vous pourriez utiliser la formule :

DISTRICT.PROVINCE.NAME

Champs de point géographique

Les champs de point géographique ont un type de formule "struct". Cela signifie que chaque point géographique a deux valeurs : la latitude et la longitude. Vous pouvez vous référer à ces composants individuels en utilisant la syntaxe par points :

CONCAT(
  IF(LOCATION.Latitude > 0, "Nord", "Sud"), " ",
  IF(LOCATION.Longitude > 0, "Est", "Ouest"), " Hémisphère")

Champs de sous-formulaire

Bien que les champs de sous-formulaire n'aient pas de valeur en eux-mêmes, vous pouvez vous référer aux champs des sous-enregistrements dans le contexte de l'enregistrement, à condition qu'ils soient agrégés.

Par exemple, si vous avez un sous-formulaire HOUSEHOLDS_MEMBERS avec les champs NAME et AGE, vous ne pouvez pas simplement vous référer à HOUSEHOLD_MEMBERS.NAME, car il peut y avoir plus d'un nom. Vous pouvez cependant utiliser des fonctions d'agrégation comme COUNT, SUM, AVERAGE, MIN, et MAX pour calculer une valeur unique à partir de tous les sous-enregistrements d'un enregistrement. Par exemple, vous pourriez trouver le nombre de membres en utilisant la formule :

COUNT(HOUSEHOLD_MEMBERS.NAME)

Et vous pourriez tester la présence d'un enfant de moins de cinq ans en utilisant la formule :

MIN(HOUSEHOULD_MEMBERS.AGE) < 5

Métadonnées de l'enregistrement

Dans le contexte de l'enregistrement, vous pouvez également vous référer aux métadonnées concernant l'enregistrement :

Symbole Type Description
_id text L'ID de l'enregistrement
_lastEditTime instant La dernière fois que l'enregistrement a été mis à jour

Notez que _lastEditTime se réfère à la dernière fois qu'une mise à jour a atteint le serveur. Un enregistrement peut avoir été ajouté ou modifié hors ligne bien plus tôt.

Élément suivant
SELECTCOLUMNS