Widgets
Un widget est un composant permettant de créer des tableaux de données, des graphiques, des documents HTML en vue d'un reporting ou d'une utilisation dans le tableau de bord.
Pour chaque widget, il est possible de créer des filtres et d'ajouter des boutons.
Onyx propose une grande variété de widgets :
- DataGrid ;
- WorkflowTrigger ;
- HTML ;
- Form ;
- FileProvider ;
- BarChart ;
- Gauge ;
- PivotGrid ;
- DetailView.

Relier le widget à une connexion n'est pas obligatoire.
Selon l'option choisie, des éditeurs spécifiques permettent de configurer le widget. C'est par exemple le cas du type HTML, du type BarChart ou du Gauge.
Il est possible de voir le rendu du widget sans le placer dans un rapport en utilisant le bouton "VISUALISER" dans le volet "DESCRIPTION".
Agrandir un widget
Dans un rapport, chaque widget dispose d'un bouton d'agrandissement dans son coin supérieur droit. Ce bouton, discret, devient visible au survol du widget et reste affiché en mode édition.
Un clic ouvre le widget en plein écran, dans une fenêtre que l'on referme par la croix ou en cliquant à l'extérieur. Un seul widget peut être agrandi à la fois. L'agrandissement ne relance pas la requête du widget : son état (filtres, tri, page en cours) est conservé.
Le widget WorkflowTrigger ne propose pas ce bouton : il ne contient qu'un bouton de lancement, qu'il n'y a rien à agrandir.
Créer un filtre
Pour créer un filtre, se rendre sur le volet "FILTERS" du composant widget. Sélectionner l'icône "+" puis sélectionner les paramètres souhaités, enregistrer.
Il est possible d'avoir un filtre zone de texte ou selectbox.
Le champ "requête" permet d'initialiser des valeurs dans un filtre. Il est également possible d'utiliser des variables dans cet encadré.
SELECT {{maVariable}};Le filtre du widget sera affiché dans la partie supérieure de l'écran du rapport.
Lorsqu'un filtre est créé, une variable portant le même nom est automatiquement générée. On peut faire appel à cette variable directement dans le champ requête de mon widget.
Créer un bouton
Pour créer un bouton, il faut se rendre sur le volet "ROWBUTTONS" du composant widget. Ensuite, il suffit de sélectionner l'icône "+" et choisir les paramètres souhaités, puis enregistrer.
Selon le type de widget sélectionné, l'affichage dans le rapport sera différent. Il pourra par exemple être présent directement dans un tableau (datagrid ou form).
Les boutons sont disponibles pour les widgets DataGrid, Form et DetailView.
Le widget PivotGrid
Le widget PivotGrid est un tableau croisé dynamique : il agrège les lignes renvoyées par une requête selon les champs que l'utilisateur place en lignes, en colonnes et en valeurs.
Sa configuration s'effectue dans le volet "DESCRIPTION" du widget, à l'aide de trois champs :
- Connexion : la connexion sur laquelle la requête est exécutée ;
- Requête : la requête SQL qui alimente le widget ;
- Configuration : un éditeur JSON, facultatif, décrivant la disposition initiale du tableau.
Si la configuration ne décrit aucun champ, le widget déduit tous les champs du résultat de la requête et laisse l'utilisateur les positionner lui-même.
Dans le rapport, l'utilisateur dispose du bandeau des quatre zones "Lignes", "Colonnes", "Valeurs" et "Filtres" : les champs se déplacent d'une zone à l'autre par glisser-déposer. Il peut également :
- déplier et replier les en-têtes de lignes et de colonnes ;
- trier en cliquant sur un en-tête, ou trier selon une valeur agrégée ;
- ouvrir la "Liste des champs" pour choisir les champs affichés ;
- changer l'agrégation d'un champ de la zone "Valeurs" par un clic droit : Somme, Moy, Min, Max ou Total (nombre de lignes) ;
- cliquer sur une cellule de données pour ouvrir le détail des lignes qui la composent ;
- exporter le tableau croisé au format Excel.
La barre d'outils du widget propose enfin "Réinitialiser", qui revient à la disposition configurée, et "Actualiser", qui relance la requête.
La disposition choisie par l'utilisateur (champs, dépliages, tris et agrégations) est conservée dans le navigateur : elle est donc propre à chaque poste, et le bouton "Réinitialiser" est le seul moyen de l'effacer.
Attention : l'agrégation est réalisée dans le navigateur, sur la totalité du résultat de la requête. Pour de gros volumes, il est préférable de pré-agréger les données dans la requête.
Le widget DetailView
Le widget DetailView présente un enregistrement à la fois sous forme de fiche, avec un libellé par champ. C'est le complément naturel d'un filtre de rapport : le filtre sélectionne l'enregistrement, la fiche l'affiche.
Sa configuration reprend les mêmes trois champs que le PivotGrid : Connexion, Requête et Configuration (JSON). La configuration décrit la disposition de la fiche : les champs affichés, leurs libellés et leur regroupement.
Un bouton de la barre d'outils de l'éditeur du widget (icône de remplissage) génère automatiquement une première configuration à partir des données : il exécute la requête, prend la première ligne et en déduit la liste des champs et leur type. Ce bouton n'est actif qu'une fois le widget enregistré.
En l'absence de configuration, la fiche affiche toutes les colonnes de la requête, sur deux colonnes d'affichage.
Dans le rapport :
- si la requête renvoie plusieurs enregistrements, une pagination apparaît en bas de la fiche et permet de passer d'un enregistrement à l'autre, un par page ;
- si des boutons ont été définis dans le volet "ROWBUTTONS", ils sont regroupés dans un menu "Actions" en haut à droite de la fiche, et s'appliquent à l'enregistrement affiché. Après l'exécution d'un script SQL, la fiche est rechargée en restant sur le même enregistrement ; un changement de filtre, lui, ramène au premier enregistrement ;
- si la requête ne renvoie rien, la fiche affiche "Pas de données".
Les champs de la fiche sont destinés à la consultation : une saisie dans un champ n'est pas enregistrée.