Modèles de rapport

La fonction Report (Rapport) du site Web de Survey123 permet de créer des modèles personnalisés et de générer plusieurs rapports en même temps.

Un rapport peut contenir les éléments suivants :

  • Une section de synthèse
  • Un enregistrement d’enquête
  • Un enregistrement d’enquête et une section de synthèse
  • Plusieurs enregistrements d’enquête
  • Plusieurs enregistrements d’enquête et une section de synthèse
Remarque :

L’impression des rapports est un service Premium ArcGIS Online et consomme des crédits. Pour plus d’informations, reportez-vous à la rubrique Imprimer les rapports.

L’impression des rapports dans ArcGIS Enterprise ne consomme pas de crédits, mais est soumise à des limitations.

Un modèle de rapport est un fichier Microsoft Word (.docx) qui fournit un texte d’emplacement réservé avec une syntaxe spécifique. Lors de l’impression d’un rapport, ce texte d’emplacement réservé est remplacé par le contenu des champs correspondants à partir de la réponse à l’enquête. Ce texte de remplacement peut être utilisé avec n’importe quelle mise en forme, n’importe quel tableau, n’importe quelle image ou toute autre personnalisation pour créer un modèle qui répond à vos besoins.

Pour créer un modèle, cliquez sur le bouton Report (Rapport) de la barre située au-dessus de la carte, dans l’onglet Data (Données), puis sur Manage Templates (Gérer des modèles). Une nouvelle fenêtre s’ouvre, vous permettant de télécharger un échantillon, de charger un nouveau modèle ou de mettre à jour le nom et le récapitulatif d’un modèle existant. Cliquez sur New template (Nouveau modèle) pour charger un nouveau modèle de rapport, tout en donnant un nom et un récapitulatif au modèle que vous venez de charger. Sinon, vous pouvez utiliser le lien Download sample template (Télécharger un modèle-type) pour télécharger un modèle-type selon votre enquête.

Remarque :

Seuls le propriétaire de l’enquête et les administrateurs de l’organisation peuvent télécharger des modèles de rapport.

Le partage des résultats d'une enquête avec tout le monde, une organisation ou un groupe partage également les modèles de rapport associés à l'enquête.

Expressions

La réponse à une question peut s’afficher dans un modèle de rapport en plaçant son nom entre accolades, par exemple { et }, précédé du symbole dollar. Toute valeur de chaîne incluse dans une expression doit être mise entre guillemets doubles.

L’expression suivante affiche la réponse à une question Texte intitulée firstname.

${firstname}

En plus d’afficher la réponse à une question dans un rapport, les mots-clés permettent aussi d’afficher d’autres informations utiles. L’expression suivante affiche la date et l’heure actuelles lors de l’impression d’un rapport :

${$date}

Si le résultat est un tableau, ce dernier peut faire l’objet d’une itération en ajoutant # comme balise de début et / comme balise de fin à l’intérieur des accolades. L’expression suivante imprime tous les fichiers image sur des lignes distinctes :

${#image1}
${$file}
${/}

Vous pouvez également utiliser des expressions pour affiner le mode d’affichage des réponses. Une expression peut être un nom de question unique ou un mot-clé (comme ci-dessus), un calcul impliquant une ou plusieurs questions ou mots-clés, ou encore un nom de question ou un mot-clé avec des méthodes et des paramètres afin de contraindre ou d’appliquer un style à la réponse. Une expression utilise la notation suivante :

${questionname or keyword | method:parameter}

Une expression inclut plusieurs méthodes et paramètres ou aucun de ces éléments. Les paramètres peuvent être des valeurs provenant d’autres questions ou une valeur fixe.

L’expression suivante affiche le calcul d’une question numérique appelée floweringtrees divisée par une question numérique appelée totaltrees. Lorsque vous faites référence à plusieurs questions dans la même expression, le nom de chaque question doit seulement être mentionné directement, sans être mis entre accolades.

${floweringtrees / totaltrees}

L’expression suivante affiche la valeur de la coordonnée x issue de la question relative à la position dans laquelle getValue désigne la méthode et x le paramètre.

${location | getValue:"x"}

L’expression suivante est considérée comme vraie si la réponse à une question appelée fruitcolor est différente de red.

${if fruitcolor!="red"}The fruit is not red.${/}

Les chaînes peuvent être concaténées dans une expression en les joignant avec un signe plus. Cette expression utilise cette concaténation pour transmettre le contenu d’une question nommée field_0 à un service de génération de QR Code, créant ainsi un QR Code pour la réponse à la question.

${$image | src:"https://barcode.tec-it.com/barcode.ashx?code=QRCode&data="+field_0}

Certains types de question ne prennent pas en charge les expressions et les méthodes. Le tableau suivant dresse la liste des méthodes et des paramètres compatibles avec les types de question.

MéthodeParamètresType de question ConnectType de question du concepteur WebDescription

getValue

-

Tout type de question

Tout type de question

Extrait la valeur des données brutes de la couche d’entités ou l’image brute d’une pièce jointe.

getValue

x, y, z, wkid

geopoint

Carte

Extrait les coordonnées x, y, z de manière individuelle dans une référence spatiale spécifiée. Le paramètre wkid est facultatif et correspond à la référence spatiale de la couche d’entités s’il est omis.

getValue

length, area, unit, measurement type

geotrace, geoshape

Carte

Renvoie la longueur d’une polyligne ou le périmètre/la superficie d’un polygone, dans les unités spécifiées à condition que les mesures sont géodésiques ou planaires. Le type de mesure par défaut est géodésique.

getValue

name, size

image, audio, file

Image (Image), Signature (Signature), Audio (Audio), File (Fichier)

Renvoie le nom de fichier ou la taille d’une pièce jointe.

getValue

width, height, x, y, date, time, direction

image

Image, signature

La largeur et la hauteur renvoient la valeur entière de la largeur et de la hauteur de l’image en nombre de pixels et les valeurs x, y, de date, d’heure et de direction renvoient les valeurs lues à partir de l’image EXIF si cette dernière est présente.

getValue

total

begin repeat, image, audio, file

Repeat (Répéter), Image (Image), Signature (Signature), Audio (Audio), File (Fichier)

Renvoie le nombre total de répétitions ou de pièces jointes.

getValue

position

begin repeat, image, audio, file

Repeat (Répéter), Image (Image), Signature (Signature), Audio (Audio), File (Fichier)

Renvoie un entier égal à la position d’index 1 dans le tableau.

getValue

duration

audio, file

Audio (Audio), File (Fichier)

Renvoie la durée des enregistrements audio en secondes.

Attention :

La durée n'est pas renvoyée dans les réponses collectées dans l'application Web si Safari est utilisé.

appearance

multiline

Texte

Texte multiligne

Permet de conserver les sauts de ligne dans la chaîne. Si aucune apparence n’est spécifiée, la réponse renvoie une chaîne d’une seule ligne.

appearance

puces

select_multiple

Sélection multiple

Renvoie la réponse sous la forme d’une puce.

checked

choice name

select_one, select_multiple

Multiple select (Sélection multiple), Single select (Sélection unique), Single select grid (Grille à sélection unique), Dropdown (Menu déroulant), Likert scale (Échelle de Likert), Rating (Évaluation)

Renvoie une case cochée si la valeur de champ est égale à celle de choice name ; sinon, renvoie une case non cochée.

Sélectionné(s)

choice name

select_one, select_multiple

Multiple select (Sélection multiple), Single select (Sélection unique), Single select grid (Grille à sélection unique), Dropdown (Menu déroulant), Likert scale (Échelle de Likert), Rating (Évaluation)

S’il existe un domaine de valeurs précodées, renvoie true si la valeur de champ est égale à celle de choice name ; sinon, renvoie false.

countSelected

-

select_one, select_multiple

Multiple select (Sélection multiple), Single select (Sélection unique), Single select grid (Grille à sélection unique), Dropdown (Menu déroulant), Likert scale (Échelle de Likert), Rating (Évaluation)

Renvoie le nombre de choix sélectionnés.

selectedAt

index

select_one, select_multiple

Multiple select (Sélection multiple), Single select (Sélection unique), Single select grid (Grille à sélection unique), Dropdown (Menu déroulant), Likert scale (Échelle de Likert), Rating (Évaluation)

Renvoie la chaîne à la position de l’index dans la liste de choix. L’index commence à zéro.

locale

language code

date, dateTime, start, end, decimal

Date (Date), Date and time (Date et heure), Number (Nombre)

Renvoie la date, l’heure et le nombre au format local.

format

format string

date, dateTime, integer, decimal, start, end

Date (Date), Date and time (Date et heure)

Renvoie une chaîne de date mise en forme.

utcOffset

offset value

date, dateTime, start, end

Date (Date), Date and time (Date et heure)

Renvoie une valeur de type date ou date-heure qui est décalée de la valeur de décalage UTC.

mapSettings

web map item ID, map scale

geopoint, geotrace, geoshape

Carte

Spécifie le fond de carte et l’échelle lors de l’impression de l’image de la carte.

Héritage :

Remplacé par map et mapScale.

mapExtent

xmin, ymin, xmax, ymax, wkid

geopoint, geotrace, geoshape

Carte

Spécifie l’étendue de la carte fixe lors de l’impression de l’image de la carte. Le paramètre wkid est facultatif. Il est défini sur 4326 (WGS 1984) s’il n’est pas spécifié.

carte

ID d’élément de la carte Web

geopoint, geotrace, geoshape

Carte

Spécifie le fond de carte lors de l’impression de l’image de la carte.

mapScale

échelle de la carte

geopoint, geotrace, geoshape

Carte

Spécifie l'échelle de la carte lors de l’impression de l’image de la carte.

mapFilters

ID de couche dans le JSON de carte Web, paramètres de requête

geopoint, geotrace, geoshape

Carte

Spécifie un ou plusieurs filtres de couches d’entités dans une carte Web lors de l’impression de l’image de la carte.

rotation

degrés

geopoint, geotrace, geoshape, image

Carte, image

Spécifie l’angle de rotation de l’image ou de la carte.

drawingInfo

currentLayer, URL de la couche d’entités

geopoint, geotrace, geoshape

Carte

Spécifie les informations de dessin lors de l’impression de l’image de la carte, notamment le symbole, l’étiquette et la transparence.

src

URL de l’image

-

-

Spécifiee l’URL source d’un élément d’image dynamique.

taille

width, height, max width, max height

image

Image

Spécifie la taille de l’image imprimée.

arrondi

lieux

decimal, geopoint, geoshape, geotrace

Nombre

Arrondit un nombre décimal au nombre de décimales indiqué.

useGrouping

boolean

decimal

Nombre

Si la condition est vraie, renvoie un nombre avec des séparateurs de groupement déterminés par les paramètres locaux ; si la condition est fausse, aucun séparateur n’est utilisé.

toFixed

lieux

decimal, geopoint, geoshape, geotrace

Nombre

Spécifie un nombre fixe de chiffres après le séparateur décimal. Il se remplit avec des zéros si un nombre fixe de chiffres est requis.

La table suivante répertorie tous les mots-clés qui peuvent être utilisés dans une expression.

Mot-cléDescription

$date

Insère la date et l’heure actuelles lors de l’impression du rapport. Par défaut, il génère la date actuelle en utilisant le format régional actuel.

Exemples :

${$date | format:"MM/DD/YYYY"}
$($date | utcOffset:"+08:00"}
$($date | locale:"zh-cn"}

$image

Insère un élément image dans le rapport. Utilisez la méthode src pour spécifier l’URL de l’image.

Exemple :

${$image | src:"https://upload.wikimedia.org/wikipedia/commons/1/13/Esri_Headquarters%2C_Building_Q.jpg"}

$map

Insère un élément cartographique dans le rapport sans faire référence à une question de l’enquête.

Exemple :

${$map | map:"10df2279f9684e4a9f6a7f08febac2a9" | mapScale:4000000 | size:200:100}

$shape

Imprime la géométrie (point, polyligne ou polygone) de l’entité actuelle sur une carte.

Exemples :

${$shape}
${$shape | map:"10df2279f9684e4a9f6a7f08febac2a9" | mapScale:4000000 | size:200:100}

$attachment

Représente la première pièce jointe ou toutes les pièces jointes de l’entité actuelle.

Exemples :

${$attachment | getValue:"name"}
${$attachment | getValue:"size"}
${$attachment | size:200:300}

Pour itérer toutes les pièces jointes, ajoutez des balises de début et de fin :

${#$attachment}
${$file}
${/}

$file

Représente le fichier actuel lors de l’itération de plusieurs fichiers d’une question d’enquête de type pièce jointe ou de pièces jointes d’une entité.

Exemples :

${#image1}
${$file | size:460:0}
{/}

${#$attachment}
${$file | getValue:"position"}. ${$file | getValue:"name"}
${/}

$feature

Représente l’entité actuelle dans un tableau d’entités.

Exemple :

{#repeat1}
{$feature | getValue: "position"}
{/}

$layers["<layername>"] ou

$layers[<layerId>]

Fait référence à une couche par son nom ou ID figurant dans le même service d’entités que la couche de l’enquête.

Exemples :

${$layers["cities"] | where:”1=1 !important” | stats:”count,objectid”}
${#$layers["states"]}...${/}

Dans la fenêtre Manage templates (Gérer les modèles), sélectionnez Quick reference (Référence rapide) pour ouvrir une page contenant un exemple de syntaxe d’expressions permettant de modifier la réponse affichée dans un rapport pour chaque question de votre enquête. Pour copier cette syntaxe, cliquez sur le bouton Copy to clipboard (Copier dans le presse-papier), puis collez-la dans un modèle de document. Dès que le modèle a été chargé, utilisez les options de la fenêtre Report (Rapport) pour générer votre rapport. Pour plus d’informations, reportez-vous à la rubrique Imprimer les rapports.

Référence rapide au rapport avec des exemples de syntaxe

Les sections suivantes décrivent les scénarios couramment utilisés comportant des expressions pour chaque type de question ainsi que des exemples.

Texte

Les questions sur plusieurs lignes, créées via l’ajout d’une question Multiline text (Texte multiligne) dans le concepteur Web Survey123 ou en appliquant l’apparence multiligne à une question textuelle dans Survey123 Connect, ignorent par défaut les retours chariot. À la place, la réponse apparaît dans un bloc de texte unique. Vous pouvez utiliser une expression pour afficher la réponse à la question avec des retours chariot comme suit :

${multilinetext1 | appearance:"multiline"}

Pour éviter des erreurs, placez cette expression sur une ligne dédiée.

Nombres

Les opérateurs mathématiques de base peuvent être utilisés avec des questions numériques, qui peuvent permettre d’ajouter, de soustraire, de multiplier, de diviser ou de rechercher le modulo des réponses à ces questions. Voici quelques exemples :

${number1 - 15}

${number1 * 6}

${number1 / number2}

${number1 % number2}

Conseil :

Si votre expression inclut une expression mathématique complexe, envisagez d’utiliser des crochets pour que la génération de rapport produise le résultat attendu.

Pour les questions décimales, l’expression round permet de définir un nombre maximum de valeurs décimales à laquelle la valeur est arrondie. L’exemple suivant arrondit le nombre 3,141592 aux quatre valeurs décimales 3,1416 :

${decimal1 | round:4}

L’expression toFixed permet de définir un nombre maximum de valeurs décimales à laquelle la valeur est arrondie. L’exemple suivant fixe le nombre de valeurs décimales de 3,14 à 3,140 :

${decimal1 | toFixed:3}

Vous pouvez utiliser l’expression de format pour afficher la réponse à une question numérique d’une manière spécifique en utilisant des caractères d’emplacement réservé. Les caractères d’emplacement réservé suivants sont pris en charge.

CaractèreDescription

.

Séparateur décimal.

,

S’il est inséré dans le format, il ajoute des séparateurs de groupes, les tailles de groupe étant déterminées par le nombre de chiffres entre le premier emplacement réservé de séparateur de groupe et, soit l’emplacement réservé du point décimal, soit la fin de l’expression. Si aucun n’est ajouté, aucun séparateur de groupes n’est utilisé.

0

Chiffres requis. Si la réponse n’atteint pas le nombre de chiffres requis, elle est remplie avec des zéros.

#

Chiffres facultatifs Si la réponse excède le nombre de chiffres fournis, le nombre est arrondi.

Conseil :

Les séparateurs décimaux et de milliers s’affichent dans le résultat imprimé en fonction de la langue choisie.

L’exemple suivant renvoie la réponse à un maximum de trois décimales avec des séparateurs de milliers, en arrondissant si nécessaire.

${decimal1 | format:"#,##0.###"}

Images et autres pièces jointes

Pour les questions image, il est possible de définir des tailles pour garantir une taille cohérente des images dans vos rapports. Le format pour ces expressions est le suivant :

${image1 | size:width:height:max_width:max_height}

Les valeurs de largeur et de hauteur contrôlent la taille définie pour votre image, mesurée en pixels. Même si ces valeurs sont obligatoires pour l’expression, le fait de renseigner une valeur de 0 ne donnera aucune restriction quant à cette dimension de votre image. Par exemple, l’expression suivante force la largeur de votre image à 300 pixels tout en préservant les proportions de l’image :

${image1 | size:300:0}

Les valeurs de largeur et de hauteur maximales limitent la taille maximale d’une image et sont des valeurs facultatives. L’exemple suivant force la largeur de l’image à 300 pixels, et en limite la hauteur à 200 pixels au maximum :

${image1 | size:300:0:0:200}

Vous pouvez utiliser la méthode rotate pour définir la rotation dans le sens horaire de l’image. Il accepte des valeurs comprises entre 0 et 360.

${image1 | size:300:0:0:200 | rotate:90}

Les questions image peuvent également comporter des détails d’images extraits et affichés dans une réponse d’enquête. Ceci peut être utilisé pour afficher le nom et la taille de fichier de l’image comme suit :

${image1 | getValue:"name"}

${image1 | getValue:"size"}

${image1 | getValue:"width"}

${image1 | getValue:"height"}

La même méthode permet d’afficher les données EXIF de l’image, avec les détails indiquant où et quand une photo a été prise comme suit :

${image1 | getValue:"x"}

${image1 | getValue:"y"}

${image1 | getValue:"date"}

${image1 | getValue:"time"}

${image1 | getValue:"direction"}

Pour afficher l’image d’origine dans sa taille et qualité réelle, utilisez l’expression sans aucune méthode ou utilisez l’expression getValue sans aucune valeur :

${image1} ou ${image1 | getValue:""}

Pour afficher l’image d’origine dans sa qualité réelle mais avec une taille définie, utilisez les expressions getValue et size ensemble.

${image1 | getValue:"" | size:300:0}

Remarque :

Si vous définissez la taille d’une image tout en utilisant un autre paramètre d’expression, size doit être placé en dernière position dans l’expression.

Les dates et heures sont stockées sous forme de chaînes dans les données EXIF, ces valeurs ne peuvent donc pas être présentées dans un rapport à l’aide de l’expression format pour les questions de date et heure. Si la définition du format de ces valeurs est important, envisagez de procéder à une extraction EXIF dans le cadre de votre enquête à l’aide de la fonction pulldata("@exif"). Pour plus d’informations, reportez-vous à la rubrique Images.

Les expressions getValue ci-dessus permettent également d’extraire des données de n’importe quelle propriété valide dans tout type de pièce jointe, notamment les résultats de questions de type image, audio et fichier. Les propriétés pouvant être extraites de n’importe quelle pièce jointe sont les suivantes :

${file1 | getValue:"name"}

${file1 | getValue:"size"}

${file1 | getValue:"globalId"}

${file1 | getValue:"id"}

${file1 | getValue:"contentType"}

${file1 | getValue:"keywords"}

Si toutes les pièces jointes à l’entité sont des images, utilisez les emplacements réservés suivants, en plaçant chacun d’entre eux sur une ligne dédiée :

${#$attachment}
${$file}
${/}

Pour renvoyer plusieurs images envoyées pour la même question dans une réponse, utilisez le nom de la question de type image au lieu de $attachment :

${#image1}
${$file}
${/}

Cette méthode permet d’afficher des images dans les versions ArcGIS Enterprise antérieures à 10.8.1 ou des images qui ont été ajoutées à une entité en dehors de Survey123. L’exemple suivant affiche les noms de fichier de toutes les pièces jointes à une entité :

${#$attachment}
${$file|getValue:"name"}
${/}

Pour afficher une image en ligne, indiquez son URL source avec l’expression src lorsque vous faites références au mot-clé $image au lieu d’un nom de question :

${$image |
src:"https://upload.wikimedia.org/wikipedia/commons/1/13/Esri_Headquarters%2C_Building_Q.jpg"
| size:400:0}

Carte

Toutes les questions qui font appel à une carte (y compris géopoint, géotrace et géoforme) ont des méthodes et des paramètres communs que vous pouvez utiliser pour modifier leur présentation dans les rapports.

Par défaut, une carte dans un rapport utilise la carte Web qui est configurée pour la question. Si l'échelle de la carte est définie sur 0 ou que le paramètre est omis, l'échelle de la carte est déterminée par les entités de la carte, comme suit :

  • Si la carte comporte une seule entité ponctuelle, son échelle correspond à celle qui est configurée pour la question.
  • Si la carte comporte une seule entité linéaire ou surfacique, son échelle est déterminée par l’étendue de l’entité.
  • Si la carte comporte plusieurs entités, l’échelle est déterminée par l’étendue de toutes les entités.

Dans les questions de type carte, il est possible de définir l’ID d’élément d’une carte Web et l’échelle de la carte comme paramètres facultatifs. Dans l’exemple suivant, une échelle de carte de 1:100 000 est utilisée :

${location | map:"7e2b9be8a9c94e45b7f87857d8d168d6" | mapScale:100000}

Pour toutes les questions de type carte, vous pouvez utiliser la méthode rotate pour faire pivoter la carte dans le sens des aiguilles d’une montre (vue définie par rapport au Nord). Il accepte des valeurs comprises entre 0 et 360.

${location | map:"7e2b9be8a9c94e45b7f87857d8d168d6" | mapScale:100000 | rotate:90}

Si vous ne renseignez pas l’ID d’élément de carte Web, le fond de carte par défaut de la question est utilisé. Si vous définissez l’échelle de la carte sur 0 ou omettez ce paramètre, la carte utilise l’étendue par défaut définie pour la question.

La méthode mapExtent peut être utilisée pour définir explicitement l’étendue d’une carte dans un rapport. L’exemple suivant montre une étendue de carte fixe de Tokyo, Japon  :

${location | mapExtent:139.7:35.6:139.9:35.8:4326}

Les questions de type carte prennent également en charge l’expression de taille disponible pour les questions de type image. Vous pouvez utiliser cette expression pour contrôler la résolution de la carte affichée dans le rapport, comme l’illustre l’exemple suivant :

${location | size:400:400}

Vous pouvez utiliser les expressions map, mapScale et size ensemble pour fournir un ID de carte Web ou une échelle de carte, ainsi qu’une résolution d’image comme l’illustre l’exemple suivant :

${location | map:"7e2b9be8a9c94e45b7f87857d8d168d6" | mapScale:100000 | size:400:400}

Remarque :

Si vous définissez la taille d’une carte tout en utilisant une autre méthode d’expression, size doit être placé en dernière position dans l’expression.

Si votre carte contient un grand nombre d’enregistrements, vous pouvez utiliser la méthode mapFilters pour limiter les enregistrements qui s’affichent. Dans l’exemple suivant, le paramètre where est utilisé pour filtrer une carte Web constituée d’une seule couche pour afficher les enregistrements dont le champ POP2000 a une valeur supérieure à 999999 :

${location | map:"7e2b9be8a9c94e45b7f87857d8d168d6" | mapFilters:"where=POP2000>999999"}

Dans l’exemple suivant de mapFilters, le premier paramètre filtre la couche « cities » (villes) (dont l’ID de couche est 18ece64a1fc-layer-5) pour afficher uniquement les trois premiers enregistrements qui ont la population la plus importante dans l’État de Californie. Séparé du premier paramètre par un signe deux-points, le deuxième paramètre filtre la couche « states » (États) (dont l’ID de couche est 18ece64a1fc-layer-6) pour afficher uniquement l’État de Californie :

${$map | map:"7e2b9be8a9c94e45b7f87857d8d168d6" | mapFilters:"'18ece64a1fc-layer-5':where=ST='CA'&orderByFields=POP2000 ASC&resultRecordCount=3":"'18ece64a1fc-layer-6':where=stateName='California'"}

Remarque :

L’ID de couche est une propriété de l’objet couche d’entités du JSON de la carte Web.

Par défaut, une question de type carte s’affiche à l’aide d’un symbole cartographique par défaut, quelle que soit la symbologe définie dans la couche d’entités. Vous pouvez utiliser la méthode drawingInfo pour extraire et utiliser les informations de dessin stockées dans une couche d’entités spécifique, notamment le symbole, l’étiquette et la transparence utilisés. Vous pouvez spécifier ces informations à partir de la couche actuelle ou d’une couche d’entités spécifique via une URL fournie.

${location | drawingInfo:"currentLayer"}

${location | drawingInfo:"https://.../FeatureServer/0"}

Si votre enquête ne comporte pas de question de type carte ou que vous créez des rapports pour des couches d’entités sans enquête associée, la géométrie d’un enregistrement peut tout de même être renvoyée en utilisant l’emplacement réservé ${$shape}.

Dans une section de synthèse, une expression pour une question Carte affiche plusieurs géométries dans l’entrée de votre question. Si vous voulez inclure d’autres réponses pour un rapport individuel, fournissez une expression where avec la balise !important. Pour plus d’informations, reportez-vous à la rubrique Syntaxe supplémentaire. L’expression suivante affiche toutes les géométries dans la couche où la valeur du champ d’état est égale à « endommagé » :

${location | where:"status='broken' !important" | map:"<itemID>" | size:400:300}

Remarque :

Dans l’exemple ci-avant, l’échelle de la carte est omise. Si vous définissez l’échelle de la carte sur 0 ou omettez ce paramètre et que la carte contient plusieurs enregistrements, la carte utilise l'étendue combinée de tous les enregistrements.

Vous pouvez faire en sorte que l’expression where soit toujours vraie afin que chaque géométrie de la couche s’affiche :

${location | where:"1=1 !important"}

Cela permet également d’afficher tous les points dans une répétition :

${repeat1.repeatLocation | where:"inspectionId=123 !important" | size:400:300}

Il est également possible d’utiliser le mot-clé $shape pour renvoyer plusieurs géométries de carte.

${$shape | where:"1=1 !important" | drawingInfo:"currentLayer" | size:400:300}

Le mot-clé $map peut être utilisé pour imprimer une carte qui ne fait référence à aucune question d’enquête.

${$map | map:"7e2b9be8a9c94e45b7f87857d8d168d6" | mapScale:100000 | size:400:400}

Géopoint

Pour les questions de type géopoint, vous pouvez utiliser des expressions pour afficher les valeurs de latitude ou de longitude à partir de la question, comme suit :

${location | getValue:"x"}

${location | getValue:"y"}

Vous ne pouvez pas afficher les deux valeurs avec une expression ; si les deux valeurs sont requises, vous devez utiliser les deux expressions.

Conseil :

Vous pouvez également afficher la valeur d’altitude via une expression similaire, mais seulement si la couche d’entités sous-jacente prend en charge les valeurs z :

${location | getValue:"z"}

Par défaut, les valeurs de latitude, de longitude et d’altitude renvoient la valeur d’origine fournie dans la réponse à l’enquête, sans troncature. Comme ces valeurs peuvent souvent être beaucoup plus longues que nécessaire dans un rapport, vous pouvez utiliser les expressions round ou toFixed pour arrondir la valeur à une décimale donnée.

${location | getValue:"x" | round:3}

${location | getValue:"x" | toFixed:3}

Par défaut, ces valeurs sont rendues selon la même référence spatiale que celle utilisée par la couche d’entités de l’enquête. Vous pouvez définir une autre référence spatiale sous forme d’un paramètre supplémentaire en fournissant son ID connu (WKID) :

${location | getValue:"x":4326}

Géotrace et géoforme

Pour les questions de type géotrace et géoforme, vous pouvez utiliser l’expression getValue afin d’afficher, respectivement, la longueur de la ligne ou le périmètre du polygone :

${polyline1 | getValue:"length":"meters":"planar"}

Pour les questions de type géoforme, vous pouvez également utiliser l’expression getValue afin d’afficher l’aire du polygone :

${polygon1 | getValue:"area":"hectares":"geodesic"}

Les unités et la méthode de calcul sont des paramètres facultatifs. Les unités suivantes sont acceptées pour la longueur :

  • feet
  • kilometers
  • meters
  • miles
  • nautical-miles
  • yards

Les unités suivantes sont acceptées pour l’aire :

  • acres
  • hectares
  • square-miles
  • square-kilometers
  • square-meters
  • square-feet
  • square-yards

Sinon, vous pouvez utiliser l’une des constantes esriSRUnitType ou des constantes esriSRUnit2Type prises en charge par ArcGIS REST API. Dans votre expression, utilisez le code numérique de la constante sans guillemets, comme suit :

${polyline1 | getValue:"length":109002:"geodesic"}

Si aucune unité n’est spécifiée, les valeurs par défaut sont kilometers pour la longueur et square-kilometers pour l’aire.

La méthode peut être soit geodesic, soit planar. Si vous ne définissez pas de méthode, geodesic est utilisé par défaut.

Date, heure et date-heure

Pour être sûr que les questions de type date et date-heure sont présentées selon le formatage correspondant à votre région, vous pouvez utiliser une expression pour formatter la question de sorte qu’elle corresponde à un paramètre régional fourni. Placez le paramètre locale en premier dans une expression, et le code de paramètres régionaux doit être en minuscules.

${datetime | locale:"pt-br"}

Remarque :

Pour plus d’informations sur le code de paramètres régionaux d’une langue donnée, consultez la Liste de codes ISO 639-1 sur Wikipédia. Cependant, n’oubliez pas que ces langues ne sont pas toutes prises en charge par Survey123.

Toutes les valeurs de type date et date-heure d’une couche d’entités sont stockées en temps universel coordonné (UTC). Par défaut, toutes les valeurs de type date et date-heure renvoyées dans un rapport relèvent du même fuseau horaire que le navigateur Web à partir duquel la génération du rapport a été demandée. Si vous souhaitez modifier l’affichage de ces valeurs dans un rapport, utilisez la méthode utcOffset pour définir un fuseau horaire spécifique. Dans l’expression suivante, la réponse à une question de type date-heure est affichée avec un décalage d’une heure de plus (+1) par rapport au temps universel coordonné (UTC) :

${datetime | utcOffset:"+01:00"}

La méthode utcOffset prend en charge les formats +01:00, +0100 et +01 et renvoie le même résultat. Vous pouvez utiliser cette méthode pour modifier l’affichage de l’heure d’envoi des réponses. Sachez que utcOffset ne fonctionne pas avec les questions de type heure.

Pour les questions de type date et date-heure, vous pouvez utiliser une expression pour formater la date à l’aide d’emplacements réservés JJ, MM et AAAA pour le jour, le mois et l’année respectivement. L’expression suivante affiche uniquement le jour et le mois, sans omettre l’année :

${date | format:"DD/MM"}

Vous pouvez également formater l’heure dans les questions de type date-heure, à l’aide d’espaces réservés HH, mm et ss pour heures, minutes et secondes respectivement. L’expression suivante affiche le jour, le mois, les heures et les minutes :

${datetime | format:"DD/MM HH:mm"}

Vous pouvez afficher les dates et les heures au format ISO 8601 de YYYY-MM-DDTHH:mm:ss±HH:mm en laissant vierge la valeur pour la méthode format, comme indiqué dans l’exemple suivant :

${datetime | format:""}

Pour plus d’informations sur les formats de date et d’heure, consultez la table ci-dessous.

Remarque :

Vous devez placer la méthode format à la fin de l’expression.

Vous pouvez imprimer la date et l’heure de génération du rapport à l’aide du mot-clé $date. Utilisez la méthode format pour indiquer si la date, l’heure ou les deux doivent être imprimées. La syntaxe suivante imprime la date de génération du rapport (sans l’heure) au format de date par défaut pour votre région :

${$date}

L’expression suivante imprime le mois, le jour, les heures et les minutes pour la date et l’heure de génération du rapport :

${$date | format:"MM/DD/YYYY HH:mm"}

L’expression suivante imprime l’heure de génération du rapport (sans la date) en heures, minutes et secondes au format horaire de 12 heures :

${$date | format:"h:mm:ss A"}

Le mot-clé $date prend également en charge les méthodes utcOffset et locale. La méthode locale est ignorée lorsque format et locale sont spécifiés.

Formats de date et heure

La table suivante répertorie les emplacements réservés les plus courants pouvant être utilisés avec la méthode format pour formater les dates et heures dans un rapport :

Emplacement réservéDescription

AA

Les deux derniers chiffres de l’année.

Exemple : 2023 est représenté sous la forme 23.

AAAA

Les quatre chiffres de l’année.

Exemple : 2023 est représenté sous la forme 2023.

V

Le numéro du mois, de 1 à 12.

Exemple : janvier est représenté sous la forme 1.

MM

Le numéro du mois sur deux chiffres.

Exemple : janvier est représenté sous la forme 01.

MMM

Le mois en trois lettres.

Exemple : janvier est représenté sous la forme jan.

MMMM

Le mois en toutes lettres.

Exemple : janvier est représenté sous la forme janvier.

D

Le numéro du jour, de 1 à 31.

Exemple : le premier jour du mois est représenté sous la forme 1.

DD

Le numéro du jour sur deux chiffres.

Exemple : le premier jour du mois est représenté sous la forme 01.

Do

Le numéro du jour avec son suffixe ordinal.

Exemple : le premier jour du mois est représenté sous la forme 1er.

H

Le numéro de l’heure au format 24 heures.

Exemple : 11 p.m. (11 heures du soir) est représenté sous la forme 23.

HH

Le numéro de l’heure au format 24 heures sur deux chiffres.

Exemple : 2 a.m (2 heures du matin) est représenté sous la forme 02.

h

Le numéro de l’heure au format 12 heures.

Exemple : 11 p.m. (11 heures du soir) est représenté sous la forme 11.

hh

Le numéro de l’heure au format 12 heures sur deux chiffres.

Exemple : 2 a.m (2 heures du matin) est représenté sous la forme 02.

m

Le numéro de minute, de 0 à 59.

Exemple : 8 minutes est représenté sous la forme 8.

mm

Le numéro de minute sur deux chiffres.

Exemple : 8 minutes est représenté sous la forme 08.

ss

Le numéro de seconde sur deux chiffres.

Exemple : 9 secondes est représenté sous la forme 09.

Z

Le décalage horaire en heures avec séparateur.

Exemples : -07:00, +13:00

ZZ

Le décalage horaire en heures sans séparateur.

Exemples : -0700, +1300

x

Horodatage Unix en millisecondes.

Exemple : 9 p.m. (9 heures du soir) le 4 mai 2023 GMT est représenté sous la forme 1683234000000.

x

Horodatage Unix.

Exemple : 9 p.m. (9 heures du soir) le 4 mai 2023 GMT est représenté sous la forme 1683234000.

a

Notation du matin ou de l’après-midi en minuscules.

Exemple : a.m. est représenté sous la forme am, et p.m. est représenté sous la forme pm.

A

Notation du matin ou de l’après-midi en majuscules.

Exemple : a.m. est représenté sous la forme AM, et p.m. est représenté sous la forme PM.

Choix multiples

Si une question à choix unique fait référence à elle-même dans un emplacement réservé, par exemple, ${select_one}, elle renvoie l’étiquette du choix. Si une question à sélection unique est employée dans une expression ou que la question utilise une sélection externe, la question à sélection unique renvoie le nom d’un élément de choix. L’exemple suivant utilise un nom de choix, et non une étiquette, pour une instruction conditionnelle :

${if select_one=="choice1Name"}The user selected the first choice.${/}

Pour afficher intentionnellement le nom d’un choix plutôt que l’étiquette, utilisez l’expression getValue :

${select_one | getValue:""}

Pour les deux questions de type sélection unique et sélection multiple, vous pouvez utiliser une expression pour placer une case à cocher en regard d’un élément de choix, qui est coché selon la réponse à la question. Le nom de choix (et non l’étiquette de choix) doit être utilisé. Les expressions suivantes ont pour effet d’afficher les fruits sélectionnés :

${select_one | checked:"apple"} Apple

${select_one | checked:"pear"} Pear

Si Allow "Other" (Permettre « Autre ») a été activé pour une question à sélection unique ou multiple, utilisez le nom de choix other:

${select_one | checked:"other"} Other fruits you like: ${favFruits_other}

Les questions à choix multiples prennent en charge des expressions permettant de générer le montant total des choix sélectionnés et de générer un choix sélectionné spécifique :

${select_multiple | countSelected}

${choiceQuestion1 | selectedAt:2}

Remarque :

L’expression selectedAt commence à compter les choix sélectionnés à partir de zéro. Cela signifie que ${choiceQuestion1 | selectedAt:2} renverra le troisième choix sélectionné.

Les questions de type sélection multiple ont également une expression pour renvoyer tous les éléments de choix sélectionnés comme liste à puces, comme suit :

${select_multiple | appearance:"bullets"}

Remarque :

Si l’étiquette de votre élément de choix contient des guillemets doubles, ils doivent être précédés d’une barre oblique inverse. Sinon, votre rapport ne s’imprimera pas. Une barre oblique inverse nʼest pas nécessaire pour des guillemets simples. En voici un exemple :

${select_one | checked:"Service provided by \"Greg's Plumbing\""} Service provided by "Greg's Plumbing"

Répétitions

Pour accéder aux questions d’une répétition, ajoutez une section de répétition à votre modèle. Dans le cas d’une répétition nommée defects, l’emplacement réservé ${#defects} indique le début de la section de répétition, tandis que ${/} en indique la fin. Les emplacements réservés pointant vers des questions dans la répétition doivent se situer entre les emplacements réservés de début et de fin de la section de répétition.

Remarque :

Pour imprimer le contenu d’une répétition dans une table, vérifiez que la balise de début et la balise de fin sont toutes les deux insérées dans la table ou en dehors de la table. Il n’est pas possible de générer un rapport si l’une de ces balises se trouve dans une table alors que l’autre se trouve à l’extérieur. Dans la plupart des cas, si une balise de début et une balise de fin sont insérées dans une table, la balise de début doit se trouver dans la première cellule et la balise de fin doit être dans la dernière cellule.

Pour accéder aux questions dans une répétition imbriquée, placez ses balises entre les balises de chaque couche de répétition au-dessus de la section de répétition concernée. En voici un exemple :

${#repeat1}
${#repeat2}
${#repeat3}
${field1InRepeat3}, ${repeat2.field1}, ${repeat1.field1}, ${mainLayer.field1} 
${/}
${/}
${/}

Les expressions de rapport ne peuvent pas lire les caractères spéciaux comme les traits d’union lors du référencement des noms de couches avec la syntaxe ${layername}. Lors du référencement d’une couche dont le nom contient un caractère spécial, remplacez le caractère spécial par un trait de soulignement. Vous pouvez également désigner la couche via le mot-clé $layers et le nom de couche ou l’ID de couche, par exemple, ${$layers["my layer name"]} ou ${$layers[0]}. Ceci peut être utile pour les noms de couche dupliqués.

Pour faire référence à un champ dans la répétition qui porte le même nom que sa répétition parente, utilisez la syntaxe de chemin complet comportant le nom du champ et le nom de la répétition, par exemple ${sharedName.sharedName}.

Pour afficher l’index d’un enregistrement de répétition, utilisez l’expression getValue avec le mot-clé réservé $feature. Cet exemple donne 1 pour le premier enregistrement dans une répétition, 2 pour le deuxième, et ainsi de suite :

${#defects}
${$feature | getValue: "position"}
${/}

Requêtes des rapports

Vous pouvez utiliser des fonctions d’agrégation pour générer des requêtes des valeurs dans vos réponses affichées. Ces requêtes sont particulièrement adaptées aux sections de synthèse, qui n’apparaissent qu’une fois dans un rapport, quel que soit le nombre de réponses affichées. Pour plus d’informations, reportez-vous à la rubrique Requêtes des rapports.

Pour limiter l’impression de votre rapport à un nombre donné de répétitions, et non à l’ensemble des répétitions associées à la réponse, utilisez la méthode resultRecordCount pour définir le nombre de répétitions à afficher.

${#defects | resultRecordCount:20}...${/}

Vous pouvez utiliser la méthode orderByFields pour déterminer l’ordre d’affichage des répétitions. Déclarez un nom de champ, suivi de ASC ou DESC, pour afficher les répétitions en fonction de l’entrée de ce champ, dans l’ordre croissant ou décroissant, respectivement :

${#defects | orderByFields:"state_name ASC, pop2000 DESC"}...${/}

Éléments de rapport conditionnels

Vous pouvez afficher ou masquer les éléments d’un rapport de manière conditionnelle à l’aide d’instructions if. Vous pouvez utiliser l’instruction if en saisissant une expression dans l’emplacement réservé ${if expression} de début, où ${/} indique la fin du segment conditionnel. Voici quelques exemples d’instructions if qui permettent d’afficher ou de masquer des parties d’un rapport :

  • ${if photo1} affiche la section uniquement s’il existe une réponse à la question photo1.
  • ${if integer1>0} affiche la section uniquement si la réponse à la question integer1 est un nombre positif.
  • ${if ((geopoint1 | getValue:"y")>0)} affiche la section uniquement si le géopoint se situe dans l’hémisphère nord.
  • ${if multiple_choice1 | selected:"A"} affiche la section uniquement si le choix « A » a été sélectionné pour la question à choix multiples.
  • ${if (repeat1 | getValue:"count")>=3} affiche la section uniquement si repeat1 contient au moins trois enregistrements.

Dans l’exemple suivant, le texte de la seconde ligne apparaît uniquement dans le rapport si high est sélectionné pour la question à choix unique de priorité :

${if priority | selected:"high"}
High priority issues must be addressed within seven days.
${/}

Pour vérifier si une réponse contient une valeur pour une question, utilisez seulement une instruction if faisant directement référence au nom de champ, sans aucun autre opérateur. Par exemple, ${if photo1}. Ce format garantit que les chaînes vides, les valeurs nulles , et les valeurs non définies sont toutes considérées des valeurs vides. Ce format s’applique aux champs de type chaîne, nombre, date et pièce jointe. Si ce format est utilisé avec des répétitions, la section apparaît à partir du moment où la répétition contient au moins une instance.

Pour utiliser des instructions conditionnelles avec les questions de date et d’heure, effectuez les calculs au format Epoch (nombre de secondes écoulées depuis le 1er janvier 1970). Par exemple, ${if (date1|getValue:"") < 1602735375000} affiche la section seulement si la valeur figurant dans le champ de date est antérieure au 14 octobre 2020. N’oubliez pas que la syntaxe du rapport n’a pas d’équivalent pour les fonctions today() ou now() de la feuille de calcul XLSForm. Il est donc impossible de composer une instruction conditionnelle pour la période relative à l’impression du rapport.

Les opérateurs logiques suivants sont pris en charge dans les instructions if:

OpérateurDescription

||

True (Vrai) si l’une des deux instructions renvoie true (Vrai)

&&

True (Vrai) si les deux instructions données renvoient true (Vrai)

!

True (Vrai) si l’instruction ne renvoie pas true (Vrai)

==

True (Vrai) si les deux valeurs données sont égales

!=

True (vrai) si les deux valeurs données ne sont pas égales

>

Vérifie si la première valeur est supérieure à la seconde

>=

Vérifie si la première valeur est supérieure ou égale à la seconde

<

Vérifie si la première valeur est inférieure à la seconde

<=

Vérifie si la première valeur est inférieure ou égale à la seconde

Limitations

Lors de l’utilisation de modèles de rapport, les limitations sont les suivantes :

  • Les filtres appliqués aux répétitions sur le site Web de Survey123 ne sont pas appliqués dans les rapports. Les répétitions ne peuvent être filtrées dans un rapport qu’à l’aide d’expressions.
  • Votre carte n’apparaît pas dans le rapport si la carte utilise une carte Web de version antérieure à 2.0, qui a été publiée en juillet 2014.
  • Votre carte n’apparaît pas dans le rapport si votre portail ArcGIS Enterprise ne possède pas un certificat SSL valide.
  • L’impression utilisant des modèles de rapport ne fonctionne pas avec les déploiements ArcGIS Enterprise qui ne sont pas destinés au grand public. Toute tentative en ce sens génère une erreur getaddrinfo ENOTFOUND.
  • L’impression utilisant des modèles de rapport ne fonctionne pas avec les déploiements ArcGIS Enterprise qui utilisent l’authentification Windows intégrée (IWA).
  • Vous pouvez inclure un maximum de 2 000 enregistrements par demande de rapport.
  • Si le site Web Survey123 est installé sur votre infrastructure, l’API de génération de rapport ne peut pas être utilisée. Les rapports peuvent uniquement être générés lors de l’utilisation de https://survey123.arcgis.com/.