begin newrecord:=true; SpeedButton_xq.enabled:=false; SpeedButton_xh.enabled:=false; SpeedButton_zq.enabled:=false; SpeedButton_zh.enabled:=false; SpeedButton_zj.enabled:=false; SpeedButton_kc.enabled:=false; SpeedButton_xg.enabled:=false; SpeedButton_sc.enabled:=false; BitBtn_sub.visible:=true; BitBtn_exit.visible:=true; BitBtn_back.visible:=false; if not ud.Table_HTDA2.IsEmpty then begin ud.table_htda2.Last; ud.table_htda2.Append; set_notreadonly; DBEdit_htbh.text:='2000000001'; DBEdit_qdrq.text:=DateToStr(now); ud.Table_HTDA2.Post; DBEdit_htbh.SetFocus; end else begin ud.table_htda2.Append; set_notreadonly; DBEdit_htbh.text:='2000000001';
end; end;以上是我的代码 ,请大家帮忙
if not ud.Table_HTDA2.IsEmpty then // 这是什么意思? else部分的Append没有Post或Cancel对应, 有可能Append了两次.
2 Set the active record to the new record.
如果你的数据表中每个字段都允许空,就faint了;
估计是你做了post了,
按照一个字段排序,将空派在最前面了
newrecord:=true;
SpeedButton_xq.enabled:=false;
SpeedButton_xh.enabled:=false;
SpeedButton_zq.enabled:=false;
SpeedButton_zh.enabled:=false;
SpeedButton_zj.enabled:=false;
SpeedButton_kc.enabled:=false;
SpeedButton_xg.enabled:=false;
SpeedButton_sc.enabled:=false;
BitBtn_sub.visible:=true;
BitBtn_exit.visible:=true;
BitBtn_back.visible:=false; if not ud.Table_HTDA2.IsEmpty then
begin
ud.table_htda2.Last;
ud.table_htda2.Append;
set_notreadonly;
DBEdit_htbh.text:='2000000001';
DBEdit_qdrq.text:=DateToStr(now);
ud.Table_HTDA2.Post;
DBEdit_htbh.SetFocus;
end
else
begin
ud.table_htda2.Append;
set_notreadonly;
DBEdit_htbh.text:='2000000001';
end;
end;以上是我的代码
,请大家帮忙
else部分的Append没有Post或Cancel对应, 有可能Append了两次.
else部分的Append没有Post或Cancel对应, 有可能Append了两次.append两次倒是问题不大,不过最后一次append可能没有post,会丢失。
另外你append的数据为什么要通过dbedit来更新呢,感觉不好。还有你的append空数据在最开始,应该是你的表有索引。排序后去了前面
begin
newrecord:=true;
SpeedButton_xq.enabled:=false;
SpeedButton_xh.enabled:=false;
SpeedButton_zq.enabled:=false;
SpeedButton_zh.enabled:=false;
SpeedButton_zj.enabled:=false;
SpeedButton_kc.enabled:=false;
SpeedButton_xg.enabled:=false;
SpeedButton_sc.enabled:=false;
BitBtn_sub.visible:=true;
BitBtn_exit.visible:=true;
BitBtn_back.visible:=false; if ud.Table_HTDA2.IsEmpty then //删除原代码的Not,如果是空,才正确
begin
ud.table_htda2.Last;
ud.table_htda2.Append;
set_notreadonly;
DBEdit_htbh.text:='2000000001';
DBEdit_qdrq.text:=DateToStr(now);
ud.Table_HTDA2.Post;
DBEdit_htbh.SetFocus;
end
else
begin
ud.table_htda2.Append;
set_notreadonly;
DBEdit_htbh.text:='2000000001';
end;
end;
把set_notreadonly放到ud.table_htda2.Append的前面去吧!!!