4D v17.4

This

ホーム

 
4D v17.4
This

This 


 

This -> 戻り値 
引数   説明
戻り値  Object in カレントの要素

説明   

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

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

  • コレクションあるいはエンティティセレクションに割り当てられたリストボックス
  • On Display Detail イベント中あるいはOn Data Change イベント中

この特定のコンテキスト下においては、コマンドは、カレント行に表示するためにリストボックスによってアクセスされたコレクション要素あるいはエンティティへの参照を返します。それ以外のコンテキストにおいては、このコマンドはNull を返します。

This.<propertyPath> を使用することで、コレクション要素プロパティあるいはエンティティ属性にアクセスすることができます。例えば、This.name あるいは This.employer.lastName などは要素あるいはエンティティプロパティへの有効なパスです。

注: スカラー値のコレクションを使用した場合、4D は単一のvalue プロパティを持つオブジェクトを各要素に対して作成します。そのため、要素の値はThis.value という式を通して利用可能です。

以下のようなストラクチャーを持つオブジェクトのコレクションについて考えます:

{  
"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

フォームが実行されると、以下のように結果を見ることができます:

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

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

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

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

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



参照 

Self

 
プロパティ 

プロダクト: 4D
テーマ: ランゲージ
番号: 1470

This command can be run in preemptive processes

 
履歴 

New
初出: 4D v17

 
ARTICLE USAGE

ランゲージリファレンス ( 4D v17)
ランゲージリファレンス ( 4D v17.1)
ランゲージリファレンス ( 4D v17.2)
ランゲージリファレンス ( 4D v17.3)
ランゲージリファレンス ( 4D v17.4)