PC SOFT

GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEVWEBDEV e WINDEV Mobile

Inicio → WINDEV 2024 → Exécuter une procédure locale dans une fenetre interne
Exécuter une procédure locale dans une fenetre interne
Iniciado por Robert, set., 20 2007 7:48 PM - 10 respostas
Publicado em setembro, 20 2007 - 7:48 PM
Bonjour

J'ai un champ fenêtre interne FI_FenêtreInterne1 qui appelle la fenêtre interne MASTERFIELD dans une fenêtre appelée FI_MENU
Dans cette fenêtre interne j'ai une procédure appellée CALL_TT()

J'aimerai depuis une autre fenêtre exécuter la procédure

Un truc dans le genre :

FI_MENU.FI_FenêtreInterne1.MASTERFIELD.call_TT()

Mais je ne trouve nulle part une indication comment écrire cet appel correctement

Merci
Publicado em setembro, 21 2007 - 2:11 AM
C'est le propre d'une procedure local, elle est local.
Pour pouvoir apeller un procedure de n'importe qu elle fenetre, la procedure en question doit etre une procedure GLOBALE.
Publicado em setembro, 21 2007 - 10:30 AM
Bonjour...

j'essayerais avec un executetraitement

Cordialement

--
Fabrice Harari
Consultant WinDev, WebDev et WinDev Mobile International

Plus d'information sur http://fabriceharari.com/index_FR.html


Robert wrote:
Bonjour

J'ai un champ fenêtre interne FI_FenêtreInterne1 qui appelle la fenêtre interne MASTERFIELD dans une fenêtre appelée FI_MENU
Dans cette fenêtre interne j'ai une procédure appellée CALL_TT()

J'aimerai depuis une autre fenêtre exécuter la procédure

Un truc dans le genre :

FI_MENU.FI_FenêtreInterne1.MASTERFIELD.call_TT()

Mais je ne trouve nulle part une indication comment écrire cet appel correctement

Merci
Publicado em setembro, 21 2007 - 10:33 AM
Salut !

On 20-Sep-2007, "Robert" <robert@luxpost.com> wrote:

Bonjour

J'ai un champ fenêtre interne FI_FenêtreInterne1 qui appelle la fenêtre
interne MASTERFIELD dans une fenêtre appelée FI_MENU
Dans cette fenêtre interne j'ai une procédure appellée CALL_TT()

J'aimerai depuis une autre fenêtre exécuter la procédure

Un truc dans le genre :

FI_MENU.FI_FenêtreInterne1.MASTERFIELD.call_TT()

Mais je ne trouve nulle part une indication comment écrire cet appel
correctement

Merci



Il me semble que ta syntaxe devrait être :

fi_menu.fi_FenetreInterne1.call_TT()

En ce qui concerne la fenetre fi_menu, la fenetre interne s'apelle
fi_fenetreInterne1 et elle ignore quelle est la fenêtre interne contenue
dans le champ fenetre interne.
Du reste, si on change la fenetre interne par programmation, le nom du champ
ne change pas lui ...

En espérant avoir aidé ...
--
Marcel Berman
Président de Be-Dev (www.be-dev.be)
Membre du conseil d'administration de Windasso
Be-dev et Windasso sont des groupes d'utilisateurs de Windev, Webdev et
Windev Mobile
produits par la société PC-Soft (France)
Publicado em setembro, 21 2007 - 10:34 AM
Depuis fenetre2 faire

ExecuteTraitement(fenetre1.procedurelocalefenetre1,trtprocedure,param1,param2)

fenetre1 doit être en execution

ou : collection de procedure

ou encore : Chargeprocedure (ancienne fonction WD55)


Un petit tour dans l'aide avec le critère "Appeler une procedure" vous aurait fait gagner du temps
Publicado em setembro, 21 2007 - 10:35 AM
Bien qu'elle ne soit gardée dans Windev 11 que pour compatibilité avec les versions antérieures, tu peux utiliser la fonction ChargeProcédure(NomFenêtre) qui "charge" dans ta fenêtre en cours les procédures locale d'une autre fenêtre.

Dans ton cas cela donnerai :
ChargeProcédure(MASTERFIELD)
call_TT()
Publicado em setembro, 21 2007 - 11:14 AM
J'ai essayé les propositions, mais il me dit opérateur interdit entre :
FEN_MENU.FI_FenêtreInterne1 et call_TT donc le .

FEN_MENU.FI_FenêtreInterne1.call_TT() ne semble pas fonctionner ; ni dans executetraitement ai le même message
Publicado em setembro, 21 2007 - 12:53 PM
mettre ta procedure en globale ne foncionne pas? ??
Publicado em setembro, 21 2007 - 3:52 PM
non car je dois accéder à la valeur dans une liste combo de cette fenêtre
Publicado em setembro, 07 2018 - 8:33 AM
Bonjour a tous, le sujet est un peu vieux, mais je suis tomber dessus en recherchant une solution au même problème, et du coup comme il n'y a pas vraiment de réponse qui marche mais avec un peu d'expérience m'a quand même permis d'en trouver une.
On va appeler FEN_PRC la fenêtre contenant le champ fenêtre interne FenêtreInterne1 qui contient la fenêtre interne FI_MAFICHE

Donc pour accéder a une procédure locale de FI_MAFICHE depuis une procédure globale il faut ecrire le code suivant :

FEN_PRC.FenêtreInterne1.MaProcédureLocale

Voila, ça pourrais encore servir a quelqu'un d'autre.
Membro registado
63 mensagems
Popularité : +4 (4 votes)
Publicado em novembro, 16 2018 - 1:55 PM
Sergio a écrit :
Bonjour a tous, le sujet est un peu vieux, mais je suis tomber dessus en recherchant une solution au même problème, et du coup comme il n'y a pas vraiment de réponse qui marche mais avec un peu d'expérience m'a quand même permis d'en trouver une.
On va appeler FEN_PRC la fenêtre contenant le champ fenêtre interne FenêtreInterne1 qui contient la fenêtre interne FI_MAFICHE

Donc pour accéder a une procédure locale de FI_MAFICHE depuis une procédure globale il faut ecrire le code suivant :

FEN_PRC.FenêtreInterne1.MaProcédureLocale

Voila, ça pourrais encore servir a quelqu'un d'autre.


Sergio, ca ne fonctionne pas directement il faut utiliser ExécuteTraitement

J'y arrive de cette façon...

ExécuteTraitement("FEN_PRC.FI_MAFICHE.MaProcédureLocale",trtProcedure)


Question qui me brule les lèvres!!!

Comment peut on faire 2 (ou N) instances de la même fenêtre interne dans une même fenêtre mère (avec des données différentes dedans évidemment)
Ca serait top!!!

--
Nicolas Magnien
oXalis [Supervision Industrielle - Procédés Batch - ERP - MES]
www.decobecq-automatismes.fr