DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Fonctions WLangage / Champs, pages et fenêtres / Fonctions de gestion des champs
  • Prise de focus
  • Fonctions EcranPremier, DonneFocus et DonneFocusEtRetourUtilisateur
  • Erreur
  • Fonction DonneFocusEtRetourUtilisateur sur une fenêtre
  • Fonction DonneFocusEtRetourUtilisateur sur une colonne d'un champ Table
  • Fonction DonneFocusEtRetourUtilisateur sur le champ en cours
  • Fonction DonneFocusEtRetourUtilisateur sur le dernier champ en cours
  • Evénements/traitements exécutés lors de l'utilisation de la fonction DonneFocusEtRetourUtilisateur
  • Fonction DonneFocusEtRetourUtilisateur et FIN:
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
Autres
Procédures stockées
Arrête le traitement en cours, donne le focus au champ, à la fenêtre ou à la page spécifié(e) et permet à l'utilisateur de reprendre la saisie.
WEBDEV - Code Navigateur La fonction DonneFocusEtRetourUtilisateur peut être utilisée dans un événement navigateur (onchange, onclick, etc.), mais elle ne peut pas être utilisée dans une procédure locale ou une procédure globale navigateur.
Remarque : Cette fonction est identique à la fonction RepriseSaisie.
Exemple
// Si l'utilisateur n'a rien saisi dans le champ
SI SAI_Saisie1 = "" ALORS
// On affiche un message et on remet l'utilisateur en saisie sur le champ
Erreur("Saisissez une valeur")
DonneFocusEtRetourUtilisateur(SAI_Saisie1)
FIN
WINDEVEtats et RequêtesJavaCode Utilisateur (MCU)
// Positionner le curseur de souris dans une cellule d'un champ Table (multisélection ou non)
TABLE_Nom_De_Table = Indice_de_ligne
DonneFocusEtRetourUtilisateur(TABLE_Nom_De_Table.COL_Nom_de_colonne)
Syntaxe
DonneFocusEtRetourUtilisateur([<Elément à manipuler>])
<Elément à manipuler> : Nom de champ, nom de fenêtre ou nom de page optionnel
Nom du champ, de la colonne ou de la fenêtre qui doit prendre le focus (voir Remarques). Si ce paramètre n'est pas spécifié, le focus est donné au champ en cours.
Pour indiquer un champ appartenant à une fenêtre ouverte différente de la fenêtre en cours, <Elément à manipuler> doit être de la forme <Nom de fenêtre>.<Nom du champ>.
WEBDEV - Code Navigateur Nom du champ ou de la page qui doit prendre le focus (voir Remarques). Si ce paramètre n'est pas spécifié, le focus est donné au dernier champ en cours.
Android Nom du champ ou de la fenêtre qui doit prendre le focus (voir Remarques). Si ce paramètre n'est pas spécifié, le focus est donné au champ en cours.
Remarques

Prise de focus

La possession du "focus" est matérialisée de différentes manières :
  • Curseur clignotant (ou "Caret") pour les champs de saisie.
  • Rectangle pointillé pour les autres types de champs (champs Bouton, champs Liste, champs Sélecteur, etc.).

Fonctions EcranPremier, DonneFocus et DonneFocusEtRetourUtilisateur

Ces fonctions ont un comportement très différent :
  • La fonction DonneFocusEtRetourUtilisateur arrête le traitement en cours pour forcer la reprise de la saisie dans le champ indiqué.
  • La fonction EcranPremier décrit quel sera le prochain champ ayant la saisie (lorsque le code en cours s'arrêtera et que la saisie reprendra).
  • La fonction DonneFocus arrête le traitement en cours, décrit quel sera le prochain champ ayant la saisie et reprend le traitement en cours.

Erreur

Une erreur du WLangage apparaît si le <Elément à manipuler> ne correspond pas à un champ existant dans la fenêtre ou la page en cours.
WINDEVEtats et RequêtesAndroidJavaCode Utilisateur (MCU)

Fonction DonneFocusEtRetourUtilisateur sur une fenêtre

Si le paramètre <Elément à manipuler> correspond à un nom de fenêtre, la fenêtre est activée. Le champ prenant le focus dans cette fenêtre correspondra :
  • soit au dernier champ précédemment en saisie dans cette fenêtre,
  • soit au premier champ pouvant prendre le focus dans cette fenêtre (si aucune saisie n'a été effectuée précédemment dans cette fenêtre).
WINDEVEtats et RequêtesJavaCode Utilisateur (MCU)

Fonction DonneFocusEtRetourUtilisateur sur une colonne d'un champ Table

La fonction DonneFocusEtRetourUtilisateur donne le focus à la colonne spécifiée. Si le champ Table n'est pas en cours de saisie, le champ Table passe en saisie.
WINDEVEtats et RequêtesAndroidJavaCode Utilisateur (MCU)

Fonction DonneFocusEtRetourUtilisateur sur le champ en cours

La fonction DonneFocusEtRetourUtilisateur utilisée sans paramètre permet de donner le focus au champ en cours. Cette fonction, utilisée par exemple dans le code de sortie d'un champ de saisie, permet de forcer la saisie dans le champ en cours si les informations saisies ne correspondent pas aux informations attendues.
WEBDEV - Code NavigateurAjax

Fonction DonneFocusEtRetourUtilisateur sur le dernier champ en cours

La fonction DonneFocusEtRetourUtilisateur utilisée sans paramètre permet de donner le focus au dernier champ en cours. Cette fonction, utilisée par exemple dans le code de sortie d'un champ de saisie, permet de forcer la saisie dans le champ en cours si les informations saisies ne correspondent pas aux informations attendues.
Le champ doit alors être de l'un des types de champs suivants :
  • Champ de saisie.
  • Champ Interrupteur.
  • Champ Sélecteur.
  • Champ Liste.
  • Champ Combo.
  • Champ Image de type "Zone de cliquage".
Si le nom du champ correspond à une chaîne construite, il est nécessaire d'utiliser l'alias du champ (par exemple "AliasChamp"+Num). Dans ce cas, aucune vérification n'est effectuée : des erreurs Javascript peuvent être affichées si le focus est donné à un champ qui n'existe pas.
Rappel : L'alias d'un champ correspond au nom de ce champ dans la page HTML. Pour connaître cet alias :
  • sous l'éditeur de code, utilisez la combinaison de touches Maj + F1.
  • par programmation, utilisez la propriété Alias.
WINDEVEtats et RequêtesAndroidJavaCode Utilisateur (MCU)

Evénements/traitements exécutés lors de l'utilisation de la fonction DonneFocusEtRetourUtilisateur

Le code WLangage qui suit l'appel à la fonction DonneFocusEtRetourUtilisateur n'est pas exécuté et l'utilisateur reprend la main.
Cas particuliers :
  • si l'appel de la fonction DonneFocusEtRetourUtilisateur est fait dans un code appelé par la fonction Exécute, ExécuteCode ou ExécuteTraitement, le code appelé par la fonction Exécute, ExécuteCode ou ExécuteTraitement est interrompu. L'exécution reprend après l'appel de la fonction Exécute, ExécuteCode ou ExécuteTraitement.
  • si l'appel de la fonction DonneFocusEtRetourUtilisateur est fait dans le code d'une fonction d'une autre fenêtre que la fenêtre courante, le code de cette fonction est interrompu et l'exécution reprend après son l'appel.
  • si l'appel de la fonction DonneFocusEtRetourUtilisateur est fait dans un code d'un composant (procédure ou méthode), le code du composant est interrompu et l'exécution reprend après l'appel de la procédure ou de la méthode du composant.
  • si l'appel de la fonction DonneFocusEtRetourUtilisateur est fait dans un code d'une procédure de fenêtre interne, le code de la procédure de la fenêtre interne est interrompu et l'exécution reprend après l'appel de la procédure de la fenêtre interne.
  • si l'appel de la fonction DonneFocusEtRetourUtilisateur est fait dans le code d'une option de menu, le code de l'option de menu est interrompu et l'exécution reprend après l'appel de l'option de menu.
  • si l'appel de la fonction DonneFocusEtRetourUtilisateur est fait dans une procédure de fenêtre appelée depuis un superchamp, le code de la procédure est interrompu et l'exécution reprend après l'appel de la procédure dans le superchamp.
  • si l'appel de la fonction DonneFocusEtRetourUtilisateur est fait dans une procédure d'un superchamp ou d'un modèle de champs, le code de la procédure est interrompu et l'exécution reprend après l'appel de la procédure du superchamp ou du modèle de champs.
Le traitement en cours est interrompu définitivement. Par exemple :
DonneFocusEtRetourUtilisateur(SAI_Saisie1)
Info("XXX")    // N'est jamais exécuté
En règle générale, les événements de sortie (du champ ou de la fenêtre en cours) et d'entrée (dans le champ ou dans la fenêtre spécifiée) sont exécutés en même temps que la fonction DonneFocusEtRetourUtilisateur.
Exceptions :
  • Aucun code n'est exécuté si <Elément à manipuler> est le champ en cours.
  • Le code de sortie du champ en cours n'est pas exécuté si la fonction DonneFocusEtRetourUtilisateur est utilisée dans un des événements de ce champ.
Pour ne pas interrompre le traitement, utilisez la fonction EcranPremier ou DonneFocus.
AndroidJava Le code WLangage qui suit l'appel à la fonction DonneFocusEtRetourUtilisateur n'est pas exécuté. L'exécution des traitements reprend :
WINDEVEtats et RequêtesAndroidJavaCode Utilisateur (MCU)

Fonction DonneFocusEtRetourUtilisateur et FIN:

Après un appel à la fonction DonneFocusEtRetourUtilisateur, le code suivant l'instruction "FIN:" n'est pas exécuté. La fonction DonneFocusEtRetourUtilisateur peut être remplacée par l'appel à la fonction EcranPremier suivie de RETOUR ou RENVOYER.
Classification Métier / UI : Code UI
Composante : wd300obj.dll
Version minimum requise
  • Version 27
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 25/05/2022

Signaler une erreur ou faire une suggestion | Aide en ligne locale