version 2004
SET FIELD RELATION (manyTable | manyField; one; many)
| 引数 | 型 | 説明 | |
| manyTable | manyField | テーブル | フィールド | リレーションの開始テーブル, または | |
| リレーションの開始フィールド | |||
| one | 倍長整数 | テーブルまたはフィールドを開始点とする | |
| n対1リレーションの状態 | |||
| many | 倍長整数 | テーブルまたはフィールドを開始点とする | |
| 1対nリレーションの状態 |
説明
SET FIELD RELATION コマンドを使用すると、デザインモードのリレートプロパティウィンドウで設定した初期状態が何であれ、データベースの各リレートの自動/マニュアルの状態を個別に設定できます。
1番目の引数には、テーブルやフィールドの名前を渡します:
・フィールド名 (manyField) を渡すと、コマンドは指定したnフィールドから開始するリレートに対してのみ適用されます。
・テーブル名 (manyTable) を渡すと、コマンドは指定したnテーブルから開始するリレートに対してのみ適用されます。
・manyFieldまたはmanyTableから開始するリレートが存在しない場合、シンタックスエラー16(“このフィールドにはリレートが設定されていません。”)が生成され、システム変数OKには0が代入されます。
引数oneとmanyには、指定した1対nリレートやn対1リレートに適用される自動/マニュアルの状態を示す値を渡します。この値として、“Relations”テーマの定数を使用できます:
・Do not modify (0) = リレートの現在のステータスを変更しない。
・Structure configuration (1) = アプリケーションのストラクチャウインドウで指定されたリレートの設定を使用する。
・Manual (2) = カレントプロセスに対し、リレートをマニュアルに設定する。
・Automatic (3) = カレントプロセスに対し、リレートを自動に設定する。
Note: このコマンドを使用して行った変更は、カレントプロセスに対してのみ適用されます。リレートプロパティウィンドウのオプションを用いて指定されたリレート設定は変更されません。
例題
このコマンドを使用することにより、クイックレポートのリレート管理がさらに容易になります。以前のバージョンの4Dでは、エディタ上でリレートを利用するには、すべてのリレートを自動に設定する必要がありました。次のコードを使用すると、有用なリレートだけを自動に設定できるようになります:
SET AUTOMATIC RELATIONS(False;False) `すべのリレーションをリセット `以下のリレーションのみを使用する SET FIELD RELATION([Invoices]Cust_IDt;Automatic;Automatic) SET FIELD RELATION([Invoice_Row]Invoice_ID;Automatic;Automatic) QR REPORT([Invoices];Char(1);True;True;True)
参照
GET AUTOMATIC RELATIONS, GET FIELD RELATION, GET RELATION PROPERTIES, SET AUTOMATIC RELATIONS.