把显示职工表的DBGrid2的Visible属性设为False,把‘人名’字段的Buttonstyle的属性
设为cbsEllipsis,在包含‘人名’字段的DBGrid1的OnEditButtonclick事件中写入代码,DBGrid2.Visible := True;
以上操作即可实现你的要求,然后可以在双击DBGrid2的事件中为人名’字段赋值并把
DBGrid2的Visible设为False.
设为cbsEllipsis,在包含‘人名’字段的DBGrid1的OnEditButtonclick事件中写入代码,DBGrid2.Visible := True;
以上操作即可实现你的要求,然后可以在双击DBGrid2的事件中为人名’字段赋值并把
DBGrid2的Visible设为False.
简单思路可以是:通过FieldByName('FieldName')取出人命,然后使用sql.add()语句将此变量作为一个参数传入一SQL语句中,可用类似select * from TableName where FieldName = :变量名。然后使用Prepare,在用Paramsbyname(变量名) := 人命。
如果不理解,请在联系我!
2.再说说实现方法:
同Michaelyfj,编写存放图书信息的DBGrid的datasource的OnDataChange函数。
关键是取得职工信息表中的相关数据的方法有多种,可以用sql,有一种简单方法,设置职工信息表Table的Filter,和Filtered属性就可以了。
设Table1是图书信息表,Table2是职工信息表Table2.Filter:='职工号='''+Table1.FieldByName('职工号').AsString+'''';
if not Table2.Filtered then Table2.Filtered:=True;就可以了。
我们假定如下:
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、完了
如果还有问题:[email protected]