Delphi 中使用計算出的字段

在不少狀況下,咱們須要的數據與數據庫中其它字段的數據相關,例如訂單的金額爲數量與單價的乘積。在應用程序中,若要在顯示訂單具體條目的同時顯示金額,一般要建立一個字段,在顯示該字段以前先進行乘法運算,將金額值存儲在該字段中。可是,若用戶修改了數量或單價,那就不得不更改金額值。這個問題馬上變得複雜起來,幸虧Delphi提供了在數據庫表中定義附加字段的容易方法。這種字段被稱爲計算出的字段(Calculatedfields),它們以數據庫表中的其餘字段爲基礎。計算出的字段的優勢是計算出的值不被存儲在數據庫中,不過,每次記錄發生變化時都要對其進行計算,且須要訪問和顯示字段。下面說明使用計算出的字段的方法。
  1. 創建新的工程文件project1, 在form1上放置一個Table、一個Datasource和一個Dbgrid 控件,Datasource1的Datasource 屬性爲Table1,Dbgrid1的Datasource屬性爲Datasource1。Table1中所用的數據庫表爲order.db,將Table1的Active屬性置爲True。 下面是Table1的定義:html

字段名
類型
說明字段含義
Productid
+產品
編號
Quantity
N
數量
Price
$
單價

  2. 添加計算出的字段Cash。用鼠標右鍵單擊Table1組件,在彈出菜單中選取FieldsEditor…項,進入字段編輯器;再用鼠標右鍵單擊字段編輯器的字段顯示區? 在彈出菜單中選取Add Fields…項,將<fontface="bookantiqua">Table1的全部字段都加入字段編輯器中;再次用鼠標右鍵單擊字段編輯器的字段顯示區域,在彈出菜單中選取New Field…項,進入新字段編輯器,設新字段的Name爲Cash,Type爲<fontface="bookantiqua">Currency,FieldType爲Calculated,用鼠標單擊OK命令按鈕,即完成了添加計算出的字段Cash。 
  3 .添加<fontface="bookantiqua">Table1的OnCalcFields事件。其代碼爲:數據庫

procedureTForm1.Table1CalcFields(DataSet: TDataSet);
var
quantity1:single;
price1:Currency;
begin
quantity1:=Table1.FieldByName(quantity).asfloat; //數量
price1:=Table1.FieldByName(price).asCurrency; //單價
Table1.FieldByName(cash).asCurrency:=quantity1*price1; //應付資金
end;編輯器

  運行程序,你能夠在表格的Quantity 和Price欄中任意修改數據並移動記錄,Cash欄即刻顯示出與 之相應的金額值。spa

相關文章
相關標籤/搜索