| 4D v13.4EXECUTE METHOD IN SUBFORM | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 
 | 
    4D v13.4
 EXECUTE METHOD IN SUBFORM 
         | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| EXECUTE METHOD IN SUBFORM ( UnterformularObjekt ; MethodenName {; Rückgabe {; Parameter} {; Parameter2 ; ... ; ParameterN}} ) | ||||||||
| Parameter | Typ | Beschreibung | ||||||
| UnterformularObjekt | Text |   | Name des Objekts Unterformular | |||||
| MethodenName | Text |   | Name der auszuführenden Projektmethode | |||||
| Rückgabe | Operator, Variable |   | Von der Methode zurückgegebener Wert oder | |||||
|   | * wenn Methode keinen Wert zurückgibt. | |||||||
| Parameter | Variable |   | Parameter, die der Methode übergeben werden sollen | |||||
Der Befehl EXECUTE METHOD IN SUBFORM führt die Projektmethode MethodenName im Kontext des Objekts UnterformularObjekt aus.
Die aufgerufene Projektmethode kann in Parameter Werte von 1 bis X empfangen und in Rückgabe einen Wert zurückgeben. Übergeben Sie * im Parameter Rückgabe, wenn die Methode keine Parameter zurückgibt.Wir gehen aus vom Formular "KundeDetail", das im Elternformular "Firma" als Unterformular verwendet wird. Das Objekt Unterformular mit dem Formular KundeDetail lautet "KundeUnterformular". Wir wollen nun die Darstellung bestimmter Elemente im Unterformular je nach Wert des Feldes Firma verändern: "Kundenname" soll in Rot wechseln, wenn gilt [Firma]Stadt="Berlin" und in Blau, wenn gilt [Firma]Stadt="Frankfurt". Diese Operation wird über die Methode SetToColor integriert. Um dieses Ergebnis zu erreichen, kann die Methode SetToColor nicht direkt über das Formularereignis "On Load" des Elternformulars Firma ausgeführt werden, da das Objekt "Kundenname" nicht zum aktuellen Formular, sondern zum Objekt Unterformular "KundeUnterformular" gehört. Von daher muss die Methode, damit sie korrekt funktioniert, über den Befehl EXECUTE METHOD IN SUBFORM ausgeführt werden.
 Case of
    :(Form event=On Load)
       Case of
          :([Firma]Stadt ="Berlin")
             $Color:=$Red
          :([Firma]Stadt ="Frankfurt")
             $Color:=$Blue
          Else
             $Color:=$Black
       End case
       EXECUTE METHOD IN SUBFORM("KundeUnterformular";"SetToColor";*;$Color)
 End caseSie entwickeln eine Datenbank, die als Komponente verwendet wird. Sie enthält ein gemeinsam genutztes Projektformular, z.B. Kalender. Es enthält dynamische Variablen sowie eine öffentliche Projektmethode, um den Kalender anzupassen: SetCalendarDate(varDate). 
Würde diese Methode direkt in der Formularmethode Kalender verwendet, könnten Sie sie direkt im Formularereignis "On Load" aufrufen: 
 SetCalendarDate(Current date) EXECUTE METHOD IN SUBFORM("Cal1";"SetCalendarDate";*;!01/01/10!)
 EXECUTE METHOD IN SUBFORM("Cal2";"SetCalendarDate";*;!05/05/10!)Fortgeschrittenes Beispiel: Im selben Kontext wie oben zeigt dieses Beispiel eine generische Methode:
  // Inhalt der Methode SetCalendarDate
 C_DATE($1)
 C_TEXT($2)
 Case of
    :(Count parameters=1)
  // Standardausführung der Methode (als ob sie vom Formular selbst ausgeführt wurde)
  // oder speziell für einen Kontext (siehe Fall 2)
 
    :(Count parameters=2)
  //  Externer Aufruf, benötigt einen Kontext
  // Rekursiver Aufruf mit nur einem Parameter
       EXECUTE METHOD IN SUBFORM($2;"SetCalendarDate";*;$1)
 End case
	Produkt: 4D
	Thema: Programmiersprache
	Nummer: 
        1085
        
        
        
	
     Alphabetische Liste der Befehle
    Alphabetische Liste der Befehle
	Erstellt: 4D v12