當前位置:編程學習大全網 - 編程語言 - delphi 7 DBGrid 實現下拉選擇後更新

delphi 7 DBGrid 實現下拉選擇後更新

以下是<Delphi的DBGrid的下拉列表>在用 Delphi 開發數據庫應用系統時,利用數據網格DBGrid 輸入數據時,有些字段只允許某幾個固定的字符串,像檔案案卷的保管期限,只有“永久”、“長期”和“短期”三種,可否從壹個下拉列表中進行選擇,從而方便輸入和避免輸入錯誤呢?還有壹些字段,例如職工信息庫中的單位編號(在另外的單位庫中保存著單位的詳細信息),在輸入和顯示職工數據時,能否不對單位編號進行操作,而代之於更加直觀的單位庫中的單位名稱呢?答案是肯定的,Delphi 的數據網格控件 DBGrid,支持下拉列表和查找字段的編程,而且,編程的過程都是可視化的,不需要寫壹行語句。

壹、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 屬性設置的下拉列表設計較為簡單。

  • 上一篇:常用辦公軟件有什麽
  • 下一篇:如何分配FPGA管腳
  • copyright 2024編程學習大全網