Événement de champ vue

image.png

Aperçu rapide des propriétés JSON transmises à onclick

PropriétéDescriptionExemple / usage
previousIDL'identifiant de l'enregistrement précédemment sélectionné. Par défaut « A1 ».“A1”
targetIDL'identifiant de l'enregistrement visé par le clic. Par défaut « A3 ».“A3”
targetLineNumLe numéro de la ligne sur laquelle l'utilisateur a cliqué (à partir de zéro).3
targetColumnNumLe numéro de la colonne cliquée dans la vue (à partir de zéro).4
targetColumnValueLa valeur textuelle affichée dans la cellule cliquée.“Lisa”
targetColumnCaptionLe libellé de la colonne, issu de la configuration du champ (via « caption » ou « field.caption »).“First Name”

Marche à suivre générale

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