Événements et Interactions

Système d'événements

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

Flux

  1. L'utilisateur clique un bouton ou interagit avec un élément
  2. bweb.js envoie l'événement via WebSocket à 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 applique la réponse

Types d'événements

ÉvénementDéclencheur
onClickClic sur un bouton
onSelectRowsSélection 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 envoyées à la fonction.

renderFunction (côté client)

Fonctions JavaScript exécutées côté navigateur, sans appel serveur :

FonctionDescription
actionAccordingNumberLineActive/désactive un bouton selon la sélection listbox
showBlocAffiche un bloc
hideBlocMasque un bloc
toggleBlocBascule la visibilité d'un bloc

WebFormController (côté serveur)

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

MéthodeDescription
reloadBlock("nom")Rafraîchit un bloc spécifique
sendAlert("success", "msg")Affiche une notification toast
showBloc("nom") / hideBloc("nom")Bascule la visibilité d'un bloc
redirect("/url")Navigue vers une autre page
addNewEntity()Prépare une nouvelle entité
save()Sauvegarde l'entité en cours
removeEntity()Supprime l'entité en cours

SearchEffect et filtres

Système de recherche en temps réel intégré aux listbox. Le champ de recherche déclenche un événement qui filtre l'entity selection côté serveur.