Moduli
Non tutte le informazioni provengono da un sensore o da un sistema automatizzato. A volte serve il tocco umano — ed è qui che entra in gioco il widget Moduli. Pensalo come la tua lavagna digitale dentro IronFlock. Usalo ogni volta che vuoi acquisire dati manualmente, come ad esempio:
- Registrare conteggi di scarti sulla linea di produzione
- Inserire letture da un vecchio sensore di pH
- Annotare note di ispezione durante una visita in fabbrica
Come Funzionano i Moduli
Quando qualcuno invia un modulo, i dati vengono memorizzati in una tabella designata nel database della tua app. Ogni campo del modulo corrisponde a una colonna in quella tabella, e tutti i campi vengono salvati insieme come una nuova riga quando il modulo viene inviato.
Cosa configuri nel widget modulo:
- Un titolo per il modulo
- Uno o più campi, ciascuno con un’etichetta, un tipo di input e la colonna della tabella in cui scrivere
- Regole di validazione opzionali e valori predefiniti per campo
Tipi di campo disponibili: menu a tendina (seleziona da un elenco), testo, numero, casella di controllo e selettore data/ora.
Disporre i Campi
Per impostazione predefinita, ogni campo occupa un’intera riga, uno sotto l’altro. Un modulo lungo diventa più facile da compilare quando i campi correlati sono affiancati e raggruppati sotto delle intestazioni:
- Width: ogni campo può occupare un’intera riga, tre quarti, due terzi, metà, un terzo o un quarto di riga. I campi riempiono ogni riga da sinistra a destra, e un campo che non ci sta più inizia la riga successiva. Imposta una Default Field Width in Field Layout per dare a tutti i campi la stessa larghezza, poi modifica i singoli campi dove serve.
- Start a New Row: il campo inizia una nuova riga, anche se starebbe ancora accanto al precedente.
- Sezioni: un campo di tipo section aggiunge un’intestazione con un suggerimento facoltativo sotto. Raggruppa i campi che lo seguono, fino alla sezione successiva. La sua Field Width in Group imposta in un colpo solo la larghezza di tutti questi campi, e il suo Conditional Display mostra o nasconde l’intero gruppo, ad esempio impostazioni che valgono solo per un tipo di macchina.
- Density: i nuovi moduli partono in Compact, con campi più piccoli per le board desktop usate con il mouse. Scegli Comfortable per i campi più grandi, adatti agli schermi touch.
Il modulo si adatta allo spazio disponibile. In un widget piccolo o su uno smartphone, i campi si allargano gradualmente fino a disporsi in un’unica colonna, così ogni campo resta leggibile. Minimum Field Width stabilisce quanto può restringersi un campo prima che ciò accada.
Dove Vanno i Dati?
Ogni invio del modulo aggiunge una nuova riga alla tabella. Questo ti fornisce una cronologia completa di tutte le voci — nulla viene sovrascritto o perso.
Assicurati di configurare tutti i campi obbligatori in modo che ogni nuova riga sia completa e coerente.
Tenere Traccia dello Stato Più Recente
Se usi i moduli per monitorare lo stato corrente di macchine o asset — come il risultato dell’ultima ispezione per macchina — IronFlock può mostrarti solo l’inserimento più recente per ogni elemento. Lo sviluppatore dell’app abilita questa funzione indicando alla tabella quali colonne identificano un’entità, ad esempio il nome della macchina.
Quando è configurato così, attiva l’interruttore latest nelle impostazioni del filtro di un widget e il widget mostra solo la riga corrente per ogni macchina o asset. IronFlock determina qual è questa riga ogni volta che il widget legge la tabella, e ogni nuovo invio sostituisce la riga dell’elemento sulla board man mano che arriva, quindi un invio tardivo o corretto non lascia mai la board con un valore obsoleto. La cronologia completa degli invii rimane disponibile per la revisione.
In una tabella di questo tipo, un modulo ha bisogno di un campo per le colonne che identificano l’entità e, per il resto, solo per le colonne che modifica. Ogni invio mantiene il valore attuale di ogni colonna che il modulo non scrive. I campi del modulo vengono sempre scritti: un campo numerico svuotato svuota la sua colonna, un campo di testo svuotato memorizza un testo vuoto e un campo nascosto da una condizione di visualizzazione svuota la sua colonna. Un campo con un valore predefinito scrive quel valore invece di lasciare vuota la colonna.
Modificare un Record da una Tabella
Per permettere agli utenti di aprire un record esistente e modificarlo, combina una tabella con un modulo sulla stessa pagina:
- Dai alla tabella una colonna di tipo Edit button, associata alla colonna che identifica il record, come il nome della macchina, e imposta la sua URL Parameter Key, ad esempio
edit. Ogni riga mostra quindi un’icona a forma di matita. Un clic scrive la chiave della riga nell’URL della pagina (?edit=press-1), così come un widget filtro imposta il suo parametro. - Aggiungi un modulo alla stessa pagina, attiva il suo Form Open Button e imposta Open on URL parameter sullo stesso nome. Su una board il modulo non mostra alcun pulsante proprio: si apre come finestra di dialogo non appena l’URL contiene il parametro e si chiude di nuovo quando l’utente salva, elimina o annulla, il che rimuove il parametro dall’URL.
- Associa il Pre-filled Value di ogni campo alla colonna del record, con un filtro sulla colonna identificativa il cui valore proviene dal parametro di filtro
edit, e con l’interruttore Latest attivo. Il campo che scrive la colonna identificativa è un Hidden Field con la stessa associazione, così il salvataggio va allo stesso record. Come nella sezione precedente, ogni colonna che il modulo non scrive mantiene il suo valore.
La finestra di dialogo mostra una barra di avanzamento finché non arrivano i valori del record. Con l’interruttore latest attivo, la tabella mostra la modifica salvata nel momento in cui viene memorizzata. Un pulsante Delete nella finestra di dialogo funziona come descritto sotto; la sua rotta di navigazione può restare vuota, perché la finestra si chiude da sola. Un URL salvato nei segnalibri con il parametro apre subito la finestra di dialogo, e il pulsante indietro del browser la chiude.
Un modulo separato con il proprio pulsante di apertura continua a creare nuovi record. Fuori da una board, nell’anteprima dell’editor dei widget, il modulo mantiene il suo pulsante così da poterlo provare.
Eliminazione dei Dati
IronFlock utilizza un approccio append-only anche per l’eliminazione. Invece di rimuovere una riga, il modulo invia una nuova voce che contrassegna il record come eliminato: attiva Show Delete Button e imposta la Delete-Flag Column sulla colonna deleted della tabella, una colonna booleana che lo sviluppatore dell’app aggiunge alla tabella. Il modulo scrive quindi quella colonna a ogni invio, true all’eliminazione e false al salvataggio, quindi salvare un record eliminato lo ripristina. I widget che elencano i record combinano l’interruttore latest con un filtro su quella colonna (deleted vuoto o false). Un record eliminato scompare dalla board nel momento in cui la voce arriva e rimane nel database per cronologia e scopi di audit. Non serve alcuna vista o trasformazione per questo; vedi Eliminazione Logica dei Record.
Riepilogo
Con il widget Moduli ottieni:
- Inserimento manuale dei dati direttamente dalla board
- Tracciamento automatico della cronologia per ogni invio
- Pattern puliti per mostrare lo stato corrente e nascondere i record eliminati
- Modifica dei record esistenti da una tabella, in una finestra di dialogo sulla stessa pagina
Tutto senza uscire dalla tua board IronFlock.