Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Bonjour
Dans une datawindow j'ai X champs, je voudrai lancer une fonction quand je sors d'un de ces champs ?
Comment est ce que je fait ?
Cordialement,
merci.
Hors ligne
Bonjour,
Tu peux utiliser l'evenement ItemFocusChanged de la datawindow.
Hors ligne
Bonjour,
En règle général, je gère la navigation dans mes fenêtres de saisie. L'utilisateur n'a pas le choix, lorsqu'il a saisie dans le champs 1, la touche "Entrer" ou "Tab" valide la saisie et le curseur va automatiquement dans le champs 2 (je bloc les autres champs tabsequence = 0).
Puis je fais mes vérifications dans l'itemfocuschanged de ma DW en vérifiant dans quel champs se trouve mon focus (quand le focus est dans le champs2, je vérifie le champs1 ou je lance la fonction dans ton cas)
J'espère que ça pourra t'aider.
Hors ligne
nico a écrit:
Bonjour,
En règle général, je gère la navigation dans mes fenêtres de saisie. L'utilisateur n'a pas le choix, lorsqu'il a saisie dans le champs 1, la touche "Entrer" ou "Tab" valide la saisie
L'appli que je maintiens fonctionne EXACTEMENT comme tu le décris, c-à-d que si tu sors d'un champ en utilisant la souris par exemple, et bien le champ n'est PAS VALIDé du tout...
d'où l'intérêt d'utiliser ce qui est bien prévu pour à la base (itemchanged/itemfocuschanged) au lieu de refaire tout à sa sauce...
Autant dire que je passe mon temps à combler d'énormes trous...
Hors ligne
Petit rappel : les évènement ItemChanged() et ItemFocuschanged() sont déclenchés lors du passage d'un champ de la DW à un autre (chacun recevant en paramètre l'objet dwo d'arrivée du focus). Lorsque le focus quitte la DW (l'utilisateur qui clique sur un bouton de la fenêtre par exemple), ces évènements ne sont pas déclenchés (logique puisque le dwo actif reste le dernier sur lequel le focus était)... Pour forcer le déclenchement de l'ItemChanged() et ainsi valider la dernière saisie de l'utilisateur, il suffit de coder un AcceptText() dans l'évènement LoseFocus() de la DW... (attention pas d'accepttext() dans l'évènement itemchanged() !)
Hors ligne