数据网格是非常流行的数据输入和显示形式,像大家熟悉的Excel97、VFP中的功能强大的BROWS等,为广大程序员乐于采用。在用Delphi开发数据库应用系统时,利用数据网格DBGrid输入数据时,有些字段只允许某几个固定的字符串,像档案案卷的保管期限,只有“永久”、“长期”和“短期”三种,可否从一个下拉列表中进行选择,从而方便输入和避免输入错误呢?还有一些字段,例如职工信息库中的单位编号(在另外的单位库中保存着单位的详细信息),在输入和显示职工数据时,能否不对单位编号进行操作,而代之于更加直观的单位库中的单位名称呢?答案是肯定的,Delphi的数据网格控件DBGrid,支持下拉列表和查找字段的编程,而且,编程的过程都是可视化的,不需要写一行语句。
一、DBGrid中的下拉列表
在DBGrid网格中实现下拉列表,设置好DBGrid中该字段的PickList字符串列表、初始的序号值DropDownRows即可。以职工信息库中的籍贯字段(字符串类型)为例,具体设计步骤如下:
1、在窗体上放置Table1、DataSource1、DBGrid1、DBNavigator1等控件对象,按下表设置各个对象的属性:
对象 | 属性 | 设定值 |
Table1 | DataBase | sy1 |
TableName | zgk.dbf | //职工信息库 |
DataSource1 | DataSet | Table1 |
DbGrid1 | DataSource | DataSource1 |
DBNavigator1 | DataSource | Datasource1 |
2、双击Table1
在弹出的Form1.Table1窗口中,用右键弹出快捷菜单,单击AddFields菜单项;选择所有的字段后,按OK按钮。
3、修改第2步新增字段的DisplayLabel属性。以Table1ZGBH字段为例,在ObjectInspector窗口中选择Table1ZGBH
修改属性DisplayLabel=职工编号,其余字段类似。
4、双击DBGrid1
在弹出的Editing DBGrid1.Columns窗口中,单击AddallFields按钮,增加Table1的所有字段。
5、在EditingDBGrid1.Columns窗口,选择jg这一行,切换到ObjectInspector窗口,修改它的PickList.Strings为“湖北枝江市、北京市、河南平顶山市、浙江德清市”
6、在Form1.Oncreate事件中写 入语句:
Table1.Open;
7、F9运行,用鼠标点击某个记录的籍贯字段,右边即出现一个按钮,点击这个按钮,可出现一个下拉列表,包含第5步中输入的四行字符串,可用鼠标进行选择。当然也可以自行输入一个并不属下拉列表中的字符串。