|
FORUMS PROFESSIONNELS WINDEV, WEBDEV et WINDEV Mobile |
| | | | | |
Problème pour manipuler des champs libellés dans des fenêtres internes dynamiques (iPad) |
Débuté par Sebinc, 31 mai 2013 15:19 - 5 réponses |
| |
| | | |
|
| |
Membre enregistré 186 messages Popularité : +5 (11 votes) |
|
Posté le 31 mai 2013 - 15:19 |
Bonjour à tous, J'ai un soucis pour manipuler des champs libellé dans une fenêtre interne dans un projet pour iPad. Concrètement, j'ai une application qui permet d'enregistrer des commandes, ma fenêtre est coupée en 2 parties, à gauche, le menu, à droite les diverses fonctionnalités. Le menu de gauche est en fait un champs fenêtre interne que je charge dynamiquement (ChangeFenêtreSource). Si une commande est en cours, ce menu affiche un "Panier" avec 2 libellés : Montant du panier et nombre d'articles dans le panier.
Mon problème est que même lorsque cette fenêtre est chargée, si j’affecte une valeur à un libellé l'application plante sur une erreur "Le champs est inconnu". J'ai tout tenté, soit l'appeler NomFenetre.NomChamps, j'en suis à avoir un timer système qui tourne toutes les secondes dans la fenêtre interne elle même (pas très propre). Rien ne change.
Votre aide serait la bienvenue...
Merci Seb |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 186 messages Popularité : +5 (11 votes) |
|
Posté le 05 juin 2013 - 14:57 |
Pas très inspirés amis développeurs...
Je n'arrive pas à m'en sortir Heeeeelp please !!!! |
| |
| |
| | | |
|
| | |
| |
Posté le 05 juin 2013 - 16:36 |
Et si tu nous montrais le code qui ne fonctionne pas, qu'on ait quelque chose pour bosser ?
Cordialement
-- Fabrice Harari Consultant WinDev, WebDev et WinDev Mobile International
Nouveau site web (EXPERIMENTAL) http://www.fabriceharari.eu (Plus d'information sur http://fabriceharari.com/index_FR.html)
On 6/5/2013 6:57 AM, Sebinc wrote:
Pas très inspirés amis développeurs...
Je n'arrive pas à m'en sortir Heeeeelp please !!!! |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 186 messages Popularité : +5 (11 votes) |
|
Posté le 05 juin 2013 - 17:24 |
Mais bien sûr.
Donc j'ai une fenêtre FEN_Quantite qui est ouverte à partir de mon menu (OuvreFille). C'est cette fenêtre qui essaye de multiples façon d'alimenter les champs libellés de ma fenêtre interne.
Voici donc un bout de code de cette fenêtre (je laisse volontairement 2 lignes que j'ai testée et qui ne fonctionnent pas mais je ne les lance pas toutes les 2 bien sûr).
SI FEN_Menu.FI_MenuGauche..FenêtreSource = "FI_FEN_MenuGeneralVisite" ALORS ExécuteTraitement(FEN_Menu.FI_MenuGauche..FenêtreSource+".MajMontant", trtProcédure) {FEN_Menu.FI_MenuGauche..FenêtreSource+".Lib_MontantPanier"} = MaCommande.p_MonRecapPanier.p_MontantPanier FIN
Procédure MajMontant()
SI MaCommande.p_NumCommande = "" ALORS Lib_MontantPanier = "0 €" Lib_NbArticles = "0 article" SINON Lib_MontantPanier = MaCommande.p_MonRecapPanier.p_MontantPanier Lib_NbArticles = MaCommande.p_MonRecapPanier.p_Libelle FIN
J'espère que ça suffira... En tout cas merci de t'en être soucié Seb |
| |
| |
| | | |
|
| | |
| |
Posté le 05 juin 2013 - 20:11 |
Bonjour Sébastien
je n'ai pas testé ce cas particulier, donc, ce que je vais dire est juste une hypothèse. Toutefois, je constate que les deux lignes en question utilisent la même logique: >ExécuteTraitement(FEN_Menu.FI_MenuGauche..FenêtreSource+".MajMontant", trtProcédure) >{FEN_Menu.FI_MenuGauche..FenêtreSource+".Lib_MontantPanier"} > = MaCommande.p_MonRecapPanier.p_MontantPanier
Dans les deux cas, tu utilise bien FEN_Menu.FI_MenuGauche pour récupérer le nom de la fenêtre interne en cours d'utilisation. Et je suppose que cette partie fonctionne bien. Par contre, quand tu fais l'appel à la procédure de la fenêtre interne, tu y réfères directement par son nom de fenetre interne, et plus par le nom du CHAMP fenetre interne...
Hors tout code situé dans la fenetre principale ne connait QUE ce champ fenetre interne, il ne sait pas ce qu'il y a dedans...
Logiquement, il faudrait donc faire quelque chose comme ExécuteTraitement(FEN_Menu.FI_MenuGauche+".MajMontant", trtProcédure) ou peut être: SNomFI is string=FEN_Menu.FI_MenuGauche..FenêtreSource ExécuteTraitement(FEN_Menu.FI_MenuGauche+"."+sNomFI+".MajMontant", trtProcédure)
ou équivalent
A tester en tout cas
Cordialement
-- Fabrice Harari Consultant WinDev, WebDev et WinDev Mobile International
Nouveau site web (EXPERIMENTAL) http://www.fabriceharari.eu (Plus d'information sur http://fabriceharari.com/index_FR.html)
On 6/5/2013 9:24 AM, Sebinc wrote:
Mais bien sûr.
Donc j'ai une fenêtre FEN_Quantite qui est ouverte à partir de mon menu (OuvreFille). C'est cette fenêtre qui essaye de multiples façon d'alimenter les champs libellés de ma fenêtre interne.
Voici donc un bout de code de cette fenêtre (je laisse volontairement 2 lignes que j'ai testée et qui ne fonctionnent pas mais je ne les lance pas toutes les 2 bien sûr).
SI FEN_Menu.FI_MenuGauche..FenêtreSource = "FI_FEN_MenuGeneralVisite" ALORS
ExécuteTraitement(FEN_Menu.FI_MenuGauche..FenêtreSource+".MajMontant", trtProcédure) {FEN_Menu.FI_MenuGauche..FenêtreSource+".Lib_MontantPanier"} = MaCommande.p_MonRecapPanier.p_MontantPanier FIN
Procédure MajMontant()
SI MaCommande.p_NumCommande = "" ALORS Lib_MontantPanier = "0 €" Lib_NbArticles = "0 article" SINON Lib_MontantPanier = MaCommande.p_MonRecapPanier.p_MontantPanier Lib_NbArticles = MaCommande.p_MonRecapPanier.p_Libelle FIN
J'espère que ça suffira... En tout cas merci de t'en être soucié Seb |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 186 messages Popularité : +5 (11 votes) |
|
Posté le 06 juin 2013 - 09:49 |
Bonjour Fabrice, Encore une fois un grand merci à toi de te soucier de mon problème.
J'ai donc mis en application tes conseils sans succès.
J'ai fait 3 essais : SI FEN_Menu.FI_MenuGauche..FenêtreSource = "FI_FEN_MenuGeneralVisite" ALORS ExécuteTraitement(FEN_Menu.FI_MenuGauche + ".MajMontant", trtProcédure) FIN Qui fait planter l'application avec un message qui dit "La procédure MajMontant est inconnue."
SI FEN_Menu.FI_MenuGauche..FenêtreSource = "FI_FEN_MenuGeneralVisite" ALORS SNomFI est une chaîne = FEN_Menu.FI_MenuGauche..FenêtreSource ExécuteTraitement(FEN_Menu.FI_MenuGauche+"."+SNomFI+".MajMontant", trtProcédure) FIN Qui fait planter l'application avec un message qui dit : La procédure .FI_FEN_MenuGeneralVisite.MajMontant est inconnue. Le composant '' est inconnu. Une application doit être compilée avec le composant pour pouvoir l'utiliser en exécution.
SI FEN_Menu.FI_MenuGauche..FenêtreSource = "FI_FEN_MenuGeneralVisite" ALORS SI MaCommande.p_NumCommande = "" ALORS {FEN_Menu.FI_MenuGauche+"."+SNomFI+".Lib_MontantPanier", indChamp} = "0 €" {FEN_Menu.FI_MenuGauche+"."+SNomFI+".Lib_NbArticles", indChamp} = "0 article" SINON {FEN_Menu.FI_MenuGauche+"."+SNomFI+".Lib_MontantPanier", indChamp} = MaCommande.p_MonRecapPanier.p_MontantPanier {FEN_Menu.FI_MenuGauche+"."+SNomFI+".Lib_NbArticles", indChamp} = MaCommande.p_MonRecapPanier.p_Libelle FIN FIN J'ai essayé de manipuler les champs directement sans plus de succès... Ça fait planter l'application avec un message qui dit "La collection de procédures 'FEN_Quantite.PROCEDURE' n'a pas encore été chargée."
Ce qui est étrange c'est que quand je fais un ChangeFenêtreSource(FEN_Menu.FI_MenuGauche, FI_FEN_MenuGeneralVisite) Si je place à l'initialisation de la Fenêtre FI_FEN_MenuGeneralVisite l'exécution de la procédure MajMontant(), celle ci s'exécute sans soucis.
Voilà je ne sais plus quoi faire...
Merci d'avance Seb |
| |
| |
| | | |
|
| | | | |
| | |
| | |
| |
|
|
|