现在一问题如下:
我在DBgrid中插入一条新的记录,此记录的内容为我最后一次插入的记录数据复制过来的。也可理解为我要在DBGRID中插入一条记录是对我最后一次的数据进行复制。
我在DBgrid中插入一条新的记录,此记录的内容为我最后一次插入的记录数据复制过来的。也可理解为我要在DBGRID中插入一条记录是对我最后一次的数据进行复制。
解决方案 »
- 为什么delphi生成的.exe文件双击没没反应?
- 如何拷贝一个整个目录(包括文件和子目录)。谢谢。
- ADO连接access怎么写代码?急!!!
- DHTMLEDIT.OCX或相关问题。达淫乱入!100分!!
- 如何用QUICKREPORT进行分组
- delphi中如何控制命令行程序?
- 怎样识别图片里的数字(OCR问题),也可以说说原理!
- 帮忙:在delphi中使用sql server 里的nvarchar类型的字段问题
- TDataSet如何将其中的记录一下子清空,我用的是TClientDataSet和TADOTable
- Tquery查询?
- 求菜单与用户权限的源码不需到太复杂。
- 我发觉form打开时, form上的控件有滞后显示的感觉,能解决吗?
FieldValue:Array of string
dataset.last
...
setlength(FieldValue,dataset.fieldcount)
for i:=0 to dataset.fieldcount-1
fieldvalue[i]:=dataset.fields[i].asstring
........
然后再倒到dbgrid中
.............
1、数据插入前,取最后一条记录的值,记录到变量中。
2、插入一条记录
3、根据变量的值写入(或计算处理后)写到新增加的记录中。插入前:procedure TDM.AQKfBeforeInsert(DataSet: TDataSet);
begin
if Aqkf.RecordCount > 0 then
begin
flbm := trim(aqkf.FieldByName('客户编码').AsString);
flbm := inttostr(strtoint(flbm) + 1);
Func.OpenKf;
if odd(Length(flbm)) then flbm := '0' + flbm;
while aqkf.Locate('客户编码', flbm, []) do
begin
flbm := inttostr(strtoint(flbm) + 1);
if odd(Length(flbm)) then flbm := '0' + flbm;
end;
end
else Flbm := '01';
end;插入后:
procedure TDM.AQKfAfterInsert(DataSet: TDataSet);
begin
aqkf.FieldByName('客户编码').AsString := flbm;
end;