用DbgridEh制作下拉列表.doc
怎么用DbgridEh制作下拉列表框1, 设置好Adoquery的LookUp字段 关联的主键和返回字段 2, 设置DBGRIDEH相应字段的的alwaysShowEditButton = true 3, 设置好DbgridEh相应字段的LookUpdisplayFields 但就是运行后点击按钮不能出现下拉列表框呀! 3: ButtonStyle--cbsDropDown->PickList->在keylist中增加对应的关键值 在 Delphi 开发环境中,DbgridEh 是一个强大的组件,用于展示和编辑数据库中的数据。制作下拉列表框在数据库应用中非常常见,通常用于提供用户友好的选择界面。以下是如何使用 DbgridEh 制作下拉列表框的详细步骤: 1. **设置 Adoquery 的 LookUp 字段**: 在 ADOQuery 对象中,你需要配置一个 LookUp 字段,用于关联主键和返回字段。假设你有两个表,一个是主表(例如职工讯息表),一个是参照表(例如部门表)。在参照表中找到与主表关联的字段,例如在本例中,`bmbh` 是部门编号,它在两个表中都存在。在 ADOQuery 的字段编辑器中,创建一个新的 Lookup 字段,将 `FieldKind` 属性设置为 `lkpLookup`,然后设置 `KeyFields` 属性为职工表中与 `bmbh` 相关的字段(如 `bh`),`LookupDataset` 为部门表(ADOQuery2),`LookupKeyFields` 也为 `bmbh`,最后 `LookupResultField` 设为部门表中的描述字段(如 `bmmc`)。 2. **设置 DBGridEh 的 alwaysShowEditButton 属性**: 为了让字段显示编辑按钮,你需要设置对应列的 `alwaysShowEditButton` 属性为 `True`。这样,当用户聚焦到该列时,会显示一个可点击的按钮来激活下拉列表。例如,你可以设置 `DBGridEh1.Columns[3].AlwaysShowEditButton := True`,这里的 `[3]` 表示第四个字段,因为 Delphi 中数组索引是从零开始的。 3. **设置 LookUpDisplayFields**: `LookUpDisplayFields` 属性用于指定在下拉列表中显示的字段。在本例中,为了显示部门名字,你可以设置 `DBGridEh1.Columns[3].LookUpDisplayFields := 'bmmc'`。 4. **设置 ButtonStyle**: 如果你想让按钮直接呈现为下拉列表样式,可以设置 `ButtonStyle` 属性。将 `ButtonStyle` 设置为 `cbsDropDown`,然后设置为 `PickList`,最后在 `KeyList` 中添加相应的关键值。例如,你可以添加部门名称到 `PickList` 中,代码如下: ```delphi query.sql.text := 'select distinct 产品分类 from ProjSort'; query.open; query.first; while not query.eof do begin dbgrideh.columns[1].picklist.add(query.fieldbyname('产品分类').asstring); query.next; end; ``` 这段代码将从 `ProjSort` 表中获取独特的分类,并将其添加到列 `[1]` 的 `PickList` 中。 5. **检查数据集状态**: 确保数据集已经打开并定位到第一条记录,否则下拉列表可能无法正常显示。在添加到 `PickList` 之前,使用 `query.open` 和 `query.first` 来确保数据准备就绪。 6. **处理特殊情况**: 如果遇到“Field ‘bh’ not found”这类错误,检查 `KeyFields` 是否正确引用了主表中的字段。如果 `ReadOnly` 属性变为 `True` 导致无法选择,可能是因为 SQL 查询的影响。一种解决方法是在 SQL 查询末尾添加一个空的 `UNION SELECT` 语句,但这不是最优解。建议检查 SQL 语句是否正确,并确保 `ReadOnly` 属性在整个操作过程中保持预期的状态。 通过以上步骤,你应该能够在 DbgridEh 的指定列上创建一个功能完备的下拉列表框。请注意,DbgridEh 的具体设置可能会根据你的实际需求和数据库结构有所不同,所以灵活调整和测试是必不可少的。在 Delphi 开发中,理解组件的属性和方法以及数据库操作是构建高效应用的关键。
- 粉丝: 41
- 资源: 6
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 环境监测系统源代码全套技术资料.zip
- 前端分析-2023071100789
- 前端分析-2023071100789
- 基于springboot的调查问卷管理系统源代码全套技术资料.zip
- MATLAB代码:计及碳排放交易及多种需求响应的微网 电厂日前优化调度 关键词:碳排放交易 需求响应 空调负荷 电动汽车 微网 电厂优化调度 参考文档:计及电动汽车和需求响应的多类电力市场下
- 全国高校计算机能力挑战赛往届真题整理
- 小程序毕业设计项目-音乐播放器
- MATLAB代码:考虑多微网电能互补与需求响应的微网双层优化模型 关键词:多微网 电能互补 需求响应 双层优化 动态定价 能量管理 参考文档:《自编文档》 仿真平台:MATLAB+CPLEX 主要
- 智慧校园后勤管理系统源代码全套技术资料.zip
- MATLAB代码:含多种需求响应及电动汽车的微网 电厂日前优化调度 关键词:需求响应 空调负荷 电动汽车 微网优化调度 电厂调度 仿真平台:MATLAB+CPLEX 主要内容:代码主要做的是一
- 1
- 2
前往页