程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> 如何在Delphi中用代碼來完成計算字段的創建

如何在Delphi中用代碼來完成計算字段的創建

編輯:Delphi
    以前CSDN上有好多人問過這個問題,但是好象沒有人給出滿意的答案。我也是經過好長時間摸索才找到答案,現在在這給大家分享:
  procedure TForm1.FormCreate(Sender: TObject);
  var
    NewField:TFIEld;
    i:integer;
  begin
  //表中有兩字段SName,Birth,現在我們動態生成一個計算字段Age,顯示出年齡
    NewField:=TStringFIEld.Create(ADOTable);
    //創建一個TStringFIEld類型的字段
    ADOTable.Close;
    for i:=0 to ADOTable.FIElds.Count-1 do
      ADOTable.FIElds[0].Free;//釋放所有的靜態字段
    for i:=0 to ADOTable.FIEldDefs.Count-1 do
      ADOTable.FieldDefs.Items[i].CreateFIEld(ADOTable);
   //根據FIEldDefs的字段信息動態的生成靜態字段 
    NewFIEld.Size:=5;
    NewField.FIEldName:='Age';
    NewField.FIEldKind:=fkCalculated;
   //設置這個這字段為計算字段
    NewFIEld.DataSet:=ADOTable;
   //把這個字段加到ADOTable上
    ADOTable.Open;
  end;

  

  procedure TForm1.ADOTableCalcFIElds(DataSet: TDataSet);
  var
    YY1,YY2,MM,DD:Word;
    TmpDate:TDate;
  begin
    DecodeDate(Date,YY1,MM,DD);
    TmpDate:=DataSet.FIEldByName('Birth').AsDateTime;
    DecodeDate(TmpDate,YY2,MM,DD);
    DataSet.FIEldByName('Age').AsString:=IntToStr(YY1-YY2)+'歲';
    //在OnCalFIEld中顯示出年齡
  end;
  以上是我用ADO寫的。一開始我用BDE寫的,也一樣都可以通過.


  
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved