4D v16.3

OB GET PROPERTY NAMES

ホーム

 
4D v16.3
OB GET PROPERTY NAMES

OB GET PROPERTY NAMES 


 

OB GET PROPERTY NAMES ( object ; arrProperties {; arrTypes} ) 
引数   説明
object  Object, Object Field in 構造化されたオブジェクト
arrProperties  テキスト配列 in プロパティ名
arrTypes  倍長整数配列 in プロパティの型

説明   

OB GET PROPERTY NAMESコマンドは、 object 引数で指定したランゲージオブジェクトの中に含まれているプロパティの名前を、 arrProperties という名前のテキスト配列に入れて返します。

object で指定するオブジェクトは、 C_OBJECT コマンドを使用して作成されている、あるいはオブジェクトフィールドが選択されている必要があります。

arrProperties 引数にはテキスト配列を渡します。配列が存在しない場合、コマンドが自動的に作成してリサイズします。

また、任意の arrTypes 引数に倍長整数配列を渡すこともできます。この場合、 arrProperties 内の個々の要素に関して、プロパティに保存された値の型を arrTypes に返します。返される値は、 "Field and Variable Types" テーマ内にある以下の定数のどれかになります:

定数
Is Boolean 倍長整数 6
Is JSON null 倍長整数 255
Is object 倍長整数 38
Is real 倍長整数 1
Is text 倍長整数 2
Object array 倍長整数 39

オブジェクトが空でないかどうかをテストしたい場合を考えます:

 ARRAY TEXT(arrNames;0)
 ARRAY LONGINT(arrTypes;0)
 C_OBJECT($ref_richard)
 OB SET($ref_richard;"name";"Richard";"age";7)
 OB GET PROPERTY NAMES($ref_richard;arrNames;arrTypes)
  // arrNames{1}="name", arrNames{2}="age"
  // arrTypes{1}=2, arrTypes{2}=1
 If(Size of array(arrNames)#0)
  // ...
 End if

オブジェクト配列の要素を使用する場合を考えます:

 C_OBJECT($Children;$ref_richard;$ref_susan;$ref_james)
 ARRAY OBJECT($arrayChildren;0)
 
 OB SET($ref_richard;"name";"Richard";"age";7)
 APPEND TO ARRAY($arrayChildren;$ref_richard)
 OB SET($ref_susan;"name";"Susan";"age";4;"girl";True//追加の属性
 APPEND TO ARRAY($arrayChildren;$ref_susan)
 OB SET($ref_james;"name";"James")
 OB SET NULL($ref_james;"age") //null属性
 APPEND TO ARRAY($arrayChildren;$ref_james)
 
 OB GET PROPERTY NAMES($arrayChildren{1};$arrNames;$arrTypes)
  // $arrayChildren{1} = {"name":"Richard","age":7}
  // $arrNames{1}="name"
  // $arrNames{2}="age"
  // $arrTypes{1}=2
  // $arrTypes{2}=1
 
 OB GET PROPERTY NAMES($arrayChildren{2};$arrNames;$arrTypes)
  // $arrayChildren{3} = {"name":"Susan","age":4,"girl":true}
  // $arrNames{1}="name"
  // $arrNames{2}="age"
  // $arrNames{3}="girl"
  // $arrTypes{1}=2
  // $arrTypes{2}=1
  // $arrTypes{3}=6
 
 OB GET PROPERTY NAMES($arrayChildren{3};$arrNames;$arrTypes)
  // $arrayChildren{3} = {"name":"James","age":null}
  // $arrNames{1}="name"
  // $arrNames{2}="age"
  // $arrTypes{1}=2
  // $arrTypes{2}=255



参照 

OB Get type
OB SET NULL

 
プロパティ 

プロダクト: 4D
テーマ: オブジェクト(ランゲージ)
番号: 1232

This command can be run in preemptive processes

 
履歴 

初出: 4D v14
変更: 4D v15

 
ARTICLE USAGE

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