——此文章摘自《Delphi 数据库开发经典案例解析》定价¥特价¥购买>>http://tracklinktechcn/?m_id=dangdang&a_id=A&l=&l_type= width= height= border= nosave> //保存销售单销售单明细数据 procedure ToutputButtonClick(Sender: TObject); var maxnummaxnumtempinputnuminputnum:string; newnumnewnumi:integer; begin //计算销售单中最大编号以便插入新的销售单数据时编号不沖突 adoqueryClose; adoquerySQLClear; adoquerySQLAdd(select max(编号) 最大编号 from 销售单); adoqueryOpen; maxnum:=adoqueryFieldByName(最大编号)asstring; //对读出的编号进行截取并将其转换为整数值字段太长时可以不能用strtoint来转换 //防止插入第一条记录时出错 if (maxnum=)or(maxnum= ) then temp:= else temp:=copy(maxnum); //新插入的销售单编号为插入前的最大编号+ newnum:=strtoint(temp)+; //重新组合编码 if length(inttostr(newnum))= then inputnum:=+inttostr(newnum); if length(inttostr(newnum))= then inputnum:=+inttostr(newnum); if length(inttostr(newnum))= then inputnum:=+inttostr(newnum); if length(inttostr(newnum))= then inputnum:=+inttostr(newnum); if length(inttostr(newnum))= then inputnum:=inttostr(newnum); //计算销售单明细最大编号以便插入新的销售单明细数据时编号不沖突 adoqueryClose; adoquerySQLClear; adoquerySQLAdd(select max(编号) 最大编号 from 销售单明细); adoqueryOpen; maxnum:=adoqueryFieldByName(最大编号)asstring; //防止插入第一条记录时出错 if (maxnum=)or(maxnum= ) then temp:= else temp:=copy(maxnum); newnum:=strtoint(temp); //由于销售单明细数据可能由很多条因此在下面的循环中销售单明细循环种再编号和组合编码 //插入新的销售单和销售单明细 //如果客户号为空或者时没有销售单明细数据则取消插入 if (comboboxText=)or(editText=) then showmessage(客户号不能为空且销售单明细数据必须完整) right>[http://developcsaicn/delphi/htm>] [http://developcsaicn/delphi/htm>] [] [http://developcsaicn/delphi/htm>] |