Modified

4D - Documentation   French   English   German   Spanish   日本語   4D v11 SQLコマンドテーマリスト   4D v11 SQLインデックス   4D v11 SQL定数テーマリスト   戻る   前   次

version 2004 (Modified)

互換性に関する注意

この関数は互換性のために保持されています。この関数は、バージョン6の4Dで廃止されたイベントの管理方法 (Before, Duringその他のコマンド参照) に基づいています。現在は、Form eventコマンドを使用し、On Data Changeイベントが返されるかどうかをチェックする方法の使用を強く推奨します。


Modified (field) ブール

引数説明
fieldフィールドテストするフィールド
戻り値ブールフィールドに新しい値が代入されていればTrue,
そうでなければFalse

説明

Modifiedはデータ入力中、プログラムを使用してfieldに値が代入されていたり、値が編集された場合に、Trueを返します。Modifiedコマンドはフォームメソッド(またはフォームメソッドから呼ばれたサブルーチン)で使用されなければなりません。

このコマンドは同じ実行サイクル内でのみ意味のある値を返します。特に以前のDuring実行サイクルに対応するフォームイベントでは、Falseに設定されます。

データ入力時には、(元の値が変更されたかどうかに関わらず)ユーザがフィールドを編集した後別のフィールドへ移動するか、コントロールをクリックすると、フィールドが更新されたとみなされます。tabキーでフィールドを移動しただけでは、ModifiedはTrueにならない点に注意してください。ModifiedがTrueになるためには、フィールドが編集されなければなりません。

メソッドの実行時には、フィールドに値が割り当てられると(異なる値かどうかに関係なく)、フィールドが編集されたものと解釈されます。

Note: Modifiedは、PUSH RECORDPOP RECORDコマンド実行後は、常にTrueを返します。

いずれの場合でも、フィールドの値が実際に変更されたかどうかを調べるには、Old コマンドを使用します。

Note: Modifiedはあらゆるタイプのフィールドに対して適用できますが、このコマンドをOld コマンドと組み合わせて使用する場合には、Old コマンドの制約に注意してください。詳細についてはOld コマンドの説明を参照してください。

データ入力時には、フォームメソッドでModifiedを使用するよりも、オブジェクトメソッドで処理を実行する方が簡単です。フィールドが修正される度にOn Data Changeイベントがオブジェクトメソッドに送信されるので、オブジェクトメソッドの利用はフォームメソッドでModifiedを使用したのと同じ意味を持ちます。

Note: 処理を正しく実行するため、Modified コマンドはフォームメソッドまたは、フォームメソッドから呼び出されるメソッド内でのみ使用します。

例題

1. 次の例は、[Orders]Quantity フィールドや[Orders]Price フィールドが変更されたかどうかを判定します。どちらかが変更されると、[Orders]Total フィールドを再計算します。

   If ((Modified ([Orders]Quantity) | (Modified ([Orders]Price))  
         [Orders]Total :=[Orders]Quantity*[Orders]Price
   End if

2番目の行をサブルーチンにして、[Orders]Quantity フィールドと[Orders]Price フィールドのオブジェクトメソッドのOn Data Changeフォームイベントでそのサブルーチンを呼び出しても、同じ結果となります。

2. [anyTable]テーブルのレコードを選択し、次に[anyTable]Important fieldフィールドが修正される可能性がある複数のサブルーチンを呼び出しますが、これらのメソッドはレコードの保存を行いません。メインのメソッドの終わりで、Modified コマンドを使用してレコードを保存する必要があるかどうかを調べています:

      ` レコードがカレントレコードとし選択済みです
      ` サブルーチンを使用し処理を行います
   DO SOMETHING
   DO SOMETHING ELSE
   DO NOT FORGET TO DO THAT
      ` ...
      ` レコードを保存する必要があるか検証します
   If (Modified([anyTable]Important field))
      SAVE RECORD([anyTable])
   End if

参照

Form event, Old.


4D - Documentation   French   English   German   Spanish   日本語   4D v11 SQLコマンドテーマリスト   4D v11 SQLインデックス   4D v11 SQL定数テーマリスト   戻る   前   次