你用的是Delphi吗?
我现在做的系统到处都用到计算字段,怎么都没事呢?

解决方案 »

  1.   

    只要属性设正确了:autoCalcFiel=true 并不会出错呀!
      

  2.   

    首先,请大家相信我.
    我使用的DElphi5.0.
    写了计算事件,autoCalcFiel=True;
    在DBGrid中一共有5个字段,其中有4个是计算字段.
      

  3.   

    现在我已经查出原因,计算字段的值我是用数组赋给他们的
    oncalfield事件如下:(简单化了)
       if i<=29 then
        begin
         adoquery1.Fields[2].AsInteger:=Shu[i];
         i:=i+1;
        end;
    很可能这样用不行,不知为什么?
      

  4.   

    你改一下程序
    oncalfield事件如下:(简单化了)
     i:=1; 
     if i<=29 then
        begin
        adoquery1.Fields[2].AsInteger:=Shu[i];
        i:=i+1;
        end;
    这样就可以了,很简单吧
      

  5.   

    现在我将整个程序都简化了:分两个事件
     Button事件如下:
     i:=1;
     While i<=29 do
      begin
       Shu[i]:=i;
       i:=i+1;
      end;
      i:=1;
      ADoquery1.Close;
      adoquery1.SQL.Clear;
      Adoquery1.SQL.Add('select userid,name from userinfo');
      adoquery1.Prepared;
      ADOQuery1.Open;
    oncalfield事件如下:
     if i<=29 then
        begin
         adoquery1.Fields[2].AsInteger:=Shu[i];
         i:=i+1;
        end;
    我说明的是:oncalfield事件是由ADOQuery1.open激发的.
    皮皮下:如果按你那么作的话,计算字段的值全为1.不正确.