Esdeveniment de camp de vista

imatge.png

Visió ràpida de les propietats JSON passades a onclick

PropietatDescripcióExemple / Ús
previousIDL'ID del registre seleccionat anteriorment. Per defecte és "A1".“A1”
targetIDL'ID del registre al qual apunta el clic. Per defecte és "A3".“A3”
targetLineNumEl número de la fila on ha fet clic l'usuari (començant per zero).3
targetColumnNumEl número de la columna on s'ha fet clic dins de la vista (començant per zero).4
targetColumnValueEl valor de text que es mostra a la cel·la on s'ha fet clic.“Lisa”
targetColumnCaptionEl títol de la columna segons la configuració del camp (fent servir "caption" o bé "field.caption").“First Name”

Funcionament general

  1. 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.
  2. 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.
  3. 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".