メインコンテンツまでスキップ
バージョン: 開発中

This

This -> 戻り値

引数説明
戻り値オブジェクト🡐カレントの要素

説明

This コマンドは、現在処理中のオブジェクトへの参照を返します。

このコマンドは、以下のようなコンテキストで使用されることを想定しています:

  • On Display Detail あるいは On Data Change イベント中における、コレクションあるいはエンティティセレクションに割り当てられたリストボックス。
    このコンテキストにおいては、コマンドはリストボックスによってアクセスされるコレクション要素、あるいはエンティティへの参照を返し、それがリストボックスのカレントの行に表示されます。
    注: リストボックスでスカラー値のコレクションを使用した場合、4D は単一のvalue プロパティを持つオブジェクトを各要素に対して作成します。そのため、要素の値はThis.value という代入不可の式によって返されます。
  • Formula あるいは Formula from string コマンドによって作成されたフォーミュラオブジェクトの実行。
    このコンテキストにおいては、コマンドは、フォーミュラによって現在処理されているオブジェクトへの参照を返します。

それ以外のコンテキストにおいては、このコマンドはNull を返します。

サポートされているコンテキスト下であれば、This.<propertyPath> を使用することで、オブジェクト/コレクション要素プロパティあるいはエンティティ属性にアクセスすることができます。例えば、This.name あるいは This.employer.lastName などは要素あるいはオブジェクト、要素、あるいはエンティティプロパティなどへの有効なパスです。

例題 1

{  
"ID": 1234
"name": "Xavier",
"revenues": 47300,
"employees": [
             "Allan",
             "Bob",
            "Charlie"
            ]
},{
"ID": 2563
"name": "Carla",
"revenues": 55000,
"isFemale": true
"employees": [
             "Igor",
             "Jane"
            ]
},...

例題 2

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

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

以下の点に注意して下さい:

  • This.ID, This.Title および This.Date はds.Event データクラス内の、対応する属性を直接参照します。
  • This.meetings は、ds.Meeting データクラスのエンティティセレクションを返すリレートされた属性です(1対Nリレーション名に基づいています)。
  • Form.eventList がリストボックスに割り当てられているエンティティセレクションです。以下の初期化コードをOn load form イベントに書くことができます:
 Case of  
    :(Form event code=On Load)
       Form.eventList:=ds.Event.all() //全てのエンティティを持ったエンティティセレクションを返す
 End case

フォームが実行されると、リストボックスにはエンティティセレクションが自動的に入ります:

例題 3

オブジェクト内に設定されたフォーミュラをプロジェクトメソッドとして使用したい場合を考えます:

 var $person : Object
 $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 プロジェクトメソッドの内部は以下のようになっています:

 var $0;$1 : Text
 $0:=$1+" "+This.firstName+" "+This.lastName

参照

Self
Super