在DBGrid中,如何新增‘复制’按钮,复制选中记录的数值,减轻劳力。(50分)

  • 主题发起人 主题发起人 Bruce Yu
  • 开始时间 开始时间
B

Bruce Yu

Unregistered / Unconfirmed
GUEST, unregistred user!
类似DBNavigator的新增功能,我想添加一个“复制”按钮,这个按钮执行的动作是在
DBNavigator中新增加一条记录,由于该记录包含的字段很多,而且很多是一样的,所以
如果在DBNavigator中选择‘新增’的话,所有的字段(必要的,包括相同的)都要重新
KEY IN,如果有很多字段的话,会非常累人和出错。所以能不能让‘复制’这个按钮复制
选中的一条记录,将所有的字段的数值复制下来,这样我们只需要在DBEdit中更改需要设
定的数值,更改后点击‘保存’就OK了,相当于增加了一条新记录。请教各位大富翁,如
何实现这种功能?
 
抱歉,是在DBGRID中增加一条记录,该记录很多的数值都和复制的那条记录相同,只有几
个字段的数值为空,可以让USER 自己敲入适合的数值。急切需要帮助。
 
在数据源的OnNew里面赋值就行了。
 
用程序来实现如下:
//query1:TADOQuery;
var i:integer;
VV:variant;
begin
vv := VarArrayCreate([0,Query1.FieldCount-1],varVariant);
for i:=0 to Query1.FieldCount-1 do
VV:=Query1.Fields.Value;
Query1.Append;
for i:=0 to Query1.FieldCount-1 do
Query1.Fields.Value:=VV;
end;

 
确定Query的记录集就可以了。
 
如果有主键的,应该如何设置?
 
》如果有主键的,应该如何设置?
按上面方法复制下来后主键字段的值当然要改,如果是自动编号的字段在循环中加入
一个判断,把它排除掉就可以了
 
http://www.delphibbs.com/delphibbs/DispQ.asp?LID=1354567
关注一下吧没有人提起来呀!用MODEM打电话利用PC机的耳机和麦克风,自己编程如何实现?
(我知道有现成的软件可以用,但是我想自己实现这个上东西)
QQ:65466700
MAIL: along@b2sun.com
TEL :13802785865
http://b2sun.com
请各位大侠多多指教!

 
如果是TABLE的记录集应该如何编写程序呢?
 
其实这个问题已经给你讲的很清楚了。而且不当是TADOQuery,其它任何数据集都可以
当然也包括TTable和TQuery,甚至存储过程。如果数据集的Value属性不可用,你可以
用.DisplayText或者 .AsVarint 等来代替。
 
谢谢,多人接受答案了
 
后退
顶部