var i,j,bl,tc: integer;
begin
  with query2 do
  begin
      close;
      sql.Clear;
      sql.add('select sfy,count(*) zhs,sum(yjje) yjje,sum(byss) sszs,round(sum(byss)/sum(yjje)*100) bl from t_yh_qfxx_back where cbyf='''+combobox1.text+''' group by sfy');
      open;
      first;
  while not eof do
  begin
    bl:=fieldbyname('bl').asinteger;
    if 80<bl<85 then            到这里就开始报错
      begin
      for (i=80,j=85,i++)
       tc:=500+(i-80)*40;
      end;
    if (bl>85 and bl<90) then
    begin
      for (i=85,j=90,i++)
      begin
        tc:=700+(i-85)*60;
      end;
    end;
    if bl>90 then
    begin
      for (i=90,j=100,i++)
        tc:=1000+(i-90)*100;
    end;
end;
end;
end.我是菜鸟,有大虾知道的,请告诉我,谢谢!!!

解决方案 »

  1.   

    bl:=fieldbyname('bl').asinteger
    应该是这句出现错误了,可能是能不到值,你用showmessage把它的值报出来看看,是不是你想要的你就知道了
      

  2.   

    "var i,j,bl,tc: integer;"
    改成:
    var i:integer;
    var j:integer;
    var b1:integer;
    var tc:integer;
    就可以了
      

  3.   

    << if 80<bl<85 then           
      //这句话明显出错,改为
     if(b1>80) and (b1<85) then
      

  4.   

    if 80<bl<85 then            到这里就开始报错
    -----------------------------------------------
    if (80<bl) and (b1<85) then            
      

  5.   

    if 80<bl<85 then  小伙子这里错了,应为:
    if bl>80 and bl<85 then
      

  6.   

    你加括号了没有说 if (80<bl) and (b1<85) then   出错提示
      

  7.   

    if (80<bl) and (b1<85) then
      

  8.   

    存在语法问题....
    for (i=80,j=85,i++)不是DELPHI的语法..