Formules de dashboard¶
Il existe deux types de formules : les formules de calcul et les formules de rendu.
Les formules de calcul
permettent de remplir une colonne avec le résultat d'un calcul basé sur d'autres colonnes et/ou
lignes (par exemple une multiplication de colonnes, le résultat d'un test,...). Le résultat de ce calcul est celui qui
est exporté lors d'un export Excel.
Les formules de rendu
permettent de modifier le rendu d'une cellule (par exemple, ajouter des icônes, changer les
couleurs, mettre un lien web). Le résultat de la formule de rendu
n'est pas appliqué lors d'un export Excel.
A noter que les données sont d'abord transformées par la formule de calcul
, puis le formatage numérique est appliqué
(s'il y en a un), puis enfin la formule de rendu
est appliquée.
Formatage numérique et formule de rendu
Si vous appliquez un formatage numérique (par exemple 1 000
or 12.34%
), ce formatage est appliqué avant
la formule de rendu
. Par exemple, si la donnée initiale est 67425
et le formatage est 1 000
alors l'input
de la formule de rendu
est 67 425
.
Cette valeur est une chaîne de caractères avec un espace au milieu. Si vous utilisez une formule conditionnelle
dans la formule de rendu
(par exemple value > 50000 ? "large" : "small"
), cela ne fonctionnera pas car la
condition sera toujours vraie.
Vous devez convertir la valeur en format numérique avant de l'utiliser, avec la fonction toNumber()
(par exemple : toNumber(value) > 50000 ? "large" : "small"
).
Variables disponibles dans une formule¶
value
est la valeur actuelle de la cellule.line[N]
est la valeur de la cellule de la colonne N, sur la ligne actuelle (line[1]
est la première colonne).aboveLine[N]
est la valeur de la cellule de la colonne N, sur la ligne au dessus de la ligne actuelle.belowLine[N]
est la valeur de la cellule de la colonne N, sur la ligne au dessous de la ligne actuelle.lineIndex
est l'index de la ligne actuelle dans le tableau (la première ligne a l'index 1).isFirstLine
vaut true si la ligne actuelle est la première du tableau.isLastLine
vaut true si la ligne actuelle est la dernière du tableau.
Dans les free-tables¶
Il existe une variable supplémentaire disponible uniquement dans les free-tables qui permet d'accéder à n'importe quelle cellule de la table:
data[ligneId, colonneId]
est la valeur de la cellule de la ligneligneId
et de la colonnecolonneId
.data[1,1]
est la cellule en haut à gauche de la free-table.
Dans les histogrammes / courbes¶
Dans une formule, line[1]
représente l'abscisse, et line[2], ... line[N+1]
les N
mesures sélectionnées.
Exemple :
Si vous avez sélectionné les 2 mesures Marges
et Ventes
, vous pouvez entrer dans "Formule de calcul" la formule :
line[2] / line[3] * 100
pour avoir un pourcentage des marges en fonction des ventes. Il est possible de cacher la mesure Ventes
si vous ne
souhaitez afficher que le pourcentage en cliquant sur "Cacher la mesure".
Mode Exploser par
L'utilisation de plusieurs mesures (et donc des formules) n'est pas diponible lorsqu'on utilise le mode "Exploser par".
Note à propos des variables¶
Les formules de calcul
sont appliquées avant de retourner la ou les valeurs accessibles par les variables ci-dessus.
Les formules de rendu
ne sont pas appliquées dans la génération des valeurs de ces variables.
Exemples de formules de calcul¶
- Formule simple
value / 2
- Colonne 2 divisée par colonne 1
line[2] / line[1]
- Formule conditionnelle simple
value >= 20 ? "large" : "small"
- Evolution par rapport à la ligne au dessous
isLastLine ? "n.a." : (line[1] - belowLine[1])/belowLine[1]
- Accumulation de la colonne 1, stockée dans la colonne 2
aboveLine[2] + line[1]
- Nombre de jours entre une date et la date actuelle
date_diff(value, now())
Exemples de formules de rendu¶
- Affichage conditionnel d'une icône
value >= 20 ? (icon("arrow-up", "green") + value) :
(icon("arrow-down", "red") + value)
- Evolution entre lignes avec icône
isLastLine ? "n.a." : (line[1] > belowLine[1]) ?
("+" + round((line[1] - belowLine[1]) / belowLine[1] * 100, 2) + " % " + icon("arrow-up", "green"))
:
(round((line[1] - belowLine[1]) / belowLine[1] * 100, 2) + " % " + icon("arrow-down", "red"))
Syntaxe des chaînes de caractères¶
Toutes les chaînes de caractères doivent être passées entre double guillemets (par exemple :
replace(value,"k","kilo")
) et non entre simple guillemets.
Fonctions disponibles¶
icon()
¶
Insère une icône (voir la liste complète ici) de la couleur passée en argument.
Paramètres :
icon_name
: nom de l'icônecolor
[optional]: couleur de l'icône
Exemple :
icon("flag", "red")
link()
¶
Insère le lien text
pointant vers url
.
Paramètres :
text
: texte du lien à afficherurl
: url à ouvrirmode
[optional]: peut être"same"
ou"new"
. Si lemode
est"new"
ou non passé, le lien s'ouvre dans une nouvelle fenêtre. Si le mode est"same"
, le lien s'ouvrira dans la fenêtre actuelle.
Exemple :
link("Serenytics", "https://www.serenytics.com", "new")
link_to_dashboard()
¶
Insère le lien text
pointant vers le dashboard dont l'uuid est uuid
, avec la possibilité de passer une payload
pour filtrer le dashboard destination.
Paramètres :
text
: texte du lien à afficheruuid
: uuid du dashboard à ouvrirmode
[optional]: peut être"same"
ou"new"
. Si lemode
est"new"
ou non passé, le lien s'ouvre dans une nouvelle fenêtre. Si le mode est"same"
, le lien s'ouvrira dans la fenêtre actuelle.payload_filter
[optional]: le champ de la payload à passer.payload_value
[optional]: la valeur de la payload pourpayload_filter
.
Si les deux arguments payload_filter
et payload_value
sont définis, la payload {payload_filter: payload_value}
est
passée au dashboard destination. Cette payload peut être utilisée par le dashboard dans un filtre statique global (voir
template dashboard).
Example:
link_to_dashboard("User info", "176a8ac8-5c85-4fd0-b960-bad858f986e0", "new", "user_id", 10)
// la payload passée au dashboard sera {"user_id": "10"}
link_to_dashboard("User info", "176a8ac8-5c85-4fd0-b960-bad858f986e0", "new", "user_id", line[1])
// cette payload permet de filter le dashboard destination pour afficher les informations de l'utisateur
// dont l'id est contenu dans line[1]
btn_run_automation()
¶
Insère un boutton pour déclencher une automation. Ce boutton peut-être ajouté sur chaque ligne d'une table pour déclencher un script Python. Le bouton peut passer au script des valeurs de la ligne.
Paramètres :
btn_title
: titre du bouton à afficherautomation_uuid
: uuid de l'automation à exécuter- other args: payload passée en tant que liste de clés-valeurs (voir exemple ci-dessous). Les espaces ne sont pas supportés dans la payload et sont supprimés avant d'être passés au script.
Si l'automation est un script Python, la payload peut être obtenue dans le dictionnaire client.script_args
.
Exemple :
// example without payload
btn_run_automation("My button", "176a8ac8-5c85-4fd0-b960-bad858f986e0")
// example with a payload with two keys
// the value associated with myKey1 is the hard-coded string "Content"
// the value associated with myKey2 is the variable in column 2 of the table row
btn_run_automation("My button", "176a8ac8-5c85-4fd0-b960-bad858f986e0", "myKey1", "Content", "myKey2", line[2])
create_source_file_url()
¶
Cette fonction est obsolète et sera supprimée
Pour autoriser le téléchargement de toutes les données d'une datasource dans le Viewer, voir ici.
Retourne un lien permettant de télécharger le fichier de la source dont l'uuid est uuid
. Pour que le lien soit
valide, la source de données doit
obligatoirement être utilisée dans l'un des widgets du dashboard (pour des raisons de sécurité) et l'option
Autoriser le téléchargement dans le viewer
doit être activée sur la source.
Paramètres :
uuid
: uuid de la source de données
Exemple:
create_source_file_url("176a8ac8-5c85-4fd0-b960-bad858f986e0")
Comment utiliser la fonction create_source_file_url
:
Créez un widget KPI et choisissez la source dont vous voulez créer le lien dans sa configuration Data. Dans la section Rendu Graphique, choisissez le template Custom HTML et collez le code :
<div style="padding:20px; background-color: lightblue; height: 100%;font-size: 2vw">
<a href={{create_source_file_url("413faa5a-e859-cf99-a1be-e0ff63878a82")}}>Download file</a>
</div>
Afficher les erreurs de la fonction create_source_file_url
Si vous rencontrez des problèmes avec cette fonction, pensez à vérifier la console de votre navigateur. Des erreurs peuvent y être affichées.
mailto()
¶
Affiche un lien pour envoyer un email au destinataire email
.
Paramètres :
text
: texte du lien à afficheremail
: destinataire de l'emailsubject
: sujet de l'emailbody
: corps de l'email
Exemple :
mailto("Envoyer email", "contact@serenytics.com", "Mon sujet", "Bonjour,<br>Pouvez-vous mettre à jour vos données ?")
replace()
¶
Remplace la chaîne de caractères s1
par la chaîne s2
dans la chaîne str
.
Paramètres :
str
: chaîne de caractères à modifiers1
: chaîne de caractères à remplacers2
: chaîne de caractères à utiliser pour remplacers1
Exemple :
replace("2016-02-28", "-", "/")
repeat()
¶
Répète la chaîne de caractères str
`N times.
Paramètres :
str
: chaîne de caratcères à répéterN
: nombre de répétitions
Exemple :
repeat(icon("star", "orange"), 3)
padLeft()
¶
Complète la chaine str
à gauche avec la chaîne de caractères chars
si la longueur est plus petite que length
.
Paramètres :
str
: chaîne de caractères à modifierlength
: taille minimale à atteindrechars
[optional]: chaîne de caractères à utiliser pour compléterstr
Exemple :
padLeft(value, 2, "0")
round()
¶
Arrondit val
avec N
decimales.
Paramètres :
val
: valeur d'entréeN
: nombre de décimales désirées
Exemple :
round(value, 2)
floor()
¶
Arrondit val
à l'entier inférieur le plus proche.
Paramètres :
val
: valeur d'entrée
Exemple :
floor(value)
fix()
¶
Arrondit val
à l'entier le plus proche, en direction de 0.
Paramètres :
val
: valeur d'entrée
Exemple :
fix(value)
abs()
¶
Renvoie la valeur absolue de val
.
Paramètres :
val
: valeur d'entrée
Exemple :
abs(value)
pow()
¶
Calcule la puissance de x
à l'élèvation y
.
Paramètres :
x
: valeur d'entréey
: puissance à laquelle on élèvex
Exemple :
pow(value, 2)
sqrt()
¶
Calcule la racine carrée de val
.
Paramètres :
val
: valeur d'entrée
Exemple :
sqrt(value)
sign()
¶
Calcule le signe de val
, renvoie -1,+1 ou 0 (si la valeur est 0).
Paramètres :
val
: valeur d'entrée.
Exemple :
sign(value)
now()
¶
Retourne la date et l'heure actuelle, en UTC au format ISO.
Exemple :
now()
formatNumeral()
¶
Formate un chiffre.
Paramètres :
inputString
: valeur d'entréeformat
: format désiré en sortie. A choisir parmi les formats proposés dans le menu Numeral (par exemple: "1 000", "1 000.23 $"...).decimal_sep
: séparateur décimalthousand_sep
: séparateur de millierscurrency_symbol
: symbole monétaire
Exemple :
formatNumeral(value, "1 000 $",".", " ","€")
formatDate()
¶
Formate inputDateString
au format passé par outputFormatString
(e.g. "YYYY - MM - DD", "LLLL"). Si inputDateString
n'est pas au format ISO, vous devez spécifier son format avec inputFormatString
(e.g. 'YYYY-MM-DD", voir
ici pour la liste des formats possibles). Voir
ici pour une documentation complète sur les formats de sortie.
Paramètres :
inputDateString
: valeur d'entréeoutputFormatString
: format désiré en sortieinputFormatString
[optional]: format de date deinputDateString
Exemple :
formatDate(value, "YYYY - MM - DD", "YYYY/MM/DD")
formatDateWithLocale()
¶
Utilisez cette fonction au lieu de formatDate
quand vous devez formater la chaîne avec une locale
(e.g. utilisez
"LLLL" pour outputFormatString
et "fr" pour locale
).
Paramètres :
inputDateString
: valeur d'entréeoutputFormatString
: format désiré en sortielocale
: locale à utiliserinputFormatString
[optional]: format de date deinputDateString
Exemple :
formatDateWithLocale(value, "LLLL", "fr")
date_diff()
¶
Retourne date2 - date1 en jours.
Paramètres :
date1
: date de débutdate2
: date de fin
Exemple :
date_diff(line[1], line[2])
dateAdd()
¶
Ajoute (ou retire) un certain nombre d'unités de temps (jours, mois...) à une date.
Paramètres :
inputDate
: date à modifiernbUnits
: nombre d'unités de temps à ajouter (ou retirer si la valeur est négative)timeUnit
: type d'unité de temps, parmi :"years"
,"quarters"
,"months"
,"weeks"
,"days"
,"hours"
,"minutes"
,"seconds"
ou"milliseconds"
outputFormat
[optional] : format de date souhaité en résultat ('YYYY-MM-DD' par défaut)
Exemple :
dateAdd("2017-06-21", 2, "months") // retourne 2017-08-21
dateAdd("2017-06-21", -1, "years") // retourne 2016-06-21
toNumber()
¶
Convertit val
en valeur numérique.
Paramètres :
val
: valeur à convertir
Exemple :
toNumber("12.34%") // retourne la valeur numérique 12.34
toNumber("367 345 euros") // retourne la valeur numérique 367345
left()
¶
Extrait les caractères au début d'une chaîne de caractères.
Paramètres :
s
: chaîne de caractères à traitern
: nombre de caractères à conserver
Exemple :
left("John Doe", 3) // retourne "Joh"
right()
¶
Extrait les caractères à la fin d'une chaîne de caractères.
Paramètres :
s
: chaîne de caractères à traitern
: nombre de caractères à conserver
Exemple :
right("John Doe", 3) // retourne "Doe"
removeLeft()
¶
Supprime des caractères au début d'une chaîne de caractères.
Paramètres :
s
: chaîne de caractères à traitern
: nombre de caractères à supprimer
Exemple :
removeLeft("John Doe", 3) // retourne "n Doe"
removeRight()
¶
Supprime des caractères à la fin d'une chaîne de caractères.
Paramètres :
s
: chaîne de caractères à traitern
: nombre de caractères à supprimer
Exemple :
removeRight("John Doe", 2) // retourne "John D"
link_to_static_file¶
Crée une URL qui pointe vers un fichier statique à télécharger, à partir de l'uuid du fichier statique.
Paramètres :
uuid
: uuid du fichier statique à télécharger
Exemple :
<a href={{link_to_static_file("95d1434-0b11-4900-81fb-5f0d299fd03c")}}>
<div><span class="fa fa-download">Click here to download your file!</div>
</a>
link_to_static_file_by_name¶
Crée une URL qui pointe vers un fichier statique à télécharger, à partir du nom de fichier. L'intérêt est de construire ce nom de fichier dynamiquement à partir de variables ou des metadata de l'utilisateur loggé.
Paramètres :
filename
: nom du fichier à télécharger.
Exemple :
<a href={{link_to_static_file_by_name($$login.business_unit$$ + "_" + varYear + "_sales.xlsx")}}>
<div><span class="fa fa-download">Click here to download your XLSX file!</div>
</a>
où varYear
est une variable de votre dashboard.