Eventos de vista

Resumen de las propiedades JSON que se pasan a onclick
| Propiedad | Descripción | Ejemplo / Uso |
|---|---|---|
| previousID | El ID del registro seleccionado anteriormente. Su valor predeterminado es "A1". | «A1» |
| targetID | El ID del registro al que apunta el clic. Su valor predeterminado es "A3". | «A3» |
| targetLineNum | El número de fila en la que el usuario ha hecho clic (empezando por cero). | 3 |
| targetColumnNum | El número de la columna sobre la que se ha hecho clic en la vista (empezando por cero). | 4 |
| targetColumnValue | El valor de texto que se muestra en la celda pulsada. | «Lisa» |
| targetColumnCaption | El título de la columna según la configuración del campo (mediante "caption" o "field.caption"). | «First Name» |
Funcionamiento general
- Definir la función onclick dentro de la fórmula del campo de vista
La función onclick debe integrarse en la fórmula del campo de vista. Recibe un objeto (llamado "event") con las propiedades descritas más arriba. - Ejecutar código personalizado
Cuando el usuario hace clic o toca una celda de la vista, el enganche de Ninext ejecuta la función onclick. El script puede entonces, por ejemplo:- Actualizar propiedades de un registro (por ejemplo, invertir un campo booleano).
- Guardar el ID del registro pulsado en un campo previsto para ello.
- Lanzar acciones condicionales en función de la columna pulsada.
- Devolver el contenido de la vista
Al final de la función, la fórmula debe devolver el contenido de la vista (por ejemplo, "select Customer"). Así se indica a Ninox qué registros debe mostrar una vez ejecutado el script.
Ejemplos de implementación
Ejemplo 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
Comentarios:
- La función empieza guardando el ID del registro pulsado en el campo "ID of selected customer".
- Después recupera el registro correspondiente de la tabla "Customer".
- Si el título de la columna de la celda pulsada contiene "checked", invierte el campo "Checked" de ese registro y devuelve true para indicar que el clic se ha tratado.
- En caso contrario, la función devuelve true o false según si el número de la columna pulsada es 0.
- Por último, la fórmula devuelve "select Customer", que muestra el contenido de la vista tras ejecutar el script.
Ejemplo mínimo
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
Comentarios:
- Este script se limita a guardar el ID del registro pulsado y a escribir un mensaje de depuración.
- Al devolver false, se deja que el comportamiento predeterminado siga su curso para las acciones que no se tratan expresamente.
- Como siempre, la fórmula termina con "select Customer" para mostrar el contenido de la vista.
Puntos clave que conviene recordar
- Ubicación dentro de la fórmula del campo de vista:
La función onclick debe definirse directamente en la fórmula del campo de vista, no en un desencadenador ni en otra parte de la aplicación. - Devolución del contenido de la vista:
A diferencia de otras funciones que esperan un booleano, la última línea de la fórmula debe devolver el contenido de la vista (por ejemplo, "select Customer"). - Uso de los parámetros del evento:
Aproveche la información del objeto "event" (previousID, targetID, targetLineNum, targetColumnNum, targetColumnValue, targetColumnCaption) para adaptar sus acciones al contexto del clic. - Pruebas en distintos dispositivos:
Compruebe que la función funciona correctamente tanto en ordenadores como en dispositivos táctiles, ya que el enganche trata a la vez los eventos "click" y "touchend".
