Événement de champ vue

Aperçu rapide des propriétés JSON transmises à onclick
| Propriété | Description | Exemple / usage |
|---|---|---|
| previousID | L'identifiant de l'enregistrement précédemment sélectionné. Par défaut « A1 ». | “A1” |
| targetID | L'identifiant de l'enregistrement visé par le clic. Par défaut « A3 ». | “A3” |
| targetLineNum | Le numéro de la ligne sur laquelle l'utilisateur a cliqué (à partir de zéro). | 3 |
| targetColumnNum | Le numéro de la colonne cliquée dans la vue (à partir de zéro). | 4 |
| targetColumnValue | La valeur textuelle affichée dans la cellule cliquée. | “Lisa” |
| targetColumnCaption | Le libellé de la colonne, issu de la configuration du champ (via « caption » ou « field.caption »). | “First Name” |
Marche à suivre générale
- Définir la fonction onclick dans la formule du champ vue
La fonction onclick doit être intégrée à la formule du champ vue. Elle reçoit un objet (nommé « event ») qui contient les propriétés décrites ci-dessus. - Exécuter du code personnalisé
Lorsqu'un utilisateur clique ou appuie sur une cellule de la vue, le point d'accroche de Ninext exécute la fonction onclick. Le script peut alors, par exemple :- Mettre à jour les propriétés d'un enregistrement (basculer un champ booléen, par exemple).
- Stocker l'identifiant de l'enregistrement cliqué dans un champ dédié.
- Déclencher des actions conditionnelles selon la colonne cliquée.
- Renvoyer le contenu de la vue
À la fin de la fonction, la formule doit renvoyer le contenu de la vue (par exemple « select Customer »). C'est ce qui indique à Ninox quels enregistrements afficher après l'exécution du script.
Exemples de mise en œuvre
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
Commentaires :
- La fonction commence par stocker l'identifiant de l'enregistrement cliqué dans le champ « ID of selected customer ».
- Elle récupère ensuite l'enregistrement correspondant dans la table « Customer ».
- Si le libellé de la colonne cliquée contient « checked », elle bascule le champ « Checked » de cet enregistrement et renvoie true pour signaler que le clic a été traité.
- Sinon, la fonction renvoie true ou false selon que le numéro de la colonne cliquée vaut 0 ou non.
- Enfin, la formule renvoie « select Customer », ce qui affiche le contenu de la vue après l'exécution du script.
Exemple minimal
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
Commentaires :
- Ce script se contente de stocker l'identifiant de l'enregistrement cliqué et d'écrire un message de débogage.
- En renvoyant false, on laisse le comportement par défaut s'appliquer aux actions qui ne sont pas traitées explicitement.
- Comme toujours, la formule se termine par « select Customer » pour afficher le contenu de la vue.
Points essentiels à retenir
- Emplacement dans la formule du champ vue :
La fonction onclick doit être définie directement dans la formule du champ vue, et non dans un déclencheur ou ailleurs dans l'application. - Renvoi du contenu de la vue :
Contrairement à d'autres fonctions qui attendent un booléen, la dernière ligne de la formule doit renvoyer le contenu de la vue (par exemple « select Customer »). - Utilisation des paramètres de l'événement :
Servez-vous des informations fournies par l'objet « event » (previousID, targetID, targetLineNum, targetColumnNum, targetColumnValue, targetColumnCaption) pour adapter vos actions au contexte du clic. - Essais sur différents appareils :
Assurez-vous que la fonction marche aussi bien sur ordinateur que sur appareil tactile, car le point d'accroche traite à la fois les événements « click » et « touchend ».
