指点!指点!先感谢了!

amyfun 2000-07-14 07:12:00
一个表包括借阅出去的图书信息
“书名”、“编号”、“日期”、“人名”、“科室”....等等,
另一个表包括职工的信息
“职工号”、“人名”、“联系电话”、“职称”....等等;

我想在(借阅出去的图书表)DBGrid中的“人名”字段上点击一下,然后在另一个DBGrid中显示职工表的内容,不知该如何做?
...全文
176 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
华南虎哥 2000-07-17
  • 打赏
  • 举报
回复
我认为不应该使用主细表结构来定位这个问题!
我们假定如下:
booktbl:借阅出去的图书信息(其中包含employeeID字段)
employeetbl:职工的信息
我们设定:
1、booktbl,employeetbl均为相对独立的表
2、设置DBGRID1的ondatachange(...)过程如下:
employeetbl.filtered:=false;
employeetbl.filter:='';
employeetbl.Filter:='employeeid='''+booktbl.FieldByName('employeeid').AsString+'''';
employeetbl.Filtered:=True;
3、完了
如果还有问题:hblinux@163.net
Hibin 2000-07-17
  • 打赏
  • 举报
回复
主细表结构,很简单的。在借阅图书信息表中,最好用职工号代替人名。
蝈蝈俊 2000-07-17
  • 打赏
  • 举报
回复
主细表结构。看看书,很简单的,
huliao 2000-07-17
  • 打赏
  • 举报
回复
1.可以看出你要做的应用是一个图书借阅的管理应用,那在你的设计中就有一定的问题,在这个应用中有两张表,一张是图书信息表,一张是职工信息表,考虑到职工有可能重名,因此应该给职工信息表设计一个主键(KEY),这个主键应是职工信息表的职工号,是唯一而不重复的,这时借阅时产生的关联可以通过这个主键实现。而不是通过人名实现。
2.再说说实现方法:
同Michaelyfj,编写存放图书信息的DBGrid的datasource的OnDataChange函数。
关键是取得职工信息表中的相关数据的方法有多种,可以用sql,有一种简单方法,设置职工信息表Table的Filter,和Filtered属性就可以了。
设Table1是图书信息表,Table2是职工信息表

Table2.Filter:='职工号='''+Table1.FieldByName('职工号').AsString+'''';
if not Table2.Filtered then Table2.Filtered:=True;

就可以了。
Michaelyfj 2000-07-16
  • 打赏
  • 举报
回复
编写存放图书信息的DBGrid的datasource的OnDataChange函数。
牛魔王的表弟 2000-07-16
  • 打赏
  • 举报
回复
简单的一对多,看书吧
pjy 2000-07-15
  • 打赏
  • 举报
回复
这个问题很简单,看一看范例或书就应该很清楚了!
简单思路可以是:通过FieldByName('FieldName')取出人命,然后使用sql.add()语句将此变量作为一个参数传入一SQL语句中,可用类似select * from TableName where FieldName = :变量名。然后使用Prepare,在用Paramsbyname(变量名) := 人命。
如果不理解,请在联系我!
Wingsun 2000-07-14
  • 打赏
  • 举报
回复
看一看Delphi下的例程,在Demos\Db\Mastapp下。
Bald_eagle 2000-07-14
  • 打赏
  • 举报
回复
把显示职工表的DBGrid2的Visible属性设为False,把‘人名’字段的Buttonstyle的属性
设为cbsEllipsis,在包含‘人名’字段的DBGrid1的OnEditButtonclick事件中写入代码,DBGrid2.Visible := True;
以上操作即可实现你的要求,然后可以在双击DBGrid2的事件中为人名’字段赋值并把
DBGrid2的Visible设为False.

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧