在许多数据表中,数据是以代码方式存放的,如在班级编码数据表tB03(表5.5)中,系部字段TB0309采用编码方式存放,系部真实名称则存放在系部编码表TB06。使用代码的好处是,用户可在编码表TB06中改变TB0602字段的系部名称,而不会影响使用该编码的其他数据表(如TB03)的运行6其缺点是当用户输人数据编码时,必须查询编码所表示的含义,如“OO"代表“基础部”、“1 O”表示“机械系"等,这给数据录入带来很大的麻烦。最好的方法是用户 在程序界面中直接选择系部名称,而实际录入的是系部编码。为此,Delphi提供了DBLookup.ConboBox、DBI,ookupListBox数据界面组件,帮助用户解决上述问题。
DBLookupConboBox组件和DBComboBox组件的功能相似,都是通过选择下拉列表框中的数 据项来录入当前记录指定字段值。所不同的是,D BConboBox组件列表框中的内容是通过Items 属性由程序员输入的,而DBLookupConboBox组件的列表框中的内容是由数据库编码表提供的。 因此,DBLookupComboBox组件是没有Items属性的。在使用DBlookupComboBox组件编辑数据表字段值时,必须先放置两个数据集组件(Table)。一个对应于要录入数据的主表(如班级编码表Table_TB03),另一个对应于数据编码从表(如系部编码表Table一TB06),再放人2个数据源组件:DataSource_TB03、DataSouroe_TB06,后按如下步骤设置其属性。
1.重要属性
(1)DataSource属性
该属性用于连接要编辑数据的主表数据源,如学生班级表数据源DataSource—TB03。
(2)DataField属性
该属性用于指定要编辑的数据字段名,如TB03中的系部编码字段TB0309。
(3)ListSource属性 。
该属性用于提供连接数据编码的从表数据源,如系部编码数据源DataSource—TB06。
(4)KeyField属性
该属性用于指定数据编码从表的关键字,一般为数据编码字段,如系部数据编码字段
TB060 1 o
(5)ListField属性
该属性用于选择数据表中要在列表框中显示的字段名称,如系部名称TB0602。
通过上述5个属性的设置,就能用DBLookupComboBox组件的下拉列表框录人所需数据编
(6)DropDownAlign属性
该属性用于设置下拉列表框中数据项的排列 方式,可以为如下值:daLeft、daRight、daCenter,分别为左对齐、右对齐与居中对齐。
(7)DropDownRows属性
该属性用于设置下拉列表框默认显示行数,如设置1 O行等o
(8)DropDownWidth属性
该属性用于设置下拉列表框的宽度。若值为 O表示与编辑框等宽。
2.常用方法与事件
(1)CloseUp方法
若组件被下拉结束后,此时只显示编辑框而不显示下拉列表框,则触发OnCloseUp事件。
(2)DropDown方法
若组件被下拉尚未结束,此时显示下拉列表框,则触发OnCloseUp事件