4D v17 R5

entitySelection.{attributeName}

ホーム

 
4D v17 R5
entitySelection.{attributeName}

entitySelection.{attributeName} 


 

   
引数   説明
entitySelection.{attributeName}   Collection, EntitySelection in エンティティセレクションに対しての属性値の投影

説明   

どのデータクラス属性も、そのエンティティセレクションのプロパティを使用して、エンティティセレクション内のプロパティの値の"投影"を返すことができます。返される値は、属性の種類(ストレージあるいはリレーション)によって、コレクションあるいは新しいエンティティセレクションのどちらかになります。

  • attributeName の種類がストレージである場合:
    entitySelection.attributeNameattributeName 引数と同じ型の値のコレクションを返します。
  • attributeName の種類がリレートエンティティ型である場合:
    entitySelection.attributeNameattributeName 引数と同じ型の値にリレートされた新しいエンティティセレクションを返します。重複してるものは取り除かれます(返されるのは順列なしのエンティティセレクションです)。
  • attributeName の種類がリレートエンティティズ型である場合:
    entitySelection.attributeNameattributeName 引数と同じ型の値にリレートされた新しいエンティティセレクションを返します。重複してるものは取り除かれます(返されるのは順列なしのエンティティセレクションです)。

リレーション属性がエンティティセレクションの属性として使用された場合、エンティティが一つしか返されないとしても、結果は常に他のエンティティセレクションになります。この場合、エンティティが何も返されない場合、結果は空のエンティティセレクションになります。

注: 属性の種類についての詳細な情報については、dataClassAttribute.kind のプロパティの詳細を参照してください。

属性がエンティティセレクション内に存在しない場合、エラーが返されます。

ストレージ値の投影:

 C_COLLECTION(firstNames)
 $entitySelection:=ds.Employee.all()
 firstNames:=$entitySelection.firstName // firstName は文字列型です

返されるコレクションは文字列のコレクションとなります。例:

[
    "Joanna",
    "Alexandra",
    "Rick"
]

リレートエンティティの投影:

 C_OBJECT($es;$entitySelection)
 $entitySelection:=ds.Employee.all()
 $es:=$entitySelection.employer // employer はCompany データクラスにリレートされています

返されるオブジェクトは、重複してるもの(あれば)を取り除いた、Company のエンティティセレクションになります。

リレートエンティティズ型の投影:

 C_OBJECT($es)
 $es:=ds.Employee.all().directReports // directReports はEmployee データクラスにリレートされています

返されるオブジェクトは、重複してるもの(あれば)を取り除いた、Employee のエンティティセレクションになります。



参照 

entity.{attributeName}

 
プロパティ 

プロダクト: 4D
テーマ: ORDA - エンティティセレクション

 
履歴 

初出: 4D v17

 
ARTICLE USAGE

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

Parent of : entitySelection.{attributeName} ( 4D v17.3)