PC SOFT

PROFESSIONAL NEWSGROUPS
WINDEVWEBDEV and WINDEV Mobile

Home → WINDEV Mobile 2024 → Sélection d'une ligne toujours exécute à l'initialisation ZR
Sélection d'une ligne toujours exécute à l'initialisation ZR
Started by SCH, Mar., 17 2018 2:09 PM - 8 replies
Registered member
29 messages
Popularité : +1 (1 vote)
Posted on March, 17 2018 - 2:09 PM
Bonjour, je débute dans Windev et j'ai un problème tout bête.

En fait sur une fenêtre de mon projet j'utilise deux plan, les deux contiennent une zone répétée qui exécute une requête lors de la "Sélection d'une ligne de la ZoneRépétée".
Le résultat des requêtes se trouvent dans des Fenêtres Internes et voila où est mon problème:
Lorsque je charge ma fenêtre le code de "Sélection d'une ligne" s'exécute, ce qui résulte à une erreur fatale, en effet dans mon code de "Sélection d'une ligne" je cible des éléments dans mes Fenêtres internes mais une des deux n'est pas encore chargé alors les éléments que je sélectionne sont "Inconnus / Introuvable" et mon application plante.

Du fait que j'ai des plans, mes éléments se chargent d'office et la deuxième ZR n'arrive pas à accéder à la Fenêtre Interne.
Pourquoi est-ce que ces ZoneRépétées exécutent TOUJOURS ce code de sélection de ligne? (Sans cette exécution systématique dès l'initialisation tout marche)

Alors oui je peux certainement faire une variable qui vérifie si c'est la première fois et qui permet toutes les autres fois, mais est-ce vraiment la solution?


En espérant avoir été clair, j'invoque votre aide! ;)
SCH.
Posted on March, 18 2018 - 11:33 AM
C'est normalement dans ton code que la sélection de ligne se fait
Je pense qu'il serait préférable de sélectionné que la ligne de ZR du plan actif ou laisser l'utilisateur le faire
Regarde la propriété ..plan
En tout cas un bout de code serait intéressant a mètre sur le forum si tu souhaite une meilleure réponse
Registered member
29 messages
Popularité : +1 (1 vote)
Posted on March, 18 2018 - 9:12 PM
Merci de ta réponse,

Pour accéder à cette page j'ai un bouton dans le menu qui fait
OuvreSoeur(MaFen)
MaFen..Plan=1


Ensuite peu importe mon code dans ma ZR à l'endroit "Sélection d'une ligne", il s’exécutera.
Exemple: dans la sélection d'une ligne d'une ZR sur le plan1:
Info("Test1")

Et la sélection d'une ligne d'une ZR sur le plan2:
Info("Test2")


Dès l'instant ou j'aurai cliqué sur mon bouton pour passer sur cette fenêtre et afficher mon plan numéro 1, les DEUX Info s'affiche:
"Test1" et "Test2"

Le mieux pour moi serait que ce code ne s'exécute pas tant qu'une ligne n'est pas sélectionner PAR l'utilisateur(réellement).

Si ce n'est pas possible je le programmerais moi même mais ça me parait vraiment bizarre que Windev fonctionne de cette façon en exécutant un code qui n'est pas censé avoir été fait.
Posted on March, 19 2018 - 6:41 AM
@SCH malheureusement ton code ne m'aide pas
Met plutôt le code d'initiation de ta fenêtre Mafen et l'initialisation des ZR
Mettre des info c'est bien mais tu faire une exécution pas a pas ou mètre des arrêt
Conseil prefrere la fonction ouvrefenêtremobile
Met mafen..plan=1 a l'initialisation de Mafen
Merci de ta réponse,

Pour accéder à cette page j'ai un bouton dans le menu qui fait
OuvreSoeur(MaFen)
MaFen..Plan=1


Ensuite peu importe mon code dans ma ZR à l'endroit "Sélection d'une ligne", il s’exécutera.
Exemple: dans la sélection d'une ligne d'une ZR sur le plan1:
Info("Test1")

Et la sélection d'une ligne d'une ZR sur le plan2:
Info("Test2")


Dès l'instant ou j'aurai cliqué sur mon bouton pour passer sur cette fenêtre et afficher mon plan numéro 1, les DEUX Info s'affiche:
"Test1" et "Test2"

Le mieux pour moi serait que ce code ne s'exécute pas tant qu'une ligne n'est pas sélectionner PAR l'utilisateur(réellement).

Si ce n'est pas possible je le programmerais moi même mais ça me parait vraiment bizarre que Windev fonctionne de cette façon en exécutant un code qui n'est pas censé avoir été fait.
Registered member
29 messages
Popularité : +1 (1 vote)
Posted on March, 19 2018 - 11:15 AM
Le code d'initialisation de MaFen:
Procedure MaFenêtre()
MaFen..Plan = 1


Et j'ai aucun code dans l'initialisation de mes deux ZR.
J'ai donc changé OuvreSoeur par OuvreFenêtreMobile et mit MaFen..Plan=1 dans le code d'initialisation de ma fenêtre, j'ai toujours mes info qui s'affiche :(
Les info me permettent de savoir si je passe bel et bien par cette Sélection de ligne, les points d'arrêts ne m'aident pas énormément...
Registered member
190 messages
Popularité : +21 (23 votes)
Posted on March, 19 2018 - 11:48 AM
Bonjour

pour avoir eu ce genre de cas, une des solutions comme tu as suggéré est :
- Utiliser une variable flg_init initialisée à faux, et mettre à vrai dans le code 'fin d’initialisation de la fenêtre". Et dans le code de sélection de tes ZR, mettre : SI pas flg_init alors RETOUR

voilà pour une des solutions.
Une autre à tester: la possibilité peut être de mettre les ZR en affichageSansSelection . Et à la fin d'init de la fenêtre, mettre les ZR en actif ou affichageSeulement
Registered member
29 messages
Popularité : +1 (1 vote)
Posted on March, 19 2018 - 12:42 PM
Bonjour, oui c'est bien ce qui me semblait et ça marche pas la variable mais je trouvais ça assez spécial de devoir le faire comme ça.

Il pense avoir déjà essayé avec affichage sans sélection et il me semble que le code "Sélection d'une ligne de la ZR" s’exécute quand même...

Donc je vais devoir m'en tenir à le faire avec une variable ;)

Merci de ta réponse.
Posted on March, 20 2018 - 1:44 PM
Il reste encore une solution est de remplir la ZR par programmation plutôt que de lier la ZR a une table ou une requête
Personnellement, c'est ce que je fait en WM
Car j'ai remarquer que cela fonctionner mieux
J'espère que tu réussira a régler le souci
Parfois une récréation de la fenêtres peut aussi régler ce genre de pb
Registered member
29 messages
Popularité : +1 (1 vote)
Posted on March, 20 2018 - 5:23 PM
Ça marche en remplissant mes ZR par programmation, merci beaucoup popoy.
Cette méthode me parait beaucoup plus "propre" et assez simple à mettre en place, quelques POUR TOUT, avec des requêtes externes et le tour est joué! Le code de sélection ne marche que quand on sélectionne réellement une ligne, ce qui me semble bien plus logique. ;)

Encore merci de vos réponses, mon problème est résolu. :merci: