\\--------------现在中间循环没有,所以很累--------------------
begin
  inherited;
     with adoquery1 do
  begin
       First;
      while not Eof do
            begin
           Edit;
         FieldByName('完成数').AsInteger :=StrToIntDef(FieldByName('Y501').AsString,0) +
                 StrToIntDef(FieldByName('Y502').AsString,0) +
                 StrToIntDef(FieldByName('Y503').AsString,0) +
                 StrToIntDef(FieldByName('Y504').AsString,0);
FieldByName('未完成').AsInteger:=StrToIntDef(FieldByName('订单数').AsString,0) -StrToIntDef(FieldByName('完成数').AsString,0);
         Next;
       end;
       First;
     end;
\\-------------------------------------------------------
请各位帮帮忙!

解决方案 »

  1.   

    为什么不用sql  计算好返给 delphi 显示呢?
      

  2.   

     while not Eof do
    begin
         try
             Edit;
             FieldByName('完成数').AsInteger :=StrToIntDef(FieldByName('Y501').AsString,0) +
                     StrToIntDef(FieldByName('Y502').AsString,0) +
                     StrToIntDef(FieldByName('Y503').AsString,0) +
                     StrToIntDef(FieldByName('Y504').AsString,0);
                   FieldByName('未完成').AsInteger:=StrToIntDef(FieldByName('订单数').AsString,0) -StrToIntDef(FieldByName('完成数').AsString,0);
             Next;
        except on e:Exception do       ShowMessage(e.Message);     end; // tryend;// while not Eof do//////因为您老人家设那几列允许为空。空字符是不能转正数D