Evenements et Interactions

Systeme d'evenements

Les evenements connectent les interactions utilisateur dans le navigateur aux fonctions 4D cote serveur.

Flux

  1. L'utilisateur clique un bouton ou interagit avec un element
  2. bweb.js envoie l'evenement 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 reponse
  6. Le navigateur applique la reponse

Types d'evenements

EvenementDeclencheur
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 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 :

FonctionDescription
actionAccordingNumberLineActive/desactive 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 reponse :

MethodeDescription
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.