PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV (précédentes versions) → [WD 10] Reprisesaisie non respecté
[WD 10] Reprisesaisie non respecté
Débuté par YORK, 12 sep. 2007 18:09 - 5 réponses
Posté le 12 septembre 2007 - 18:09
Bonjour,

avez-vous déjà constaté le problème suivant :

Dans un code, si on fait appel à une procédure qui utilise un RepriseSaisie(), la reprise saisie marche bien et le code appelant la procédure n'est pas continué.
Dans le même code, si on utilise ExecuteTraitement(nomchamp,trtSortie), et que le code de sortie contient un RepriseSaisie(), le code suivant le ExecuteTraitement() continue et le RepriseSaisie n'est donc pas respecté.

Par exemple

CAS 1
-------
// Procédure appelante
...
SORTIE_CHAMP()
info("coucou")

// Procédure SORTIE_CHAMP()
....
RepriseSaisie(<autrechamp>)
......
====> dans ce cas, le info("coucou") n'est exécuté

CAS 2
-------
// Procédure appelante

.......
ExecuteTraitement(<nomduchamp>,trtsortie)
info("coucou")

// sortie de <nomduchamp>
....
RepriseSaisie(<autrechamp>)
......
====> dans ce cas, le info("coucou") est exécuté
Posté le 03 octobre 2007 - 19:03
Oui problème constaté


"YORK" <guest@newsgroup.fr> a écrit dans le message de news:
46e7f125$1@news.pcsoft.fr...


Bonjour,

avez-vous déjà constaté le problème suivant :

Dans un code, si on fait appel à une procédure qui utilise un
RepriseSaisie(), la reprise saisie marche bien et le code appelant la
procédure n'est pas continué.
Dans le même code, si on utilise ExecuteTraitement(nomchamp,trtSortie),
et que le code de sortie contient un RepriseSaisie(), le code suivant le
ExecuteTraitement() continue et le RepriseSaisie n'est donc pas respecté.

Par exemple

CAS 1
-------
// Procédure appelante
..
SORTIE_CHAMP()
info("coucou")

// Procédure SORTIE_CHAMP()
...
RepriseSaisie(<autrechamp>)
.....
====> dans ce cas, le info("coucou") n'est exécuté

CAS 2
-------
// Procédure appelante

......
ExecuteTraitement(<nomduchamp>,trtsortie)
info("coucou")

// sortie de <nomduchamp>
...
RepriseSaisie(<autrechamp>)
.....
====> dans ce cas, le info("coucou") est exécuté





Posté le 22 octobre 2007 - 19:49
Cela peut paraître logique qu'une instruction "RepriseSaisie" ne soit pas exécutée si la séquence est appelée par l'instruction "ExecuteTraitement".
Par ailleurs, utiliser ce genre d'astuce' peut rendre la mise au point d'un programme extrêment compliquée. Personnellement, j'éviterais ce genre d'opération ! A méditer !
Membre enregistré
128 messages
Posté le 21 juin 2018 - 13:52
bug toujours présent

lors d'un traitement genre dans le code d'un bouton
ExécuteTraitement(Fen_SaisieClient.BTN_Valider,trtClic)
Info("TEST")


si il y' a un repriseSaisie dans un traitement appelé par exécuteTraitement, le repriseSaisie n'interrompt pas l'éxecution du code ensuite.

Info("TEST") est lancé

pas génial :(
Membre enregistré
624 messages
Popularité : +6 (6 votes)
Posté le 22 juin 2018 - 15:24
Bonjour,

Ce n'est pas un bug mais un fonctionnement spécifique.
Extrait de la documentation de RepriseSaisie()

Cas particuliers :
si l'appel de RepriseSaisie 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.

=> https://doc.pcsoft.fr/fr-FR/?3025027&name=RepriseSaisie


Nicolas CAILLIEZ a écrit :
bug toujours présent

lors d'un traitement genre dans le code d'un bouton
ExécuteTraitement(Fen_SaisieClient.BTN_Valider,trtClic)
Info("TEST")


si il y' a un repriseSaisie dans un traitement appelé par exécuteTraitement, le repriseSaisie n'interrompt pas l'éxecution du code ensuite.

Info("TEST") est lancé

pas génial
Membre enregistré
128 messages
Posté le 22 juin 2018 - 22:21
Bien vu! :merci:
Je regarde souvent la doc mais là sur ce coup non.

J ai trouvé une solution alternative mais c est interessant de savoir que certains traitements ne réagissent pas toujours comme on le pense dans certains cas.