4D v16.3

GET FIELD RELATION

ホーム

 
4D v16.3
GET FIELD RELATION

GET FIELD RELATION 


 

GET FIELD RELATION ( manyField ; one ; many {; *} )  
引数   説明
manyField  フィールド in リレート開始フィールド
one  倍長整数 in n対1リレートの状態
many  倍長整数 in 1対nリレートの状態
演算子 in 指定時: oneとmanyにはリレーション の現在の状態が返る (値は2または3のみ) 省略時 (デフォルト): プログラムでリレーションが 変更されていなければ、oneとmanyに1が返される

説明   

GET FIELD RELATIONを使用すると、カレントプロセスの、manyFieldから開始するリレートの自動/マニュアルのステータスを調べることができます。ストラクチャウィンドウで設定した自動リレートをはじめとして、あらゆるリレートを調べることができます。

  • manyFieldには、状態を調べようとするリレートが開始するnテーブルのフィールド名を渡します。フィールドmanyFieldから開始するリレートが存在しない場合、引数onemanyには0が返されます。またエラーが返されて、システム変数OKには0が代入されます (後述)。
  • コマンドの実行後、引数oneには、指定したn対1リレートが自動に設定されているかどうかを示す値が格納されます:
    0 = manyFieldから始まるリレートが存在しません。シンタックスエラー16 (“このフィールドにはリレートが設定されていません。”) が生成され、システム変数OKには0が代入されます。
    1 = 指定されたn対1リレートの自動/マニュアルのステータスは、デザインモードのリレートプロパティ内の自動1対1リレートオプションにより設定されたものです (プログラムにより変更されていない)。
    2 = そのプロセスのn対1のリレートはマニュアルです。
    3 = そのプロセスのn対1のリレートは自動です。
  • コマンドの実行後、引数manyには、指定した1対nリレートが自動に設定されているかどうかを示す値が格納されます:
    0 = manyFieldから始まるリレートが存在しません。シンタックスエラー16 (“このフィールドにはリレートが設定されていません。”) が生成され、システム変数OKには0が代入されます。
    1 = 指定された1対nリレートの自動/マニュアルのステータスは、デザインモードのリレートプロパティ内の自動1対nリレートオプションにより設定されたものです (プログラムにより変更されていない)。
    2 = そのプロセスの1対nのリレートはマニュアルです。
    3 = そのプロセスの1対nのリレートは自動です。

oneおよびmany引数に返された値は、“” テーマの定数と比較することができます:

定数 コメント
Automatic 倍長整数 3 カレントプロセスに対し、リレートを自動に設定する。
Manual 倍長整数 2 カレントプロセスに対し、リレートをマニュアルに設定する。
No relation 倍長整数 0
Structure configuration 倍長整数 1 アプリケーションのストラクチャウインドウで指定されたリレートの設定を使用する。
  • オプションの引数 * を使用すると、プログラムから修正されていない場合でも、リレートのカレントステータスを“強制的に”読み込むことができます。言い換えれば引数 * を渡した場合、引数oneおよびmanyには値2または3だけが返されます。

例題  

以下のようなストラクチャがあります:

[Employees]Companyフィールドから[Companies]Nameフィールドへリンクするリレートのプロパティは次の通りです:

次のコードはGET FIELD RELATIONGET AUTOMATIC RELATIONSSET FIELD RELATION、およびSET AUTOMATIC RELATIONSにより提供されるさまざまな機能とともに、その効果を示します:

 GET AUTOMATIC RELATIONS(one;many) `False, Falseを返す
 GET FIELD RELATION([Employees]Company;one;many) `1,1を返す
 GET FIELD RELATION([Employees]Company;one;many;*) `3,2を返す
 
 SET FIELD RELATION([Employees]Company;2;0) `n対1リレーションをマニュアルに変更
 
 GET FIELD RELATION([Employees]Company;one;many) `2,1を返す
 GET FIELD RELATION([Employees]Company;one;many;*) `2, 2を返す
 
 SET FIELD RELATION([Employees]Company;1;0) `デザインモードで設定された
  `n対1リレーションに戻す
 
 GET FIELD RELATION([Employees]Company;one;many) `1,1を返す
 GET FIELD RELATION([Employees]Company;one;many;*) `3,2を返す
 
 SET AUTOMATIC RELATIONS(True;True`すべてのテーブルのすべてのリレーションを自動に設定
 
 GET AUTOMATIC RELATIONS(one;many) `True, Trueを返す
 GET FIELD RELATION([Employees]Company;one;many) `1,1を返す
 GET FIELD RELATION([Employees]Company;one;many;*) `3,3を返す



参照 

GET AUTOMATIC RELATIONS
GET RELATION PROPERTIES
SET AUTOMATIC RELATIONS
SET FIELD RELATION

 
プロパティ 

プロダクト: 4D
テーマ: リレーション
番号: 920

This command can be run in preemptive processes

 
履歴 

初出: 4D 2004

 
ARTICLE USAGE

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