年齢を入力する項目「birth」から、値を取り出して、年齢を計算させてみました。
すぐに忘れる弱頭脳なので、ここも忘備録を書いておきます。
前回、値の参照をやってみましたが、同じような方法で計算した結果を表示させることができます。
「ABSTable1」を右クリックして、「項目の設定」-「項目の新規作成」を選択します。
次のような「AGE」項目を追加しました。ここで「計算項目」にチェックをします。
上画像のDBEdit(歳の前)「DataField」プロパティに、項目名「AGE」を入れます。(選択)
次はいよいよプログラムを書きます。数行ですけど。
ABSTable1を選択し、OnCalcFieldsイベントをダブルクリックします。
イベントには次のようなプログラムを書きます。
日付を分解してくれるという便利な関数があるみたいです。
便利ですねぇ・・・Delphi好きになりそうです(^^;
//計算フィールドの実行 procedure TMainForm.ABSTable1CalcFields(DataSet: TDataSet); var theDateTime: TDateTime; //日付型変数 theYear, theMonth, theDate: Word;//ワード型変数 theNowYear: Word; begin //誕生日フィールドの値を取得 theDateTime := ABSTable1.FieldByName('birth').AsDateTime; //指定された日付を年・月・日に分解する関数 DecodeDate(theDateTime, theYear, theMonth, theDate); //今日の日付を分解 DecodeDate(Now, theNowYear, theMonth, theDate); //年齢を計算し、計算項目に結果を代入 ABSTable1.FieldByName('AGE').AsInteger := theNowYear - theYear; end;