各位高手:我要作一个关于按年龄和类别统计的报表
           而数据库中只有“出生年月”和“类别”这个字段。
         我要在quickrep中用lable显示。其中csdn表示出生年月,xxsqxmk表示数据表格。我的程序如下:
 
procedure TForm2.FormCreate(Sender: TObject);
  var  x:array[0..5] of integer;
n:integer;
temp:string;
beginadoquery1.Open;
{生成数组}
adoquery1.close;
adoquery1.SQL.clear;
//35岁以下
n:=strtoint(copy(datetostr(date),3,2))-35+100;
temp:='select count(*) as 人数 from xxsqxmk where csny>''19'+inttostr(n)+''' ';
adoquery1.SQL.Add(temp);
adoquery1.SQL.Add('and xmlb=''一般''') ;
adoquery1.sql.add('group by xmlb');
adoquery1.Open;
x[0]:=adoquery1.fields[0].value;
//35-40
adoquery1.close;
adoquery1.SQL.clear;
n:=strtoint(copy(datetostr(date),3,2))-40+100 ;
temp:='select count(*) as 人数 from xxsqxmk where csny>''19'+inttostr(n)+''' ';
adoquery1.SQL.Add(temp);
adoquery1.SQL.Add('and xmlb=''一般''') ;
adoquery1.sql.add('group by xmlb');
adoquery1.Open;
x[1]:=adoquery1.fields[0].value-x[0];
//40-50
adoquery1.close;
adoquery1.SQL.clear;
n:=strtoint(copy(datetostr(date),3,2))-50+100;
temp:='select count(*) as 人数 from xxsqxmk where csny>''19'+inttostr(n)+''' ';
adoquery1.SQL.Add(temp);
adoquery1.SQL.Add('and xmlb=''一般''') ;
adoquery1.sql.add('group by xmlb');
adoquery1.Open;
x[2]:=adoquery1.fields[0].value-x[1]-x[0];
//50-60
adoquery1.close;
adoquery1.SQL.clear;
n:=strtoint(copy(datetostr(date),3,2))-60+100;
temp:='select count(*) as 人数 from xxsqxmk where csny>''19'+inttostr(n)+''' ';
adoquery1.SQL.Add(temp);
adoquery1.SQL.Add('and xmlb=''一般''') ;
adoquery1.sql.add('group by xmlb');
adoquery1.Open;
x[3]:=adoquery1.fields[0].value-x[2]-x[1]-x[0];
//60-
adoquery1.close;
adoquery1.SQL.clear;
n:=strtoint(copy(datetostr(date),3,2))-61+100;
temp:='select count(*) as 人数 from xxsqxmk where csny<''19'+inttostr(n)+''' ';
adoquery1.SQL.Add(temp);
adoquery1.SQL.Add('and xmlb=''一般''') ;
adoquery1.sql.add('group by xmlb');
adoquery1.Open;
x[4]:=adoquery1.fields[0].value;
//合计
adoquery1.close;
adoquery1.SQL.clear;
temp:='select count(*) as 人数 from xxsqxmk';
adoquery1.SQL.Add('select count(*) as 人数 from xxsqxmk where xmlb=''一般'' group by xmlb');
adoquery1.Open;
x[5]:=adoquery1.fields[0].value;
 //显示
form2.QRLabel9.caption:=inttostr(x[0]);
form2.QRLabel10.caption:=inttostr(x[1]);
form2.QRLabel11.caption:=inttostr(x[2]);
form2.QRLabel12.caption:=inttostr(x[3]);
form2.QRLabel13.caption:=inttostr(x[4]);
form2.QRLabel14.caption:=inttostr(x[5]);
//求%if x[5]=0   then
 begin
form2.QRLabel15.caption:='0';
form2.QRLabel29.caption:='0';
form2.QRLabel30.caption:='0';
form2.QRLabel31.caption:='0';
form2.QRLabel32.caption:='0';
form2.QRLabel33.caption:='0';
end
else
   begin
form2.QRLabel15.caption:=copy(floattostr(X[0]*100/X[5]),1,5);
form2.QRLabel29.caption:=copy(floattostr(X[1]*100/X[5]),1,5);
form2.QRLabel30.caption:=copy(floattostr(X[2]*100/X[5]),1,5);
form2.QRLabel31.caption:=copy(floattostr(X[3]*100/X[5]),1,5);
form2.QRLabel32.caption:=copy(floattostr(X[4]*100/X[5]),1,5);
form2.QRLabel33.caption:=copy(floattostr((x[0]+X[1]+x[2]+x[3]+x[4])*100/X[5]),1,5);
end;但是程序运行是显示invalid variant type conversion
望赐教。