壹、DBGrid 中的下拉列表
在 DBGrid 網格中實現下拉列表,設置好 DBGrid 中該字段的 PickList 字符串列表、初始的序號值 DropDownRows 即可。以職工信息庫中的籍貫字段(字符串類型)為例,具體設計步驟如下:
1、在窗體上放置Table1、DataSource1、DBGrid1、DBNavigator1 等控件對象,按下表設置各個對象的屬性:
---------------------------------------
對象 屬性 設定值
---------------------------------------
Table1 DataBase sy1
Tablezgk.dbf //職工信息庫
DataSource1DataSetTable1
DbGrid1DataSource DataSource1
DBNavigator1 DataSource Datasource1
-------------------------------------------
2、雙擊Table1, 在彈出的Form1.Table1 窗口中,用右鍵彈出快捷菜單,單擊Add Fields 菜單項;選擇所有的字段後,按OK 按鈕。
3、修改第2 步新增字段的 DisplayLabel 屬性。以 Table1ZGBH 字段為例,在 Object Inspector 窗口中選擇 Table1ZGBH, 修改屬性 DisplayLabel= 職工編號,其余字段類似。
4、雙擊 DBGrid1, 在彈出的 Editing DBGrid1.Columns 窗口中,單擊 Add all Fields 按鈕,增加Table1 的所有字段。
5、在 Editing DBGrid1.Columns 窗口,選擇 jg 這壹行,切換到 Object Inspector 窗口,修改它的 PickList.Strings 為“湖北枝江市(換行)北京市(換行)河南平頂山市(換行)浙江德清市”
6、在 Form1.Oncreate 事件中寫入語句:
Table1.Open;
7、F9 運行,用鼠標點擊某個記錄的籍貫字段,右邊即出現壹個按鈕,點擊這個按鈕,可出現壹個下拉列表,包含第5 步中輸入的四行字符串,可用鼠標進行選擇。當然也可以自行輸入壹個並不屬下拉列表中的字符串。
二、DBGrid 中的查找字段
所謂查找字段 (LookUp Field),即 DBGrid 中的某個關鍵字段的數值來源於另外壹個數據庫的相應字段。運用查找字段技術,不僅可以有效的避免輸入錯誤,而且 DBGrid 的顯示方式更為靈活,可以不顯示關鍵字段,而顯示源數據庫中相對應的另外壹個字段的數據。
---- 例如,我們在 DBGrid 中顯示和編輯職工信息,包括職工編號、職工姓名、籍貫、所在單位編號,而單位編號來源於另壹個數據庫表格——單位庫,稱“單位編號”為關鍵字段。如果我們直接顯示和編輯單位編號的話,將會面對1、2、3 等非常不直觀的數字,編輯時極易出錯。但是如果顯示和編輯的是單位庫中對應的單位名稱話,將非常直觀。這就是DBGrid 的所支持的查找字段帶來的好處。
實現DBGrid 的查找字段同樣不需要任何語句,具體設計步驟如下:
1、在窗體上放置 Table1、Table2、DataSource1、DBGrid1、DBNavigator1 等控件對象,按下表設置各個對象的屬性:
---------------------------------------
對象 屬性 設定值
---------------------------------------
Table1 DataBase sy1
Tablezgk.dbf //職工信息庫
Table2 DataBase sy1
Tabledwk.dbf //單位信息庫
DataSource1DataSetTable1
DbGrid1DataSource DataSource1
DBNavigator1 DataSource Datasource1
------------------------------------------
2、雙擊 Table1, 在彈出的 Form1.Table1 窗口中,用右鍵彈出快捷菜單,單擊 Add Fields 菜單項;選擇所有的字段後,按OK 按鈕。
3、修改第2 步新增字段的 DisplayLabel 屬性。以 Table1ZGBH 字段為例,在 Object Inspector 窗口中選擇 Table1ZGBH, 修改屬性 DisplayLabel= 職工編號,其余字段類似。
4、設置 Table1DWBH.Visible=False。
5、在 Form1.Table1 窗口,用右鍵彈出快捷菜單,單擊 New Field 菜單項,新增壹個查找字段DWMC,在彈出的窗口設置相應的屬性, 按 OK 按鈕確認;在 Object Inspector 窗口,設置 Table1DWMC.DisplayLabel= 單位名稱。
6、在 Form1.Oncreate 事件中寫入語句:
Table1.Open;
7、按 F9 運行,當光標移至某個記錄的單位名稱字段時,用鼠標點擊該字段,即出現壹個下拉列表,點擊右邊的下箭頭,可在下拉列表中進行選擇。在這裏可以看出,下拉列表的內容來自於單位信息庫,並且不能輸入其他內容。
三、DBGrid 中的下拉列表和查找字段的區別
雖然 DBGrid 中的下拉列表和查找字段,都是以下拉列表的形式出現的,但兩者有很大的差別。
1、用 PickList 屬性設置的下拉列表,它的數據是手工輸入的,雖然也可以在程序中修改,但動態特性顯然不如直接由另外數據庫表格提取數據的查找字段。
2、用 PickList 屬性設置的下拉列表,允許輸入不屬於下拉列表中的數據,但查找字段中只能輸入源數據庫中關鍵字段中的數據,這樣更能保證數據的完整性。
3、用 PickList 屬性設置的下拉列表設計較為簡單。