我想做出如下图的效果
只是tchart部分,一点击字段就会统计,自己昨天弄了一下,很不成功,我的问题代码procedure TForm9.bsSkinTreeView1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
varSeries: TpieSeries;
begin
if bsskintreeview1.Selected.Text = '性别' then
//点中第一个根节点后
begin
adoquery1.Close;
adoquery1.SQL.clear;
adoquery1.SQL.Add('select * from 员工基本信息表 ');
adoquery1.open;
sumday1:=adoquery1.RecordCount;
end
else if bsskintreeview1.Selected.Text = '男' then
//点中第二个根节点后
begin
adoquery1.Close;
adoquery1.SQL.clear;
adoquery1.SQL.Add('select * from 员工基本信息表 where 性别=''男''');
adoquery1.open;
sumday2:=adoquery1.RecordCount;
end
else if bsskintreeview1.Selected.Text ='女' then
//点中第二个根节点后
begin
adoquery1.Close;
adoquery1.SQL.clear;
adoquery1.SQL.Add('select * from 员工基本信息表 where 性别=''女''');
adoquery1.open;
sumday3:=adoquery1.RecordCount;
Series := TpieSeries.Create(Chart1);Series.Add(100, '男 '''+floattostr((sumday2/sumday1)*100)+'''''%', clRed);Series.Add(200, '女 '''+floattostr((sumday3/sumday1)*100)+'''''%', clGreen);
Chart1.AddSeries(Series);
end;end;
盼望高手能帮我写一下‘性别’部分的功能实现,以及别的字段切换的思路
只是tchart部分,一点击字段就会统计,自己昨天弄了一下,很不成功,我的问题代码procedure TForm9.bsSkinTreeView1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
varSeries: TpieSeries;
begin
if bsskintreeview1.Selected.Text = '性别' then
//点中第一个根节点后
begin
adoquery1.Close;
adoquery1.SQL.clear;
adoquery1.SQL.Add('select * from 员工基本信息表 ');
adoquery1.open;
sumday1:=adoquery1.RecordCount;
end
else if bsskintreeview1.Selected.Text = '男' then
//点中第二个根节点后
begin
adoquery1.Close;
adoquery1.SQL.clear;
adoquery1.SQL.Add('select * from 员工基本信息表 where 性别=''男''');
adoquery1.open;
sumday2:=adoquery1.RecordCount;
end
else if bsskintreeview1.Selected.Text ='女' then
//点中第二个根节点后
begin
adoquery1.Close;
adoquery1.SQL.clear;
adoquery1.SQL.Add('select * from 员工基本信息表 where 性别=''女''');
adoquery1.open;
sumday3:=adoquery1.RecordCount;
Series := TpieSeries.Create(Chart1);Series.Add(100, '男 '''+floattostr((sumday2/sumday1)*100)+'''''%', clRed);Series.Add(200, '女 '''+floattostr((sumday3/sumday1)*100)+'''''%', clGreen);
Chart1.AddSeries(Series);
end;end;
盼望高手能帮我写一下‘性别’部分的功能实现,以及别的字段切换的思路
解决方案 »
- 关于李维的第二章
- 关于DELPHI中float处理的问题
- 怎么样通过sql语句把一个表中的一条图片字段记录insert到另一个表?
- ★★★小弟我现在遇到个瓶颈,请过来人帮忙!★★★★
- 请问如何实现RichEdit的多步Undo和Redo功能?
- 关于第三方控件的问题
- 我想从0开始学习Delphi,我没有任何语言基础!该怎么学?
- 用sql语句查询“姓名”,“姓名”不止一个,由Edit提供该怎么写?
- 关于 From DB2 To Oracle 的数据转换问题(相关;序列),求教!(只让给20分不好意思!)
- 关于Delphi/Pascal文件操作的问题
- ADOCONNECTION直接连接ORACLE如何做?
- TpagecontrolEx 一个你调试不到的错误;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
varSeries: TpieSeries;
begin if bsskintreeview1.Selected = nil then exit; // 底下語句就用你自己的就行了。沒有發現在錯誤。
var
Series : TChartSeries ;
begin
Chart1.SeriesList.Clear; // 先清掉。
Series := TChartSeries.Create(Chart1);Series.Add(100, 'aaa', clRed);Series.Add(200, 'AAA', clGreen);Chart1.AddSeries(Series);
end;
procedure TForm9.bsSkinTreeView1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);begin
if bsskintreeview1.Selected = nil then exit;
if bsskintreeview1.Selected.Text = '性别' then
//点中第一个根节点后
begin
adoquery1.Close;
adoquery1.SQL.clear;
adoquery1.SQL.Add('select * from 员工基本信息表 ');
adoquery1.open;
Chart1.SeriesList[1].Active := False;
Chart1.SeriesList[0].Active := True;
Chart1.SeriesList[0].Clear;
Series1.Add(sumday2, '男 ', clRed);
Series1.Add(sumday3, '女 ', clGreen);
end
else if bsskintreeview1.Selected.Text = '男' then
//点中第二个根节点后
begin
adoquery1.Close;
adoquery1.SQL.clear;
adoquery1.SQL.Add('select * from 员工基本信息表 where 性别=''男''');
adoquery1.open;
Chart1.SeriesList[1].Active := False;
Chart1.SeriesList[0].Active := True;
Chart1.SeriesList[0].Clear;
Series1.Add(sumday2, '男 ', clRed);
Series1.Add(sumday3, '女 ', clGreen);
end
else if bsskintreeview1.Selected.Text ='女' then
//点中第二个根节点后
begin
adoquery1.Close;
adoquery1.SQL.clear;
adoquery1.SQL.Add('select * from 员工基本信息表 where 性别=''女''');
adoquery1.open;
Chart1.SeriesList[1].Active := False;
Chart1.SeriesList[0].Active := True;
Chart1.SeriesList[0].Clear;
Series1.Add(sumday2, '男 ', clRed);
Series1.Add(sumday3, '女 ', clGreen);
end
else if bsskintreeview1.Selected.Text ='婚姻状况' then
//点中第二个根节点后
begin
adoquery1.Close;
adoquery1.SQL.clear;
adoquery1.SQL.Add('select * from 员工基本信息表 ');
adoquery1.open;
Chart1.SeriesList[0].Active := False;
Chart1.SeriesList[1].Active := True;
Chart1.SeriesList[1].Clear;
Series2.Add(sumday4, '已婚 ', clRed);
Series2.Add(sumday5, '未婚 ', clGreen);
end
else if bsskintreeview1.Selected.Text='已婚' then
begin
adoquery1.Close;
adoquery1.SQL.clear;
adoquery1.SQL.Add('select * from 员工基本信息表 where 婚姻状况=''已婚''');
adoquery1.open;
Chart1.SeriesList[0].Active := False;
Chart1.SeriesList[1].Active := True;
Chart1.SeriesList[1].Clear;
Series2.Add(sumday4, '已婚 ', clRed);
Series2.Add(sumday5, '未婚 ', clGreen);
end
else if bsskintreeview1.Selected.Text='未婚' then
begin
adoquery1.Close;
adoquery1.SQL.clear;
adoquery1.SQL.Add('select * from 员工基本信息表 where 婚姻状况=''未婚''');
adoquery1.open;
Chart1.SeriesList[0].Active := False;
Chart1.SeriesList[1].Active := True;
Chart1.SeriesList[1].Clear;
Series2.Add(sumday4, '已婚 ', clRed);
Series2.Add(sumday5, '未婚 ', clGreen);
end;end;