Variabili contestuali

Completato

Le variabili contestuali sono simili alle variabili globali, ad eccezione del fatto che a tali variabili viene fatto riferimento solo nella schermata in cui vengono create. Anche se è possibile impostare il nome dell'utente su una variabile a cui fare riferimento nell'app, ci sono comunque alcuni vantaggi legati al fatto che le variabili contestuali non possano essere usate nelle altre schermate.

Può capitare di avere una funzionalità che si vuole usare in più schermate e che è basata su una variabile. Molte app, ad esempio, usano le finestre di dialogo popup per chiedere conferma di operazioni come l'eliminazione di un record. Un modo comune per l'implementazione è impostare una variabile contestuale su True quando l'utente seleziona il pulsante Elimina. A tale scopo, impostare la proprietà OnSelect del pulsante come segue.

UpdateContext({varShowPopUp: true})

Impostare quindi la proprietà Visible dei controlli popup su varShowPopUp. Questo esempio è simile a quello relativo alle variabili globali. La differenza principale è la riusabilità. Se si copiano i controlli (usando CTRL+C) in un'altra schermata, si avranno 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 in screen2 perché ogni variabile contestuale, anche quando le variabili hanno lo stesso nome, ha come ambito la schermata in cui si trova.

In genere non si consiglia di riutilizzare i nomi delle variabili poiché può causare confusione, ma si tratta di una soluzione ideale se si vuole riutilizzare una funzionalità in modo indipendente in schermate diverse.

Se si è incerti nella scelta tra variabili globali o contestuali, in genere è preferibile scegliere le variabili globali. Le variabili globali sono disponibili ovunque e quindi sono più flessibili.

Un comportamento esclusivo della funzione UpdateContext consiste nella possibilità di dichiarare più di una variabile per volta. Questo non è possibile con la funzione Set. Per creare più di una variabile di contesto con un'unica formula, usare una virgola tra le variabili.

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

Nota

Nel modulo precedente si è accennato al fatto che l'uso della funzione User() in linea rallenta inutilmente l'app. Per questo motivo, si dovrebbe usare una variabile globale OnStart. Sebbene l'uso di una variabile contestuale per archiviare le informazioni utente migliori le prestazioni rispetto all'uso in linea della funzione User(), è meno performante di una variabile globale, poiché si continuerà a chiamare l'origine dati ogni volta che si apre la pagina. Pertanto, è consigliabile archiviare le informazioni utente in una variabile globale.

Per eseguire la stessa operazione con le variabili globali, è necessario procedere nel modo seguente.

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

L'unità successiva illustra l'archiviazione di tabelle di dati in una variabile di raccolta.