Teechart圖表應(yīng)用技術(shù)詳解—第七章之如何與任意數(shù)據(jù)集相連
Steema公司和慧都科技針對(duì)中國市場聯(lián)合推出中文版TeeChart for .NET圖表控件,一共漢化2000個(gè)詞條(17000個(gè)單詞),漢化文檔35000個(gè)單詞,包括控件設(shè)計(jì)時(shí)與運(yùn)行時(shí)的界面漢化以及控件使用向?qū)臋n的漢化,總漢化90%以上!
TeeChart for .NET中文版讓您在使用和學(xué)習(xí)上沒有任何語言障礙,至少可以節(jié)省30%的開發(fā)時(shí)間。TeeChart for .NET中文版具有易上手,使用方便,穩(wěn)定性好,性價(jià)比高,價(jià)格優(yōu)惠等優(yōu)勢,并且針對(duì)Web應(yīng)用提供無限制服務(wù)器分發(fā)授權(quán)方式,非常有利于產(chǎn)品集成。
點(diǎn)擊下載TeeChart for .NET最新試用版
TeeChart pro不僅可以以手工( Manual)、隨機(jī)( Random)、函數(shù)( Function)、文本文件( Text File)、XML文件( XML File)、交叉表( CrossTab)的形式為序列( Series)提供數(shù)據(jù)源,當(dāng)采用Delphi7數(shù)據(jù)控制組件板( Data Controls)上的組件TDBChart時(shí),序列的數(shù)據(jù)源還可以是交叉表( CrossTab)、單個(gè)記錄( Single Record)、摘要( Summary)、數(shù)據(jù)集( DataSet)等。 TDBChart源自TChart組件,它繼承了TChart的所有特性,當(dāng)圖表的序列連接到TDBChart時(shí),序列中就增加了Data Source屬性,如下圖所示。
序列的數(shù)據(jù)源是由序列( Series)而不是由圖表( Chart)確定的,一個(gè)數(shù)據(jù)庫圖表( TDBChart)中的多個(gè)序列可以訪問不同的數(shù)據(jù)源。如果這些序列相互沒有關(guān)聯(lián),可通過設(shè)定序列的ParentChart屬性實(shí)現(xiàn),也就是說通過ParentChart指定該序列隸屬于哪個(gè)Chart, Parent Chart屬性如下圖所示。
創(chuàng)建數(shù)據(jù)集( Creating the Dataset)
TeeChart可以與不同類型的數(shù)據(jù)集組件建立連接,如 TTable、 TQuery、 TClientDataset、TADOTable、 TADOQuery等。在連接這些數(shù)據(jù)集組件時(shí),有些需要一個(gè)數(shù)據(jù)庫表名( TTable:TableName),有些需要查詢的SQL串( TQuery:SQL)。
序列數(shù)據(jù)源與數(shù)據(jù)庫表的連接( Connecting Series to a database Dataset)
- 在程序設(shè)計(jì)階段
當(dāng)在圖表編輯器中選擇一個(gè)新的序列時(shí),在Series選項(xiàng)卡中可以看到 Data Source選項(xiàng)卡,這時(shí)可以將指定的序列與下拉列表框( ListBox)中的一個(gè)數(shù)據(jù)庫表相關(guān)聯(lián),此時(shí)需要對(duì)這個(gè)數(shù)據(jù)集給出一個(gè)新的定義,如下圖所示。
當(dāng)設(shè)置好有關(guān)屬性以后,TDBChart在程序設(shè)計(jì)階段看到的效果和程序執(zhí)行階段基本一致,如下圖所示。
- 在程序運(yùn)行階段
TDBChart中序列的數(shù)據(jù)源不僅可以在程序設(shè)計(jì)階段進(jìn)行設(shè)定,也可以在程序運(yùn)行鍋中通過編寫代碼的方式進(jìn)行設(shè)定。若設(shè)窗體中的數(shù)據(jù)庫表組件為Table1,有Name和Amount兩個(gè)字段,可以通過下列代碼實(shí)現(xiàn)程序運(yùn)行過程中的設(shè)定:
Var MySeries:TLineSeries://定義一個(gè) TLineSeries類型的序列MySeries begin MySeries:=TLineSeries.Create( Self );//在內(nèi)存中創(chuàng)建Myseries實(shí)例 With MySeries do begin ParentChart:=DBChart1;//設(shè)定序列的ParentChart屬性為DBChart1 DataSource:=Table1;//設(shè)定序列的DataSource為Table1 XLabelsSource:='Name';//設(shè)定序列的XLabelsSource屬性為表中Name字段的值 YValues.ValueSource:='Amount';//設(shè)定YValues.ValueSource的屬性為Amount字段的值
應(yīng)用實(shí)例
下圖是該實(shí)例設(shè)計(jì)階段界面,各組件屬性設(shè)置如下表所示。值得注意的是組件CheckBox1的Checked屬性與Table1的Active屬性相對(duì)應(yīng),Checked屬性的True與False確定了數(shù)據(jù)庫表Table1的打開與關(guān)閉。
組件 | 屬性 | 設(shè)定值 | 說明 |
TDBChart | Name |
DBChart1 |
圖表組件 |
TTable | Name |
Table1 |
表組件名稱 |
DatabaseName | DBDEMOS | 數(shù)據(jù)庫別名,Delphi自帶 | |
TableName | animals.dbf | 數(shù)據(jù)庫表明,有關(guān)動(dòng)物表 | |
Active | true | 數(shù)據(jù)庫表初始處于打開狀態(tài) | |
TBarSeries |
Name |
Series1 |
序列組件名稱 |
Datasource |
Table1 |
設(shè)置序列的數(shù)據(jù)源是Table1 | |
ParentChart |
DBChart1 |
表示該序列屬于DBChart1組件 | |
TCheckBox |
Name |
CheckBox1 |
用于控制Table1的打開和關(guān)閉 |
Checked |
true |
||
TButton |
Name |
Button1 |
該按鈕用于在程序運(yùn)行時(shí)增加序列 |
Caption |
&A.增加序列 |
為了在程序運(yùn)行期間能夠控制數(shù)據(jù)庫表的打開與關(guān)閉,需要在 CheckBox1的OnClick事件中加入下列代碼:
Table1.Active:=CheckBox1.Checked;
當(dāng)需要?jiǎng)討B(tài)即程序運(yùn)行過程中增加序列時(shí),可在按鈕 Button的OnClick事件中加入上面在程序運(yùn)行階段中的代碼,當(dāng)單擊該按鈕后程序界面變換為下圖所示的外觀,可以看出在圖表組件中增加了一個(gè)TLineSeries對(duì)象MySeries。
相關(guān)資料推薦:
下一章:按組摘要與排序
=====================================
現(xiàn)TeeChart for .NET,TeeChart for JavaScript/HTML5,TeeChart for Xamarin.Android等均已加入在線訂購,現(xiàn)在搶購可立享優(yōu)惠!
關(guān)注慧聚IT微信公眾號(hào)???,了解產(chǎn)品的最新動(dòng)態(tài)及最新資訊。