统计图表,急!!!!!!!!!(200分)

  • 主题发起人 主题发起人 itcai
  • 开始时间 开始时间
I

itcai

Unregistered / Unconfirmed
GUEST, unregistred user!
各位大侠!现在我使用的是SQL2000数据库,用ADO进行连接,可是为什么在使用DBChart控件时不能支持字符型的字段,只能是数值型啊?
 
没办法,人家就是这么定的,你想实现什么样的功能嘛??
 
图表旁边不是可以显示相关的信息吗?如我统计了房间单元的销售状态,如已售 45,未售55,而该控件则只能显示数字,而已售和未售不能显示?
 
不会吧,这个是可以显示出来的呀??
我就试了两条记录,aa 已售,未售;
bb 100,200
我就直接设series1的Labels为aa,bar为bb,就可以了??
 
我的解决方案,动态赋值 (可根据要求创建多个TBarSeries):
Procedure TForm1.SetChartView;
Type TRecSalesUP = Record
ShipQty: Real;
MonthX: String;
end;
var ArrSalesUP: Array of TRecSalesUP;
ArrBar: TBarSeries;
I: Integer;
begin
with BasDM.SP_Q_CostingShipdo
begin
I := 0;
SetLength(ArrSalesUP,RecordCount);
First;
while not Eofdo
begin
ArrSalesUP.MonthX := FieldByName('MonthX').AsString;
ArrSalesUP.ShipQty := FieldByName('TemACount').AsFloat;
Inc(I);
Next;
end;
Close;
end;

ArrBar:= TBarSeries.Create(Self);
ArrBar.ParentChart := Chart1;
ArrBar.ShowInLegend := False;
ArrBar.GetVertAxis.Minimum := 0;
ArrBar.Marks.Style := smsValue;
ArrBar.Marks.ArrowLength := 10+I*40;
//赋各柱形值
For I:=Low(ArrSalesUP) to High(ArrSalesUP)do
ArrBar.AddBar(Round(ArrSalesUP.ShipQty) Div 1000,ArrSalesUP.MonthX,$00DC987E);
Chart1.Refresh;
end;
 
我用的是delphi6,那我为什么在为Labels设置字段时,下拉列表框中只有数值型的字段,而没有aa字段。
你能否把原码发给我啊(.pas和.dfm),谢谢!
itcai@sina.com
 
老兄真有钱,这样的问题看看Demo,自己多试几把,还搞不定
 
发过去了
 
发给你了
 
哈哈,我也曾经碰到了这个问题。解决办法有:
一、字段类型采用char,千万不要用varChar,用它无法在统计图表的字段选择下拉列表中列出来;
二、如果非要用varChar,建议在ADO控件中新建文本字段,在ADO控件计算事件简单的将varChar字段值赋给新字段,dbchar肯定可以认得新建的字段。
这是被Access2000逼出来的,简单有效,快拿分来!!!!!
 
多人接受答案了。
 
后退
顶部