Vous êtes sur le site Web historique de la documentation de 4D. Les documentations sont progressivement déplacées vers developer.4d.com |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v20.6
EXECUTE METHOD IN SUBFORM
|
EXECUTE METHOD IN SUBFORM ( objetSousForm ; nomMéthode {; retour {; param} {; param2 ; ... ; paramN}} ) | ||||||||
Paramètre | Type | Description | ||||||
objetSousForm | Texte |
![]() |
Nom de l’objet sous-formulaire | |||||
nomMéthode | Objet, Texte |
![]() |
Nom de la méthode projet à exécuter | |||||
retour | Opérateur, Variable |
![]() |
* si la méthode ne retourne pas de valeur | |||||
![]() |
Valeur retournée par la méthode | |||||||
param | Expression |
![]() |
Paramètre(s) à passer à la méthode | |||||
La commande EXECUTE METHOD IN SUBFORM permet d’exécuter le code désigné dans formule dans le contexte de l’objet de sous-formulaire objetSousForm.
Le code appelé peut recevoir de 1 à N paramètres dans param et retourner une valeur dans retour. Passez * dans le paramètre retour si le code ne retourne pas de paramètres.
Dans formule, le code 4D à exécuter dans le contexte de subformObject doit être désigné. Vous pouvez passer soit :
Le contexte d’exécution est préservé dans le code appelé, ce qui signifie que le formulaire courant et l’événement formulaire courant restent définis. Si le sous-formulaire provient d’un composant, une méthode ou fonction appelée doit appartenir au composant et disposer de la propriété "Partagée entre les composants et la base hôte".
Cette commande doit être appelée dans le contexte du formulaire parent (contenant l’objet objetSousForm), par exemple via sa méthode formulaire.
Note : Le code n'est pas exécuté si objetSousForm ne se trouve pas dans la page courante ou n'est pas encore instancié.
Soit le formulaire "ContactDétail" utilisé comme sous-formulaire dans le formulaire parent "Société". L’objet sous-formulaire qui contient le formulaire ContactDétail est nommé "ContactSousForm". Imaginons que nous souhaitions modifier l’apparence de certains éléments du sous-formulaire en fonction de la valeur de champ(s) de la société (par exemple, "nomcontact" doit passer en rouge lorsque [Société]Ville="New York" et en bleu lorsque [Société]Ville="San Diego"). Ce mécanisme est mis en oeuvre via la méthode SetToColor. Pour pouvoir obtenir ce résultat, la méthode SetToColor ne peut pas être appelée directement depuis le process de l’événement formulaire "Sur chargement" du formulaire parent Société car l’objet "nomcontact" n’appartient pas au formulaire courant, mais au formulaire affiché dans l’objet sous-formulaire "ContactSousForm". La méthode doit donc être exécutée à l’aide de EXECUTE METHOD IN SUBFORM pour pouvoir fonctionner correctement.
Case of
:(Form event code=On Load)
Case of
:([Société]Ville="New York")
$Color:=$Red
:([Société]Ville="San Diego")
$Color:=$Blue
Else
$Color:=$Black
End case
EXECUTE METHOD IN SUBFORM("ContactSousForm";Formula(SetToColor);*;$Color)
End case
Vous développez une base de données qui sera utilisée comme composant. Elle comporte un formulaire projet partagé (nommé par exemple Calendrier) contenant des variables dynamiques ainsi qu’une méthode projet publique permettant de régler le calendrier : SetCalendarDate(varDate).
Si cette méthode était utilisée directement dans la méthode du formulaire Calendrier, vous pourriez l’appeler directement dans l’événement "Sur chargement" :
SetCalendarDate(Current date)
EXECUTE METHOD IN SUBFORM("Cal1";Formula(SetCalendarDate);*;!01/01/20!)
EXECUTE METHOD IN SUBFORM(SetCalendarDate);*;!05/05/20!)
Si cette commande est exécutée correctement, la variable système OK prend la valeur 1, sinon elle prend la valeur 0.
Produit : 4D
Thème : Evénements formulaire
Numéro :
1085
Créé : 4D v12
Modifié : 4D v19 R6
4D - Langage ( 4D v20)
4D - Langage ( 4D v20.1)
4D - Langage ( 4D v20.2)
4D - Langage ( 4D v20.3)
4D - Langage ( 4D v20.4)
4D - Langage ( 4D v20.5)
4D - Langage ( 4D v20.6)