回 帖 发 新 帖 刷新版面

主题:[原创]求教高手  帮我看看!!!急急急急

[求助]求教高手  帮我看看

这段代码不能实现计算  s10:=s10+strtoint(ADOQuery2.fieldbyname('提成系数').asstring);提成系数'是小数点的.   业绩量  数据库里我设为货币型的    请问如何改
  
s1,s2,s3,s4,s5,s6,s7,s8,s9,s10:real;sum1,sum2,sum3,sum4:integer;a,b,c,d,e,f,s:string;
 begin
ADOTable2.active:=true;
 s1:=0.00;s2:=0.00; s3:=0.00;s4:=0.00;s5:=0.00;s6:=0.00;s7:=0.00;s8:=0.00;s9:=0.00;s10:=0.00;
 sum1:=0; sum2:=0; sum3:=0; sum4:=0;
if ComboBox2.Text='一月' then //选择查询条件
 begin
   adoquery1.close;
   ADOQuery1.SQL.Clear;
  adoquery1.SQL.Add('select sum(业绩量) as nSum from 工作表 where 月份=''一月''' );
  adoquery1.SQL.Add('or  月份=''十一月''' );
  adoquery1.SQL.Add('or  月份=''十二月''' );
  adoquery1.open;
  sum1:=sum1+adoquery1.fieldbyname('nSum').asinteger;
   adoquery5.close;
    ADOQuery5.SQL.Clear;
    adoquery5.SQL.Add('select sum(业绩量) as nSum from 工作表 where 月份=''一月''' );
  adoquery5.SQL.Add('or  月份=''十一月''' );
  adoquery5.SQL.Add('or  月份=''十二月''' );
  adoquery5.open;
  sum2:=sum2+adoquery5.fieldbyname('nSum').asinteger;

    adoquery6.close;
    ADOQuery6.SQL.Clear;
    adoquery6.SQL.Add('select sum(业绩量) as nSum from 工作表 where 月份=''一月''' );
  adoquery6.SQL.Add('or  月份=''十一月''' );
  adoquery6.SQL.Add('or  月份=''十二月''' );
  adoquery6.open;
  sum3:=sum3+adoquery6.fieldbyname('nSum').asinteger;
    adoquery7.close;
    ADOQuery7.SQL.Clear;
  adoquery7.SQL.Add('select sum(业绩量) as nSum from 工作表 where 月份=''一月''' );
  adoquery7.SQL.Add('or  月份=''十一月''' );
  adoquery7.SQL.Add('or  月份=''十二月''' );
  adoquery7.open;
  sum4:=sum4+adoquery7.fieldbyname('nSum').asinteger;
    s1:=sum1+s1;
    s2:=s1/3;//月平均业绩
    adoquery2.close;
    ADOQuery2.SQL.Clear;
    adoquery2.SQL.Add('select 人数,提成系数 from 数量 where 月份=''一月''' );
    adoquery2.open;
    s8:=s8+adoquery2.fieldbyname('人数').asinteger;
    s10:=s10+strtoint(ADOQuery2.fieldbyname('提成系数').asstring);
    s3:=s2/s8;
     adoquery3.close;
    ADOQuery3.SQL.Clear;
    adoquery3.SQL.Add('select 总人数 from 一通1 where 月份=''一月''' );
     adoquery3.open;
     s9:=s9+adoquery3.fieldbyname('总人数').asinteger;
    s4:=(sum1+sum2+sum3+sum4)/(3*s9);
   s5:=s4*s10;
    s6:=s2*1.05;
    s7:=s6*s5;
    str(s2:8:2,b);
    str(s3:8:2,c);
    str(s4:8:2,d);
    str(s5:8:2,e);
    str(s6:8:2,f);
    str(s7:8:2,s);
    str(s1:8:2,a);
    Memo1.Text:='数目:'+a;
    Memo1.Text:='数目:'+b;
    Memo1.Text:='数目:'+c;
    Memo1.Text:='数目:'+d;
    Memo1.Text:='数目:'+e;
    Memo1.Text:='数目:'+f;
    Memo1.Text:='数目:'+s;
    ADOTable2.append;
    SaveDataToTable;

回复列表 (共1个回复)

沙发

s10:=s10+strtoint(ADOQuery2.fieldbyname('提成系数').asstring);
既然‘提成系数'是小数点的那么就不要转成int了,转成real试试

我来回复

您尚未登录,请登录后再回复。点此登录或注册