搞不懂的dbchart,用过的请进来看看为什么 我用一个RadioGroup1来选择统计方式,是按员工,还是按月份等等,统计按钮动态实现显示,但每次第一个统计的方式没事,但如果想选别的就不行,再统计时,就说上一个统计条件找不到如:ADOQuery field[员工]找不到 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 是不是在RadioGroup1Click要清除一些东东? 是不是在RadioGroup1Click要清除一些东东? procedure Ttjfrm.Button4Click(Sender: TObject);var i_tjfrm:single; vPie: TPieSeries; vBar: TBarSeries; sqlstr : ansistring; sqlstr3:string;begini_tjfrm:=0; sqlstr3:=sqlstr1; sqlstr3:=sqlstr3+' where 员工号 like '''; sqlstr3:=sqlstr3+trim(combobox1.Text); sqlstr3:=sqlstr3+'%'''; sqlstr3:=sqlstr3+' GROUP BY '; sqlstr3:=sqlstr3+RadioGroup1.Items.Strings[RadioGroup1.ItemIndex]; try module1.ADOQtoof.Close; module1.ADOQtoof.SQL.Clear; module1.ADOQtoof.SQL.Text:=sqlstr3; module1.ADOQtoof.Open; module1.ADOQtoof.First; while not module1.ADOQtoof.Eof do begin i_tjfrm:=i_tjfrm+module1.ADOQtoof.Fields[0].AsFloat; module1.ADOQtoof.Next; end; finally sqlstr3:=FloatToStr(i_tjfrm); module1.ADOQtoof.Close; module1.ADOQtoof.SQL.Clear;//以上为我求总数的过程 end; sqlstr:='SELECT '; sqlstr:=sqlstr+RadioGroup1.Items.Strings[RadioGroup1.ItemIndex]; sqlstr:=sqlstr+' , count(*) AS 人数 , 100*count(*)/'; sqlstr:=sqlstr+sqlstr3; sqlstr:=sqlstr+' AS [百分比(%)] '; sqlstr:=sqlstr+' FROM ' ; sqlstr:=sqlstr+ pagecontrol1.ActivePage.Caption ; sqlstr:=sqlstr+ ' where 员工号 like '''; sqlstr:=sqlstr+trim(combobox1.Text); sqlstr:=sqlstr+'%'''; sqlstr:=sqlstr+' GROUP BY '; sqlstr:=sqlstr+RadioGroup1.Items.Strings[RadioGroup1.ItemIndex];//以上为统计 module1.ADOQtotj.Close; module1.ADOQtotj.SQL.Clear; module1.ADOQtotj.SQL.Text:=sqlstr; module1.ADOQtotj.Open; mainfrm.StatusBar1.Panels[0].Text:=RadioGroup1.Items.Strings[RadioGroup1.ItemIndex]+' 共计 '+sqlstr3; begin if RadioGroup2.ItemIndex =0 then//选择什么显示方式 begin DBChart1.SeriesList.Clear; vBar := TBarSeries.Create(nil); DBChart1.AddSeries(vBar); vBar.ParentChart := DBChart1; vbar.BarStyle :=bsRectGradient; vbar.ColorEachPoint :=True; vbar.XValues.DateTime := False; vbar.AutoBarSize :=False; vbar.BarWidthPercent := 70; vbar.OffsetPercent :=0; vBar.Marks.Style := smsValue; vbar.DataSource:=module1.ADOQtotj; vbar.XLabelsSource:=DBGrid1.Columns[0].FieldName ; vbar.YValues.ValueSource:=DBGrid1.Columns[1].FieldName; vbar.RefreshSeries; end else if RadioGroup2.ItemIndex =1 then begin DBChart1.SeriesList.Clear; vpie := TPieSeries.Create(nil); DBChart1.AddSeries(vpie); vpie.ParentChart := DBChart1; vpie.ColorEachPoint :=True; vpie.Marks.Style := smsLabelPercent; vpie.DataSource:=module1.ADOQtotj; vpie.XLabelsSource:= DBGrid1.Columns[0].FieldName ; vpie.YValues.ValueSource:=DBGrid1.Columns[1].FieldName ; vpie.RefreshSeries; end; end; DBChart1.RefreshData;end; 是不是要在RadioGroup1Click中将它free掉,那怎么再调用呢 如何判断黑白图片的某点是黑色还是白色 请高手进来看看这样的程式代码错在那里? 招聘志愿者参加游戏Script开发 繁体程序问题 我看了Inside VCL也有些问题想问。。。 关于全局变量的声明 有关向服务器端网页通过Navigate传送文件的问题,急,up有分 运行.dpr文件时提示未找到JR0_TLB.dcu文件 怎样得到当前硬盘分区的各盘符! 没有下班的朋友,帮帮我,这个问题捆饶了我一天! 高手,函数可否返回一个数组,怎样做? 怎样做个无标题栏窗体,不是borderstyle=bsNone
var
i_tjfrm:single;
vPie: TPieSeries;
vBar: TBarSeries;
sqlstr : ansistring;
sqlstr3:string;
begin
i_tjfrm:=0; sqlstr3:=sqlstr1;
sqlstr3:=sqlstr3+' where 员工号 like ''';
sqlstr3:=sqlstr3+trim(combobox1.Text);
sqlstr3:=sqlstr3+'%''';
sqlstr3:=sqlstr3+' GROUP BY ';
sqlstr3:=sqlstr3+RadioGroup1.Items.Strings[RadioGroup1.ItemIndex];
try
module1.ADOQtoof.Close;
module1.ADOQtoof.SQL.Clear;
module1.ADOQtoof.SQL.Text:=sqlstr3;
module1.ADOQtoof.Open;
module1.ADOQtoof.First;
while not module1.ADOQtoof.Eof do
begin
i_tjfrm:=i_tjfrm+module1.ADOQtoof.Fields[0].AsFloat;
module1.ADOQtoof.Next;
end;
finally
sqlstr3:=FloatToStr(i_tjfrm);
module1.ADOQtoof.Close;
module1.ADOQtoof.SQL.Clear;//以上为我求总数的过程
end;
sqlstr:='SELECT ';
sqlstr:=sqlstr+RadioGroup1.Items.Strings[RadioGroup1.ItemIndex];
sqlstr:=sqlstr+' , count(*) AS 人数 , 100*count(*)/';
sqlstr:=sqlstr+sqlstr3;
sqlstr:=sqlstr+' AS [百分比(%)] ';
sqlstr:=sqlstr+' FROM ' ;
sqlstr:=sqlstr+ pagecontrol1.ActivePage.Caption ;
sqlstr:=sqlstr+ ' where 员工号 like ''';
sqlstr:=sqlstr+trim(combobox1.Text);
sqlstr:=sqlstr+'%''';
sqlstr:=sqlstr+' GROUP BY ';
sqlstr:=sqlstr+RadioGroup1.Items.Strings[RadioGroup1.ItemIndex];
//以上为统计
module1.ADOQtotj.Close;
module1.ADOQtotj.SQL.Clear;
module1.ADOQtotj.SQL.Text:=sqlstr;
module1.ADOQtotj.Open;
mainfrm.StatusBar1.Panels[0].Text:=RadioGroup1.Items.Strings[RadioGroup1.ItemIndex]+' 共计 '+sqlstr3;
begin
if RadioGroup2.ItemIndex =0 then//选择什么显示方式
begin
DBChart1.SeriesList.Clear;
vBar := TBarSeries.Create(nil);
DBChart1.AddSeries(vBar);
vBar.ParentChart := DBChart1;
vbar.BarStyle :=bsRectGradient;
vbar.ColorEachPoint :=True;
vbar.XValues.DateTime := False;
vbar.AutoBarSize :=False;
vbar.BarWidthPercent := 70;
vbar.OffsetPercent :=0;
vBar.Marks.Style := smsValue;
vbar.DataSource:=module1.ADOQtotj;
vbar.XLabelsSource:=DBGrid1.Columns[0].FieldName ;
vbar.YValues.ValueSource:=DBGrid1.Columns[1].FieldName;
vbar.RefreshSeries;
end
else if RadioGroup2.ItemIndex =1 then
begin
DBChart1.SeriesList.Clear;
vpie := TPieSeries.Create(nil);
DBChart1.AddSeries(vpie);
vpie.ParentChart := DBChart1;
vpie.ColorEachPoint :=True;
vpie.Marks.Style := smsLabelPercent;
vpie.DataSource:=module1.ADOQtotj;
vpie.XLabelsSource:= DBGrid1.Columns[0].FieldName ;
vpie.YValues.ValueSource:=DBGrid1.Columns[1].FieldName ;
vpie.RefreshSeries;
end;
end;
DBChart1.RefreshData;end;