Y
yangyi_lovedelp
Unregistered / Unconfirmed
GUEST, unregistred user!
程序代码:
while not ds_wz_thd.DataSet.Eof do
begin
// with tClientdataset(ds_kc.DataSet) do //ds_crk<--> ds_wz_cc_sld
if ds_wz_thd.DataSet.Locate('sfcd','否',[]) then
begin
sckbh:=ds_wz_thdml.DataSet.fieldbyname('ckbh').AsString ;
swzdm:=ds_wz_thd.DataSet.fieldbyname('wzdm').asstring;
FDJ:=ds_wz_thd.DataSet.fieldbyname('dj').AsFloat;
ssl:=ds_wz_thd.DataSet.fieldbyname('sl').AsFloat;
with tClientdataset(ds_kc.DataSet) do
begin
if active then close;
sBsql:=commandtext;
commandtext:=' select * from wz_kctz where wzdm='#39+sWzdm+#39 +' and ckbh='+QuotedStr(sckbh)+' and dj='+FloatToStr(FDJ);
open;
commandtext:=sBsql;
end;
//在保存盘时 已经判断过了 这里只做 修改 库存数量 就可以了
if not (ds_kc.DataSet.state in[dsinsert,dsedit]) then
ds_kc.DataSet.edit;
ds_kc.DataSet.FieldByName('kcsl').AsFloat:=ds_kc.DataSet.FieldByName(
'kcsl').AsFloat-ssl;
if tclientdataset(ds_kc.DataSet).ApplyUpdates(-1)<>0 then
begin
messagebox(self.Handle,'更新库存数量失败! ','警告',mb_ok+mb_iconwarning);
updategood:=True;
Exit;
end;
if not (ds_wz_thd.DataSet.state in[dsinsert,dsedit]) then
ds_wz_thd.DataSet.Edit;
ds_wz_thd.DataSet.FieldByName('sfcd').AsString :='是';
ds_wz_thd.DataSet.Post;
if tclientdataset(ds_wz_thd.DataSet).ApplyUpdates(-1)<>0 then
begin
messagebox(self.Handle,'修改退货标志失败! ','警告',mb_ok+mb_iconwarning);
updategood:=True;
Exit;
end;
UpdateKcclzFromTld;//退料单更新台帐
ds_wz_thd.DataSet.Next;
end;
end;
// ShowMessage('已经全部更新到库存了');
end;
当第一次提交时 成功 以后就提交不成功 updates() 提交问题????? 程序都是从这里退出的---这到底是那里的错?? 和表结构 主键 索引有关系吗???
if not (ds_wz_thd.DataSet.state in[dsinsert,dsedit]) then
ds_wz_thd.DataSet.Edit;
ds_wz_thd.DataSet.FieldByName('sfcd').AsString :='是';// 更新标志
ds_wz_thd.DataSet.Post;
if tclientdataset(ds_wz_thd.DataSet).ApplyUpdates(-1)<>0 then
begin
messagebox(self.Handle,'修改退货标志失败! ','警告',mb_ok+mb_iconwarning);
updategood:=True;
Exit;
end;
我这个程序中 有很多类似的问题,出入库单 也是这样更新库存的他们没有错.但是退料 和退货单 就是这儿 一直出错
while not ds_wz_thd.DataSet.Eof do
begin
// with tClientdataset(ds_kc.DataSet) do //ds_crk<--> ds_wz_cc_sld
if ds_wz_thd.DataSet.Locate('sfcd','否',[]) then
begin
sckbh:=ds_wz_thdml.DataSet.fieldbyname('ckbh').AsString ;
swzdm:=ds_wz_thd.DataSet.fieldbyname('wzdm').asstring;
FDJ:=ds_wz_thd.DataSet.fieldbyname('dj').AsFloat;
ssl:=ds_wz_thd.DataSet.fieldbyname('sl').AsFloat;
with tClientdataset(ds_kc.DataSet) do
begin
if active then close;
sBsql:=commandtext;
commandtext:=' select * from wz_kctz where wzdm='#39+sWzdm+#39 +' and ckbh='+QuotedStr(sckbh)+' and dj='+FloatToStr(FDJ);
open;
commandtext:=sBsql;
end;
//在保存盘时 已经判断过了 这里只做 修改 库存数量 就可以了
if not (ds_kc.DataSet.state in[dsinsert,dsedit]) then
ds_kc.DataSet.edit;
ds_kc.DataSet.FieldByName('kcsl').AsFloat:=ds_kc.DataSet.FieldByName(
'kcsl').AsFloat-ssl;
if tclientdataset(ds_kc.DataSet).ApplyUpdates(-1)<>0 then
begin
messagebox(self.Handle,'更新库存数量失败! ','警告',mb_ok+mb_iconwarning);
updategood:=True;
Exit;
end;
if not (ds_wz_thd.DataSet.state in[dsinsert,dsedit]) then
ds_wz_thd.DataSet.Edit;
ds_wz_thd.DataSet.FieldByName('sfcd').AsString :='是';
ds_wz_thd.DataSet.Post;
if tclientdataset(ds_wz_thd.DataSet).ApplyUpdates(-1)<>0 then
begin
messagebox(self.Handle,'修改退货标志失败! ','警告',mb_ok+mb_iconwarning);
updategood:=True;
Exit;
end;
UpdateKcclzFromTld;//退料单更新台帐
ds_wz_thd.DataSet.Next;
end;
end;
// ShowMessage('已经全部更新到库存了');
end;
当第一次提交时 成功 以后就提交不成功 updates() 提交问题????? 程序都是从这里退出的---这到底是那里的错?? 和表结构 主键 索引有关系吗???
if not (ds_wz_thd.DataSet.state in[dsinsert,dsedit]) then
ds_wz_thd.DataSet.Edit;
ds_wz_thd.DataSet.FieldByName('sfcd').AsString :='是';// 更新标志
ds_wz_thd.DataSet.Post;
if tclientdataset(ds_wz_thd.DataSet).ApplyUpdates(-1)<>0 then
begin
messagebox(self.Handle,'修改退货标志失败! ','警告',mb_ok+mb_iconwarning);
updategood:=True;
Exit;
end;
我这个程序中 有很多类似的问题,出入库单 也是这样更新库存的他们没有错.但是退料 和退货单 就是这儿 一直出错