在許多(duō)數據表中(zhōng),數據是以代碼方式存放的,如在班級編碼數據表tB03(表5.5)中(zhōng),系部字段TB0309采用(yòng)編碼方式存放,系部真實名(míng)稱則存放在系部編碼表TB06。使用(yòng)代碼的好處是,用(yòng)戶可(kě)在編碼表TB06中(zhōng)改變TB0602字段的系部名(míng)稱,而不會影響使用(yòng)該編碼的其他(tā)數據表(如TB03)的運行6其缺點是當用(yòng)戶輸人數據編碼時,必須查詢編碼所表示的含義,如“OO"代表“基礎部”、“1 O”表示“機械系"等,這給數據錄入帶來很(hěn)大的麻煩。最好的方法是用(yòng)戶 在程序界面中(zhōng)直接選擇系部名(míng)稱,而實際錄入的是系部編碼。為(wèi)此,Delphi提供了DBLookup.ConboBox、DBI,ookupListBox數據界面組件,幫助用(yòng)戶解決上述問題。
DBLookupConboBox組件和DBComboBox組件的功能(néng)相似,都是通過選擇下拉列表框中(zhōng)的數 據項來錄入當前記錄指定字段值。所不同的是,D BConboBox組件列表框中(zhōng)的内容是通過Items 屬性由程序員輸入的,而DBLookupConboBox組件的列表框中(zhōng)的内容是由數據庫編碼表提供的。 因此,DBLookupComboBox組件是沒有(yǒu)Items屬性的。在使用(yòng)DBlookupComboBox組件編輯數據表字段值時,必須先放置兩個數據集組件(Table)。一個對應于要錄入數據的主表(如班級編碼表Table_TB03),另一個對應于數據編碼從表(如系部編碼表Table一TB06),再放人2個數據源組件:DataSource_TB03、DataSouroe_TB06,後按如下步驟設置其屬性。
1.重要屬性 (1)DataSource屬性 該屬性用(yòng)于連接要編輯數據的主表數據源,如學(xué)生班級表數據源DataSource—TB03。 (2)DataField屬性 該屬性用(yòng)于指定要編輯的數據字段名(míng),如TB03中(zhōng)的系部編碼字段TB0309。 (3)ListSource屬性 。 該屬性用(yòng)于提供連接數據編碼的從表數據源,如系部編碼數據源DataSource—TB06。 (4)KeyField屬性 該屬性用(yòng)于指定數據編碼從表的關鍵字,一般為(wèi)數據編碼字段,如系部數據編碼字段 TB060 1 o (5)ListField屬性 該屬性用(yòng)于選擇數據表中(zhōng)要在列表框中(zhōng)顯示的字段名(míng)稱,如系部名(míng)稱TB0602。 通過上述5個屬性的設置,就能(néng)用(yòng)DBLookupComboBox組件的下拉列表框錄人所需數據編 (6)DropDownAlign屬性 該屬性用(yòng)于設置下拉列表框中(zhōng)數據項的排列 方式,可(kě)以為(wèi)如下值:daLeft、daRight、daCenter,分(fēn)别為(wèi)左對齊、右對齊與居中(zhōng)對齊。 (7)DropDownRows屬性 該屬性用(yòng)于設置下拉列表框默認顯示行數,如設置1 O行等o (8)DropDownWidth屬性 該屬性用(yòng)于設置下拉列表框的寬度。若值為(wèi) O表示與編輯框等寬。
2.常用(yòng)方法與事件
(1)CloseUp方法 若組件被下拉結束後,此時隻顯示編輯框而不顯示下拉列表框,則觸發OnCloseUp事件。 (2)DropDown方法 若組件被下拉尚未結束,此時顯示下拉列表框,則觸發OnCloseUp事件。
|