項目を計算する

提供: RAD Studio
移動先: 案内検索

データセットの理解:インデックス への移動

項目エディタを使用すれば,データセットに計算項目を定義できます。データセットに計算項目が含まれている場合は,それらの項目の値を計算するコードを DB.OnCalcFields イベントハンドラ内に記述してください。

AutoCalcFields プロパティによって,OnCalcFields がいつ呼び出されるかが決まります。AutoCalcFieldstrue であれば,次の時点で OnCalcFields が呼び出されます。

  • データセットを開いたとき
  • データセットが編集モードに入ったとき
  • レコードをデータベースから取り出したとき
  • フォーカスがあるビジュアルコンポーネントから別のビジュアルコンポーネントに移動したり,データベース対応グリッドコントロールのある列から別の列に移動したとき

AutoCalcFields プロパティが false の場合,レコードの個々の項目の編集中(上の 4 番めの条件)は,OnCalcFields は呼び出されません。


警告: OnCalcFields イベントは頻繁に呼び出されるため,コードを短くする必要があります。また,AutoCalcFieldstrue の場合は,OnCalcFields が再帰的に呼び出されるため,データセット(またはマスター/詳細関係の一部分の場合はリンクされたデータセット)を変更する操作は実行しないようにします。たとえば,OnCalcFieldsPost を実行して AutoCalcFieldsTrue ならば,OnCalcFields が再び呼び出されて別の Post が実行され,これが続きます。

OnCalcFields を実行すると,データセットは dsCalcFields モードに入ります。このモードでは,イベントハンドラ自身が変更する計算項目を除いて,レコードに対する変更や追加はできません。目的とする計算項目以外の変更ができないのは,OnCalcFields が,ほかの項目の値を使って計算項目の値を決定するからです。もし,計算項目を処理している間に関係する項目が変更できたとすると,得られる結果は信頼できないものになるでしょう。OnCalcFields イベントが終了すると,データセットは dsBrowse 状態に戻ります。

関連項目