OVH Cloud OVH Cloud

[WD10] Fonction Reprisesaisie

4 réponses
Avatar
Gilles Derober
Bonjour,

Après avoir longtemps cherché, he me retrouve face à un comportement que je
ne comprends pas :

Y a t il des niveaux de procédure qui refuse un reprisesaisie ?

Concretement, je fais appel à des procédures dans un procédures, et il
refuse de donner la main à un reprisesaisie et ainsi stopper tout le code en
cours :


Ainsi imaginons le code du bouton de validation :

Boutonvalidation :
ProcValide()
MajAffichage(1)

Le code de la procédure ProcValide :
ProcTest()
ProcSave()

Enfin le code de la procédure ProcTest():
Reprisesaisie()

Et bien il ne veut rien entendre, systématiquement il me zappe le
reprisesaisie de niveau 3.
Je suis obliger de faire appel à un artifice du genre variable global
booléen, je l'init à "1" lorsque je dois faire un reprisesaisie, et ainsi je
test dans la procédure ProcValide en remontant si cette varibale = 1

Est-ce normal de ne pouvoir utiliser le reprisesaisie dans ce cas ? Ou je
m'y prends mal ????



Merci d'avance pour toute information, c'est vraiment très important et je
ne comprends pas la logique qui voudrait qu'on ne puisse mettre à un
reprisesaisie où l on veut...

4 réponses

Avatar
Réal Phil
Moi j'étais déjà très surpris et très heureux de voir qu'en Windev
on pouvait faire un RepriseSaisie() depuis une procédure sans avoir à
gérer de flag (variable spéciale pour une sortie "élégante") comme
j'ai toujours dû faire dans mes langages précédents... ;-)

Solution potentielle (trop simpliste peut-etre), as-tu essayé
RepriseSaisie(NomDuChamp) ??
Avatar
VPSoft
Bonsoir,

Le champ concerné par le RepriseSaisie n'est-il pas devenu "Inactif" ou
"EnAffichageSeulement" entre-temps ?
Dans ce cas, il reste dans le champ qui a le focus.
Je me suis déjà fait avoir...

Espérant avoir aidé

Victor

--
------------------------------------------------------------------------
VPSoft Sarl
Logiciels et services informatiques
Les Villages de Rivière Roches
Imm. Cossière
97200 Fort-de-France
Tél. : 05 96 42 88 22
Fax : 05 96 42 50 24
E-mail :
------------------------------------------------------------------------

"Gilles Derober" a écrit dans le message de news:
456c7899$0$10047$
Bonjour,

Après avoir longtemps cherché, he me retrouve face à un comportement que
je ne comprends pas :

Y a t il des niveaux de procédure qui refuse un reprisesaisie ?

Concretement, je fais appel à des procédures dans un procédures, et il
refuse de donner la main à un reprisesaisie et ainsi stopper tout le code
en cours :


Ainsi imaginons le code du bouton de validation :

Boutonvalidation :
ProcValide()
MajAffichage(1)

Le code de la procédure ProcValide :
ProcTest()
ProcSave()

Enfin le code de la procédure ProcTest():
Reprisesaisie()

Et bien il ne veut rien entendre, systématiquement il me zappe le
reprisesaisie de niveau 3.
Je suis obliger de faire appel à un artifice du genre variable global
booléen, je l'init à "1" lorsque je dois faire un reprisesaisie, et ainsi
je test dans la procédure ProcValide en remontant si cette varibale = 1

Est-ce normal de ne pouvoir utiliser le reprisesaisie dans ce cas ? Ou je
m'y prends mal ????



Merci d'avance pour toute information, c'est vraiment très important et je
ne comprends pas la logique qui voudrait qu'on ne puisse mettre à un
reprisesaisie où l on veut...



Avatar
Gilles Derober
Non, le champs est bel et bien actif, il est d'alleurs bien sélectionné au
moment où le reprisesaisie doit s'effectuer.
En fait le reprisesaisie termine ma procédure en cours mais redonne
immédiatement la main à ma procédure de niveau supérieur.

J'ai lu sur certains forums qu'apparemment il était normal que reprisesaisie
ne fasse pas s'arréter tout le code :

http://windev.wdscript.com/?url=http://windev.wdscript.com/ml.wdsc?from51

J'ignore s'il existe une fonction permettant de stopper le code où il en est
en ne tenant plus compte des procédures parent ? ( pas de gestion de thread
manuellement )

"VPSoft" a écrit dans le message de news:
456cb44a$0$27409$
Bonsoir,

Le champ concerné par le RepriseSaisie n'est-il pas devenu "Inactif" ou
"EnAffichageSeulement" entre-temps ?
Dans ce cas, il reste dans le champ qui a le focus.
Je me suis déjà fait avoir...

Espérant avoir aidé

Victor

--
------------------------------------------------------------------------
VPSoft Sarl
Logiciels et services informatiques
Les Villages de Rivière Roches
Imm. Cossière
97200 Fort-de-France
Tél. : 05 96 42 88 22
Fax : 05 96 42 50 24
E-mail :
------------------------------------------------------------------------

"Gilles Derober" a écrit dans le message de news:
456c7899$0$10047$
Bonjour,

Après avoir longtemps cherché, he me retrouve face à un comportement que
je ne comprends pas :

Y a t il des niveaux de procédure qui refuse un reprisesaisie ?

Concretement, je fais appel à des procédures dans un procédures, et il
refuse de donner la main à un reprisesaisie et ainsi stopper tout le code
en cours :


Ainsi imaginons le code du bouton de validation :

Boutonvalidation :
ProcValide()
MajAffichage(1)

Le code de la procédure ProcValide :
ProcTest()
ProcSave()

Enfin le code de la procédure ProcTest():
Reprisesaisie()

Et bien il ne veut rien entendre, systématiquement il me zappe le
reprisesaisie de niveau 3.
Je suis obliger de faire appel à un artifice du genre variable global
booléen, je l'init à "1" lorsque je dois faire un reprisesaisie, et ainsi
je test dans la procédure ProcValide en remontant si cette varibale = 1

Est-ce normal de ne pouvoir utiliser le reprisesaisie dans ce cas ? Ou je
m'y prends mal ????



Merci d'avance pour toute information, c'est vraiment très important et
je ne comprends pas la logique qui voudrait qu'on ne puisse mettre à un
reprisesaisie où l on veut...







Avatar
Gilles Derober
En fait autant pour moi, extrait de l'aide en ligne :


"Traitements exécutés lors de l'utilisation de RepriseSaisie

Lors de l'appel de la fonction RepriseSaisie, les traitements qui suivent
cette fonction ne sont pas exécutés. L'exécution des traitements reprend :

soit quand l'utilisateur reprend la main.

soit lors de l'appel de la fonction Exécute ou ExécuteTraitement.

soit lors de l'appel d'une procédure depuis une autre fenêtre.

soit lors de l'appel d'une procédure ou d'une méthode d'un composant.

soit lors de l'appel d'une procédure de fenêtre interne. "




Ma procédure est appelée d'une "autre fenêtre" puisque de la fenêtre mère
MDI, qui relance ensuite sur les procédures internes.

J'avais déjà rencontré le cas avec une fenêtre interne aussi, où j'avais
du positionner des flags...

Donc obligation de passer par là, dommage.



"VPSoft" a écrit dans le message de news:
456cb44a$0$27409$
Bonsoir,

Le champ concerné par le RepriseSaisie n'est-il pas devenu "Inactif" ou
"EnAffichageSeulement" entre-temps ?
Dans ce cas, il reste dans le champ qui a le focus.
Je me suis déjà fait avoir...

Espérant avoir aidé

Victor

--
------------------------------------------------------------------------
VPSoft Sarl
Logiciels et services informatiques
Les Villages de Rivière Roches
Imm. Cossière
97200 Fort-de-France
Tél. : 05 96 42 88 22
Fax : 05 96 42 50 24
E-mail :
------------------------------------------------------------------------

"Gilles Derober" a écrit dans le message de news:
456c7899$0$10047$
Bonjour,

Après avoir longtemps cherché, he me retrouve face à un comportement que
je ne comprends pas :

Y a t il des niveaux de procédure qui refuse un reprisesaisie ?

Concretement, je fais appel à des procédures dans un procédures, et il
refuse de donner la main à un reprisesaisie et ainsi stopper tout le code
en cours :


Ainsi imaginons le code du bouton de validation :

Boutonvalidation :
ProcValide()
MajAffichage(1)

Le code de la procédure ProcValide :
ProcTest()
ProcSave()

Enfin le code de la procédure ProcTest():
Reprisesaisie()

Et bien il ne veut rien entendre, systématiquement il me zappe le
reprisesaisie de niveau 3.
Je suis obliger de faire appel à un artifice du genre variable global
booléen, je l'init à "1" lorsque je dois faire un reprisesaisie, et ainsi
je test dans la procédure ProcValide en remontant si cette varibale = 1

Est-ce normal de ne pouvoir utiliser le reprisesaisie dans ce cas ? Ou je
m'y prends mal ????



Merci d'avance pour toute information, c'est vraiment très important et
je ne comprends pas la logique qui voudrait qu'on ne puisse mettre à un
reprisesaisie où l on veut...