4D v14.3EXECUTE METHOD IN SUBFORM |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v14.3
EXECUTE METHOD IN SUBFORM
EXECUTE METHOD IN SUBFORM
EXECUTE METHOD IN SUBFORM コマンドを使用して サブフォームオブジェクトsubformObject のコンテキストでプロジェクトメソッドmethodName を実行できます。 呼ばれるプロジェクトメソッドは任意の数の引数をparam に受け取ることができ、また戻り値はreturnに返されます。メソッドが値を戻さない場合は、returnに * を渡します。 methodNameにはデータベースあるいはコマンドを実行するコンポーネントからアクセスが可能なプロジェクトメソッドを指定できます。実行コンテキストは呼び出されたメソッド内でも保持されます。つまりカレントフォームおよびカレントフォームイベントは指定されたまま引き継がれます。サブフォームがコンポーネント由来の場合、メソッドはコンポーネントに属していなければならず、また"コンポーネントとホストデータベースで共有する"プロパティがチェックされていなければなりません。 このコマンドは (subformObject オブジェクトを含む) 親フォームのフォームメソッドから実行しなくてはなりません。 注: methodName メソッドは、subformObject がカレントページに見つからないか、インスタンス化されていない場合、実行されません。コマンドが正しく実行されるとシステム変数OKに1が設定され、そうでなければ0が設定されます。 親フォーム"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 コンポーネントとして使用される予定のデータベースを開発しています。このデータベースには共有プロジェクトフォーム (例として"Calender"と名付けます) が含まれています。またこのフォームにはダイナミック変数やカレンダを調整するための公開プロジェクトメソッド (SetCalendarDate(varDate)) が含まれています。 SetCalendarDate(Current date) EXECUTE METHOD IN SUBFORM("Cal1";"SetCalendarDate";*;!10/01/01!) 上級例題: 先と同じ状況で、ここでは汎用メソッドを作成してみます: // SetCalendarDate メソッドの内容 |
プロパティ
プロダクト: 4D
履歴
初出: 4D v12 ARTICLE USAGE
ランゲージリファレンス ( 4D v12.4) |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||