Evenements et Interactions
Systeme d'evenements
Les evenements connectent les interactions utilisateur dans le navigateur aux fonctions 4D cote serveur.
Flux
- L'utilisateur clique un bouton ou interagit avec un element
- bweb.js envoie l'evenement via WebSocket a 4D
- 4D cherche la configuration events sur le bloc
- Appelle la fonction : ds.{className}.{functionName}($vo_POST)
- La fonction retourne un WebFormController avec les instructions de reponse
- Le navigateur applique la reponse
Types d'evenements
| Evenement | Declencheur |
|---|---|
| onClick | Clic sur un bouton |
| onSelectRows | Selection d'une ligne dans une listbox |
| onChange | Changement de valeur d'un champ |
| onLoad | Chargement d'un bloc |
Boutons et onClick
Configuration d'un evenement 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 etre envoyees a la fonction.
renderFunction (cote client)
Fonctions JavaScript executees cote navigateur, sans appel serveur :
| Fonction | Description |
|---|---|
| actionAccordingNumberLine | Active/desactive un bouton selon la selection listbox |
| showBloc | Affiche un bloc |
| hideBloc | Masque un bloc |
| toggleBloc | Bascule la visibilite d'un bloc |
WebFormController (cote serveur)
Objet retourne par les fonctions 4D pour piloter la reponse :
| Methode | Description |
|---|---|
| reloadBlock("nom") | Rafraichit un bloc specifique |
| 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
Systeme de recherche en temps reel integre aux listbox. Le champ de recherche declenche un evenement qui filtre l'entity selection cote serveur.

