| 4D v20.1This | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|  | 
    4D v20.1
 This 
         | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| This -> 戻り値 | ||||||||
| 引数 | 型 | 説明 | ||||||
| 戻り値 | オブジェクト |   | カレントの要素 | |||||
This コマンドは、現在処理中のオブジェクトへの参照を返します。
このコマンドは、以下のようなコンテキストで使用されることを想定しています:
それ以外のコンテキストにおいては、このコマンドはNull を返します。
サポートされているコンテキスト下であれば、This.<propertyPath> を使用することで、オブジェクト/コレクション要素プロパティあるいはエンティティ属性にアクセスすることができます。例えば、This.name あるいは This.employer.lastName などは要素あるいはオブジェクト、要素、あるいはエンティティプロパティなどへの有効なパスです。
以下のようなストラクチャーを持つオブジェクトのコレクションについて考えます:
{  
"ID": 1234
"name": "Xavier",  
"revenues": 47300,  
"employees": [  
             "Allan",  
             "Bob", 
             "Charlie"  
            ] 
},{  
"ID": 2563
"name": "Carla",  
"revenues": 55000,  
"isFemale": true
"employees": [  
             "Igor",  
             "Jane"  
            ] 
},...
 リストボックス内では、各カラムがオブジェクトのどれか一つのプロパティを参照します。参照は直接的に(This.name)、あるいは間接的に(This.employees.length)、あるいは式を通して(getPicture)行います。なお式での参照は直接参照することも可能です。リストボックスは以下のようになります:

GetPicture プロジェクトメソッドはOn display detail イベント中に自動的に実行されます:
  //GetPicture メソッド
 C_PICTURE($0)
 If(This.isFemale)
    $0:=Form.genericFemaleImage
 Else
    $0:=Form.genericMaleImage
 End ifフォームが実行されると、以下のように結果を見ることができます:

以下のストラクチャーからのエンティティを、リストボックス内に表示したい場合を考えます:

以下の定義で"コレクションあるいはエンティティセレクション"型のリストボックスをビルドしたとします:

以下の点に注意して下さい:
 Case of
    :(Form event code=On Load)
       Form.eventList:=ds.Event.all() //全てのエンティティを持ったエンティティセレクションを返す
 End caseフォームが実行されると、リストボックスにはエンティティセレクションが自動的に入ります:

オブジェクト内に設定されたフォーミュラをプロジェクトメソッドとして使用したい場合を考えます:
 C_OBJECT($person)
 $person:=New object
 $person.firstName:="John"
 $person.lastName:="Smith"
 $person.greeting:=Formula(Greeting)
 $g:=$person.greeting("hello") // "hello John Smith" を返す
 $g:=$person.greeting("hi") // "hi John Smith" を返すこのとき、Greeting プロジェクトメソッドの内部は以下のようになっています:
 C_TEXT($0;$1)
 $0:=$1+" "+This.firstName+" "+This.lastName
	プロダクト: 4D
	テーマ: ランゲージ
	番号: 
        1470
        
        
        
	
	初出: 4D v17
	変更: 4D v17 R3
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	ランゲージリファレンス ( 4D v20)
	
	
	ランゲージリファレンス ( 4D v20.1)
	
	
	
 コメントを追加
コメントを追加