Événements et Interactions

Système d'événements

Les événements connectent les interactions utilisateur dans le navigateur aux fonctions 4D cote serveur.

Flux

  1. L'utilisateur clique un bouton ou interagit avec un élément
  2. bweb.js envoie l'événement via WebSocket a 4D
  3. 4D cherche la configuration events sur le bloc
  4. Appelle la fonction : ds.{className}.{functionName}($vo_POST)
  5. La fonction retourne un WebFormController avec les instructions de réponse
  6. Le navigateur appliqué la réponse

Types d'événements

ÉvénementDeclencheur
onClickClic sur un bouton
onSelectRowsSelection d'une ligne dans une listbox
onChangeChangement de valeur d'un champ
onLoadChargement d'un bloc

Boutons et onClick

Configuration d'un événement onClick dans les events du bloc :

{"onClick": [{"vt_ClassName": "MA_DATACLASS", "vt_FunctionName": "maFonction", "vo_Param": {"vt_BlocNameToSend": "UUID_WRAPPER_CHAMPS"}}]}

vo_Param.vt_BlocNameToSend : UUID du wrapper contenant les champs dont les valeurs doivent être envoyees à la fonction.

renderFunction (cote client)

Fonctions JavaScript executees cote navigateur, sans appel serveur :

FonctionDescription
actionAccordingNumberLineActive/désactivé un bouton selon la selection listbox
showBlocAffiche un bloc
hideBlocMasque un bloc
toggleBlocBascule la visibilite d'un bloc

WebFormController (cote serveur)

Objet retourne par les fonctions 4D pour piloter la réponse :

MéthodeDescription
reloadBlock("nom")Rafraichit un bloc spécifique
sendAlert("success", "msg")Affiche une notification toast
showBloc("nom") / hideBloc("nom")Bascule la visibilite d'un bloc
redirect("/url")Navigue vers une autre page
addNewEntity()Prepare une nouvelle entite
save()Sauvegarde l'entite en cours
removeEntity()Supprime l'entite en cours

SearchEffect et filtres

Système de recherche en temps reel intégré aux listbox. Le champ de recherche déclenché un événement qui filtre l'entity selection cote serveur.