14.4.5 設(shè)定字段對象的顯示格式
我們即可以在設(shè)計階段設(shè)定字段對象的顯示格式,也可以在運行過程中通過程序代碼來設(shè)定字段對象的顯示格式。
例14.2 在如圖14.10所示的窗體中,再增加一個TaxRate字段,并在程序設(shè)計過程中設(shè)定它的顯示格式為0.00%,即設(shè)置TaxRate字段對象的DisplayFormat屬性為0.00% , 若TaxRate的值為0.085那么在網(wǎng)格部件中其顯示的格式為8.50%。
在運行過程中我們通過程序代碼來設(shè)定字段Phone的顯示格式,美國的電話表示形式與中國的表示形式不一樣(如美國808-555-0269,中國(808) 5550269 ), 為此我們將phone 字段的值表示成中國式的形式。具體方法是:在 Object Inspector 中選取Table1phone對象,并為此對象的OnGetText事件編寫如下程序代碼:
TForm1.Table1PhoneGetText(Sender:TField;
Text:OpenString;DisplayText:Boolean);
begin
If DisplayText then
begin
Text:=Table1Phone.Value;
Delete(Text,4,1);
Delete(Text,7,1);
Insert('(',Text,1);
Insert(')',Text,1);
end;
end;
圖14.14 設(shè)定字段對象的顯示格式
14.4.6 自定義字段以及計算字段對象的創(chuàng)建
有時候為了使應(yīng)用程序完成所期望的工作,我們要在數(shù)據(jù)庫表現(xiàn)有字段的基礎(chǔ)上增加一些自定義的字段,這些字段并不是數(shù)據(jù)庫表中實際存在的字段,它們常常是根據(jù)數(shù)據(jù)庫表中的其它的字段動態(tài)地計算出來的,因而它們常常被稱為計算字段。
例如我們創(chuàng)建一個瀏覽ORDERS.DB表中記錄的應(yīng)用如圖14.15所示。
瀏覽ORDERS.DB表中的記錄
首先,我們想在顯示OREDRES.DB表的網(wǎng)格中增加一個自定義的字段對象,完成以下步驟:
1、雙擊窗體中的Table1,打開字段編輯器Fields Editor。
2、在Fields Editor窗口中,單擊鼠標(biāo)右鍵,選擇New Fields菜單項。
3、Delphi顯示New Fields對話框。選擇Field Type列表框中的Currency 項,并在Field Name文體框中輸入Balance , 這樣我們自定義了一個 CurrencyField 類型的字段Balance。Delphi會自動地填入相應(yīng)的字段對象名,其缺省值為Table1Balance。如圖14.16所示。
圖14.16 New Field 對話框
4、單擊Ok按鈕,關(guān)閉New Field對話框。當(dāng)Fields Editor 窗口重新出現(xiàn)時, 注意Balance已經(jīng)出現(xiàn)在Fields列表框中。
5、在Fields Editor 窗口中單擊鼠標(biāo)右鍵, 并選擇 Add Fields 菜單項,打開AddFields對話框。
6、從Available Fields 列表框中, 按住 Ctrl 鍵并單擊鼠標(biāo)左鍵,選擇字段:
OrderNo、CustNo、SaleDate、ShipData、ItemsTotal、Amountpaid以及Balance.
7、單擊OK按鈕,關(guān)閉Add Fields對話框,得到如圖14.17所示的Fields Editor窗口。
圖14.17 字段編輯器Fields Editor
8、雙擊Fields Editor的控制盒關(guān)閉字段編輯器Fields Editor。
至此我們已經(jīng)為Table1創(chuàng)建了一個自定義的字段對象Balance,下面我們把Balance字段設(shè)置成計算字段對象,使其顯示每一個客戶的現(xiàn)金余額,即此字段的值是由ORDERS. DB表中ItemsTotal和Amountpaid字段的值計算而來的。為使應(yīng)用程序?qū)崿F(xiàn)這種計算功能,完成以下步驟:
1、在Object Inspector中選擇自定義字段對象Table1Balance,修改其 Calculated屬性值為True。即定義Balance字段為計算字段。
2、在Object Inspector窗口中,選擇Table1部件的Event頁。
3、雙擊OnCalcField事件,為Table1OnCalcField編寫事件處理過程如下:
procedure TForm1.Table1OnCalcFields(DataSet:TDataSet);
begin
Table1Balance.Value:=Table1ItemsTotal.Value-Table1AmountPaid.Value;
end;
瀏覽ORDERS.DB 中的記錄
相關(guān)推薦:2010年9月計算機(jī)等級考試試題及答案解析專題北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |