Evento campo vista

Panoramica rapida delle proprietà JSON passate a onclick
| Proprietà | Descrizione | Esempio / Uso |
|---|---|---|
| previousID | L'ID del record selezionato in precedenza. Il valore predefinito è "A1". | «A1» |
| targetID | L'ID del record interessato dal clic. Il valore predefinito è "A3". | «A3» |
| targetLineNum | Il numero della riga su cui l'utente ha fatto clic (a partire da zero). | 3 |
| targetColumnNum | Il numero della colonna su cui si è fatto clic nella vista (a partire da zero). | 4 |
| targetColumnValue | Il valore di testo visualizzato nella cella su cui si è fatto clic. | «Lisa» |
| targetColumnCaption | L'intestazione della colonna presa dalla configurazione del campo (tramite "caption" oppure "field.caption"). | «First Name» |
Svolgimento generale
- Definire la funzione onclick nella formula del campo vista
La funzione onclick deve essere integrata nella formula del campo vista. Riceve un oggetto (chiamato "event") che contiene le proprietà descritte sopra. - Eseguire codice personalizzato
Quando un utente fa clic o tocca una cella della vista, l'hook di Ninext esegue la funzione onclick. Lo script può allora, per esempio:- Aggiornare le proprietà di un record (per esempio invertire un campo booleano).
- Memorizzare l'ID del record cliccato in un campo dedicato.
- Attivare azioni condizionali in base alla colonna su cui si è fatto clic.
- Restituire il contenuto della vista
Alla fine della funzione, la formula deve restituire il contenuto della vista (per esempio "select Customer"). È così che Ninox sa quali record mostrare dopo l'esecuzione dello script.
Esempi di implementazione
Esempio completo
function onclick(event : any) do
"ID of selected customer := event.targetID";
var t := this;
var selCustomer := first(select Customer where Id = event.targetID);
debug("onclick");
if event.targetColumnCaption like "checked" then
selCustomer.(Checked := not Checked);
true
else
if event.targetColumnNum = 0 then
true
else
false
end
end
end;
select Customer
Commenti:
- La funzione comincia memorizzando l'ID del record cliccato nel campo "ID of selected customer".
- Recupera poi il record corrispondente nella tabella "Customer".
- Se l'intestazione della colonna cliccata contiene "checked", inverte il campo "Checked" di quel record e restituisce true per segnalare che il clic è stato gestito.
- Altrimenti la funzione restituisce true o false a seconda che il numero della colonna cliccata sia 0 oppure no.
- Infine la formula restituisce "select Customer", che mostra il contenuto della vista dopo l'esecuzione dello script.
Esempio minimo
function onclick(event : any) do
"ID of selected customer := event.targetID";
debug("Clicked on Customer " + event.targetID);
"No specific action is performed here.";
false
end;
select Customer
Commenti:
- Questo script si limita a memorizzare l'ID del record cliccato e a registrare un messaggio di debug.
- Restituendo false si lascia proseguire il comportamento predefinito per le azioni non gestite espressamente.
- Come sempre, la formula termina con "select Customer" per mostrare il contenuto della vista.
Punti chiave da ricordare
- Collocazione nella formula del campo vista:
la funzione onclick deve essere definita direttamente nella formula del campo vista, non in un trigger o in un'altra parte dell'applicazione. - Restituzione del contenuto della vista:
a differenza di altre funzioni che si aspettano un booleano, l'ultima riga della formula deve restituire il contenuto della vista (per esempio "select Customer"). - Uso dei parametri dell'evento:
usate le informazioni fornite nell'oggetto "event" (previousID, targetID, targetLineNum, targetColumnNum, targetColumnValue, targetColumnCaption) per adattare le vostre azioni al contesto del clic. - Prove su dispositivi diversi:
assicuratevi che la funzione si comporti correttamente sia su computer sia su dispositivi touch, poiché l'hook gestisce sia gli eventi "click" sia gli eventi "touchend".
