teechart属性设置.docx

上传人:b****3 文档编号:10897643 上传时间:2023-05-28 格式:DOCX 页数:19 大小:29.73KB
下载 相关 举报
teechart属性设置.docx_第1页
第1页 / 共19页
teechart属性设置.docx_第2页
第2页 / 共19页
teechart属性设置.docx_第3页
第3页 / 共19页
teechart属性设置.docx_第4页
第4页 / 共19页
teechart属性设置.docx_第5页
第5页 / 共19页
teechart属性设置.docx_第6页
第6页 / 共19页
teechart属性设置.docx_第7页
第7页 / 共19页
teechart属性设置.docx_第8页
第8页 / 共19页
teechart属性设置.docx_第9页
第9页 / 共19页
teechart属性设置.docx_第10页
第10页 / 共19页
teechart属性设置.docx_第11页
第11页 / 共19页
teechart属性设置.docx_第12页
第12页 / 共19页
teechart属性设置.docx_第13页
第13页 / 共19页
teechart属性设置.docx_第14页
第14页 / 共19页
teechart属性设置.docx_第15页
第15页 / 共19页
teechart属性设置.docx_第16页
第16页 / 共19页
teechart属性设置.docx_第17页
第17页 / 共19页
teechart属性设置.docx_第18页
第18页 / 共19页
teechart属性设置.docx_第19页
第19页 / 共19页
亲,该文档总共19页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

teechart属性设置.docx

《teechart属性设置.docx》由会员分享,可在线阅读,更多相关《teechart属性设置.docx(19页珍藏版)》请在冰点文库上搜索。

teechart属性设置.docx

teechart属性设置

设计背景

基于服务器/浏览器架构的解决方案在越来越多的领域得到应用。

使用ASP脚本,我们可以方便地访问各种数据库,生成与用户交互的动态页面。

一般情况下,由浏览器解释要显示的结果,其中统计数据的显示结果一般采用HTML表格形式。

笔者在铁路车站Intranet系统的开发过程中,遇到要把数据库中的统计结果用统计图表(柱状图、折线图、饼图等)方式输出的问题。

因为统计图表在美观和易于理解等方面有着表格所不具备的优越性,所以这个问题具有一定的普遍性。

目前,针对这个问题,主要有3种可行的解决方案:

1.在浏览器端安装使用图表控件如MsChart等。

这样做的缺点是在客户端要安装和注册ActiveX控件,操作较为复杂,并且把客户端系统限制在Windows的范围内。

2.使用JavaApplet显示图形。

这样做开发难度较高,需要针对具体的应用要求编制Java绘图程序。

3.在服务器端使用控件动态生成图形文件(JPEG格式),此方法可以适用于任何流行的客户端浏览器。

本文讨论第3种方案,使用的控件是TeeChartProActiveX4.0版(目前最新版本为8.0(最新版本下载),另外TeeChart还有TeeChartfor.NET、TeeChartProVCL/CLX、TeeChartProforJava以及TeeChartforPHP)。

TeeChart控件应用

TeeChartProActiveX是西班牙SteemaSL公司开发的图表类控件,主要用来生成各种复杂的图表。

熟悉Delphi和C++Builder的编程人员对它不会陌生,因为在Delphi和C++Builder里包括了TeeChart的VCL版本。

本文将详细介绍TeeChart控件应用方法,本文使用的是TeeChartProActiveX4.0,它的试用版可以点击这里下载。

TeeChartProActiveX4.0的主要特性如下:

图表的坐标轴

Bar,Bar3D以及HorizontalBar序列

TChartListBox

图表主题

TColorBand工具

TCommander

自定义图表调色板

图表中的图例

新的“2DLighting”工具

新的SurfaceNearest工具

新增加的函数

图表编辑器

饼状图和圆环图序列

三维点序列

图表画布

图表序列组

输出格式

AllSerieswith"Pointer"property所有序列都拥有"Pointer"属性

图表的SeriesList属性

TChart1.SeriesList.ClearValues

TeeChartProActiveX4.0的这些特性使得它具有极大的灵活性,并且使用起来非常方便,只要写很少的代码,就可以做出各种复杂、漂亮的图表。

TeeChart图表控件类的属性和方法

TeeChart图表控件的主类是TChart。

TChart中使用了56个类、325个属性、125个方法以及28个事件,这使得TChart具有非常强大的功能。

本文仅简单地介绍其中一些重要类的属性和方法。

TChart.Height:

图表的高度(像素);

TChart.Width:

图表的宽度(像素);

TChart.Header:

图表的题头(Ititles类);

TChart.Series:

序列(Series类的数组);

TChart.Axes:

坐标轴(Iaxes类);

TChart.Legend:

图例(Legend类);

TChart.Panel:

面板(Ipanel类);

TChart.Canvas:

画布(Canvas类)。

Series是要显示的数据的主体。

在一个图表中可以有一个或多个序列,每个序列可以有不同的显示类型,如Line、Bar、Pie等等。

Axes控制图表坐标轴的属性,在缺省的情况下,坐标轴可以自动地根据不同的数据设置好标度范围和间隔,当然也可以手工调整。

Legend控制图表的图例显示。

Legend是图表中的一个长方形的用来显示图例标注的区域。

可以标注Series的名称或者Series中的项目和数值。

Panel可以设置图表的背景。

可以使用渐变的颜色或者图像文件作为整个图表的背景。

Canvas可以让设计者绘制自己的图形。

使用方法和Delphi中的Canvas一样。

有TextOut、LineTo、Arc等各种画图的方法可以调用。

TChart的一些属性实际上是其他类的变量,这些类又具有自己的属性和方法。

如Ititles类又具有Text、Color、Font等属性,我们可以用这些属性来设置题头的文本、颜色和字体。

TeeChart图表控件和其他的图表控件相比,有一个非常重要的特点是TeeChart图表控件可以把图表保存为一个JPEG格式的图形文件。

调用格式如下:

TChart.Export.SaveToJPEGFile(FileName,Gray,Performance,Quality,Width,Height)

其中FileName是JPEG文件的保存路径和文件名,路径应该是操作系统中的绝对路径,而不是IIS中的相对路径,IIS对相应的保存目录应该具有写权限。

Gray指明是否保存为黑白图像。

Performance指明JPEG是生成质量优先还是速度优先。

Quality是一个0到100的整数,100时JPEG质量最好,但文件最大;Quality越小则生成的文件越小,但图像质量也随之下降。

为了解决在多用户并发访问Web的情况下,JPEG文件互相覆盖的问题,我们使用了如下所示的一种JPEG文件的命名机制:

OutputJPEGFile=“Chart”&Session.Sessionid&

Replace(Time,“.”,“”)&“.jpg”

在文件名中包括了Sessionid和当前时间,并使用后台进程定期删除过期文件。

TeeChart控件应用实例

下面是一个简单的ASP程序,从中可以看到TeeChart图表控件在ASP中的使用方法。

程序的运行环境为:

Windows2000Professional、IIS5.0和TeeChartProActiveX.0测试版。

TeeChartJPEGChartDemoPage

--引入TeeChart常数-->

--METADATANAME=“TeeChartPro4.0

ActiveXControl”TYPE=“TypeLib”

UUID=“{008BBE7B-C096-11D0-B4E3-00A0C901D681}”-->

<%

--建立ActiveXObject-->

SetTChart1=CreateObject(“TeeChart.TChart”)

--设置高度和宽度-->

TChart1.Height=250

TChart1.Width=500

--设置图表题头-->

TChart1.Header.Text.Clear

TChart1.Header.Text.Add“K180次旅客列车日发送人数统计图”

--设置图形背景-->

TChart1.Panel.Gradient.Visible=True

TChart1.Panel.Gradient.StartColor=RGB(200,255,200)

TChart1.Panel.Gradient.EndColor=RGB(255,255,255)

--添加一个序列-->

TChart1.AddSeries(scBar)

TChart1.Series(0).Clear

TChart1.Series(0).ColorEachPoint=True

TChart1.Series(0).Add180,“02/10”,clTeeColor

TChart1.Series(0).Add240,“02/11”,clTeeColor

TChart1.Series(0).Add210,“02/12”,clTeeColor

TChart1.Series(0).Add280,“02/13”,clTeeColor

TChart1.Series(0).Add218,“02/14”,clTeeColor

TChart1.Series(0).Add225,“02/15”,clTeeColor

--保存为JPEG文件-->

TChart1.Export.SaveToJPEGFileserver.mappath(“/teechart”)+“\MyChart.jpg”,False,JPEGBestQuality,85,TChart1.Width,TChart1.Height

%>

实现绘图步骤:

1.加入Teechart控件。

2.创建chart实例并设置相关全局属性(设置chart实例的属性将对所有其他成员,包括所有series实例产生影响)。

3.添加Series序列实例,设置该实例相关属性(设置实例化series的属性作用范围是该series实例,如果为单一series实例,可直接设置其属性而不设置chart实例),并绑定数据源。

常用属性:

(假设控件实例为WebChart1,设置全局属性也可通过实例化chart来设置,即Steema.TeeChart.ChartChart1=WebChart1.Chart;在此不考虑这种)

WebChart1.AutoPostback=false;//自动回发(默认)

WebChart1.GetChartFile="GetChart.aspx";

//处理数据页(默认),GetChart.aspx内容后附

WebChart1.Width=400;//显示宽度

WebChart1.Height=300;//显示高度

WebChart1.PictureFormat=Steema.TeeChart.Export.PictureFormats.Bitmap;

//显示图片的格式,默认PNG

WebChart1.TempChart=Steema.TeeChart.Web.TempChartStyle.Session;

//设置保存数据形式,默认File,一般选session。

Chart.Aspect(外观属性)

WebChart1.Chart.Aspect.View3D=false;//取消3D表示

Chart.Header(显示头)

WebChart1.Chart.Header.Visible=false;//是否显示头文字

WebChart1.Chart.Header.Text="顶部显示文字";

Chart.Axes(坐标轴)

WebChart1.Chart.Axes.Left.Title.Text="纵坐标文字显示";

WebChart1.Chart.Axes.Bottom.Title.Text="横坐标文字显示";

Chart.Legend(图例)

WebChart1.Chart.Legend.LegendStyle=Steema.TeeChart.LegendStyles.Auto;

//图例显示的样式,包含一下方面:

默认auto

WebChart1.Chart.Legend.Alignment=Steema.TeeChart.LegendAlignments.Bottom;

//图例显示位置(显示线条颜色,线条代表对象)

WebChart1.Chart.Legend.Visible=false;//是否显示图例

WebChart1.Chart.Legend.Font.Color=System.Drawing.Color.Black;

//图例文本显示颜色

Chart.Panel(底板设置)

WebChart1.Chart.Panel.Color=System.Drawing.Color.AliceBlue;

//底板颜色(似乎不管用)

实例化序列:

Steema.TeeChart.Styles.Lineline1=newSteema.TeeChart.Styles.Line();

WebChart1.Chart.Series.Add(line);

//实例化线,也可以如下一句完成:

Steema.TeeChart.Styles.Lineline1=

newSteema.TeeChart.Styles.Line(WebChart1.Chart);

line1.YValues.DataMember=DS.Tables[0].Columns[2].ToString();

//设置比较刻度(纵坐标)

line1.LabelMember=DS.Tables[0].Columns[1].ToString();

//设置成员标签(横坐标)

line.Title="111111";

//设置其标题,可以在图例上显示此标题,多线时有用

line.Color=System.Drawing.Color.Red;

//设置线条颜色,可不设置,默认

line1.DataSource=DS.Tables[0];

WebChart1.DataBind();

//数据绑定

TChart使用经验小结[喝小酒的网摘]

1、问题:

通过Addxy方法给TChart添加标记(Mark)时,发现在TChart的横坐标会随着Mark而变化,后来发现通过以下方法可避免这种情况:

双击TChart,点击Axis->toporbottom->labels,在styles中将labels的形式改为Value即可!

2、几个有用的属性:

       图表上的每个点都是有索引的,就象一个数组一样,在OnClickSeries事件中有个ValueIndex属性,该属性可以得到鼠标所点击的点的索引值(必须将Series的Point设置为可见,鼠标点击到那个点时才可以触发该事件)。

      xValue[index]、yValue[index]分别表示图表的索引为index的横纵坐标值,用这两个属性可以读取和设置索引为index的点的值,注意:

不要用xValues和yValues,这两个属性也可以达到同样的目的,但是速度非常的慢。

因为后两个在进行操作的时候可能要遍历整个图表上的值(个人观点)     在MouseDown,MouseMove,Mouseup中,可以利用xScreentoValue(x),yScreentoValue(y)得到鼠标当时所在点对应在图表上的横纵坐标值。

e.g......private

 Nowindex:

Integer;

 Cantuo:

boolean;........procedureTfrmMain.Chart1ClickSeries(Sender:

TCustomChart;

 Series:

TChartSeries;ValueIndex:

Integer;Button:

TMouseButton;

 Shift:

TShiftState;X,Y:

Integer);

begin

 NowIndex:

=ValueIndex;

end;procedureTfrmMain.Chart1MouseDown(Sender:

TObject;Button:

TMouseButton;

 Shift:

TShiftState;X,Y:

Integer);

begin

Cantuo:

=true;end;procedureTfrmMain.Chart1MouseUp(Sender:

TObject;Button:

TMouseButton;

 Shift:

TShiftState;X,Y:

Integer);

begin

Cantuo:

=false;

end;procedureTfrmMain.Chart1MouseMove(Sender:

TObject;Shift:

TShiftState;X,

 Y:

Integer);

begin

ifCantuothen

begin

 Series1.yValue[NowIndex]:

= Series1.yScreenToValue(y);

end;

end;这里即实现了可以在图表中拖动某一个点使其在纵轴上变化位置 Tchart分析报告 1    Tchart分析报告1.1     [概述]   TChart是delphi里面一个标准的图形显示控件。

它可以静态设计(atdesigntime)也可以动态生成。

 1.2     [继承关系]   

 

TObject 

 

TPersistent 

 

TComponent 

 

TControl 

 

TCustomControl 

 

TWedgetControl 

 

TChart 

 

TCustomPanel 1.3     [tips] 1.3.1           ProVersion支持Bezier,Contour,Radar和 point3D 曲线 1.3.2            支持jpeg文件的导出 1.3.3           Chart中的Series 可以连接到Table,Query,RemoteDataset(其他数据集) 1.3.4           TChart里的series的active属性可以实现对已绘制图形的显示或者隐藏 1.3.5            在TChart中,tchartSeries是所有具体series的父类,没有画出什么来的,用一个具体的series类来创建就可以了,比如用TLineSeries、TPieSeries、 TPointSeries、 TPointSeries等等都行 1.3.6           TTeeFunctionComponent可以实现在同一个TChart里面,一个Serries对另一个Serries的统计  1.4     [问题极其使用技巧] 1.4.1           TChart中如何实现只有Y轴的放大与缩小功能?

 设置BottomAxis或者LeftAxis的Automatic:

=false并同时设置Minimum,Maximum属性 1.4.2           如何固定TChart中的坐标,不使TChart中的坐标跟随Series的变化而变化?

 //设置底座标 withmyChart.BottomAxisdo begin   Automatic:

=false;   Minimum:

=0;   LabelStyle:

=talText; end; //设置左坐标 withmyChart.LeftAxisdo begin   Automatic:

=false;   Minimum:

=0;   Title.Angle:

=270;   Title.Font:

=Self.Font;   Title.Font.Charset:

=ANSI_CHARSET;   Title.Font.Name:

='@宋体';   Grid.Visible:

=False; end; //设置右坐标 withmyChart.RightAxisdo begin   Automatic:

=false;   Title.Font:

=Self.Font;   Title.Font.Charset:

=ANSI_CHARSET;   Title.Font.Name:

='@宋体';   Title.Caption:

='累计百分比(%)';   Maximum:

=100;   Minimum:

=0; end; 1.4.3            如何删除一个图形中的一个点?

 使用Series的delete方法1.4.4            如何修改一个点的X或者Y 值?

 LineSeries1.YValue[3]:

=27.1;{InBubbleSeries}BubbleSeries1.RadiusValues.Value[8]:

=8.1;{InPieSeries}PieSeries1.PieValues.Value[3]:

=111; 1.4.5            如果横坐标是时间(日期),如何进行设置?

 {First,youneedtosettheDateTimepropertytoTrueinthedesiredXand/orYvalueslist.}LineSeries1.XValues.DateTime:

=True;{Second,usethesameabovedescribedmethods,butgivethevaluesasDate,TimeorDateTimevalues}LineSeries1.AddXY(EncodeDate(1996,1,23),25.4,'Barcelona',clGreen);1.4.6            如何在chart中画出的曲线某个点上标记出该点的值?

Series.Marks.Visible:

=true;Series.Marks.Style:

=smsValue; 1.4.7            如何设置横轴或者纵轴的增长率?

 Chart.BottomAxis.Increment:

=DataTimeStep[dtOneHour];Chart.RightAxis.Increment:

=1000; 1.4.8            如何对图象进行缩放?

 TChart的ZoomRect或者ZoomPercent方法(Pie图可能不支持缩放)  1.5     [TChart可以绘制的图形]1.5.1           Line(TLineSeries) 1.5.2    FastLine(TFastLineSeries) 相对Line来说,它损耗了某些属性从而来实现快速绘制 1.5.3           Bar(TBarSeries)1.5.4           Horizontalbar(THorizBarSeries) 1.5.5           Area(TAreaSeries)1.5.6           Point(TPointSeries) 1.5.7           Pie(TPieSeries)1.5.8           Arrow(TArrowSeries) 1.5.9           Bubble(TBubbleSeries)1.5.10        Gantt(TGa

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2