用DBChart来显示统计图,如何在程序里动态设定X,Y轴对应的字段?(75分)

  • 主题发起人 主题发起人 wolf_zj
  • 开始时间 开始时间
创建一个FORM,放DBCHART组件,TABLE组件,两个按钮。TABLE组件连接表,当然你也可以用QUERY等。
看以下例子:
procedure TForm1.Button1Click(Sender: TObject);// 曲线
var myseries:TLineSeries;
begin
dbchart2.SeriesList.Clear;
myseries:= TLineSeries.Create(self);
myseries.ParentChart:=dbchart2;
myseries.DataSource:=table1;
myseries.XValues.ValueSource:='yf';
myseries.YValues.ValueSource:='gz';
end;

procedure TForm1.Button2Click(Sender: TObject);// 柱状
var myseries:TBarSeries;
begin
dbchart2.SeriesList.Clear;
myseries:= TBarSeries.Create(self);
myseries.ParentChart:=dbchart2;
myseries.DataSource:=table1;
myseries.XValues.ValueSource:='yf';
myseries.YValues.ValueSource:='gz';
end;
其他的,看了这个,原理是一样的。
 
通过
chart1.BottomAxis的Maximum和Maximum
chart1.LeftAxis的Maximum和Maximum
 
如果X字断不是数字怎么办!
 
哪Labels怎么指定?
 
陈年的老酒你也搬出来了,呵呵。
主要可以考虑使用下面这个函数。根据LabelText的值再回改就可以了。
LabelText缺省为Float类型,可能需要转换成整数,记住,用Trunc。
procedure TForm1.Chart1GetAxisLabel(Sender: TChartAxis;
Series: TChartSeries;
ValueIndex: Integer;
var LabelText: String);
 
我要做CHART,用FastReport吧,用了一下,放在MASTER DATA里,打N个CHART出来,放在其它地方不管用。
就改这个了,搜了一搜,就找出来了。上QQ吧。
 
俺没有QQ[:D]
 
哦,哪啷个办呢?
我在设计时指定LABELS就显示得非常好。
动态的写:
Chart.Series[0].DataSource := Table1;
Chart.Series[0].XValues.valuesource := 'y';
就乱了。
如:我的X轴上是1月,2月,3月,4月……
我在设计时指定就很整齐,顺序也是好的。
可我动态指定就不整齐了,顺序也乱了,间隔也不等了。
 
你使用Series.AddXY后似乎就可以的、
function AddXY(Const AXValue, AYValue:do
uble;
Const AXLabel: String;
AColor: TColor) : Longint;
 
这个样子就只有一个数据一个数据的加了。
我要画两条线,三条线怎么画。
用Chart.Series[0].AddArray() ?
 
三条?你使用的是三个Series,每个Series都有AddXY方法!
 
哦,试试先。
 
好用好用,谢谢了,不愧为专家。
 
[:D]过奖了。好用就好了。过几天,这个帖子又会沉入谷底,不知道什么时候才能再次浮上来[:D]
 
贴主来结贴,要不找班主来结吧,明显是问题已解决,可以结了。
 
自生自灭,顺其自然最好的啦
 
听起来有点COOL,但实际不是这样。
我写CHART去了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部