4D v16.3

APPLY TO SELECTION

ホーム

 
4D v16.3
APPLY TO SELECTION

APPLY TO SELECTION 


 

APPLY TO SELECTION ( aTable ; statement ) 
引数   説明
aTable  テーブル in ステートメントを適用するテーブル
statement  命令文 in 1行のコードで記述されたメソッド

説明   

APPLY TO SELECTIONは、aTableのカレントセレクションに対してstatementを適用します。statementは1行のステートメントまたはメソッドのどちらでも構いません。statementaTableのレコードを修正した場合、そのレコードをディスクに保存されます、レコードを修正しない場合には保存しません。カレントセレクションが空の場合、APPLY TO SELECTIONは何も行いません。リレーションが自動であれば、statementはリレート先のテーブルのフィールドを含むことができます。

APPLY TO SELECTIONは、カレントセレクションの情報 (例えば合計等) を求めるため、あるいはセレクション中のレコードを修正するため (例えばフィールドの頭文字を大文字に変える等) に使用します。このコマンドをトランザクション内で使用されている場合、トランザクション処理が取り消されると、すべての変更は無効とされます。

4D Server: statementに渡されるコマンドはサーバでは実行されません。セレクションの各レコードは修正のためローカルのワークステーションに送り返されます。

APPLY TO SELECTIONを実行している間、処理の進捗を表すサーモメータが表示されます。APPLY TO SELECTIONを呼び出す前に、MESSAGES OFFを使用してサーモメータの表示を取り消すことができます。サーモメータが表示されると、ユーザは処理をキャンセルすることができます。

以下の例題はテーブル [Employees] 中のカレントセレクションのレコードを大文字に変更します:

 APPLY TO SELECTION([Employees];[Employees]Last Name:=Uppercase([Employees]Last Name))

APPLY TO SELECTION実行中にレコードを修正して、そのレコードがロックされていると、更新は保存されません。ロックされたレコードはLockedSetと呼ばれるセットに格納されます。APPLY TO SELECTION実行後、LockedSetをテストしてロックされたレコードがなかったか確認します。以下のループはすべてのレコードが更新されるまで処理を実行します:

 Repeat
    APPLY TO SELECTION([Employees];[Employees]Last Name:=Uppercase([Employees]Last Name))
    USE SET("LockedSet") ` ロックされたレコードのみを選択
 Until(Records in set("LockedSet")=0) ` ロックされたレコードがなくなれば終了

この例題ではメソッドを使用します:

 ALL RECORDS([Employees])
 APPLY TO SELECTION([Employees];M_Cap)

ユーザが進捗サーモメータの停止ボタンをクリックすると、OKシステム変数に0が設定されます。そうでなければ1が設定されます。



参照 

EDIT FORMULA
セット

 
プロパティ 

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

このコマンドはOKシステム変数を更新しますこのコマンドはLockedSetシステムセットを更新しますThis command can be run in preemptive processesリモートモードでは動作が異なります。

 
履歴 

変更: 4D v11 SQL

 
ARTICLE USAGE

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