Bonjour,
Jaimerai savoir, entre la methode d'un formulaire et le script d'un objet contenu dans le formulaire, lequel des 2 s'execute en premier? Est ce le script ou la méthode?
Merci d'avance
Bonjour,
Jaimerai savoir, entre la methode d'un formulaire et le script d'un objet contenu dans le formulaire, lequel des 2 s'execute en premier? Est ce le script ou la méthode?
Merci d'avance
Je viens de faire un test deux boutons un ancien et un nouveau sur un formualire déjà existant.
D'abord l'action sur les boutons puis l'action sur le formulaire.
A +
merci beaucoup
Bonjour,
En effet ce sont d'abord les méthodes objets qui sont exécutées par 4D dans leur ordre de création et ensuite la méthode formulaire.
Vous pouvez connaître l'ordre de création des objets d'un formulaire grâce à la commande : LIRE OBJETS FORMULAIRE.
Jai encore une question,
jai créer un formulaire contenant plusieurs champs et boutons "ok".
Jai associer a 2 champs et 1 bouton des scripts et jai aussi creer une methode formulaire.
si les scripts des objets "champs" sexecutent, il restera toujours le script de l'objet "bouton" qui s'executera que lorsque je cliquerai dessus.
Ma question est donc : Quand est ce que la methode formulaire s'executera? Avant, pendant ou apres que jai cliquer sur le bouton?
Merci
En fait dans votre méthode formulaire, il est conseillé d'utiliser les évenements formulaires.
Dans la partie "événements" de la "liste des propriétes" des objets et des formulaires, vous avez la possibilité de cocher certains événements (ex: sur clic, sur chargement, etc...) qui pousseront 4D à "regarder" votre code.
Ces différents événements seront ensuite traiter de manière individuelle dans votre code pour obtenir le comportement que vous désirez en fonction des cas.
Voici un exemple de code que vous pourriez avoir dans une méthode formulaire :
Au cas ou
: (Evenement formulaire=Sur chargement)
` ...
: (Evenement formulaire=Sur gain focus)
` ...
: (Evenement formulaire=Sur perte focus)
` ...
Fin de cas
Vous pouvez vous rapprocher de la documentation sur cette commande ici : http://4d.developpez.com/documentati...F/CMF00388.HTM
merci pour votre reponse.
je comprend mieux l'ordre des choses maintenant.
je sais maintenant que mon probleme de variable qui s'affiche lors de laffichage du formulaire de sortie n'est pas dû aux evenements formulaires.
est ce quil est possible de definir l'ordre des script?
par exemple, dire que sur tel evenement formulaire, il faut que ce soit le script 1 avant le script 2 et inversement sur un autre evenement formulaire.
merci d'avance
Je ne voies pas très l'objectif mais par exemple.
c_entier long($evt)
$evt:=evenement formulaire
au cas ou
$evt=sur chargement)
Scritp1
Script2
$evt=sur liberation)
Scritp2
Script1
fin de cas
A +
lorsque j'execute mon application, a un moment de l'execution, il y a une methode formulaire qui s'execute avant les script objet.
d'apres votre reponse precedement, normalement le script objet doit s'executer avant la methode formulaire. Jai fait un test ac la commande trace sur la version originale de la base =>pas de soucis. Par contre sur la version sur laquelle je travaille la methode formulaire s'execute avant le script objet.
voila pourquoi jaimerai savoir sil y a un moyen d'interagir sur l'ordre d'execution des scripts.
4D ira voir en premier le code de la méthode objet, mais l'ordre d'exécution des scripts entre une méthode formulaire et une méthode objet dépend des événements que vous utilisez.
Par exemple si vous utilisez un événement sur chargement dans une méthode formulaire et un événement sur clic dans une méthode objet, c'est le code de la méthode formulaire qui s'exécutera en premier.
voila ce que jai coché ds les evenements formulaires :
validation
appel exterieur,
menu selectionné,
ouverture/fermeture corps
clic/double clic/clic long/clic fleche
donnée modifié
deposé,
minuteur,
entete,
impression sos total/corps/pied de ligne
affichage corps,
appel zone plugin
apres modifications
tous ces evenements sont coché pour la methode formulaire.
voici ceux qui sont cochés pour les scripts objets:
chargement,
validation,
clic,
données modifiées,
entete,
impression sous total/corps/pied de ligne,
affichage corps
parmis ts les evenements possibles, quels sont ceux quil faut que je coche pour que le script objet s'execute avant la metrhode formulaire?
merci d'avance
Bon, on va reprendre le problème du début.
Ton formulaire, c'est un formualire 'Sortie' ou 'Saisie'.
Pour les scripts personnelement j'ajoute la gestions de évenenements afin de savoir précisement à quel moment je veux mon action (sans avoir à regarder dans les propriétés du formulaire) et, éviter des soucis lors d'une mise à jour.
Peux-tu nous donner une idée de ce que tu veux faire. Eventuellement, l'action que tu mets sur chargement de ton bouton peut très bien êre mise sur le chargement du formulaire avant celel que tu as déjà. Cela te permettra d'être sur que celle-ci aura lieu avant.
A+
pour commencer par le commencement:
mon formulaire est un formulaire de saisie sur lequel jai mis une methode formulaire.
et dans ce formulaire, jai 2 champs sur lesquels jai associé des scripts.
Dans l'execution, il est necessaire que ces scripts soit executés avant la methode formulaire car ils font des tests qui seront necessaire, par la suite, a la methode formulaire.
pour la gestion des evenements formulaires, aucun n'est gérés dans la methode. Ils sont tous gérés dans les proporiétés.
Au lieu de faire le traitement sur les champ, est-il possible de mettre ces traitements dans le formulaire.
Exemple
Champ 1
sur chargement TraitChamp1
Champ 2
sur chargement Traitchamp2
Formulaire
sur chargement TraitForm
Cela pourrait devenir
Champ 1 et 2 plus rien
Formulaire
TraitChamp1
TraitChamp2
TraitForm
A +
ca pourrait etre possible, cependant quest ce quil faudrait mettre pour dire que l'on travaille dans le champ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Au cas ou :(evenement formulaire = affichage corp) (Traitement du champ 1) <= comment je peu specifié a 4D qu'il s'agit du champ 1? :(evenement formulaire = affichage corp) (Traitement du champ 2) :(evenement formulaire = affichage corp) (Traitement du formulaire) Fin de cas
Le problème se complique un peu.
Dans un formulaire liste voici l'ordre d'exécution des evenements.
D'abord sur chargement du champ (ou des champs). Il n'y a qu'un passage
Ensuite Sur chargement du formulaire . Il n'y a qu'un passage
Ensuite sur affichage corps . Un passage par ligne.
Pour pouvoir t'aider un peu plus, peux tu préciser ce que tu attends.
A +
Il s'agit d'un formulaire d'entrée, le formulaire Liste est sur l'autre post
Jai mis les scripts objets avec la methode formulaire comme tu me l'avais conseiller pour que je n'ai pas a m'inquiété de l'ordre. Le resultat est celui que j'attend donc merci bcp pour ton aide.
Merci a tt le monde aussi.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager