Variabili contestuali

Completato

Le variabili contestuali sono simili alle variabili globali, tranne che sono riferite solo sullo schermo in cui vengono create. Anche se è possibile impostare il nome dell'utente su una variabile a cui fare riferimento in tutta l'app, esistono comunque vantaggi per il fatto che le variabili contestuali non possono essere usate in altre schermate.

A volte si ha una funzionalità che si desidera utilizzare su più schermi, guidata da variabili. Ad esempio, molte app usano finestre di dialogo popup per confermare elementi come l'eliminazione di un record. Un modo comune per implementare consiste nell'impostare una variabile contestuale su true quando l'utente seleziona il pulsante elimina. Per farlo, imposta la proprietà OnSelect del pulsante su quanto segue.

UpdateContext({varShowPopUp: true})

Impostare quindi la proprietà Visible dei controlli popup su varShowPopUp. Questo è simile all'esempio delle variabili globali. La differenza principale è la riutilizzabilità. Se si copiano i controlli (usando CTRL+C) in un'altra schermata, sono presenti due istanze di varShowPopUp. Queste due istanze usano lo stesso nome, ma possono avere valori diversi. Il valore di varShowPopUp in screen1 non influisce sul valore di varShowPopUp su screen2 perché ogni variabile contestuale, anche se ha lo stesso nome, ha lo stesso ambito sullo schermo in cui si trovano.

In genere, non è consigliabile riutilizzare i nomi delle variabili perché può creare confusione, ma è utile riutilizzare le funzionalità in modo indipendente su schermi diversi.

Se si è in dubbio se è necessario usare variabili globali o contestuali, in genere le variabili globali sono la risposta predefinita. Le variabili globali sono disponibili ovunque, rendendole più flessibili.

Un comportamento univoco della funzione UpdateContext consiste nel fatto che è possibile dichiarare più di una variabile alla volta. Questa operazione non è possibile con la funzione Set . Per creare più variabili di contesto con una singola formula, usare una virgola tra le variabili.

UpdateContext({varCount: 1, varActive: true, varName: User().FullName})

Annotazioni

Nel modulo precedente è stato indicato che l'uso della funzione User() inline rallenta inutilmente l'app e per questo motivo deve essere usata una variabile globale OnStart. Sebbene l'uso di una variabile contestuale per archiviare le informazioni utente migliori le prestazioni rispetto all'uso inline della funzione User(), in definitiva è meno performative di una variabile globale, perché si continuerà a chiamare sull'origine dati ogni volta che si apre la pagina. Di conseguenza, è consigliabile archiviare le informazioni utente in una variabile globale.

Per eseguire la stessa operazione con le variabili globali, usare quanto segue.

Set(varCount, 1);Set(varActive, true);Set(varName, User().FullName)

Nell'unità successiva verranno fornite informazioni sull'archiviazione di tabelle di dati in una variabile di raccolta.