Voici les fonctions disponibles concernant l’exploitation des champs de données de vos formulaires :
- Insertion d'un champ simple
- Insertion d'une formule
- Répétition d’une section d’un document – Repeat()
- Manipulation d'images
- Fonctions
- Instruction conditionnelle
- Relation
- Fonctions d'agrégation
- Cas particuliers
1. Insertion d’un champ simple
L’insertion d’un champ de formulaire est faite en entourant son nom avec <% et %>. Ces marqueurs indiquent au système où les données de la fiche doivent être insérées.
Syntaxe: <%Champ%>
Exemple: Nom: <%Nom%>
Avec la valeur de fiche : Nom = Albert Einstein, il en ressort : Nom: Albert Einstein
Il est possible d’appliquer sur une syntaxe les formats supportés par Word/Excel tel que Gras, Italique, souligné etc.
2. Insertion d’une formule
Il est possible d’appliquer une formule sur les champs publiés dans le rapport.
Syntaxe: <%ChampNom1 <opérateur> ChampNom2 | ExpressionConstante%>
<opérateur> peut être une opération mathématique, telle que +, -, *, /, %
- ExpressionConstante est un nombre avec ou sans décimales.
- Les parenthèses sont également prises en charge.
- % est aussi un module opérateur.
Exemples:
- TOTAL: €<%Prix * 1.196%>
- Avec pour Prix = 10 il en ressort : TOTAL: €11,96
- Remise: $<%(Prix * Quantité) – (15 / 100) * (Prix * Quantité)%>
- Avec pour Prix= 18 et pour Quantité=2, il en ressort : Remise: $30,6
Voici la liste complète des fonctions qui sont prises charge. Ces fonctions mathématiques sont également sensibles à la casse.
Noms | Descriptions | Usages | Résultats |
Abs | Retourne la valeur absolue d’un nombre spécifié. | Abs(-1) | 1M |
Acos | Retourne l’angle dont le cosinus est le nombre spécifié. | Acos(1) | 0d |
Asin | Retourne l’angle dont le sinus est le nombre spécifié. | Asin(0) | 0d |
Atan | Retourne l’angle dont la tangente est le nombre spécifié. | Atan(0) | 0d |
Ceiling | Renvoie le plus petit entier supérieur ou égal au nombre spécifié. | Ceiling(1.5) | 2d |
Cos | Renvoie le cosinus de l’angle spécifié. | Cos(0) | 1d |
Exp | Retourne « e » élevé à la puissance spécifiée. | Exp(0) | 1d |
Floor | Renvoie le plus grand entier inférieur ou égal au nombre spécifié. | Floor(1.5) | 1d |
IEEERemainder | Retourne le reste résultant de la division d’un nombre spécifié par un autre nombre spécifié. | IEEERemainder(3, 2) | -1d |
Log | Renvoie le logarithme d’un nombre spécifié. | Log(1, 10) | 0d |
Log10 | Retourne le logarithme en base 10 d’un nombre spécifié. | Log10(1) | 0d |
Max | Retourne le plus grand des deux nombres spécifiés. | Max(1, 2) | 2 |
Min | Renvoie le plus petit des deux nombres. | Min(1, 2) | 1 |
Pow | Retourne un nombre spécifié élevé à la puissance spécifiée. | Pow(3, 2) | 9d |
Round | Permet d’arrondir une valeur à l’entier le plus proche ou à la décimale spécifiée. Le comportement de cet arrondi peut être modifié en utilisant la fonction « Evaluate Option ». lors de la construction de l’expression de l’objet. | Round(3.222, 2) | 3.22d |
Sign | Retourne une valeur indiquant le signe d’un nombre. | Sign(-10) | -1 |
Sin | Renvoie le sinus de l’angle spécifié. | Sin(0) | 0d |
Sqrt | Renvoie la racine carrée d’un nombre spécifié. | Sqrt(4) | 2d |
Tan | Renvoie la tangente de l’angle spécifié. | Tan(0) | 0d |
Truncate | Calcule la partie entière d’un nombre. | Truncate(1.7) | 1 |
3. Répétition d’une section d’un document – Repeat()
Lorsque le modèle de rapport est en Mode Listing, celui-ci répète sur plusieurs pages les mêmes éléments de syntaxe qui sont contenus dans les fiches de données. Pour spécifier une section précise à répéter dans une partie du modèle, il est nécessaire de créer un tableau et d’y insérer une instruction Repeat() sur la première ligne.
Pour que le système identifie la ligne à répéter, l’instruction Repeat() est utilisée.
Exemple Mode Listing :
# ID | Nom | Description |
<%Repeat()%><%Id%> | <%Nom%> | <%Description%> |
-
-
-
-
- Avec 3 lignes de données, le résultat est le suivant :
-
-
-
# ID | Nom | Description |
15862 | Albert Einstein | The Quantifier |
15863 | Roman Polanski | Cinema |
15864 | Greta Garbo | Greta Lovisa Gustafsson |
L’instruction Repeat() doit être systématiquement le premier élément de la ligne. Il doit être placé sur la cellule la plus à gauche de la ligne du tableau.
L’ensemble du modèle ne pourra contenir qu’une instruction de Repeat(). Dans le cas où il y a plusieurs instructions de répétition dans le document, seule la première sera détectée.
3.1. Filtrage des données source basé sur un critère
En haut d’un document ou dans la première cellule d’un tableau, il est possible d’insérer une instruction pour répéter la section et filtrer les données de base.
<%Repeat(ChampDate > #12/01/2016#)%>
Où #12/01/2016# est une date exprimée en : Jour / Mois / Année.
Il est possible d’utiliser le champ #date# au lieu d’une date en dur. Cette variable sera remplacée par la date du jour.
Exemple : <%Repeat(ChampDate < #date#)%>
Il est également possible de soustraire une période de temps à partir de la date du jour.
Exemple : <%Repeat(ChampDate < #date-5d#)%>
Cette expression signifie 5 jours avant aujourd’hui. Le format n’est pas sensible à la casse. Donc #Date-5D# sera correct.
Il est possible de définir cet intervalle en utilisant une des unités de temps présentes dans le tableau ci-dessous :
Formats | Descriptions | Exemples |
d | Days (Jours) | DateField > #date-10d# |
m | Months (Mois) | DateField > #date-1m# |
y | Years (Années) | DateField > #date-2y# |
w | Weeks (Semaines) | DateField > #date-3w# |
h | Heures | DateField > #date-2h# |
n | Minutes | DateField > #date-10n# |
s | Secondes | DateField > #date-60s# |
Information : On peut également utiliser un signe + au lieu du signe – pour faire référence à des dates passées ou futures.
DateField <# date + 10d #, soit aujourd’hui + 10 jours.
Remarques Importantes :
Cette instruction de répétition ne supporte pas les fonctions avec les Noms Systèmes de Champs.
Il est possible de combiner des conditions de filtrage avec les opérateurs And ou Or.
Exemple : <%Repeat(DateField<#date-5d# AND Id >= 3) %>
3.2. Eviter la redondance de données dans un Repeat()
Lorsque vous utilisez la fonction Repeat(), il se peut que vous souhaitiez éviter la redondance de certaines informations. Pour cela, vous pouvez utiliser la fonction DISTINCT().
Exemple : Dans une liste de commandes, on voudrait connaître l’ensemble des clients. Mais on voudrait éviter de répéter le nom dans le cas où un client aurait fait plusieurs commandes. On peut alors utiliser <%DISTINCT('Client')%> à la place de <%Client%> dans un Repeat().
Dans le cas où le champ aurait plusieurs textes séparés comme les dates (avec jours, mois années…) ou les listes (avec un texte par niveau de profondeur dans la liste), on peut concaténer ces textes un utilisant un second argument dans la fonction DISTINCT().
Exemple : <%DISTINCT('F(\'MM yyyy\',CreatedAt)', ',')%> permet d’avoir l’ensemble des mois de créations d’un ensemble de fiches.
4. Manipulation d’images
4.1. Insérer une image – Image()
Les photos peuvent être insérées dans le Modèle de document à l’aide d’une instruction Image().
ainsi que de l'insérer dans un tableau d'une colonne.
Syntaxe : <%Image(ChampNom, Largeur , Longueur)%>
- Si la hauteur n’est pas spécifiée, le système suppose que l’image tient dans un carré de largeur x largeur pixels.
- Si la largeur et la hauteur sont spécifiées, l’image résultante est adaptée à ce rectangle sans se déformer
La syntaxe raccourcie pour cette fonction Image() est Img().
Exemples :
Grande Photo : <%Image(NomChampImage, 200)%>
Petite Photo : <%Img(NomChampImage, 70, 50)%>
Grande Photo :
Petite Photo :
L’image est automatiquement redimensionnée selon la dimension de votre fonction Image(). Si l’image originale est plus grande que la dimension spécifiée, elle sera alors réduite en conséquence, pour un gain de place dans le document de publipostage généré.
4.2. Insérer une suite d’images – Images()
Concernant un champ de type Image avec un nombre maximal supérieur à 1, il vous faut utiliser une autre fonction qui est Images(), ainsi que de l'insérer dans un tableau d'une colonne
Syntaxe : <%Images(ChampNom, start, end)%>
Syntaxes | Descriptions |
<%Images(Photo)%> | Affiche toute les photos contenues dans le champ. |
<%Images(Photo, 2)%> | Exclut toutes les photos du champ sauf la première. |
<%Images(Photo, 2, 2)%> | Affiche uniquement la seconde photo. |
Pour définir une taille sur vos images il vous faut ajouter à la suite <%Image()%>.
Exemple : <%Images(Photo)%><%Image(400)%>
Il est possible d’obtenir plus de données issues de vos images, toutefois vous devrez les renseigner dans un tableau avec les éléments suivant :
Syntaxes | Descriptions | Exemples |
<%Id%> | Identifiant de la photo | d97208bf-6936-4f09-9e97-71060c782ced |
<%Name%> | Nom de la photo | img23.jpg |
<%Size%> | Taille de la photo | 1458275 (octet) |
<%Comment%> | Commentaire de la photo | Photo avant intervention |
<%MimeType%> | Format de donnée internet | image/jpeg |
<%Extension%> | Format fichier de la photo | jpg |
<%ImageExif(‘DateTime’)%> | Date et heure de création de la photo | 14/10/2016 14:18 |
Vous trouverez ci-dessous un modèle d’exemple avec son résultat :
4.3. Redimensionner des images
Il est possible de redimensionner les images avant de les intégrer dans le rapport. Cela permet de diminuer le poids total du rapport final et d'optimiser sa durée de génération.
Pour cela, il faut ajouter une balise suivante (remplacer ImageSize par l'attribut figurant dans le tableau ci-dessous :
<%UseImagesPreview('ImageSize')%>
Toutes les images qui suivront cette balise seront redimensionnées selon les règles suivantes :
ImageSize | width | height | quality | crop |
larger | 1024px | 1024px | 60 | true |
large | 640px | 480px | 60 | false |
mix | 200px | 200px | 60 | false |
small | 200px | 200px | 60 | true |
map-maker | 41px | 41px | 80 | false |
thumbnail | 25px | 25px | 60 | true |
thumbnail-nocrop | 25px | 25px | 60 | false |
splash | 400px | 700px | 60 | true |
banner | 195px | 40px | 60 | true |
banner-xl | 195px | 80px | 60 | true |
app_images | 1024px | 1024px | 60 | false |
4.4. Convertir une image en JPG
Il est aussi possible de réduire la taille des images en les convertissant en jpg. Pour cela vous pouvez utiliser la fonction SetPdfJpegQuality qui prend comme paramètre un indice de qualité d'image (entre 1 et 100). Il suffit d'ajouter la fonction dans le document word ou dans une case de la feuille PPActions.
<%SetPdfJpegQuality(10)%>
4.5. Insérer une image dans Excel issue d'un champ relation
Pour insérer dans un rapport Excel n'utilisant pas le mode listing, vous pouvez utiliser la syntaxe suivante pour récupérer le champ photo d'une fiche en relation.
<%Img([NomSystèmeRelation.NomSystemeImage], 60, 60)%>
Remplacer le snake_case par le CamelCase (https://fr.wikipedia.org/wiki/Snake_case, https://fr.wikipedia.org/wiki/Camel_case).
C'est à dire:
Remplacer les premières lettres de chaque mot du nom système par une majuscule et supprimer le symbole "_" si existant. Idem pour le champ photo de la relation
<%SetPdfJpegQuality(10)%>
4.6. Insérer un plan – Map()
Comme on dispose de la longitude ainsi que la latitude dans les fiches si un champ localisation est présent, il est possible d’afficher une carte centrée sur le point qui situe la fiche. La carte est générée via l’API Google Maps. Cette fonction est dépendante de la configuration du paramètre de localisation du formulaire.
Syntaxe : <%Map(latitude, longitude, zoom, largeur, longueur ,TypeCarte)%>
Ou
<%Map(adresse, zoom, largeur, longueur ,TypeCarte)%>
- latitude est un champ où une valeur contient la coordonnée de la latitude.
- longitude est un champ où une valeur contient la coordonnée de la longitude.
- adresse correspond à votre champ de localisation.
- zoom peut aller de 1 à 22, où 22 est la précision la plus détaillée sur la carte.
- largeur est la largeur de taille en pixels de la carte.
- hauteur est la hauteur de taille en pixels de la carte.
- TypeCarte est le type de carte où 0: Vue Rue, 1: Vue Satellite, 2: Vue Mixte.
Exemple avec localisation par défaut : <%Map(SubmissionLatitude, SubmissionLongitude, 17, 200, 200)%>
Résultat :
Exemple avec un champ localisation : <%Map(LocalisationIntervention_latitude, LocalisationIntervention_longitude, 17, 200, 200)%>
Cela donne :
4.7. Données Exif d’une image – ImageExif()
Les photos peuvent contenir des données nommées Exif. Vous pouvez donc récupérer les données textes stockées, mais aussi la situer sur une carte si elles disposent des coordonnées Gps.
Syntaxe : <%ImageExif()%>
Noms | Descriptions | Exemples |
EquipMake | Nom du matériel | Samsung |
EquipModel | Nom du modèle ou numéro du matériel | GT-I9505 |
Artist | Nom de l’auteur | Damien |
DateTime | Date et heure de création/modification de la photo | 14/10/2016 14:18 |
ExifDTOrig | Date et heure de création de la photo | 14/10/2016 14:18 |
ExifDTDigitized | Date et heure de l’enregistrement de la photo | 14/10/2016 14:20 |
GpsLatitude | Latitude de la photo | 47.2177611111111 |
GpsLongitude | Longitude de la photo | -1.56245555555556 |
GpsLatitudeDD | Latitude de la photo en degrés.virgule° | 40.76° N |
GpsLongitudeDD | Longitude de la photo en degrés.virgule° | 73.984° W |
GpsLatitudeDM | Latitude de la photo degrés°minute.virgule’ | 40° 45.6’ N, |
GpsLongitudeDM | Longitude de la photo degrés°minute.virgule’ | 73° 59.04’ W |
GpsLatitudeDMS | Latitude de la photo degrés°minute’secondes » | 40° 45´ 36″ N |
GpsLongitudeDMS | Longitude de la photo degrés°minute’secondes » | 73° 59´ 2.4″ W |
Exemples :
Date de l’image : <%ImageExif(Photo, 'DateTime')%>
Résultat : Date de l’image : 25/08/2004
Position de la prise photo : <%Map(ImageExif(ChampLocalisation, 'GpsLatitude'), ImageExif(ChampLocalisation, 'GpsLongitude'), 17, 150, 150)%>
Résultat :
Position de la prise photo :
4.7. Codes barres
L’insertion d’un code-barres dans un document est possible en utilisant la syntaxe suivante:
<%BarCode(data, 'BarCodeType', largeur, longueur)%>
Les types de codes-barres disponibles sont les suivants :
4.9. QR Codes
L’insertion d’un code en 2 dimensions dans un Modèle est possible en utilisant la syntaxe suivante :
Syntaxe : <%QrCode(data, width, height)%>
Exemple : <%QrCode('A String To Encode 123456', 150, 150)%>
Cela donne :
Exemple : <%QrCode('A123456', 150, 150)%>
Cela donne :
4.10. Afficher un texte sur une image (watermark)
Il est possible d'ajouter un texte sur une image. Voici la syntaxe utilisée :
<%ImageWatermark(ImageFieldName, ImageWidth, ImageHeight, WatermarkText, HorzAlign, VertAlign, ForegroundColor, BackgroundColor, BackGroundOpacity, FontSize)%>
Voici la définition des différents paramètres :
- ImageFieldName : Nom système de champ image utilisé
- ImageWidth : largeur de l'image à insérer en pixels
- ImageHeight : hauteur de l'image à insérer en pixels
- WatermarkText : texte à afficher sur l'image
- HorzAlign : alignement horizontal du texte (Left, Center, Right). Valeur par défaut : Right
- VertAlign : alignement vertical du texte (Top, Middle, Bottom) Valeur par défaut : Bottom
- ForegroundColor : couleur utilisée pour le texte. Valeur par défaut : rouge. Format : #RRGGBB ou constante
- BackgroundColor : couleur utilisée pour le fond du texte. Valeur par défaut : blanc. Format : #RRGGBB ou constante
- BackGroundOpacity : valeur de l'opacité du fond entre 0 et 1 (Valeur par défaut : 0 = invisible)
- FontSize : taille de la police en pixels. Valeur par défaut : 12
Exemples :
<%ImageWatermark([Justificatif], 300, 0, 'Bienvenue')%>
<%ImageWatermark([Justificatif], 300, 0, 'Bienvenue', 'Left', 'Top', 'Red', 'White', 0.9, 14)%>
5. Fonctions
Les fonctions ne sont pas sensibles à la casse, elles peuvent être rédigée soit en majuscules, minuscules et peuvent également être combinées. Nénamoins, nous vous conseillons d’utiliser le modèle « CamelCase » pour les noms de fonctions afin d’uniformiser vos balises.
-
-
-
-
- Les noms des champs restent dans tous les cas sensibles à la casse.
-
-
-
5.1. Index()
Cette fonction retourne dans un tableau une suite de numéro d’incrémentation.
Exemple Mode Listing :
# ID | Nom | Description |
<%Repeat()%><%Index()%> | <%Nom%> | <%Description%> |
-
-
-
-
- Avec 3 lignes de données, le résultat est le suivant :
-
-
-
# ID | Nom | Description |
1 | Albert Einstein | The Quantifier |
2 | Roman Polanski | Cinema |
3 | Greta Garbo | Greta Lovisa Gustafsson |
5.2. MapLetter()
Cette fonction affiche la lettre de la pastille généré par l’API Google Maps d’une localisation.Si vous utilisez une fonction Map() pour ce point précis, la lettre affichée sur la carte sera retourné par MapLetter().
Syntaxe : <%MapLetter()%>
Exemple :
Pastille | Société | Adresse |
<%Repeat()%><%MapLetter()%> | <%Societe%> | <%Adresse%> |
Résultat :
Pastille | Société | Adresse |
A | Hôtel Rives | 15 Rue Roque de Fillol, 92800 Puteaux |
C | BioCorp | 58 Rue Arago, 92800 Puteaux |
E | Sporting Club | 6 Avenue Charles de Gaulle, 92800 Puteaux |
F | Daxium | 6/8 Rue Jean Jaurès, 92800 Puteaux |
5.3. Formatage de valeurs de champs – Format()
Les champs Date et Nombre peuvent êtres convertis en utilisant la fonction de formatage en un format de données précis.
Syntaxe : <%Format('Formats', ChampNom)%> Ou <%F('Formats', ChampNom)%>
F() est aussi un raccourci pour la même fonction de Format().
La variable Format() peut être :
Formats | Descriptions | Exemples |
dd/MM/yyyy | Format de date | 01/11/2012 |
dd/MM/yyyy hh:mm:ss | Date et Heures Format AM/PM | 01/11/2012 02:22:14 |
dd/MM/yyyy HH:mm:ss | Date et Heures Format 24H | 01/11/2012 14:22:14 |
MMM yyyy | Date | Nov 2012 |
hh:mm:ss | Heure | 14:22:14 |
00000 | Pour les numéros lorsque vous souhaitez ajouter «0» devant le nombre | 00012 |
N | Pour les nombres avec un séparateur de milliers | 2,500,100 |
X | Pour la sortie en hexadécimal | FAE2 |
0.00 | Pour les valeurs numériques | 12,20 |
# ##0.00 | Pour les valeurs numériques avec un séparateur de milliers | 12 425,20 |
Exemples : Avec Prix = 19,3 et Date = n ° 14/02/2012 15: 14: 20 # :
Champ Nombre : <%Format('0.00', Prix)%>
Résultat Nombre : 19,30
Champ Date : <%F('yyyy-MM-dd', Date)%>
Résultat Date : 2012-02-16
5.3.1. Date et heure actuelle – Date()
Syntaxe : <%Date()%>
Exemple : Date : <%F('dd/MM/yyyy', Date())%>
Résultat Date : 14/02/2016
5.3.2. Ajouter ou retirer des heures – AddHours()
Syntaxe : <%AddHours(Nomsystème, NombreHeures)%>
Exemple : <%AddHours(DateHeure, -6)%>
Remarque : Pour un ajout d’heure le format est : <%AddHours(DateHeure, 6)%>.
Résultat Date :14/02/2012 06:00:00 au lieu de 14/02/2012 12:00:00
5.3.3. Ajouter des jours – AddDays()
Syntaxe : <%AddDays(Date, NombreDeJours)%>
NombreDeJours peut être positif ou négatif.
Exemple : <%AddDays(Date(), -5)%>
Si Date() retourne #12/02/2016 12:14:34#, cela donne : 07/02/2016 12:14:34
5.3.4. Ajouter des mois – AddMonths()
Syntaxe : <%AddMonths(Date,NombreDeMois)%>
Exemple : <%AddMonths(Créé, -1)%>
Créé = #12/02/2016 12:14:34# cela donne: 12/01/2016 12:14:34
5.3.5. Ajouter des années – AddYears()
Syntaxe : <%AddYears(Date, NombreAnnée)%>
Exemple : Garantie : <%AddYears(Créé, +2)%>
Créé = #12/02/2016 12:14:34# Donne comme résultat Garantie : 12/02/2018 12:14:34
5.4. Add()
Cette fonction permet l’additions de données numériques et de renvoyer la somme. Si certaines valeurs sont nuls ou vides, ils seront considérés comme égal à 0.
Syntaxe : <%Add(Valeur1, Valeur2, Valeur3, …)%>
Exemple : Taille : <%Add(Taille1, Taille2, Taille3)%>
Si Taille1 = 5,3, Taille2 = 2.3 et Taille3= <null>, cette fonction retourne en résultat : 7.6
5.5. Manipulation de chaînes de caractères
Il est possible d’appliquer une conversion sur vos données de fiches afin de les modifier en chaînes de caractères soit une conversion en texte. Une chaînes de caractères est exprimé par la fonction <%String()%> ou via le raccourcis <%S()%>.
5.5.1. Concaténation
Il est parfois utile de concaténer des chaînes de caractères. Pour ce faire, nous utilisons l’opérateur ‘+‘. La donné Prix étant une valeur numérique pour pouvoir utiliser notre fonction nous devons donc les mettre au même niveau via la fonction <%S()%>.
Exemple : Prix = <%S(Prix) + 'Euros'%> soit Prix = 14.32
Résultat : Prix = 14,32 Euros
5.5.2. Appliquer une conversion en Majuscule ou Minuscule – ToUpper (), ToLower ()
Faire une chaîne de caractère en majuscules est possible en utilisant la fonction ToUpper().
Syntaxe : <%ToUpper(ChampNom)%>
Exemple : Champ1 = Voici un Exemple
<%ToUpper(Champ1)%>
Résultat : VOICI UN EXEMPLE
Pour faire une chaîne de caractère en minuscules il faut utiliser la fonction ToLower().
Syntaxe : <%ToLower(ChampNom)%>
Exemple : Champ1 = Voici un Exemple
<%ToLower(Champ1)%>
Résultat : voici un exemple
5.5.3. Création d’une liste d’éléments – List()
Si vous voulez créer une liste séparée avec des caractères à plusieurs arguments, utiliser la fonction List().
Syntaxe : <%List(séparateur, valeur1, valeur2 [,valeur n])%>
Exemple : Adresse : <%List(', ', Adresse, CodePostale, Ville, Pays)%>
Adresse : 12 rue des églantiers, 17400, Lacanau, France
Si l’un des éléments donnés est vide, le séparateur est omis.
Notez que cette fonction peut être utilisée en combinaison avec la fonction Map() pour produire une adresse valide avec différents éléments.
5.5.4. Diviser une chaîne et mettre un index – Split()
Vous pouvez extraire une valeur à partir d’une chaîne de caractères contenant un séparateur. L’index commence à partir de 0 soit la valeur 12 (Numéro de la rue) dans l’exemple ci-dessous.
Syntaxe : <%Split(chaîne, séparateur, IndexàExtraire)%>
- Chaîne de caractère : Chaîne source à diviser.
- Séparateur : Chaîne qui sépare les éléments.
- IndexàExtraire : Index de la valeur à récupérer.
Exemple : Donnée : 12, rue des mines, Puteaux, 92800,France
Adresse : <%Split(Adresse, ',', 2)%>
- Résultat : Adresse : Puteaux
5.6. Types de Conversion
5.6.1. ToNumber()
Dans certains cas, il est nécessaire de convertir une chaîne en nombre. Par exemple si votre champs de données est de type Texte alors la valeur qu’elle contient sera une chaîne de texte. Pour la convertir en nombre pour appliquer un calcul une fonction sera nécessaire.
Syntaxe : Le nom de la fonction est ToNumber(). Il existe un raccourci pour cette fonction qui est N().
Exemple : Prix = 127.4202
<%Format('0.00', N(Prix))%>
Résultat : Prix = 127,42
5.6.2. ToDate()
Conversion d’une date type texte à une date réelle en utilisant la fonction ToDate().Le raccourci pour cette fonction est D().
Syntaxe : <%ToDate(ChampNom)%> ou <%D(ChampNom)%>.
Exemples : Date = ‘14/02/2012 15:24:10’
Date : <%F('dd/MM/yyyy', ToDate(Date))%>
Résultat Date : 14/02/2012
Date : <%F('MMM yyyy', D(Date))%>
Résultat Date : Fev. 2016
5.6.3. ToString()
Dans certains cas, il est nécessaire de convertir le format du contenu d’un champ.
Syntaxe : Le nom de la fonction est <%ToString()%>. Il existe un raccourci pour cette fonction qui est S().
Exemple : Prix = 127.42
Prix : <%S(Prix)%>
Résultat Prix : 127.42
6. Instruction conditionnelle
6.1. Affichage d’une valeur en fonction d’une évaluation – If()
Quand une condition est vraie, vous pouvez afficher un texte ou une autre valeur. On utilise pour cela la fonction If.
Syntaxe : <%If(Champ='Valeur', 'Vrai', 'Faux')%>
La condition doit retourner Vrai ou Faux. La condition peut-être faite d’une combinaison de et, ou en utilisant le '&&' pour et, '||' pour ou.
Exemple : <%If(Booleen=='True', 'Oui', '')%>
Si un champ Booléen est égal à True alors Booleen = Oui si autre valeurs alors Rien/Vide. Donc si mon Booléen est égal à False alors aucune valeurs ne sera affichées. Nous pouvons aussi faire une suite de plusieurs fois la même conditions pour englober l’ensemble des cas d’un Booléen comme : True, False et Rien.
<%If(Booleen=='True', 'Oui', '')%><%If(Booleen=='False', 'Non', '')%><%If(Booleen=='', '', '')%>
6.2. Déterminer si un champ existe – Exists()
Vous pouvez tester l’existence d’un nom de domaine spécifique en utilisant la fonction Exists().
Syntaxe : <%Exists('ChampNom')%>
Exemple : <%If(Exists('SubmissionLatitude'), 'La donnée existe', 'La donnée n\’ existe pas')%>
- Si SubmissionLatitude n’est pas retourné car non contenue dans la fiche, cela donne : La donnée n’existe pas (n\' existe : synthaxe permettant integrer l'apostrophe dans le rapport).
Cette fonction est surtout utile pour vérifier la présences d’images.
Exemple : <%If(Exists('Photos#1'), Image([Photos#1], 180), '')%>
Ici nous vérifions la présence de la première image pour un champ photo avec une limite à 5 images maximum.
Dès lors si ma photo existe, j’aurais uniquement ma première photo d’affiché dans le résultat de publipostage.
6.3. Masquer ou afficher une section avec une condition
La fonction If() permet de tester si une condition est vérifiée, puis d’afficher un texte en fonction de la réponse. Il faut donc prévoir les deux solutions : celle où la condition est vérifiée et celle où elle ne l’est pas. Toutefois la fonction Hide()quant à elle permet de cacher un texte lorsque la condition est vérifiée et à l’inverse Display() de l’afficher.
Il faudra systématiquement ajouter une balise <%End%> à la fin de la section (qui sera cachée ou affichée) pour lui définir une limite.
A noter qu'il ne sera pas possible d'afficher un utilisateur courant dans les rapports.
6.3.1. Hide()
Masquer une section où la condition est vraie.
Syntaxe : <%Hide(Condition)%>Section de Texte<%End%>
Une instruction de type Masquer doit toujours finir avec une instruction <%End%>. Si l’instruction de fin est omise tout le reste du document est considérée à l’intérieur d’un bloc.
Exemple :
Client | <%TaskClient%> | Site Client | <%TaskSite%> |
Urgence | <%If(Urgence == 'True', 'Oui', 'Non')%> | Adresse | <%TaskAddress%> |
<%Hide(Urgence == 'False')%><%Split(TypeUrgence, ',',1)%><%End%> | |||
Technicien | <%UserName%> | N° Interne | <%Id%> |
Résultat :
Client | Zara | Site Client | Zara Rivoli |
Urgence | Non | Adresse | 88 Rue de Rivoli, 75004 Paris |
Technicien | Patrick Fontaine | N° Interne | 2379503 |
Il est possible d’utiliser une expression complexe avec des parenthèses et des opérateurs booléens :
- || Est l’opérateur OR
- && Est l’opérateur ET
- <> Est l’opérateur ne correspond pas
- == Est l’opérateur égal
- != Est l’opérateur N’est pas égal
Exemple : <%Hide((Champ1 == 'valeur' ||Champ1 =='valeur2') && Champ3!= '')%> Certain contenus sont cachés <%End%>
Vous pouvez aussi convertir en chaîne de caractère votre variable avec S().
Exemple : <%Hide(S(Champ1)=='')%> Résultat : <%Champ1%> <%End%>
6.3.2. Display()
La fonction inverse est également disponible. Afficher une section où la condition est vraie.
Syntaxe : <%Display(Condition)%>Section de Texte<%End%>
6.3.3. DisplayRow()
Cette fonction est disponible uniquement dans un tableau. Elle permet d'afficher une ligne du tableau où la condition est vraie.
La fonction doit être placée dans la première cellule de la ligne concernée (ou dit autrement, dans la colonne la plus à gauche de la ligne), avant tout autre contenu comme du texte.
Dans l'exemple ci-dessous, toute la ligne en jaune est affichée si la condition est vraie.
Syntaxe : <%DisplayRow(Condition)%>

6.4. Contains()
Il est parfois utile de savoir si une chaîne de caractère est contenue dans une autre. Pour cela, la fonction Contains() est utilisée.
Syntaxe : <%Contains(Chaîne, modèle)%>
- La chaîne de caractère est le domaine où la valeur est à tester.
- La modèle est l’expression à trouver dans la chaîne.
Cette fonction retourne True ou False selon l’évaluation.
Exemple : <%If(Contains(Champ, 'mesure'), 'MESURE', 'RIEN') %>
Résultat : Champ = ‘La mesure par défaut est prise’ donne comme résultat : MESURE
Remarque : La comparaison est sensible à la casse. Pour éviter cas comparaisons sensibles, utilisez le ToUpper() ou la fonction ToLower() en combinaison avec Contains().
Exemple : <%If(Contains(ToUpper(Field), 'MESURE' ), 'MESURE', 'RIEN')%>
6.5. StartsWith()
Une condition qui permet de tester si une chaîne de caractère commence par la valeur spécifiée.
Syntaxe : <%StartsWith(Chaîne, Modèle)%>
- La chaîne de caractère est le domaine où la valeur est à tester.
- La modèle est l’expression à trouver dans la chaîne.
Cette fonction retourne True ou False selon l’évaluation.
Exemple : <%If(StartsWith(Champ, 'défaut'), 'Valeur par défaut', '')%>
Résultat : Champ = ‘La mesure par défaut est prise’ donne comme résultat : Valeur par défaut
6.6. EndsWith()
Une condition qui permet de tester si une chaîne de caractère se termine par la valeur spécifiée.
Syntaxe : <%EndsWith(Chaîne, Modèle)%>
- La chaîne de caractère est le domaine où la valeur est à tester.
- La modèle est l’expression à trouver dans la chaîne.
Cette fonction retourne True ou False selon l’évaluation.
Exemple : <%If(EndsWith(Champ, 'END'), 'end', '')%>
Résultat : Champ = ‘1234-END’ nous retourne : end
7. Relation
Pour pouvoir exploiter les données d’un formulaire via une relation, il vous faut créer un tableau et y insérer votre relation détaillée via l’instruction spécifique Relation().
Syntaxe : <%Relation('Libellé du champ Relation')%>
Exemple :
Date de l’intervention : <%DateIntervention%>
Sous Articles :
Fiches d’anomalies | Statut | Urgent ? | Type d’anomalie |
<%Relation('Anomalies constatées')%>
<%Id%> |
<%Statut%> | <%Urgent%> | <%TypeAnomalie%> |
Résultat :
Date de l’intervention : 05/09/2016
Sous Articles :
Fiche d’anomalies | Statut | Urgent ? | Type d’anomalie |
227399 | Annulé | Non | Coupure de courant |
227432 | Pris en compte | Oui | Panne matériel |
227551 | Nouveau | Non | Erreur manipulation |
Dans ce cas, la relation Anomalies constatées est utilisée pour récupérer les sous-fiches.
Si aucunes sous-fiches ne sont liées à votre fiche principale, alors la table entière sera vide.
Si l’option de support de positionnement est coché voici la syntaxe dans les fichiers ci-dessous :
Modèle d’exemple Support de positionnement
Résultat d’exemple du Support de positionnement
7.1. Trier une relation unique via un champ
Il est peut-être utile lors de l’utilisation d’une relation de tirer une sous-formulaire en fonction d’un champs. Vous pouvez définir via un second paramètre son ordonnancement.
Syntaxe ordre croissant : <%Relation('Libellé du champ Relation', 'NomSystemeDuChamp')%>
Syntaxe ordre décroissant : <%Relation('Libellé du champ Relation', 'NomSystemeDuChamp DESC')%>
Exemple:
Sous Articles ordre croissant :
Fiches d’anomalies | Statut | Urgent ? | Type d’anomalie |
<%Relation('Anomalies constatées', 'TypeAnomalie')%>
<%Id%> |
<%Statut%> | <%Urgent%> | <%TypeAnomalie%> |
Résultat :
Sous Articles ordre croissant :
Fiche d’anomalies | Statut | Urgent ? | Type d’anomalie |
227399 | Annulé | Non | Coupure de courant |
227551 | Nouveau | Non | Erreur manipulation |
227432 | Pris en compte | Oui | Panne matériel |
Exemple:
Sous Articles ordre décroissant :
Fiches d’anomalies | Statut | Urgent ? | Type d’anomalie |
<%Relation('Anomalies constatées', 'TypeAnomalie DESC')%>
<%Id%> |
<%Statut%> | <%Urgent%> | <%TypeAnomalie%> |
Résultat :
Sous Articles ordre décroissant :
Fiche d’anomalies | Statut | Urgent ? | Type d’anomalie |
227432 | Pris en compte | Oui | Panne matériel |
227551 | Nouveau | Non | Erreur manipulation |
227399 | Annulé | Non | Coupure de courant |
7.2. Filtrer une relation multiple via un sous-formulaire
Un champ relation peut posséder plusieurs sous-formulaires. Si vous souhaitez filtrer les fiches de la relation en fonction du type de formulaire, il faut utiliser la syntaxe suivante :
<%Relation('Libellé du champ Relation', OrderBy, StructureName='Nom du formulaire')%>
- OrderBy correspond au tri tel qu'expliqué dans le paragraphe 7.1
- Nom du formulaire correspond au nom du formulaire que vous souhaitez conserver
Par exemple, nous avons une relation Anomalies constatées qui possède deux sous-formulaires : Anomalie et Divers. Pour conserver uniquement les fiches du formulaire Anomalie, voici la syntaxe attendue :
<%Relation('Anomalies constatées', '', StructureName = 'Anomalie')%>
7.3. Relation quantifiable
Cette option ne peut-être utilisé qu’avec ou sans l’option Multiple, car ce n’est pas un champs de création de données mais de liaison. Cette fonction va de pair avec l’utilisation de la diffusion de fiche, elle permet d’afficher une quantité sur une sous-fiche en relation.
Pour obtenir la quantité il faut dans un tableau de relation inclure la syntaxe <%[Relation.Count]%>
Exemple:
<%Relation('Produits')%>
Relation : <%[Relation.Count]%> Produits : <%[Produits.Count]%> |
7.4. Relation de relation
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 das un premier tableau une relation du sous-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 en relation de ce sous formulaire. Cette dernière relation se nomme "libellé de la relation de relation".
Il est possible de descendre jusqu'à 3 niveaux dans les relations de relation (en sommes, la relation de la relation de la relation) mais pas au dela. Il faudra donc modifier vos structures si nécessaire.
En d'autre terme, on insère dans un deuxième temps une relation de relation.
Puis dans le tableau, on insert à la suite de la relation les champs de la relation qu'on veut voir présent dans le rapport. Puis on répète l'opération les champs de la relation de la relation qu'on veut voir affiché dans le rapport :
<%Relation('libellé de la relation')%> <%champ de la relation 1%> <%champ de la relation 2%>
|
N.B. : Le champ de type "Elément de relation" n'est pas persistant et ne peut pas être utilisé dans un rapport.
8. Fonctions d’agrégation
Soyez conscient de la syntaxe spécifique pour l’utilisation des fonctions suivantes. Dès qu’il y a un argument, il doit être renseigné avec des guillemets simples. Par exemple: <%Sum('ToNumber(Prix)')%>
8.1. Count()
Compte le nombre total d’enregistrements d’un même champs via Count().
Syntaxe : <%Count()%>
Exemple : Total: <%Count()%> Enregistrement
Cette instruction peut être utilisée n’importe où dans le document.
8.2. Sum()
Il est possible d’additionner les valeurs des champs.
Syntaxe : <%Sum('ChampNom')%>
Notez-les apostrophes qui entourent ChampNom. Ceux-ci sont obligatoires pour identifier la donnée.
Lorsque vous n’êtes pas sûr si un champ est de type numérique, vous pouvez convertir la donnée en un nombre en utilisant la fonction ToNumber() ou N().
Exemple : Total: <%Sum('N(Prix)')%> €
Résultat : Total: 134,321 €
8.3. Moyenne – Avg()
Pour obtenir la moyenne des valeurs de champ, utilisez la fonction Avg().
Syntaxe : <%Avg('ChampNom')%>
Même que pour Sum(), vous pouvez utiliser la fonction de ToNumber() ou N() pour convertir un texte en nombre.
Exemple : Moyenne: <%Avg('N(Revue)')%> €
Résultat : Moyenne: 14,32 €
8.4. Minimum – Min()
Pour obtenir la valeur minimale d’une série, vous pouvez utiliser la fonction Min().
Syntaxe : <%Min('ChampNom')%>
Vous pouvez convertir le champ en un numéro en utilisant la fonction ToNumber() ou N().
Exemple : Minimum: <%Min('N(Prix)')%> €
Résultat : Minimum: 9,9 €
8.5. Maximum – Max()
Pour obtenir la valeur maximale d’une série, vous pouvez utiliser la fonction Max().
Syntaxe : <%Max('ChampNom')%>
Vous pouvez convertir le champ en un numéro en utilisant la fonction ToNumber() ou N().
Exemple : Maximum: <%Max('N(Prix)')%> €
Résultat : Maximum: 86,65 €
8.6. Cartographie Globale – GlobalMap()
Vous permet d’afficher tous les points d’un champ localisation de plusieurs fiches sur une même carte. Ceci nécessite un Modèle de rapport en ModeListing.
Syntaxe : <%GlobalMap('LatitudeChamp','LongitudeChamp', ConnectPoints, Largeur, Hauteur, mapType)%>
Explication des champs :
- LatitudeChamp et LongitudeChamp sont le nom des champs qui contiennent des valeurs de latitude et de longitude. Remarque : ils ont besoin d’être décoré ‘’ avec des citations simples comme l’expression est une fonction d’agrégation
- ConnectPoints : Si vrai, il relie les points, si faux rien.
- Largeur : La largeur de pixels.
- Hauteur : La hauteur de pixels.
- MapType : 0 pour route, 1 pour aérien, 2 pour mixte
Exemple : <%GlobalMap('latitude', 'longitude', true, 300, 300, 0)%>
Dans le cas d’une Relation avec un GlobalMap :
<%Relation('Nomrelation')%> |
<%GlobalMap('latitude', 'longitude', true, 300, 300, 0)%> |
8.7. Affichages Graphiques – Chart()
Vous pouvez utiliser des cartes d’agrégations pour afficher un graphique à barres ou un diagramme circulaire.
- Camembert et graphique à barres
- Les diagrammes circulaires sont faits avec de valeurs et des étiquettes.
Syntaxe : Chart(TypeGraphique, FonctionAggrégation, ChampEtiquette, AffichageValeurs, largeur, hauteur)
- TypeGraphique : Peut-être ‘Pie’, ‘Pie3D’, ‘Bar’.
- FonctionAggrégation : Est une fonction comme Count() ou Sum(field).
- ChampEtiquette : Est le nom d’un champ qui contient des étiquettes pour être groupées par. Ces valeurs sont groupées en utilisant les fonction d’agrégation Count() ou Sum().
- AffichageValeurs : Vrai indique l’affichage de la valeur au-dessus de chaque élément, Faux n’affiche pas la valeur.
- Largeur : La largeur de pixels.
- Hauteur : La hauteur de pixels.
Exemple :
<%Chart('Bar', 'Count()', 'NomClient', true, 500, 300)%>
Résultat :
Exemple 2 :
<%Chart('Pie3d', 'Sum(Prix)', 'TypeReparation', false, 600, 300)%>
Résultat:
Exemple 3 :
<%Chart('Pie', 'Count()', 'TypeReparation', true, 600, 300)%>
Résultat :
9. Cas particuliers
Certaines fonctionnalités disposent de syntaxes spécifiques. Voici donc le lexique des syntaxes qui sert à exploiter les données.
9.1 Champs listes
9.1.1. Isoler une ou plusieurs valeurs dans une liste
Pour isoler un niveau en particulier sur une liste arborescente unique il suffit de le définir :
- Par défaut pour obtenir la valeur nous utilisons : <%NomSystèmeListe%>
Mon résultat de liste vaut A,B,C :
- Obtenir A : <%[NomSystèmeListe.FirstLevel]%> ou <%[NomSystèmeListe.Level1]%>
- Obtenir B : <%[NomSystèmeListe.Level2]%>
- Obtenir C : <%[NomSystèmeListe.LastLevel]%> ou <%[NomSystèmeListe.LevelN]%>
Pour une liste à choix multiples sans arborescence :
Mon résultat de liste vaut A | B | C :
- Obtenir A : <%[NomSystèmeListe.Item1]%>
- Obtenir B : <%[NomSystèmeListe.Item2]%>
- Obtenir C : <%[NomSystèmeListe.ItemN]%>
Pour une liste à choix multiples avec de l’arborescence :
Mon résultat de liste vaut A,A1 | B,B1 | C,C1
- <%[NomSystèmeListe.Item1]%> = A,A1
- <%[NomSystèmeListe.Item1.Level1]%> = A
- <%[NomSystèmeListe.Item2.LastLevel]%> ou <%[NomSystèmeListe.Item2.Level2]%> = B1
NB Pour obtenir à la fois l'élément de liste de la fiche et son parent, il est nécessaire de passer par une formule.
9.1.2 Les valeurs annexes de listes
Une valeur de liste peut posséder d’autres sous valeurs, comme un External Id, une Url ou une image. Il est possible d’obtenir les éléments suivants via le publipostage :
- Par défaut pour obtenir la valeur nous utilisons : <%NomSystèmeListe%>
Toutefois dans notre cas il faut utiliser une autre méthodes pour extraire les sous donnes via la syntaxe :
- External Id lié à la valeur de liste : <%[NomSystèmeListe.ExternalId]%>
- Url lié à la valeur de liste : <%[NomSystèmeListe.Url]%>
- Image lié à la valeur de liste : <%Img([NomSystèmeListe.Image], 50)%> (50 correspond à la taille de l'image)
- Code couleur de la valeur de liste : <%[NomSystèmeListe.Color]%>
- Valeur de l'élément de liste colorée par sa couleur : <%TextColor([NomSystèmeListe], [NomSystèmeListe.Color])%>
Il est possible d’utiliser la syntaxe item pour isoler un élément précis sur une valeur annexe comme par exemple :
- External Id du premier résultat dans la valeur : <%[NomSystèmeListe.Item1.ExternalId]%>
- Url du premier résultat dans la valeur liste : <%[NomSystèmeListe.Item1.Url]%>
- Image du premier résultat dans la valeur liste : <%[NomSystèmeListe.Item1.Image]%>
- Couleur du premier résultat dans la valeur liste : <%[NomSystèmeListe.Item1.Color]%>
N.B. : Le champ de type "Elément de liste" n'est pas persistant, il ne peut pas être utilisé dans un rapport.
Un external id ne doit pas contenir dans sa valeur de caractère spécial (exemple : l'underscore "_").
9.2. Champs utilisateurs
9.2.1. Afficher les informations de l'ensemble des utilisateurs d'un champ
Il est possible d'utiliser les informations issues d'un champ utilisateur en utilisant les syntaxes suivantes (dans ces exemples, le nom système du champ est UserFieldName) :
- Afficher la liste des prénoms des utilisateurs sélectionnés séparés par des virgules
- Syntaxe :
<%[UserFieldName.FirstName]%>
- Résultat : Earvin, Mickael, Larry, Wilt, Kareem
- Syntaxe :
- Afficher la liste des noms de famille des utilisateurs sélectionnés séparés par des virgules
- Syntaxe :
<%[UserFieldName.LastName]%>
- Résultat : Johnson, Jordan, Bird, Chamberlain, Abdul-Jabbar
- Syntaxe :
- Afficher la liste des noms complets des utilisateurs sélectionnés séparés par des virgules
- Syntaxe :
<%[UserFieldName.FullName]%>
- Résultat : Earvin Johnson, Mickael Jordan, Larry Bird, Wilt Chamberlain, Kareem Abdul-Jabbar
- Syntaxe :
- Afficher la liste des emails des utilisateurs sélectionnés séparés par des virgules
- Syntaxe :
<%[UserFieldName.Email]%>
- Résultat : e.johnson@lakers.com, m.jordan@bulls.com, l.bird@celtics.com, w.chamberlin@warriors.com, k.abuljabbar@bucks.com
- Syntaxe :
- Afficher soit le nom complet, soit l'email en fonction de l'option choisie dans le formulaire
- Syntaxe :
<%[UserFieldName]%>
- Syntaxe :
9.2.2. Afficher les informations d'un utilisateur spécifique d'un champ
Il est également possible de n'afficher les informations que d'un seul utilisateur du champ. Voici la syntaxe à suivre (dans ces exemples, le nom système du champ est UserFieldName) :
- Afficher l'email du premier utilisateur dans la liste
- Syntaxe :
<%[UserFieldName.User1.Email]%>
- Résultat : e.johnson@lakers.com
- Syntaxe :
- Afficher le nom de famille du 4e utilisateur dans la liste
- Syntaxe :
<%[UserFieldName.User4.LastName]%>
- Résultat : Chamberlain
- Syntaxe :
- Afficher le prénom du 2e utilisateur dans la liste :
- Syntaxe :
<%UserFieldName.User2.FirstName%>
- Résultat : Mickael
- Syntaxe :
9.3. Etat du workflow
Pour afficher l'état du workflow on peut utiliser <%[Submission.CurrentState]%>
Voici la liste des informations accessibles :
Formalisme |
Description |
<%[Submission.CurrentState]%> |
Etat de la fiche dans la langue par défaut |
<%[Submission.CurrentState.End]%> |
S'agit-il d'un état final ? |
<%[Submission.CurrentState.Color]%> |
Couleur de l'état de la fiche |
<%[Submission.CurrentState.Name.FR]%> |
Traduction du nom de l'état |
<%[Submission.CurrentState.Name.EN]%> |
Traduction du nom de l'état |
Voici un manière d'afficher l'état courant avec la couleur adéquate :
<%Display(Exists('Submission.CurrentState'))%><%TextColor('█',[Submission.CurrentState.Color])%><%[Submission.CurrentState]%><%End%>
9.4. Champ durée
Il n'est pas possible, de récupérer la valeur d'un champ durée directement dans un rapport Word. Pour palier à cette contrainte, il est possible d'utiliser un champ formule JavaSript pour récupérer la valeur du champ durée et intégrer ce champ formule dans un rapport word.
Exemple de syntaxe de formule JavaScript pour récupérer la valeur du champ Durée
var given_seconds = items['NOM_SYSTEME_DU_CHAMP_DUREE'] / 1000;
var dateObj = new Date(given_seconds * 1000);
var hours = dateObj.getUTCHours();
var minutes = dateObj.getUTCMinutes();
var seconds = dateObj.getSeconds();
var timeString = hours.toString().padStart(2, '0') + 'h' +
minutes.toString().padStart(2, '0') + 'min' +
seconds.toString().padStart(2, '0');
return timeString;
Commentaires
0 commentaire
Vous devez vous connecter pour laisser un commentaire.