Esdeveniment de camp de vista

Visió ràpida de les propietats JSON passades a onclick
| Propietat | Descripció | Exemple / Ús |
|---|---|---|
| previousID | L'ID del registre seleccionat anteriorment. Per defecte és "A1". | “A1” |
| targetID | L'ID del registre al qual apunta el clic. Per defecte és "A3". | “A3” |
| targetLineNum | El número de la fila on ha fet clic l'usuari (començant per zero). | 3 |
| targetColumnNum | El número de la columna on s'ha fet clic dins de la vista (començant per zero). | 4 |
| targetColumnValue | El valor de text que es mostra a la cel·la on s'ha fet clic. | “Lisa” |
| targetColumnCaption | El títol de la columna segons la configuració del camp (fent servir "caption" o bé "field.caption"). | “First Name” |
Funcionament general
- Definiu la funció onclick dins de la fórmula del camp de vista
La funció onclick s'ha d'integrar a la fórmula del camp de vista. Rep un objecte (anomenat "event") que conté les propietats descrites més amunt. - Execució de codi personalitzat
Quan un usuari fa clic o toca una cel·la de la vista, el ganxo de Ninext executa la funció onclick. Aleshores l'script pot, per exemple:- Actualitzar propietats d'un registre (per exemple, invertir un camp booleà).
- Desar l'ID del registre clicat en un camp determinat.
- Desencadenar accions condicionals segons la columna on s'ha fet clic.
- Retorn del contingut de la vista
Al final de la funció, la fórmula ha de retornar el contingut de la vista (per exemple, "select Customer"). Això indica a Ninox quins registres ha de mostrar un cop executat l'script.
Exemples d'implementació
Exemple complet
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
Comentaris:
- La funció comença desant l'ID del registre clicat al camp "ID of selected customer".
- Després recupera el registre corresponent de la taula "Customer".
- Si el títol de la columna de la cel·la clicada conté "checked", inverteix el camp "Checked" d'aquest registre i retorna true per indicar que el clic s'ha tractat.
- Si no, la funció retorna true o false segons si el número de la columna clicada és 0.
- Finalment, la fórmula retorna "select Customer", que mostra el contingut de la vista un cop executat l'script.
Exemple mínim
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
Comentaris:
- Aquest script simplement desa l'ID del registre clicat i escriu un missatge de depuració.
- Retornar false deixa que el comportament per defecte segueixi el seu curs per a les accions que no es tracten específicament.
- Com sempre, la fórmula acaba amb "select Customer" per mostrar el contingut de la vista.
Punts clau que cal recordar
- Ubicació dins de la fórmula del camp de vista:
La funció onclick s'ha de definir directament a la fórmula del camp de vista, no en un activador ni en cap altra part de l'aplicació. - Retorn del contingut de la vista:
A diferència d'altres funcions que esperen un booleà, la darrera línia de la fórmula ha de retornar el contingut de la vista (per exemple, "select Customer"). - Ús dels paràmetres de l'esdeveniment:
Feu servir la informació que ofereix l'objecte "event" (previousID, targetID, targetLineNum, targetColumnNum, targetColumnValue, targetColumnCaption) per adaptar les vostres accions al context del clic. - Proves en dispositius diferents:
Assegureu-vos que la funció funcioni correctament tant en ordinadors de sobretaula com en dispositius tàctils, ja que el ganxo tracta tant els esdeveniments "click" com els "touchend".
