摘要: TeeChart控件是Visual Studio.NET系統(tǒng)平臺(tái)中的一組主要用于生成各種復(fù)雜的圖標(biāo)的第三方控件。本文從面向?qū)ο蟮慕嵌瘸霭l(fā),以在服務(wù)器端安裝TeeChart控件為例討論了圖形顯示方案,對(duì)TeeChart控件的組成、屬性和方法作了詳細(xì)介紹。
關(guān)鍵詞: TeeChart控件;Visual Studio.NET;第三方控件
1、TeeChart簡(jiǎn)介
TeeChart Pro是Steema Software公司開(kāi)發(fā)的圖標(biāo)圖形組件,TeeChart Pro VCL/CLX支持Windows(Delphi和C++Builder)、.NET(Delphi8)和Linux(Kylix/CLX)系統(tǒng)平臺(tái),TeeChart Pro ActiveX適用于VB、VC++、ASP以及Visual Studio.NET系統(tǒng)平臺(tái)等。TeeChart Pro提供上百種2D和3D圖形風(fēng)格、40余種數(shù)學(xué)和統(tǒng)計(jì)功能、加上無(wú)限制的軸和多種調(diào)色板組件可以選擇,以及20余種用于圖表操作的工具,將圖標(biāo)制作與操作功能發(fā)揮的淋漓盡致,為程序設(shè)計(jì)人員提供了一個(gè)高效、直觀、節(jié)省時(shí)間的編程接口,為終端用戶提供了隨心所欲的發(fā)揮空間。
2、TeeChart的組成元素
TeeChart控件由坐標(biāo)軸、序列、圖例、標(biāo)題和墻壁等主要元素組成,分述如下:
(1)坐標(biāo)軸:TeeChart的坐標(biāo)軸有左、右、上、下、頂部深度、右邊深度和用戶自定義軸7個(gè)類型。由于用戶可隨意定義若干個(gè)坐標(biāo)軸,所以圖表組件中的坐標(biāo)軸是無(wú)限制的。與深度有關(guān)的坐標(biāo)軸是用于三維圖表繪制的。坐標(biāo)軸的刻度既可由程序設(shè)定,也可由圖表自動(dòng)設(shè)置。
(2)序列:圖形所繪制的實(shí)際內(nèi)容。一個(gè)圖表中可以繪制的序列也是不受限制的(與計(jì)算機(jī)內(nèi)存有關(guān)),同一個(gè)圖表中的每個(gè)序列的類型可以不同,不同序列的坐標(biāo)刻度和類型也可以不同。
(3)標(biāo)題和腳注:圖形的說(shuō)明性文字,其顏色、位置、字體等都是可以改變的。
(4)圖例:圖表中的一個(gè)矩形區(qū)域,用于對(duì)圖表中的序列進(jìn)行說(shuō)明,圖例中顯示內(nèi)容、方式、外觀等參數(shù)都可以改變,還可設(shè)定某一個(gè)序列不在圖例中顯示等。
(5)畫(huà)布:圖表組件的畫(huà)布是一個(gè)三維畫(huà)布對(duì)象,可以繪制各種幾何形狀和輸出文字字符,為程序員在圖表上增加新的圖形內(nèi)容提供了方便。
(6)墻壁:為體現(xiàn)圖表的三維效果,圖表組件提供了左面墻、地面、后墻和右面墻共四個(gè)方向的墻壁以增加三維效果,墻的顏色、厚度、透明程度都是可定義的。
3、TeeChart的應(yīng)用實(shí)例
3.1數(shù)據(jù)的讀取
使用TeeChart進(jìn)行曲線繪制的基本過(guò)程是先根據(jù)要顯示的各個(gè)參數(shù),從數(shù)據(jù)源(本地文件或數(shù)據(jù)庫(kù))讀取數(shù)據(jù)(歷史的或?qū)崟r(shí)的);并進(jìn)行坐標(biāo)變換,將數(shù)據(jù)映射到各個(gè)TeeChart所設(shè)定坐標(biāo)范圍內(nèi);然后將它們添加到各個(gè)TeeChart組件里的Series,這些Series會(huì)根據(jù)事先設(shè)定好的屬性自動(dòng)繪制出曲線圖形。
只有先讀取出數(shù)據(jù),才可能利用這些數(shù)據(jù)繪制曲線,從數(shù)據(jù)庫(kù)中讀取數(shù)據(jù)的代碼如下:
//先定義一個(gè)方法
public static DataSet GetDataSet(string sql)
{
OracleConnection oracon = new OracleConnection(數(shù)據(jù)庫(kù)連接串);
OracleDataAdapter sda = new OracleDataAdapter(sql, oracon);
DataSet ds = new DataSet();
sda.Fill(ds);
return ds;
}
//調(diào)用上面的方法讀取數(shù)據(jù)
DataSet dsall = GetDataSet(SQL語(yǔ)句);
sty1.DataSource = dsall.Tables[0];
sty1.LabelMember = dsall.Tables[0].Columns[1].ToString();
sty1.YValues.DataMember= sall.Tables[0].Columns[4].ToString();
3.2多條曲線的顯示
TeeChart組件支持多條曲線共用1個(gè)坐標(biāo)軸的顯示功能,獨(dú)有的無(wú)限坐標(biāo)軸功能使每條曲線有各自的坐標(biāo)軸及相應(yīng)坐標(biāo)高低值,完全滿足多條曲線同時(shí)顯示的應(yīng)用需求。
在編程中,多條曲線顯示是通過(guò)創(chuàng)建不同的序列(Series)實(shí)現(xiàn)。首先在TeeChart組件中增加一條曲線,再使用chart.Series.Add()語(yǔ)句創(chuàng)建不同的序列,然后用chart.Series[x].CustomVertAxis語(yǔ)句為組件創(chuàng)建一個(gè)用戶自定義坐標(biāo)軸,再將這個(gè)坐標(biāo)軸賦給變量axisY2, axisY2是用戶用Axis axisY2 = new Axis()語(yǔ)句創(chuàng)建的變量,系統(tǒng)默認(rèn)axisY2為縱坐標(biāo)Y軸,將其Inverted屬性設(shè)為1,使Y軸的方向向上且數(shù)值遞增。如果設(shè)MytmpVertAxis的Horizontal屬性為true,則這個(gè)坐標(biāo)軸就是水平X軸,然后通過(guò)PositionPercent屬性設(shè)置該坐標(biāo)在圖表中的位置,以及StartPosition和EndPosition屬性設(shè)置坐標(biāo)高低置,再將坐標(biāo)軸指定給相應(yīng)的序列。下列代碼實(shí)現(xiàn)3條不同曲線顯示,運(yùn)行效果如圖1所示。
Steema.TeeChart.Styles.Line sty1 = new Steema.TeeChart.Styles.Line(WebChart1.Chart);
Steema.TeeChart.Styles.Line sty2 = new Steema.TeeChart.Styles.Line(WebChart1.Chart);
chart.Series.Add(sty1);
chart.Series.Add(sty2);
Axis axisY2 = new Axis(1, 1, WebChart1.Chart);
chart.Series[1].CustomVertAxis = axisY2;
WebChart1.Chart.Axes.Custom.Add(axisY2);
WebChart1.Chart.Axes.Left.StartPosition = 71;
WebChart1.Chart.Axes.Left.EndPosition = 100;
axisY2.StartPosition = 46;
axisY2.EndPosition = 70;
4、結(jié)束語(yǔ)
Teechart控件有許多優(yōu)良的特性,而且還在不斷的更新和發(fā)展,與ASP、ASP.net等相結(jié)合,為我們提供了一種快速可靠的圖形開(kāi)發(fā)手段,有效地解決了數(shù)據(jù)的圖形展現(xiàn)問(wèn)題,本文利用Teechart控件實(shí)現(xiàn)了多條曲線的顯示,使得數(shù)據(jù)的統(tǒng)計(jì)圖表更加直觀和易于理解, 滿足了多條曲線同時(shí)顯示的應(yīng)用需求。