微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在Delphi DBGrid中可编辑的明细记录

如何解决在Delphi DBGrid中可编辑的明细记录

| 我有一个数据库(保存在Access .MDB文件中),该数据库记录工作人员及其任何缺勤情况,例如假期,疾病,培训课程,开始和结束日期以及生产时间的损失。 然后,我有一个绑定到\“ master \” ADO查询的dbgrid,该查询查找所有符合所选日期范围,部门,名称搜索字符串的条件的员工,总结损失的生产时间。 我有一个dbgrid绑定到包含缺勤记录的\“ detail \” ADO表。 理想的效果是,明细dbgrid仅应包含与“主记录”中所选行匹配的“缺勤”表中的那些记录(\“ master \” Staff和\“ detail \” Absence表均包含公用的EmployeeID字段)。 尽管我可以使用动态创建的ADO查询来实现此目的,每次用户移动到不同的主要职员记录时都可以更改查询,但我希望使用详细信息DBGrid作为删除,更新和添加其他缺勤记录的主要方法,完成网格查找;因此,用户可以选择记录类型,而不必记住该类型的代码。 我还希望此详细信息网格中的更改反映在主dbgrid中的摘要中。 我已经通过将详细的ADOTable作为MasterDetail链接到Staff Query来实现了,但是需要将filter设置为True,并在代码中控制onfilterevent;但是随着数据库大小的增加,它变得越来越慢。 有什么我可以做的以改善此性能,还是我会被迫将详细信息dbgrid设为纯只读,并通过其他表单或面板输入所有缺勤记录?     

解决方法

有关使表格成为另一个数据集的详细信息的更多信息
ADOTable2.MasterSource := DataSource1;
ADOTable2.MasterFields := \'EmployeeID\';
我还希望此详细信息网格中的更改反映在主dbgrid中的摘要中。编辑明细表并发布任何更改后,可以使用AfterPost事件重新计算摘要。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。