| 4D v20.1EXECUTE METHOD IN SUBFORM | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|  | 
    4D v20.1
 EXECUTE METHOD IN SUBFORM 
         | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| EXECUTE METHOD IN SUBFORM ( subformObject ; formula {; return {; param} {; param2 ; ... ; paramN}} ) | ||||||||
| 引数 | 型 | 説明 | ||||||
| subformObject | テキスト |   | サブフォームオブジェクトの名称 | |||||
| formula | オブジェクト, テキスト |   | 実行するプロジェクトメソッドの名前、または Formulaオブジェクト | |||||
| return | 演算子, 変数 |   | メソッドが値を戻さない場合 * | |||||
|   | メソッドから返される値 | |||||||
| param | 式 |   | メソッドに渡す引数 | |||||
EXECUTE METHOD IN SUBFORM コマンドを使用して サブフォームオブジェクトsubformObject のコンテキストにおいてformula 引数で指定したコードを実行できます。
呼ばれたコードは任意の数の引数をparam に受け取ることができ、また戻り値はreturn に返されます。メソッドが値を戻さない場合は、return に * を渡します。
formula 引数では、subformObject のコンテキストで実行される4D コードを指定します。以下のいずれかを渡すことができます:
実行コンテキストは呼び出されたメ ソッド内でも保持されます。つまりカレントフォームおよびカレントフォームイベントは指定されたまま引き継がれます。サブフォームがコンポーネント由来の 場合、呼び出されたメソッドまたは関数はコンポーネントに属していなければならず、また"コンポーネントとホストデータベースで共有する"プロパティがチェックされていなければ なりません。
このコマンドは (subformObject オブジェクトを格納している) 親フォームのコンテキスト、例えばフォームメソッド等から実行しなくてはなりません。
注意: formula メソッドは、subformObject がカレントページに見つからないか、インスタンス化されていない場合、実行されません。
親フォーム"Company"中にサブフォーム"ContactDetail"が置かれています。ContactDetailフォームが設定されたサブフォームオブジェクトの名前は"ContactSubform"です。ここでcompanyのフィールド値に基づき、サブフォーム内の特定の要素のアピアランスを変更したいとします (例えば[Company]City="New York"のときは"contactname"を赤に、[Company]City="San Diego"のときは青にするなど)。このメカニズムはSetToColor メソッドに実装されています。この結果を得るために、SetToColor メソッドをCompany親フォームの"On Load"フォームイベントのプロセスから直接呼び出すことはできません。なぜなら"contactname"オブジェクトはカレントフォームではなく、 "ContactSubform"サブフォームオブジェクト中に表示されているフォームに属しているからです。そのため正しく動作させるために、メソッドはEXECUTE METHOD IN SUBFORM コマンドを使用して実行されなければなりません。
 Case of
    :(Form event code=On Load)
       Case of
          :([Company]City="New York")
             $Color:=$Red
          :([Company]City="San Diego")
             $Color:=$Blue
          Else
             $Color:=$Black
       End case
       EXECUTE METHOD IN SUBFORM("ContactSubform";Formula(SetToColor);*;$Color)
 End caseコンポーネントとして使用される予定のデータベースを開発しています。このデータベースには共有プロジェクトフォーム (例として"Calender"と名付けます) が含まれています。またこのフォームにはダイナミック変数やカレンダを調整するための公開プロジェクトメソッド (SetCalendarDate(varDate)) が含まれています。
このメソッドがCalenderフォームメソッドで直接使用される場合、開発者は直接このメソッドをフォームの"On Load"イベントで呼び出すことができます: 
 SetCalendarDate(Current date) EXECUTE METHOD IN SUBFORM("Cal1";Formula(SetCalendarDate);*;!01/01/20!)
 EXECUTE METHOD IN SUBFORM("Cal2";Formula(SetCalendarDate);*;!05/05/20!)コマンドが正しく実行されるとシステム変数OKに1が設定され、そうでなければ0が設定されます。
	プロダクト: 4D
	テーマ: フォームイベント
	番号: 
        1085
        
        
        
	
	初出: 4D v12
	変更: 4D v19 R6
	
	
	
	ランゲージリファレンス ( 4D v20)
	
	ランゲージリファレンス ( 4D v20.1)
	
	
 コメントを追加
コメントを追加