PROFESSIONAL NEWSGROUPS
WINDEV
,
WEBDEV
and
WINDEV Mobile
Home
|
Recent messages
|
Connect
|
Sign out
|
English
Home
→
WINDEV (earlier versions)
→
[W20] Msi à jour d'une variable depuis une fenêtre interne
[W20] Msi à jour d'une variable depuis une fenêtre interne
Started by zzebulon, Nov., 13 2024 3:08 PM - 5 replies
Connect yourself…
zzebulon
#1
Registered member
12 messages
Posted on November, 13 2024 - 3:08 PM
Bonjour,
Je soumets ma question après de nombreuses essais et tentatives infructueuses ...
Dans une fenêtre A je désire afficher une fenêtre interne selon l'action demandée :
- sélection d'un fichier => FI_SelectionFichier
- analyse du fichier => FI_AnalyseFichier
je désire aussi afficher dans la fenêtre A un bouton dont le nom et l'action dépende de l'action en cours (selection ou analyse).
Enfin (et c'est pour cela que les choses se compliquent), je souhaite que le code de la fenêtre interne soit générique pour pouvoir l'utiliser dans d'autres fenetres...
------------------------------------------------------------------------------
Fenêtre A :
------------------------------------------------------------------------------
Dans l'initialisation de la fenêtre A :
GLOBAL
monfichier
est une chaîne
=
""
Dans la fin d'initialisation de la fenêtre A :
J'affecte la fenêtre interne FI_SelectionFichier au champ fenêtre interne.
ChangeFenêtreSource
(
CFI_
SansNom1
,
FI_
SelectionFichier
)
La sélection du fichier dans la fenêtre interne fonctionne :
monfichier
=
fSélecteur
(
masque
,
)
Dans la demande de mise à jour de la fenêtre A :
Je teste si nomfichier est rempli, j'affiche le bouton d'action.
SI
monfichier
<
>
""
BTN_
Action
..
Traitement
[
trtClic
] =
BTN_
Action_ImporterFichier
BTN_
Action
..
Visible
=
Vrai
SINON
// autre code
FIN
----
Problème : je passe bien par de mise à jour de la fenêtre A à l'ouverture de la fenêtre A mais pas après la sélection du fichier dans la fenêtre interne... (j'ai mis des "trace()")
Le fait d'ajouter "ExécuteMiseAJourIHM()" après la sélection du fichier dans la fenêtre interne ne change rien .
Le fait d'ajouter "ExécuteMiseAJourIHM(Mafenetre..nom)" après la sélection du fichier dans la fenêtre interne ne change rien .
En clair : je n'arrive pas à exécuter le code de mise à jour de la fenêtre A après la sélection du fichier dans la fenêtre interne...
Merci d'avance pour vos (bonnes) idées.
Report
0
0
Cédric_34
#2
Registered member
751 messages
Posted on November, 13 2024 - 5:31 PM
Bonjour,
avez-vous essayé, dans la FI, de spécifier le nom de la fenêtre :
FenêtreA.MonChamp = xxx
Cdlt
Report
0
0
zzebulon
#3
Registered member
12 messages
Posted on November, 13 2024 - 7:51 PM
Bonsoir et merci pour votre aide.
Je peux récupérer la valeur saisie dans la fenêtre interne dans la fenêtre A avec la syntaxe indiquée.
Mais cela ne résout pas mon problème qui est que je souhaite modifier les boutons visibles ou masqués dans la section "Demande de mise à jour de l'affichage" de la fenêtre A pour ne pas placer de code "Métier" dans la fenêtre interne...
Je n'arrive pas à faire exécuter cette section "Demande de mise à jour de l'affichage" de la fenêtre A après saisie d'une valeur dans la fenêtre interne même avec
ExécuteMiseAJourIHM
(
Fenetre_A
)
Seul le code de la section "Demande de mise à jour de l'affichage" de la fenêtre A" est exécuté par cette commande ...
Cordialement
Report
0
0
Cédric_34
#4
Registered member
751 messages
Posted on November, 13 2024 - 10:14 PM
Une possibilité serait de placer le code de rafraichissement dans une procédure et pas dans "Demande de mise à jour de l'affichage".
Vous pouvez alors appeler la procédure depuis la Fenêtre A ou depuis la FI pour déclencher la mise à jour.
Comme précisé plus haut, vous indiquez dans la procédure : FenêtreA.MonChamp à mettre à jour.
Cdlt
Report
0
0
zzebulon
#5
Registered member
12 messages
Posted on November, 14 2024 - 10:27 AM
Bonjour Cédric,
J'étais arrivé à la même conclusion. J'ai donc placé le code dans une procédure locale de la Fenetre_A mais il semble impossible d'y faire référence depuis la FI sans utiliser une référence : Fenetre_A..maprocédure
Les mots clefs "MonParent" ou "MaFenetre" ne permettent pas de faire appel à une procédure dans la fenêtre A.
Cela m'empêche de rendre le code de la FI générique...
Je continue mes recherches...
Cordialement.
Report
0
0
zzebulon
#6
Registered member
12 messages
Posted on November, 14 2024 - 11:02 AM
Je pense que je viens de trouver une solution
-------------------------------------------------------------
Dans la fenetre A
-------------------------------------------------------------
Placer le code qui affiche ou masque les boutons dans une procédure locale de la fenêtre A
-------------------------------------------------------------
Dans la fenetre interne
-------------------------------------------------------------
Dans le sélecteur de fichier - section "Clic sur BTN_SelectionnerFichier"
ExécuteMiseAJourIHM
(
)
Dans la section "Demande de mise à jour"
{
MaFenêtre
..
Nom
+
".mavariable"
} =
champ_fenetre_interne
ExécuteTraitement
(
MaFenêtre
..
Nom
+
".AfficherBoutons"
,
trtProcedure
)
Ainsi, à chaque fois que l'on demande une mise à jour de l'affichage de la fenêtre interne :
- la valeur saisie est "remontée" à la variable de la fenêtre A.
- le traitement est appelé.
Il y a peut être plus élégant mais cela semble répondre au besoin d'isolement du code et permet d'avoir des fenêtres interne génériques...
Cordialement.
Report
0
0
→ Go back to WINDEV (earlier versions)
WINDEV 2024
WEBDEV 2024
WINDEV Mobile 2024
WINDEV (earlier versions)
WINDEV 26
WINDEV 2024
WINDEV 2024
WINDEV 2024
WINDEV 25
WEBDEV 2024
WEBDEV 2024
WEBDEV 2024
WINDEV Mobile 2024
WINDEV Mobile 2024
WINDEV (earlier versions)
WINDEV (earlier versions)
WEBDEV (earlier versions)
WEBDEV (earlier versions)
WINDEV Mobile (earlier versions)
WINDEV Mobile (earlier versions)
Reports & Queries
Reports & Queries
Off-topic
Off-topic
Tools
Tools
Français
English
Español
Portuguesa
Close this window
Search type
Only topics
All the messages
Search period
Any time
Past hour
Past 24 hours
Past week
Past month
Past year
Cancel
Preview of your message
Adding an image
Import an image from a URL
Send an image from a file of your disk
Drop a file or click "Browse..."
or
Cancel
0%
WLanguage
SQL
XML, HTML
JAVA, Javascript
Text