关于DBChart 的简单问题,抢分的快来!!!急急急!!!(100分)

  • 主题发起人 主题发起人 zhhero
  • 开始时间 开始时间
Z

zhhero

Unregistered / Unconfirmed
GUEST, unregistred user!
问题1:使用DBChart 绘制数据库数据,x轴是DateTime类型,为什么
不能把日期时间数据(如2000-4-24 2:23:00)显示到x轴下
的说明处(显示的是数值).
问题2:怎样能按时间间隔分配x轴,比如数据为:
纪录号 日期时间 数据
1 2000-4-24 2:00:00 34.5
2 2000-4-24 3:00:00 45.6
3 2000-4-24 5:00:00 56.7
4 2000-4-24 6:00:00 67.8
在显示时,把1,2间隔与3,4间隔相同,但只为2,3间隔的一半.
问题3:显示的图形如何输出到打印机,如何输出到一个外部图形文件
(*.bmp,*.jpg,*,gif或其他格式)
问题4:如何将一个纪录的若干字段(如10个实数字段,可以动态选择)
内容同时显示到一条Chart曲线上.
以上是小弟遇到的难题,请各位大虾赐教.急急急!!!
 
对了,小弟环境: win98 + delphi 5
 
对于1,在DBChart的设计对话框中,Series DataSource 的X轴有一个属性
DateTime,打勾。
对于2,如果只是1个Series的话,不可能;除非是多个Series。
对于3,DBChart本身有方法SaveToBitmapFile,SaveToMetafile,
SaveToMetafileEnh。其他格式只有另外转换。
对于4,必须动态创建Series。
例:
DBChart.RemoveAllSeries;
for I:=0 to ListPID.Items.Count-1 //ListPID是TCheckList
do
begin
if ListPID.Checked
then
begin
Ser:=TBarSeries.Create(FXChart);
//Ser是TSeries变量
TBarSeries(Ser).MultiBar:=mbSide;
end;
DBChart.AddSeries(Ser);
N:=ListPID.Items.Names;
Ser.Title:=ListPID.Items.Values[N];
{Ser.Add(需要的值, N, clTeeColor);}
end;
end;
 
感谢zensst支持!!先奉送一半给您
1.Series DataSource 的X轴属性 DateTime已经打勾,但并不好使,所以
我才提出本问题,要补充的是:我使用ACCESS97数据库,使用Diamond Access
访问它
2.没明白,请详细说明一下,拜托.
3.怎样发送打印机?
4.这个明白了.我使用的也是Checklist,但列出的是名称,即在另一个数据表
中保存的本数据表各字段的中文解释,我想在Checklist中选择数据项对应
的中文解释,处理时将数据项输出到Chart,如何办到呢?.
盼高手赐教!!
 
to printer:
Printer.Orientation:=poLandscape;
Printer.begin
Doc;
try
h:=Printer.PageHeight;
w:=Printer.PageWidth;
DBChartTeShu.PrintPartial( Rect( w div 10,
h div 10,
w - (w div 10),
h - (h div 10) ));
Printer.EndDoc;
except
on Exceptiondo
begin
Printer.Abort;
Printer.EndDoc;
Raise;
end;
end;
 
我使用: DBChart.print 也可以打印,即直接发送打印命令,但是,打印预览
和打印设置功能找不到,也就是象TeeChart自己提供的那个,您有办法吗?
谢谢.........英国病人!!!!
 
对于1,在DBChart的设计对话框中,Series DataSource 的X轴有一个属性
DateTime,打勾,还有在Chart axis 中设置bottom 的
label datetime format 为 "yyyy-mm-dd hh:mm:ss" 才可以
显示为日期数据,(注意:下面的Style 一定要选 Value).
哈哈,自己把它找出来了,还要谢谢zensst的帮助!!!!
怎么问题2和问题4门前冷落呢?
 
怎么再没有人关注了呢?拜托了....
 
对于问题2,如果是Series有BarWidth和BarOffset的属性,可以调节间距;
你试试看。只有一个Series是调不出来的,除非你将1和3归为1个Series,2和4
归为1个Series。这时,可能用TChart比TDBChart好,只是代码写得多。
对于问题4,你可以做一个对照表,可以用TStringList(如果字段数不是很多
的话);TStringList.Add(中文名=字段名);选中中文名后,可以用
TStringList.Value(中文名)得到字段名。一条记录好象不能用一个Series,
它只能对多条记录。只有一个字段对应一个Series。
总之,最好用TChart,自己处理数据,不要怕麻烦。
 
感谢zensst再次支持!!!!!!!
问题一已解决,设定Axis bottom label 的style 为value 即可.
问题一解决后,问题二自动解决,您可以试试.
问题三关于打印预览还未解决.
问题四我用动态生成一个临时数据库方法解决,DBChart显示该数据库内容
不知还有更好方法没有?
 
多人接受答案了。
 
在DBChart的设计对话框中,Series DataSource 的X轴有一个属性DateTime,打勾
这是在设计时候设置的,如果我要写代码怎么控制?
 
后退
顶部