大家帮忙看下。我这段while语句哪里有问题?我执行的之后数量就变成0了,没有去做减法。
jtbzqty.open;
n:=aqbzqty.fieldbyname('FQty').asinteger;
jtbzqty.first;
while(( n>0)and not jtbzqty.eof)
do begin
if( n<jtbzqty.fieldbyname('FQty').asinteger)then begin
jtbzqty.edit;
jtbzqty.fieldbyname('FQty').asinteger:=jtbzqty.fieldbyname('FQty').asintegern;
jtbzqty.post;
end
else
begin
jtbzqty.edit;
jtbzqty.fieldbyname('FQty').asinteger:=0;
jtbzqty.post;
n:=n-jtbzqty.fieldbyname('FQty').asinteger;
jtbzqty.next;
end;
end;
label2.caption:='正常,已录入。';
end
else
label2.caption:='数据异常,未能存入!!!';
edtBarCode.SelectAll;
jtbzqty.open;
n:=aqbzqty.fieldbyname('FQty').asinteger;
jtbzqty.first;
while(( n>0)and not jtbzqty.eof)
do begin
if( n<jtbzqty.fieldbyname('FQty').asinteger)then begin
jtbzqty.edit;
jtbzqty.fieldbyname('FQty').asinteger:=jtbzqty.fieldbyname('FQty').asintegern;
jtbzqty.post;
end
else
begin
jtbzqty.edit;
jtbzqty.fieldbyname('FQty').asinteger:=0;
jtbzqty.post;
n:=n-jtbzqty.fieldbyname('FQty').asinteger;
jtbzqty.next;
end;
end;
label2.caption:='正常,已录入。';
end
else
label2.caption:='数据异常,未能存入!!!';
edtBarCode.SelectAll;
解决方案 »
- delphi用随机数进行数据库内表之间的传数
- delphi中使用BDE如何进行事务处理?
- 我想做一个可以手动调整控件大小的程序,如让其变长或变宽,主要是针对Shape操作。
- 如何得到垂直滚动条移动的距离?
- 求教:如何在delphi中实现两个SQLserver数据库的查询?
- 怎样选择静态编译呢?
- /DATABASE/FORMWIZARD 使用的问题
- 如何在fastreport2.5中加入自定义的函数?
- 使用MaskEdit控件格式化输入,它所显示下划线如何去掉?
- 高难度问题:如何利用程序查看局域网上某电脑占用集线器的某个端口。(100分)
- 关于任务栏崩溃,托盘图标消失的问题
- delphi写的dll VC中调用报错。
jtbzqty.open;
n:=aqbzqty.fieldbyname('FQty').asinteger;
jtbzqty.first;
while(( n>0)and not jtbzqty.eof) do begin
if( n<jtbzqty.fieldbyname('FQty').asinteger)then begin
jtbzqty.edit;
jtbzqty.fieldbyname('FQty').asinteger:=jtbzqty.fieldbyname('FQty').asintegern;
jtbzqty.post;
end
else begin
jtbzqty.edit;
jtbzqty.fieldbyname('FQty').asinteger:=0;//这里赋值为 0 了
jtbzqty.post;
n:=n-jtbzqty.fieldbyname('FQty').asinteger;//用 n 去减 0 干什么呢?
jtbzqty.next;
end;
end;
......
if( n<jtbzqty.fieldbyname('FQty').asinteger)then begin
jtbzqty.edit;
jtbzqty.fieldbyname('FQty').asinteger:=jtbzqty.fieldbyname('FQty').asintegern;//为何自己等于自己?(代码出了问题,最好是将代码复制出来,而不是手工输入)
jtbzqty.post
......
begin
......
jtbzqty.open;
n:=aqbzqty.fieldbyname('FQty').asinteger;
jtbzqty.first;
while((n>0) and not jtbzqty.eof) do begin
x:=jtbzqty.fieldbyname('FQty').asinteger;
jtbzqty.edit;
if n < x then begin //存量够减:
jtbzqty.fieldbyname('FQty').asinteger:=jtbzqty.fieldbyname('FQty').asinteger-n
else //存量不够减:
jtbzqty.fieldbyname('FQty').asinteger:=0;
jtbzqty.post;
n := n - x;
jtbzqty.next;
end;
......
end;