|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre du Club
![]() Inscription : mai 2002 Messages : 56 ![]() |
Bonjour,
J'ai plusieurs champs dans ma fenetre et pour l'ordre d'initialisation, j'ai pris l'habitude de tout mettre dans l'init de la fenetre (beaucoup plus pratique car s'il y a beaucoup de champs a initialiser, il faudrait tous les faires 1 par 1) Par contre il y a un truc qui n'est pas très logique à mon avis, c'est que les codes qui sont dans les modifications de champs se font avant l'init de la fenetre... exemple : j'ai un selecteur avec du code qui se base sur un champs date. Le champs date est initialisé uniquement a l'init de la fenetre. Du coup le code plante car il fait en 1er le code de modif du selecteur avant l'init. Je trouve donc que c'est illogique mais surtout 'dangereux' car on risque d'oublier la moitié des champs Mise a pars 'tricher' avec une variable d'init, je ne vois pas d'autres solutions. Qu'en pensez vous ? |
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() ![]() Claude Développeur informatique Inscription : juin 2003 Messages : 1 806 ![]() |
Ou simplement tester que tu as une date valide dans le traitement de ton sélecteur.
__________________
Commencez toujours par là : et puis n'hésitez à passer par là : ou par un autre moteur de recherche...Pas de question par MP s'il vous plait. Le forum est fait pour cela... Make it real not fantasy |
|
|
00
|
|
|
#3 |
|
Membre actif
![]() |
Bonjour,
"...car il fait en 1er le code de modif du selecteur avant l'init." Ca me parait étrange effectivement... n’appelez-vous pas le code de modification via un ExecuteTraitement() quelque part ? Le code de modification du champ ne doit être appelé que s'il y a une modification "interface" par l'utilisateur... pas à l'initialisation... à moins que je me trompe !
__________________
SQL : le véritable Esperanto PHP/HTML/JS/CSS : et avec ça tu fais fessebouc ! Windev : ***** et **** parce que ***** même si ****** bien ![]() "Les patates à ta tata épatent ton tonton mais les pates aux thons à ton tonton épatent pas ta tata." (Michel Souris) |
|
|
00
|
|
|
#4 |
|
Membre du Club
![]() Inscription : mai 2002 Messages : 56 ![]() |
je me répond a moi même mais je pense que ca peux interresser certains...
en fait c'est parceque sur mon champ de type selecteur, j'ai coché 'mémoriser la valeur' et du coup windev fait ce code en 1er (toujours pas logique pour ma part mais bon au moins je sais d'ou proviens le soucis. |
|
|
40
|
|
|
#5 |
|
Membre éprouvé
![]() Inscription : avril 2005 Messages : 158 ![]() |
Bonjour,
Cela provient du fait que vos champs ont l'option "Mémoriser la valeur" (enfin, c'est la seule explication plausible que je vois ! Pour ces champs, le code de modification est automatiquement exécuté à l'initialisation du champ. Voir la page http://doc.pcsoft.fr/fr-FR/?9000019 (la remarque du paragraphe "Comment le faire ?"). Cordialement |
|
|
10
|
|
|
#6 | ||
|
Membre éprouvé
![]() Inscription : avril 2005 Messages : 158 ![]() |
(Déciment, pas de bol en ce moment, je réponds toujours à quelques secondes près
.)Pour vous répondre, il y a bien une "logique" : lorsqu'on effectue un choix sur un sélecteur, généralement (souvent ?) on va exécuter du code en fonction de la valeur du sélecteur (pour modifier l'IHM, positionner des variables, etc.) Si la valeur est positionnée automatiquement via la mémorisation, mais que le code n'est pas exécuté, il y a risque de déphasage. Il est toutefois possible de contrer le mécanisme tout en conservant la mémorisation. Il suffit d'utiliser la fonction FenInitialisée (http://doc.pcsoft.fr/fr-FR/?1000018919) : si la fenêtre n'est pas initialisée, alors on stoppe l'exécution du code de modification. Code :
|
||
|
|
60
|
|
|
#7 | |
|
Membre actif
![]() |
Citation:
Merci pour votre retour !
__________________
SQL : le véritable Esperanto PHP/HTML/JS/CSS : et avec ça tu fais fessebouc ! Windev : ***** et **** parce que ***** même si ****** bien ![]() "Les patates à ta tata épatent ton tonton mais les pates aux thons à ton tonton épatent pas ta tata." (Michel Souris) |
|
|
|
00
|
|
|
#8 |
|
Membre du Club
![]() Inscription : mai 2002 Messages : 56 ![]() |
pour ce qui est de cette logique ou non, je pense qu'on va chacun avoir son avis..
par contre merci pour l'asctuce fenetreinitialisé c'est parfait |
|
|
00
|
|
|
#9 |
|
Expert Confirmé
![]() Pascal Inscription : juillet 2002 Messages : 1 435 ![]() |
Bonjour
Comme le dit djejackk, la fonction FenInitialiée() est pratique pour ça Je l'utilise systématiquement dans les codes de modif. de champs, ça évite d'avoir des surprises si un jour on coche "mémoriser la valeur" |
|
|
10
|
|
|
#10 |
|
Membre expérimenté
![]() Développeur informatique Inscription : mars 2009 Messages : 300 ![]() |
A noter que ce problème se rencontre aussi lorsqu'on utilise une liaison fichierHF<-->combo ou fichierHF<-->Table.
J'en ai fais les frais très récemment. |
|
|
10
|
|
|
#11 | |
|
Membre chevronné
![]() Inscription : octobre 2007 Messages : 306 ![]() |
Bonjour,
Il faut aussi avoir à l'esprit que cela modifie la propriété ..Modifié du champ qu'il peut donc être utile de remettre à Faux dans la foulée pour avoir l'esprit tranquille. Citation:
|
|
|
|
30
|
|
|
#12 |
|
Membre expérimenté
![]() Inscription : septembre 2010 Messages : 208 ![]() |
Bonjour à tous,
J'ai mis 5 étoiles à la discussion et des à tout le monde, car cette discussion met en avant des aspects subtils, facilement oubliés, et des bonnes pratiques à conserver.J'ajoute cette discussion dans mes favoris Forum WD. aux membres du forum.
|
|
|
10
|
Copyright © 2000-2013 - www.developpez.com