Modèles de rapport

Dans Survey123, l’outil Report (Rapport) permet de créer des modèles personnalisés et de produire 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

L’impression des rapports est un service Premium ArcGIS Online et consomme des crédits. Le coût minimal est de 0,5 crédit. Lorsqu’un rapport contient plusieurs enregistrements d’enquête, le coût du rapport est de 0,5 crédit par enregistrement d’enquête. Tous les enregistrements associés à un même enregistrement d’enquête peuvent être inclus dans le rapport sans frais supplémentaires. De plus, l’utilisateur qui effectue une opération payante doit posséder le rôle Utilisation comportant le privilège Feature report (Rapport sur les entités). Pour plus d’informations, reportez-vous à la rubrique Configurer les rôles des membres.

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.

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. L’expression suivante affiche la réponse à une question de type texte intitulée firstname.

${firstname}

Vous pouvez également utiliser des expressions pour définir les réponses à afficher dans le rapport ainsi que la manière de les afficher. Une expression peut être un nom de question unique, un calcul impliquant une ou plusieurs questions ou un nom de question 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 | 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"}

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, file

Image, Signature, 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, file

Répéter, Image, Signature, Fichier

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

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

Choix multiples

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

checked

choice value

select_one, select_multiple

Choix multiples, Choix unique, Grille à choix unique, Liste déroulante, Échelle de Likert, Évaluation

Renvoie une case cochée si la valeur de champ est égale à choiceValue. Sinon, renvoie une case non cochée.

Sélectionné(s)

choice value

select_one, select_multiple

Choix multiples, Choix unique, Grille à choix unique, Liste déroulante, Échelle de Likert, Évaluation

Si un domaine de valeurs précodées existe, renvoie True lorsque la valeur de champ est égale à la valeur du choix. Sinon, renvoie False.

countselected

-

select_one, select_multiple

Choix multiples, Choix unique, Grille à choix unique, Liste déroulante, Échelle de Likert, Évaluation

Renvoie le nombre de choix sélectionnés.

selectedAt

index

select_one, select_multiple

Choix multiples, Choix unique, Grille à choix unique, Liste déroulante, Échelle de Likert, É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/heure, Nombre

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

format

format string

date, dateTime, integer, decimal, start, end

Date, Date/heure

Renvoie une chaîne de date mise en forme.

utcOffset

offset value

date, dateTime, start, end

Date, Date/heure

Renvoie une heure UNIX décalée selon 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.

rotation

degré

geopoint, geotrace, geoshape, image

Carte, image

Spécifie l’angle de rotation lors de l’impression de l’image.

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

image

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.

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 réponse apparaît ainsi 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 rotation 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 | rotation: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(). 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}

Questions de type 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 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 carte comme paramètres facultatifs, en insérant mapSettings: avant ces valeurs. Dans l’exemple suivant, une échelle de carte de 1:100 000 est utilisée :

${location | mapSettings:"10df2279f9684e4a9f6a7f08febac2a9":100000}

Pour toutes les questions de type carte, vous pouvez utiliser la méthode rotation 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 | mapSettings:"10df2279f9684e4a9f6a7f08febac2a9":100000 | rotation: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 une échelle de carte de 0 est spécifiée, la carte effectue un zoom sur la géométrie de la question.

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 mapSettings 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 | mapSettings:"10df2279f9684e4a9f6a7f08febac2a9":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.

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" | mapSettings:"<itemID>":0 | size:400:300}

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 l’emplacement réservé ${$shape} pour renvoyer plusieurs géométries de carte.

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

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.

Par défaut, toutes les valeurs de date et date-heure stockées dans une couche d’entités sont affichées en temps universel coordonné (UTC). 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 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"}

Remarque :

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

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 à choix unique est employée dans une expression, ou si la question utilise une sélection externe, elle renvoie la valeur d’un élément de choix. L’exemple suivant utilise une valeur de choix, plutôt qu’une étiquette, pour une instruction conditionnelle :

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

Pour afficher intentionnellement la valeur 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. L’expression suivante s’affiche lorsque l’option yes a été sélectionnée pour une question :

${select_one | checked:"yes"} Yes

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 :

  • 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.
  • Les modèles de rapport sont pris en charge uniquement si vous utilisez le site Web Survey123 avec ArcGIS Enterprise 10.5 et version ultérieure.
  • 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.