出货单有主表,从表。链接字段假如是 orderid 。
主表字段:
id , orderid , Custname ,.....
从表字段:
id , orderid , proname , nums , price ,......新增一个出货单,相关代码如下(其中,orders:TADOQrery):procedure Tfrm_neworders.ordersNewRecord(DataSet: TDataSet);
var Sql:string;
begin
Sql:='select max(orderid) as DJID1 from ASales where kdDateTime between ' +''''+FormatDateTime('yyyy-mm-dd',now())+''''+
' and ' +''''+FormatDateTime('yyyy-mm-dd',now()+1)+''''+ '';
dbedit1.Field.Value := GetZbBh(Sql); //-dbedit1 为只读。
end;function Tfrm_neworders.GetZbBh(const Sql:String):string;
var rs:TAdoQuery;
rCount,sLen:integer;
BhLen,MaxBh,Bh:string;
begin
BhLen:='000';
rCount :=1;
rs:=TAdoQuery.Create(application);
rs.Connection:=dm.AdoConn;
rs.SQL.Clear;
rs.SQL.Add(Sql);
rs.Open;
if rs['DjID1']<>null then
begin
MaxBh:=rs['DjID1'];
MaxBh:=Copy(MaxBh,Pos('-',MaxBh)+1,Length(MaxBh));
rCount:=StrToint(MaxBh)+1;
end;
Bh := inttostr(rCount);
sLen :=Length(Bh);
Bh :=copy(BhLen,sLen+1,Length(BhLen)) + Bh;
Bh :='ET' + Formatdatetime('yymmdd',now()) + '-' + Bh;
rs.Close;
rs.Free;
Result:=Bh;
end;从表的 ordersid ,在保存前赋值 ordersid:=DBedit1.Field.Value就是这样,其中一个用户新增一个出货单,还没保存之前,另一个用户也新增一个出货单,这样得到的 ordersid 似乎是相同的。有什么办法解决吗?
主表字段:
id , orderid , Custname ,.....
从表字段:
id , orderid , proname , nums , price ,......新增一个出货单,相关代码如下(其中,orders:TADOQrery):procedure Tfrm_neworders.ordersNewRecord(DataSet: TDataSet);
var Sql:string;
begin
Sql:='select max(orderid) as DJID1 from ASales where kdDateTime between ' +''''+FormatDateTime('yyyy-mm-dd',now())+''''+
' and ' +''''+FormatDateTime('yyyy-mm-dd',now()+1)+''''+ '';
dbedit1.Field.Value := GetZbBh(Sql); //-dbedit1 为只读。
end;function Tfrm_neworders.GetZbBh(const Sql:String):string;
var rs:TAdoQuery;
rCount,sLen:integer;
BhLen,MaxBh,Bh:string;
begin
BhLen:='000';
rCount :=1;
rs:=TAdoQuery.Create(application);
rs.Connection:=dm.AdoConn;
rs.SQL.Clear;
rs.SQL.Add(Sql);
rs.Open;
if rs['DjID1']<>null then
begin
MaxBh:=rs['DjID1'];
MaxBh:=Copy(MaxBh,Pos('-',MaxBh)+1,Length(MaxBh));
rCount:=StrToint(MaxBh)+1;
end;
Bh := inttostr(rCount);
sLen :=Length(Bh);
Bh :=copy(BhLen,sLen+1,Length(BhLen)) + Bh;
Bh :='ET' + Formatdatetime('yymmdd',now()) + '-' + Bh;
rs.Close;
rs.Free;
Result:=Bh;
end;从表的 ordersid ,在保存前赋值 ordersid:=DBedit1.Field.Value就是这样,其中一个用户新增一个出货单,还没保存之前,另一个用户也新增一个出货单,这样得到的 ordersid 似乎是相同的。有什么办法解决吗?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货