For the complete documentation index, see llms.txt. This page is also available as Markdown.

Syntaxe et fonctions

Référence complète de la syntaxe, des champs système et des fonctions disponibles dans les modèles de rapport Daxium-Air.

Index des fonctions

Instruction / Fonction
Description
Section

<%SystemName%>

Insérer un champ par son nom système

Insérer un champ simple

<%MarkDown(SystemName)%>

Insérer un champ texte enrichi en préservant la mise en page (Word uniquement)

Insérer un champ simple

<%MarkDownEx([SystemName], Font, Size)%>

Insérer un champ texte enrichi avec une police et une taille imposées (Word uniquement)

Insérer un champ simple

Arithmétique <% A + B %>

Calculs entre champs

Insérer une formule

Repeat()

Répéter une ligne de tableau pour chaque fiche en mode listing

Repeat()

DISTINCT()

Supprimer les valeurs en double dans un listing

Repeat()

Image() / Img()

Insérer une seule image

Manipulation d'images

Images()

Insérer toutes les images d'un champ multi-images

Manipulation d'images

UseImagesPreview()

Redimensionner les images avant insertion pour alléger le fichier

Manipulation d'images

#xComment

Récupérer le commentaire associé à une image

Manipulation d'images

SetPdfJpegQuality()

Convertir les images en JPEG avec un indice de qualité donné

Manipulation d'images

Map()

Afficher une carte GPS centrée sur la localisation de la fiche

Manipulation d'images

ImageExif()

Extraire les métadonnées Exif (date, GPS) d'une photo

Manipulation d'images

BarCode()

Insérer un code-barres

Manipulation d'images

QrCode()

Insérer un QR code

Manipulation d'images

ImageWatermark()

Superposer du texte sur une image

Manipulation d'images

Index()

Numéro de ligne auto-incrémenté dans un listing

Fonctions utilitaires

MapLetter()

Lettre d'épingle générée par Google Maps

Fonctions utilitaires

Format() / F()

Formater un champ Date ou Nombre

Fonctions utilitaires

Date()

Date et heure actuelles

Fonctions utilitaires

AddHours()

Ajouter ou retirer des heures à une date

Fonctions utilitaires

AddDays()

Ajouter ou retirer des jours à une date

Fonctions utilitaires

AddMonths()

Ajouter ou retirer des mois à une date

Fonctions utilitaires

AddYears()

Ajouter ou retirer des années à une date

Fonctions utilitaires

Add()

Sommer plusieurs valeurs numériques, en traitant les valeurs nulles comme 0

Fonctions utilitaires

ToUpper() / ToLower()

Convertir une chaîne en majuscules ou minuscules

Fonctions utilitaires

List()

Assembler plusieurs valeurs avec un séparateur

Fonctions utilitaires

Split()

Extraire un segment d'une chaîne délimitée

Fonctions utilitaires

ToNumber() / N()

Convertir du texte en nombre

Fonctions utilitaires

ToDate() / D()

Convertir du texte en date

Fonctions utilitaires

ToString() / S()

Convertir une valeur en texte

Fonctions utilitaires

If()

Retourner une valeur selon une condition

Exists()

Tester si un champ existe dans le formulaire

Hide()<%End%>

Masquer une section du document lorsque la condition est vraie

Display()<%End%>

Afficher une section du document lorsque la condition est vraie

DisplayRow()

Afficher une ligne de tableau lorsque la condition est vraie

Contains()

Tester si une chaîne contient un motif

StartsWith()

Tester si une chaîne commence par une valeur

EndsWith()

Tester si une chaîne se termine par une valeur

Relation()

Répéter des lignes pour chaque fiche enfant liée

Relation

Count()

Compter les fiches de l'ensemble courant

Fonctions d'agrégation

Sum()

Sommer un champ numérique sur toutes les fiches

Fonctions d'agrégation

Avg()

Valeur moyenne d'un champ sur toutes les fiches

Fonctions d'agrégation

Min() / Max()

Valeur minimale ou maximale d'un champ

Fonctions d'agrégation

GlobalMap()

Afficher plusieurs points GPS sur une seule carte

Fonctions d'agrégation

Chart()

Afficher un graphique en barres ou en camembert

Fonctions d'agrégation

Accesseurs de champs Liste

Extraire des niveaux ou des éléments d'un champ liste

Cas particuliers

Accesseurs de champs Utilisateur

Extraire les noms et e-mails d'un champ utilisateur

Cas particuliers

Balises d'état de workflow

Afficher l'état de workflow courant et sa couleur

Cas particuliers

FileImage()

Insérer des pages PDF sous forme d'images dans un rapport

Cas particuliers

FilePageCount()

Compter les pages d'un PDF attaché

Cas particuliers


Champs système

Utilisez les balises suivantes pour accéder aux métadonnées de la fiche dans n'importe quel modèle de rapport.

Identification de la fiche

Champ
Balise

Numéro de fiche

<%SubmissionId%> ou <%Id%>

Numéro UID

<%SubmissionUid%>

Création de la fiche

Champ
Balise

Date du premier enregistrement sur le web

<%Created_At%>

Date de création de la fiche

<%DataCreatedAt%>

Créateur de la fiche — prénom

<%[CreateUser.FirstName]%>

Créateur de la fiche — nom

<%[CreateUser.LastName]%>

Créateur de la fiche — e-mail

<%[CreateUser.Email]%>

Créateur du rapport

Champ
Balise

Créateur du rapport — prénom

<%[ReportUser.FirstName]%>

Créateur du rapport — nom

<%[ReportUser.LastName]%>

Créateur du rapport — e-mail

<%[ReportUser.Email]%>

Dernière mise à jour

Champ
Balise

Date du dernier enregistrement sur le web

<%[Updated_At]%>

Date de mise à jour de la fiche

<%[Updated_At]%>

Dernière modification par (e-mail)

<%[UpdateUser.Email]%>

Formulaire

Champ
Balise

Nom du formulaire

<%StructureName%>

Identifiant du formulaire

<%StructureId%>

Tâche liée

Champ
Balise

Date et heure de début prévues

<%[Task.PlannedStart]%>

Date et heure de fin prévues

<%[Task.PlannedEnd]%>

Échéance

<%[Task.PlannedDue]%>

Date et heure de début effectives

<%[Task.RealStart]%>

Date et heure de fin effectives

<%[Task.RealEnd]%>

État (effectué, à faire)

<%[Task.FillStatus]%>

Statut temporel (à l'heure, en retard…)

<%[Task.TimeStatus]%>

Autres informations

Champ
Balise

Nom de la société (depuis l'URL)

<%CompanyTitle%>

Position GPS native (création sur mobile)

<%SubmissionLatitude%><%SubmissionLongitude%>

Insérer un champ simple

Un champ de formulaire s'insère en entourant son nom système par <% et %>. Ces marqueurs indiquent au système où les données de la fiche doivent être insérées. Vous pouvez appliquer n'importe quelle mise en forme prise en charge par Word/Excel (gras, italique, souligné) directement sur la balise.

Si votre champ Texte utilise l'option « Texte enrichi », utilisez <%MarkDown(SystemName)%> pour préserver la mise en page dans les rapports Word. Non fonctionnel dans Excel.

Pour également imposer une police et une taille de police sur ce texte enrichi, utilisez plutôt <%MarkDownEx([SystemName], 'Police', Taille)%> :

Paramètre
Description

[SystemName]

Nom système du champ texte enrichi

'Police'

Police à appliquer

Taille

Taille de police

Ceci ne fonctionne que sur les champs Texte utilisant l'option « Texte enrichi », dans les rapports Word. Voir Polices PDF pour la liste des polices prises en charge lors de la conversion du rapport en PDF.

Insérer une formule

Vous pouvez appliquer des calculs directement entre champs dans une balise de rapport.

<operator> peut être n'importe quelle opération mathématique : +, -, *, /, %

  • ConstantExpression est un nombre avec ou sans décimales

  • Les parenthèses sont prises en charge

  • % est également l'opérateur modulo

Exemples :

  • <%Price * 1.196%> — avec Price = 10 : le résultat est 11.96

  • <%(Price * Quantity) – (15 / 100) * (Price * Quantity)%> — avec Price = 18 et Quantity = 2 : le résultat est 30.6

Voici la liste complète des fonctions mathématiques prises en charge. Elles sont également sensibles à la casse.

Repeat()

Lorsque le modèle de rapport est en mode listing, l'instruction Repeat() répète une section du document pour chaque ligne de données. Elle doit être placée dans la première cellule (la plus à gauche) de la ligne du tableau à répéter.

Paramètre
Description
Défaut

filter

Condition de filtrage, p. ex. Id>3 ou DateField<#date# (optionnel)

Aucun

sort

Nom système du champ de tri (optionnel)

Aucun

Le modèle tout entier ne peut contenir qu'une seule instruction Repeat(). Si plusieurs sont présentes, seule la première est détectée.

Repeat() peut être utilisé de quatre manières :

Utilisation
Syntaxe

Sans aucun critère

<%Repeat()%>

Filtrage uniquement

<%Repeat(Id>3)%>

Tri uniquement

<%Repeat(,Name)%>

Filtrage et tri

<%Repeat(Id>3,Name)%>

Ex :

Avec 3 lignes de données, le résultat est le suivant:

Filtrer les résultats

Filtrez les lignes répétées à l'aide d'une condition :

Les dates utilisent le format Jour/Mois/Année. Vous pouvez également utiliser #date# comme variable pour la date du jour :

Le second exemple signifie « il y a 5 jours ». Le format n'est pas sensible à la casse (#Date-5D# fonctionne aussi).

Vous pouvez définir l'intervalle de temps grâce aux unités du tableau ci-dessous :

Utilisez + au lieu de - pour faire référence à des dates futures. Exemple : <%Repeat(DateField < #date+10d#)%> signifie aujourd'hui + 10 jours.

Vous pouvez combiner les conditions de filtrage avec les opérateurs AND ou OR :

Éviter la redondance des données — DISTINCT()

Lorsque vous utilisez Repeat(), utilisez DISTINCT() pour éviter de répéter la même valeur :

Pour les champs contenant plusieurs textes distincts (dates, listes multi-niveaux), utilisez un second argument comme séparateur de concaténation :

Cela retourne tous les mois uniques de création de fiches sur l'ensemble répété.

Trier les résultats

Repeat() accepte un second paramètre pour trier les résultats. Le critère de tri doit être un nom de colonne :

Exemple :

Manipulation d'images

Image()

Insère une seule image depuis un champ image :

Alias raccourci : <%Img(FieldName, Width, Height)%>

Paramètre
Description
Défaut

FieldName

Nom système du champ image

Width

Largeur de l'image en pixels

Height

Hauteur de l'image en pixels (optionnel)

Identique à Width

  • Si la hauteur est omise, l'image est placée dans un carré de Width × Width pixels

  • Si la largeur et la hauteur sont toutes deux spécifiées, l'image s'inscrit dans ce rectangle sans déformation

Exemples :

Grande photo : <%Image(ImageFieldName, 200)%>

Petite photo : <%Img(ImageFieldName, 70, 50)%>

Images()

Pour les champs image autorisant plusieurs images (max > 1), utilisez Images() inséré dans un tableau à une seule colonne :

Paramètre
Description
Défaut

FieldName

Nom système du champ multi-images

start

Index de la première image à inclure (optionnel)

1

end

Index de la dernière image à inclure (optionnel)

Toutes

Pour définir une taille pour les images, ajoutez <%Image()%> :

Pour récupérer des données supplémentaires (métadonnées) des images, renseignez le champ dans un tableau avec la structure suivante :

Redimensionner les images — UseImagesPreview()

Redimensionnez les images avant de les insérer pour réduire le poids du rapport et le temps de génération :

Remplacez ImageSize par l'attribut du tableau ci-dessous. Toutes les images situées après cette balise seront redimensionnées en conséquence :

UseImagesPreview() ne permet pas d'extraire les données Exif. Il n'y a pas d'informations Exif sur les images d'aperçu.

Récupérer les commentaires d'une image

Affichez le commentaire associé à une image précise d'un champ image :

Explication :

  • NomDuChampImage correspond au nom système du champ image.

  • #x indique le numéro de l'image (1, 2, 3, etc.).

  • Comment permet d'accéder au commentaire associé à l'image.

Exemple : <%Value:If(Exists('Photo#1Comment'), [Photo#1Comment], '')%>

Convertir les images en JPG — SetPdfJpegQuality()

Réduisez la taille des images en les convertissant en JPEG. La fonction prend un index de qualité compris entre 1 et 100 :

Ajoutez cette balise dans le document Word ou dans une cellule de la feuille PPActions.

Insérer une image depuis un champ relation (Excel)

Pour insérer une photo issue d'une fiche liée dans un rapport Excel (hors mode listing) :

Remplacez le snake_case par du CamelCase : mettez en majuscule la première lettre de chaque mot du nom système et supprimez les tirets bas.

Map()

Affiche une carte centrée sur les coordonnées GPS de la fiche. Nécessite l'API Google Maps et un champ localisation configuré dans le formulaire.

Paramètre
Description

latitude

Champ contenant la coordonnée de latitude

longitude

Champ contenant la coordonnée de longitude

address

Nom système de votre champ localisation

zoom

1 à 22 (22 = le plus détaillé)

width

Largeur de la carte en pixels

height

Hauteur de la carte en pixels

MapType

0 = Street View, 1 = Satellite, 2 = Mixte

Exemple avec la localisation par défaut : <%Map(SubmissionLatitude, SubmissionLongitude, 17, 200, 200)%>

Exemple avec un champ localisation : <%Map(LocalizationIntervention_latitude, LocationIntervention_longitude, 17, 200, 200)%>

Données Exif — ImageExif()

Récupère les métadonnées Exif stockées dans une photo (données texte, coordonnées GPS, etc.) :

Paramètre
Description

FieldName

Nom système du champ image

'ExifAttribute'

Clé d'attribut Exif, p. ex. 'DateTime', 'GpsLatitude', 'GpsLongitude', 'GpsLatitudeDM'

Exemples :

  • Date de l’image : <%ImageExif(Photo, 'DateTime')%> (Résultat : 25/08/2004)

  • Carte depuis le GPS de la photo : <%Map(ImageExif(LocationField, 'GpsLatitude'), ImageExif(LocationField, 'GpsLongitude'), 17, 150, 150)%>

Pour le reporting Excel en mode listing, l'instruction pour obtenir les données Exif est : <%Value:ImageExif([Photo],'DateTime')%> (Résultat : 25/08/2004 09:32)

Codes-barres — BarCode()

Insère un code-barres dans un document :

Paramètre
Description

data

La donnée à encoder

'BarCodeType'

Format du code-barres — voir tableau des types ci-dessous

width

Largeur du code-barres en pixels

height

Hauteur du code-barres en pixels

Exemple : <%BarCode('123456789012', 'EAN13', 120, 120)%>

Types de codes-barres disponibles :

Code
Description

Code11

Principalement utilisé pour l'étiquetage des équipements de télécommunication

Codabar

Ancien code utilisé dans les bibliothèques et les banques de sang

EAN13

Numérotation européenne des articles — la donnée doit contenir 12 chiffres

EAN8

EAN compressé pour petits produits — la donnée doit contenir 7, 9, 12 ou 13 chiffres

Industrial2of5

Ancien code, peu utilisé aujourd'hui

Interleaved2of5

Code numérique compact, utilisé dans l'industrie et le fret aérien

MSI

Variante du code Plessey, courant aux États-Unis

Postnet

Utilisé par l'USPS pour le tri automatisé du courrier

UPCA

Code produit universel pour le commerce — la donnée doit contenir 12 chiffres

UPCE

UPC compressé pour petits produits — la donnée doit contenir 6 ou 7 chiffres

Matrix2of5

La donnée peut contenir un nombre quelconque de chiffres

IntelligentMail

La donnée doit contenir 20 chiffres

QR Codes — QrCode()

Insère un QR code 2D dans un modèle :

Paramètre
Description

data

La donnée à encoder

width

Largeur du QR code en pixels

height

Hauteur du QR code en pixels

Exemple : <%QrCode('A String To Encode 123456', 150, 150)%>

Filigrane — ImageWatermark()

Ajoute une surcouche de texte sur une image :

Paramètre
Description
Défaut

ImageFieldName

Nom système du champ image

ImageWidth

Largeur de l'image en pixels

ImageHeight

Hauteur de l'image en pixels

WatermarkText

Texte à afficher sur l'image

HorzAlign

Alignement horizontal : Left, Center, Right

Right

VertAlign

Alignement vertical : Top, Middle, Bottom

Bottom

ForegroundColor

Couleur du texte (#RRGGBB ou constante)

Red

BackgroundColor

Couleur de fond du texte (#RRGGBB ou constante)

White

BackGroundOpacity

Opacité du fond, entre 0 et 1

0 (invisible)

FontSize

Taille de police en pixels

12

Exemples :

Pour insérer un retour à la ligne dans le texte du filigrane, utilisez \u000A :

Vous pouvez combiner plusieurs valeurs de données à l'aide de List() :

Pour utiliser la valeur d'un champ comme texte de filigrane :

Filigrane sur un champ multi-images

Lorsqu'un champ image contient plusieurs images, combinez Images() et ImageWatermark() :

Les instructions combinées doivent être placées dans un tableau au sein du modèle. Le nom système du champ image n'est mentionné qu'une seule fois, dans l'instruction Images() — ne le répétez pas dans ImageWatermark() ni dans ImageExif().

Fonctions utilitaires

Les fonctions ne sont pas sensibles à la casse et peuvent être combinées. Nous recommandons d'utiliser le CamelCase pour les noms de fonctions.

Index()

Retourne un numéro de séquence auto-incrémenté dans un tableau de listing.

<%Index()%>

MapLetter()

Retourne la lettre de l'épingle de carte générée par l'API Google Maps pour un point de localisation. À utiliser en combinaison avec Map().

<%MapLetter()%>

Format() — dates et nombres

Convertit un champ Date ou Nombre dans un format d'affichage spécifique. F() est un raccourci pour Format().

Paramètre
Description

'FormatString'

Modèle de format — voir tableau ci-dessous

FieldName

Champ Date ou Nombre à formater

Les formats disponibles sont présentés dans le tableau ci-dessous :

Exemples (avec Price = 19.3 et Date = 14/02/2012 15:14:20) :

  • <%Format('0.00', Price)%>19.30

  • <%F('yyyy-MM-dd', Date)%>2023-02-16

Date()

Retourne la date et l'heure actuelles :

AddHours()

Ajoute ou retire des heures à un champ date/heure :

Exemple : <%AddHours(DateTime, -6)%> (Résultat : 14/02/2023 06:00:00 au lieu de 12:00:00)

Utilisez un nombre positif pour ajouter des heures : <%AddHours(DateTime, 6)%>

AddDays()

NumberOfDays peut être positif ou négatif. Exemple : <%AddDays(Date(), -5)%>

AddMonths()

Exemple : <%AddMonths(Created, -1)%>

AddYears()

Exemple : <%AddYears(Created, +2)%>

Add()

Retourne la somme de plusieurs valeurs numériques. Les valeurs nulles ou vides sont traitées comme 0.

Exemple : <%Add(Size1, Size2, Size3)%> — avec Size1=5.3, Size2=2.3, Size3=null → 7.6

Manipulation de chaînes

Une chaîne de caractères s'exprime via <%String()%> ou son raccourci <%S()%>.

Concaténation

Utilisez l'opérateur + pour concaténer des chaînes. Lors du mélange de types, convertissez d'abord les nombres en chaînes avec S() :

<%S(Price) + ' Euros'%>14.32 Euros

ToUpper() / ToLower()

List()

Crée une liste séparée à partir de plusieurs valeurs. Si un élément est vide, son séparateur est omis :

Paramètre
Description

separator

Chaîne à placer entre les valeurs

value1, value2, …

Champs ou valeurs à assembler

Exemple : <%List(', ', Address, PostalCode, City, Country)%>12 rue des églantiers, 17400, Lacanau, France

Peut être combiné avec Map() pour produire une adresse valide à partir de champs séparés.

Split()

Extrait une valeur d'une chaîne contenant un séparateur. L'index commence à 0 :

Paramètre
Description

string

La chaîne ou le champ à découper

separator

Le caractère délimiteur

IndexToExtract

Index (base 0) du segment à retourner

Exemple : <%Split(Address, ',', 2)%> — avec Address = « 12, rue des mines, Puteaux, 92800, France » → Puteaux

Conversion de type

ToNumber() / N()

Convertit une chaîne de texte en nombre :

Exemple : <%Format('0.00', N(Price))%> — avec Price = « 127.4202 » → 127.42

Le nombre converti peut utiliser une virgule , ou un point . comme séparateur décimal — les deux sont pris en charge.

ToDate() / D()

Convertit une date texte en date réelle :

Exemple : <%F('dd/MM/yyyy', ToDate(Date))%> — avec Date = « 14/02/2012 15:24:10 » → 14/02/2012

ToString() / S()

Convertit le contenu d'un champ en chaîne :

Instructions conditionnelles

If()

Affiche une valeur selon une condition :

Paramètre
Description

condition

Expression booléenne (p. ex. Field = 'Value'). Utilisez && pour ET, || pour OU.

'TrueResult'

Valeur retournée si la condition est vraie

'FalseResult'

Valeur retournée si la condition est fausse

'NotSetResult' (optionnel)

Valeur retournée si le champ est vide — active la forme raccourcie à 3 valeurs

La condition doit retourner true ou false. Les opérateurs pris en charge sont :

Opérateur
Signification

==

Égal à

<>

Différent de

!=

Non égal

&&

ET

||

OU

Vous pouvez combiner plusieurs comparaisons de champs avec && et || :

Exemple booléen — couvre les trois états possibles (true, false, non défini) :

Ou avec la forme raccourcie à 3 valeurs :

Le caractère apostrophe diffère entre Word et Excel. Si vous copiez-collez un modèle de l'un vers l'autre, remplacez les apostrophes manuellement.

Exists()

Teste si un champ existe dans le formulaire :

Retourne true ou false. Particulièrement utile pour vérifier la présence d'images :

Hide() / Display() / DisplayRow()

Ces fonctions affichent ou masquent des sections entières du document selon une condition. Terminez toujours par <%End%>.

Hide()

Masque une section lorsque la condition est vraie :

Opérateurs booléens pris en charge :

Opérateur
Signification

||

OU

&&

ET

<>

Différent de

==

Égal

!=

Non égal

Exemples :

Display()

Affiche une section lorsque la condition est vraie (inverse de Hide()) :

DisplayRow()

Disponible uniquement dans les tableaux. Affiche une ligne lorsque la condition est vraie. Doit être placée dans la première cellule (la plus à gauche) de la ligne, avant tout autre contenu :

Contains()

Retourne true si une chaîne contient un motif donné :

Paramètre
Description

String

Le champ ou la chaîne à tester

pattern

La sous-chaîne à rechercher

Exemple : <%If(Contains(Field, 'measurement'), 'MEASURE', 'NOTHING')%>

La comparaison est sensible à la casse. Utilisez ToUpper() ou ToLower() en combinaison avec Contains() pour une comparaison insensible à la casse : <%If(Contains(ToUpper(Field), 'MEASURE'), 'MEASURE', 'NOTHING')%>

StartsWith()

Retourne true si une chaîne commence par la valeur spécifiée :

Paramètre
Description

String

Le champ ou la chaîne à tester

Pattern

Le préfixe à rechercher

Exemple : <%If(StartsWith(Field, 'default'), 'Default value', '')%>

EndsWith()

Retourne true si une chaîne se termine par la valeur spécifiée :

Paramètre
Description

String

Le champ ou la chaîne à tester

Pattern

Le suffixe à rechercher

Exemple : <%If(EndsWith(Field, 'END'), 'end', '')%>

Relation

Pour inclure les données d'un formulaire enfant lié, utilisez l'instruction Relation() dans un tableau :

La ligne du tableau se répète une fois pour chaque fiche enfant. Si aucune fiche enfant n'est liée, le tableau est vide.

Exemple :

Résultat :

Le type de champ « Élément de relation » n'est pas persistant et ne peut pas être utilisé dans un rapport.

Trier une relation

Triez les fiches enfants selon la valeur d'un champ. Ajoutez le nom système du champ en second paramètre.

Tri ascendant : <%Relation('Libellé de relation', 'SystemNameOfField')%>

Tri descendant : <%Relation('Libellé de relation', 'SystemNameOfField DESC')%>

Filtrer par sous-formulaire

Lorsqu'un champ relation pointe vers plusieurs sous-formulaires, filtrez par nom de formulaire :

  • OrderBy correspond au tri décrit ci-dessus (laissez une chaîne vide '' pour l'ignorer)

  • StructureName est le nom du formulaire sur lequel filtrer

Exemple — ne conserver que les fiches du sous-formulaire « Anomalie » :

Limiter le nombre de fiches enfants

Passez la limite en 4ᵉ paramètre :

Paramètre
Description

'Relation0'

Nom système du champ relation

'FieldX'

Champ de tri (optionnel)

StructureName='Form name'

Formulaire sur lequel filtrer (optionnel)

2

Nombre maximum de fiches enfants à afficher

Compter les fiches enfants

Cette option ne peut-être utilisée qu’avec l’option Multiple activée pour la relation, car ce n’est pas un champ de création de données mais de liaison

Affiche le nombre de fiches dans une relation :

<%[Relation.Count]%>

Exemple

Relations imbriquées

Il est possible d'insérer la relation d'une relation dans votre rapport. Pour cela, il faut créer un premier tableau et y insérer votre première relation, puis insérer un deuxième tableau à l'intérieur du premier tableau :

Dans l'exemple suivant nous verrons comment insérer dans un premier tableau une relation du formulaire, nommée "libellé de la relation" puis comment insérer dans un deuxième tableau imbriqué une relation d'un autre formulaire lui même étant une relation du sous formulaire. Cette dernière relation se nomme "libellé de la relation de relation".

Il est possible d'imbriquer une relation dans une autre en créant un second tableau à l'intérieur du premier. Vous pouvez descendre jusqu'à 8 niveaux.

Fonctions d'agrégation

Les arguments des fonctions d'agrégation doivent toujours être entourés de guillemets simples. Exemple : <%Sum('ToNumber(Price)')%>

Count()

Compte le nombre total de fiches de l'ensemble courant :

<%Count()%>

Cette instruction peut être utilisée n'importe où dans le document.

Sum()

Retourne la somme d'un champ numérique sur toutes les fiches :

<%Sum('FieldName')%>

Si le type de champ n'est pas garanti numérique, utilisez N() pour convertir : <%Sum('N(Price)')%>

Avg()

Retourne la valeur moyenne d'un champ :

<%Avg('FieldName')%>

Min() / Max()

Retourne la valeur minimale ou maximale d'un champ :

<%Min('FieldName')%> / <%Max('FieldName')%>

GlobalMap()

Affiche tous les points de localisation de plusieurs fiches sur une même carte. Nécessite un modèle en mode listing.

Paramètre
Description

LatitudeField

Nom du champ contenant les valeurs de latitude (entre guillemets)

LongitudeField

Nom du champ contenant les valeurs de longitude (entre guillemets)

ConnectPoints

true pour relier les points par une ligne, false pour épingles seules

Width

Largeur de la carte en pixels

Height

Hauteur de la carte en pixels

MapType

0 = Route, 1 = Aérien, 2 = Mixte

Exemple : <%GlobalMap('latitude', 'longitude', true, 300, 300, 0)%>

Avec une relation :

Chart()

Affiche un graphique en barres ou en camembert à partir de données agrégées :

Paramètre
Description

GraphType

'Pie', 'Pie3D' ou 'Bar'

AggregationFunction

Une fonction telle que Count() ou Sum(field)

LabelField

Nom du champ utilisé pour grouper et étiqueter les résultats

DisplayValues

true pour afficher les valeurs sur le graphique, false pour les masquer

Width

Largeur du graphique en pixels

Height

Hauteur du graphique en pixels

Exemples :

<%Chart('Bar', 'Count()', 'CustomerName', true, 500, 300)%>

<%Chart('Pie3d', 'Sum(Price)', 'ReparationType', false, 600, 300)%>

<%Chart('Pie', 'Count()', 'TypeReparation', true, 600, 300)%>

Cas particuliers

Champs Liste

Isoler un niveau dans une liste arborescente

Par défaut : <%ListSystemName%>

Pour une liste arborescente avec résultat A,B,C :

Valeur souhaitée
Syntaxe

Premier niveau (A)

<%[ListSystemName.FirstLevel]%> ou <%[ListSystemName.Level1]%>

Deuxième niveau (B)

<%[ListSystemName.Level2]%>

Dernier niveau (C)