Skip to Content

Formulaires

Toutes les informations ne viennent pas d’un capteur ou d’un système automatisé. Parfois vous avez besoin d’une intervention humaine — et c’est là qu’intervient le widget Formulaires. Pensez-y comme votre presse-papiers numérique dans IronFlock. Utilisez-le pour :

  • Enregistrer les rebuts sur la ligne de production
  • Saisir des relevés d’un ancien capteur pH
  • Consigner des notes d’inspection lors d’une ronde en usine

Comment fonctionnent les formulaires

Lorsque quelqu’un soumet un formulaire, les données sont stockées dans une table désignée dans la base de données de votre application. Chaque champ du formulaire correspond à une colonne de cette table, et tous les champs sont enregistrés ensemble comme une nouvelle ligne.

Types de champs disponibles : liste déroulante, texte, nombre, case à cocher et sélecteur de date/heure.

Disposer les champs

Par défaut, chaque champ occupe une ligne entière, l’un sous l’autre. Un long formulaire devient plus facile à remplir lorsque les champs liés sont placés côte à côte et regroupés sous des titres :

  • Width : chaque champ peut occuper une ligne entière, les trois quarts, les deux tiers, la moitié, le tiers ou le quart d’une ligne. Les champs remplissent chaque ligne de gauche à droite, et un champ qui ne tient plus commence la ligne suivante. Définissez une Default Field Width dans Field Layout pour donner la même largeur à tous les champs, puis modifiez les champs individuels si nécessaire.
  • Start a New Row : le champ commence une nouvelle ligne, même s’il tiendrait encore à côté du précédent.
  • Sections : un champ de type section ajoute un titre avec une indication facultative en dessous. Il regroupe les champs qui le suivent, jusqu’à la section suivante. Sa Field Width in Group définit en une fois la largeur de tous ces champs, et son Conditional Display affiche ou masque tout le groupe, par exemple des réglages qui ne concernent qu’un type de machine.
  • Density : les nouveaux formulaires commencent en Compact, avec des champs plus petits pour les boards de bureau utilisés à la souris. Choisissez Comfortable pour des champs plus grands, adaptés aux écrans tactiles.

Le formulaire s’adapte à l’espace disponible. Dans un petit widget ou sur un téléphone, les champs s’élargissent progressivement jusqu’à s’empiler sur une seule colonne, afin que chaque champ reste lisible. Minimum Field Width définit jusqu’où un champ peut se rétrécir avant que cela ne se produise.

Où vont les données ?

Chaque soumission de formulaire ajoute une nouvelle ligne à la table. Cela vous donne un historique complet de toutes les saisies — rien n’est écrasé ou perdu.

Suivi de l’état actuel

Si vous utilisez des formulaires pour suivre l’état actuel de machines ou d’équipements — comme le dernier résultat d’inspection par machine —, IronFlock peut n’afficher que l’entrée la plus récente de chaque élément. Le développeur de l’app l’active en indiquant à la table quelles colonnes identifient une entité, par exemple le nom de la machine.

Une fois cela configuré, activez le bouton latest dans les paramètres de filtre d’un widget : le widget n’affiche alors que la ligne actuelle par machine ou équipement. IronFlock détermine cette ligne à chaque fois que le widget lit la table, et chaque nouvelle soumission remplace la ligne de l’élément sur le board dès qu’elle arrive, si bien qu’une soumission tardive ou corrigée ne laisse jamais une valeur périmée sur le board. L’historique complet des soumissions reste disponible si vous souhaitez le consulter.

Dans une telle table, un formulaire a besoin d’un champ pour les colonnes qui identifient l’entité et, pour le reste, seulement pour les colonnes qu’il modifie. Chaque soumission conserve la valeur actuelle de toute colonne que le formulaire n’écrit pas. Les champs du formulaire sont toujours écrits : un champ numérique vidé efface sa colonne, un champ texte vidé enregistre un texte vide et un champ masqué par une condition d’affichage efface sa colonne. Un champ doté d’une valeur par défaut écrit cette valeur au lieu de laisser la colonne vide.

Modifier un enregistrement depuis un tableau

Pour permettre aux utilisateurs d’ouvrir un enregistrement existant et de le modifier, combinez un tableau et un formulaire sur la même page :

  1. Donnez au tableau une colonne de type Edit button, liée à la colonne qui identifie l’enregistrement, par exemple le nom de la machine, et définissez sa URL Parameter Key, par exemple edit. Chaque ligne affiche alors une icône de crayon. Un clic écrit la clé de la ligne dans l’URL de la page (?edit=press-1), de la même manière qu’un widget de filtre définit son paramètre.
  2. Ajoutez un formulaire sur la même page, activez son Form Open Button et définissez Open on URL parameter sur le même nom. Sur un board, le formulaire n’affiche aucun bouton propre : il s’ouvre dans une boîte de dialogue dès que l’URL contient le paramètre et se referme lorsque l’utilisateur enregistre, supprime ou annule, ce qui retire le paramètre de l’URL.
  3. Liez la Pre-filled Value de chaque champ à la colonne de l’enregistrement, avec un filtre sur la colonne d’identification dont la valeur provient du paramètre de filtre edit, et l’interrupteur Latest activé. Le champ qui écrit la colonne d’identification est un Hidden Field avec la même liaison, afin que la sauvegarde porte sur le même enregistrement. Comme dans la section précédente, chaque colonne que le formulaire n’écrit pas conserve sa valeur.

La boîte de dialogue affiche une barre de progression jusqu’à l’arrivée des valeurs de l’enregistrement. Avec le bouton latest activé, le tableau affiche la modification dès qu’elle est stockée. Un bouton Delete dans la boîte de dialogue fonctionne comme décrit ci-dessous ; sa route de navigation peut rester vide, car la boîte de dialogue se ferme d’elle-même. Une URL mise en favori avec le paramètre ouvre immédiatement la boîte de dialogue, et le bouton retour du navigateur la ferme.

Un formulaire séparé avec son propre bouton d’ouverture continue de créer de nouveaux enregistrements. En dehors d’un board, dans l’aperçu de l’éditeur de widgets, le formulaire conserve son bouton pour que vous puissiez l’essayer.

Suppression des données

IronFlock utilise une approche append-only pour la suppression également. Au lieu de supprimer une ligne, le formulaire soumet une nouvelle entrée qui marque l’enregistrement comme supprimé : activez Show Delete Button et définissez Delete-Flag Column sur la colonne deleted de la table, une colonne booléenne que le développeur de l’app ajoute à la table. Le formulaire écrit alors cette colonne à chaque soumission, true lors d’une suppression et false lors d’une sauvegarde, de sorte que sauvegarder un enregistrement supprimé le restaure. Les widgets qui listent les enregistrements combinent le bouton latest avec un filtre sur cette colonne (deleted est vide ou false). Un enregistrement supprimé disparaît du board dès que l’entrée arrive et reste dans la base de données à des fins d’historique et d’audit. Aucune vue ni transformation n’est nécessaire pour cela ; voir Suppression logique des enregistrements.

Last updated on