dbgrideh,复制行,请大侠指教!

snownxtbaby 2015-07-05 09:45:11
我想实现在dbgrideh新增数据,新增时能把上一行的数据自动复制到新行中,这样只需要修改相关的文字即可,也就是实现dbgrideh的复制行,谢谢
...全文
196 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
snownxtbaby 2015-07-14
  • 打赏
  • 举报
回复
问题已经解决,呵呵,用简单的代码就可以处理,非常感谢各位的参与,分数不多,见谅!
B525068254 2015-07-14
  • 打赏
  • 举报
回复
兄弟,快点结贴呀
缘中人 2015-07-05
  • 打赏
  • 举报
回复
dbgrideh没有复制功能,其实就是dataset,query、table的复制行。 把当前行的所有列存到数组里, 下一行从数组里读出来赋值给各个列就行了
B525068254 2015-07-05
  • 打赏
  • 举报
回复
引用 3 楼 u012885141 的回复:
呵呵,能给个示例吗?谢谢
有,我就是右键复制当前行 var F_Qty,F_Number,F_Price,F_Money,F_TaxRate,F_TaxPrice,F_TaxMoney,F_TotalMoney:double; F_UnitID:string; begin if ADOQuery1.FieldByName('F_Check').AsInteger<>0 then exit; if ADOQuery2.IsEmpty then exit; xgbz:=true; F_Color:=''; F_BatchNo:=''; F_Grade:=''; F_Spec:=''; F_Position:=''; F_Storage:=''; F_Qty:=0; F_Number:=0; F_Price:=0; F_Money:=0; F_TaxRate:=0; F_TaxPrice:=0; F_TaxMoney:=0; F_TotalMoney:=0; F_UnitID:=''; F_id :=ADOQuery2.FieldByName('F_ItemID').Value; F_Unit := ADOQuery2.FieldByName('F_Unit').AsString; F_Storage := ADOQuery2.FieldByName('F_StorageID').AsString; if ADOQuery2.FieldByName('F_Grade').AsString<>'' then F_Grade:=ADOQuery2.FieldByName('F_Grade').AsString; if ADOQuery2.FieldByName('F_Color').AsString<>'' then F_Color:=ADOQuery2.FieldByName('F_Color').AsString; if ADOQuery2.FieldByName('F_BatchNo').AsString<>'' then F_BatchNo:=ADOQuery2.FieldByName('F_BatchNo').AsString; if ADOQuery2.FieldByName('F_Spec').AsString<>'' then F_Spec:=ADOQuery2.FieldByName('F_Spec').AsString; F_Qty:=ADOQuery2.FieldByName('F_Qty').Value; F_Number:=ADOQuery2.FieldByName('F_Number').Value; F_Price:=ADOQuery2.FieldByName('F_Price').Value; F_Money:=ADOQuery2.FieldByName('F_Money').Value; F_TaxRate:=ADOQuery2.FieldByName('F_TaxRate').Value; F_TaxPrice:=ADOQuery2.FieldByName('F_TaxPrice').Value; F_TaxMoney:=ADOQuery2.FieldByName('F_TaxMoney').Value; F_TotalMoney:=ADOQuery2.FieldByName('F_TotalMoney').Value; if ADOQuery2.FieldByName('F_UnitID').AsString<>'' then F_UnitID:=ADOQuery2.FieldByName('F_UnitID').AsString; ADOQuery2.Append; ADOQuery2.FieldByName('F_ItemID').Value:=F_ID; ADOQuery2.FieldByName('F_Unit').Value:=F_Unit; ADOQuery2.FieldByName('F_Grade').Value:=F_Grade; ADOQuery2.FieldByName('F_Color').Value:=F_Color; ADOQuery2.FieldByName('F_BatchNo').Value:=F_BatchNo; ADOQuery2.FieldByName('F_UnitID').Value:=F_UnitID; ADOQuery2.FieldByName('F_Spec').Value:=F_Spec; ADOQuery2.FieldByName('F_StorageID').Value:=F_Storage; ADOQuery2.FieldByName('F_Qty').Value:=F_Qty; ADOQuery2.FieldByName('F_Number').Value:=F_Number; ADOQuery2.FieldByName('F_Price').Value:=F_Price; ADOQuery2.FieldByName('F_Money').Value:=F_Money; ADOQuery2.FieldByName('F_Taxrate').Value:=F_TaxRate; ADOQuery2.FieldByName('F_TaxPrice').Value:=F_TaxPrice; ADOQuery2.FieldByName('F_TaxMoney').Value:=F_TaxMoney; ADOQuery2.FieldByName('F_TotalMoney').Value:=F_TotalMoney; // jjfs:=0; // re_calc; end;
snownxtbaby 2015-07-05
  • 打赏
  • 举报
回复
呵呵,能给个示例吗?谢谢
lyhoo163 2015-07-05
  • 打赏
  • 举报
回复
我的办法: 1、定义一个全局动态数组; 2、将一行数据,拷贝数组; 3、在新的一行,分别从数组中复制数据。

2,498

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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