表BoardRoom中有字段state 取值如下:
1:表示“正常”
0:表示“维修中”
-1:表示“作废”
在界面中,我们不想显示1,0,-1这样的数据,而想显示“正常”,“维修中”,“作废”
当用户进行新增操作时,我们也不想让用户去选1,0,-1这样的数据,而想通过下拉“正常”,“维修中”,“作废”这些项让用户选择,
怎么办呢?
一般的字段,在DELPHI中我们通常都使用DBEDIT控件来直接关联到数据库中,但上述情形却不能直接DBComBox控件
这里提供一种解决方案:
假设主数据集为:ADO_BoardRoom,对应的DataSource为:DS_BoardRoom
添加一个数据集控件:ADO_StateItems,对应的DataSource为:DS_StateItems ,用于放下拉选项数据
为state字段添加一个DBLookupComBox控件,其中:
DataSource设置为DS_BoardRoom ,DataField设置为state
ListSource设置为DS_StateItems ,ListField设置为stateName, KeyField设置为stateID
使用union all 将“正常”,“维修中”,“作废”,1,0,-1 组合成SQL并赋给ADO_StateItems数据集,如下:
select 1 as stateID,'正常' as stataName union all select 0 as stateID,'维修中' as stataName
union all select -1 as stateID,'作废' as stataName
这样就可以了。。。