关于DbGrid(100分)

  • 主题发起人 主题发起人 sun.sir
  • 开始时间 开始时间
S

sun.sir

Unregistered / Unconfirmed
GUEST, unregistred user!
我在做入库单时,Form 上部分为入库主单(数据将进入数据表InStockM)(用Edit,Combox等实现 ),Form 下部分为入库细单(数据录入部份用DbGrid实现,数据将进入数据表InStockD),但是InstockD表有一个InStockM表的入库单单号字段,但是不用用户录入,这样在Dbgrid直接录入数据时,怎样可以实现让网格每增加一条纪录,可以给InStockD表自动加入入库主单的单号!
那位大虾给指点一下,万分感谢!
 
InStockM可以不在DBGRID中显未,可以数据库定义为自增量或在程序中直接赋值
table1.fieldbyname('InStockM'):=...;
 
InStockM,InStockD均为数据表!
我的想法是在Form中将入库主单号自动的加入入库细单中,每移动一行,主单号均是自动地添加入入库细单中!
 
响应数据集的OnNewRecord
加入: DBGrid1.Fields[0].Value:=Edit1.Text;
 
就按英国朋友的意见:)
 
不知你用的是什么数据库,我的解决办法是定义数据库的参照完整性.
把InstockD表的单号字段设为主索引,InStockM表的入库单单号字段定义为普通索引
在参照完整性中选择级联更新和级联删除.
如Microsoft Access、vf等库都可以。
 
英国朋友的办法不错,也简单。FIRST兄的办法,多表关联,更新时是个麻烦。
我用的是SQL SERVER 7,主从表的关联由主键关联,删除时一起删除,不是我想
要的结果,麻烦很大。
 
如果不让用户修改,可将此Column的ReadOnly属性设置为True。
另外,在此表的OnNewRecord事件中,赋值。
最后,如果需要更完美一点的话,注意DBGrid的一个没有公开的属性
TabStops,如果你有注意的话,那样就完美啦。
因为我正是这样做的,而我几乎所有的数据都是在Grid中完成的,
事实证明这种方法能行。
 
多人接受答案了。
 
后退
顶部