Teechart圖表應(yīng)用技術(shù)詳解—第七章之主明細(xì)式圖表應(yīng)用
Steema公司和慧都科技針對(duì)中國(guó)市場(chǎng)聯(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í)上沒(méi)有任何語(yǔ)言障礙,至少可以節(jié)省30%的開(kāi)發(fā)時(shí)間。TeeChart for .NET中文版具有易上手,使用方便,穩(wěn)定性好,性價(jià)比高,價(jià)格優(yōu)惠等優(yōu)勢(shì),并且針對(duì)Web應(yīng)用提供無(wú)限制服務(wù)器分發(fā)授權(quán)方式,非常有利于產(chǎn)品集成。
點(diǎn)擊下載TeeChart for .NET最新試用版
主明細(xì)式圖表應(yīng)用( Master- Detail)
當(dāng)需要根據(jù)主表的選擇,在副表中查找與主表相關(guān)的信息時(shí),采用主一明細(xì)方式查詢是一個(gè)很好的選擇,這時(shí)如果能將查詢結(jié)果以圖表形式表示那就更是錦上添花了。下面以一個(gè)企業(yè)備有客戶的基本信息和經(jīng)濟(jì)往來(lái)賬目,需要根據(jù)主表中某一客戶的基本信息,以圖表和表格的形式顯示與該客戶的經(jīng)濟(jì)往來(lái)情況為例,介紹如何實(shí)現(xiàn)以主一明細(xì)表方式進(jìn)行圖表查詢顯示。
實(shí)例組件屬性設(shè)置
利用Delphi7自帶的數(shù)據(jù)庫(kù)實(shí)例演示主一明細(xì)功能的實(shí)現(xiàn),用隨Delphi7一起安裝的BDE( Borland Database Administrator)管理員,可以看到有別名為 DBDEMOS的數(shù)據(jù)庫(kù),提供了一些演示數(shù)據(jù),為敘述方便以DBDEMOS數(shù)據(jù)庫(kù)中的客戶表Customer.db和定單表Orders.db為例說(shuō)明。
實(shí)例設(shè)計(jì)階段的界面如下圖所示,組件屬性設(shè)置如下表所示。
組件
屬性
設(shè)定值
說(shuō)明
TDBChart
Name
DBChart1
圖表組件
TAreaSeries
Name
Series1
序列組件名稱
Datasource
Table2
序列的數(shù)據(jù)源是Table2(結(jié)果)
ParentChart
DBChart1
表示該序列屬于DBChart1組件
TTable
Name
Table1
表組件名稱
Datasource
DBDEMOS
數(shù)據(jù)庫(kù)別名, Delphi自帶數(shù)據(jù)庫(kù)
TableName
Customer.db
有關(guān)客戶基本信息的表
TDataSource
Name
DataSource1
為 DBNavigator1提供數(shù)據(jù)源
DataSet
Table1
TTable
Name
Table2
表組件名稱
DatabaseName
DBDEMOS
數(shù)據(jù)庫(kù)別名, Delphi自帶數(shù)據(jù)庫(kù)
TableName
Orders.db
數(shù)據(jù)庫(kù)表名,有關(guān)定單信息的表
MasterSource
DataSource1
控制Table2的主源
MasterFileds
CustNo
調(diào)用Field Link Designer對(duì)話框
IndexName
CustNo
上步完成后自動(dòng)填寫
TDBGrid
Name
DBGrid1
用于顯示主表(客戶信息)
DataSource
DataSource1
TDBGrid
Name
DBGrid2
這個(gè)柵格顯示明細(xì),由主表控制,不
用設(shè)數(shù)據(jù)源 DataSource
TDBNavigator
Name
DBNavigator1
數(shù)據(jù)導(dǎo)航
DataSource
DataSource1
Series1
DataSource
參見(jiàn)摘要排序應(yīng)用圖3
參見(jiàn)下面的序列的數(shù)據(jù)源設(shè)置
TButton
Name
Nutton2
退出按鈕
Caption
&E.退出
序列的數(shù)據(jù)源設(shè)置
當(dāng)在圖表編輯器中設(shè)置序列的數(shù)據(jù)源屬性時(shí),按下圖所示進(jìn)行設(shè)置。注意,序列的數(shù)據(jù)來(lái)自Table2,但實(shí)際顯示時(shí)是要滿足特定條件的數(shù)據(jù)才能顯示, Customer.CustNo= Orders.CustNo,Table2中不滿足這個(gè)條件的數(shù)據(jù)是不顯示的,這就是主一明細(xì)表顯示的奧妙之處。
組件Table2的屬性設(shè)定
實(shí)例中Table1、Table2組件的Database和TableName屬性設(shè)置按上表說(shuō)明分別作為主表(客戶基本信息)和副表(定單信息)進(jìn)行設(shè)置。Table2組件的MasterSource和MasterFields屬性設(shè)置是關(guān)鍵。單擊對(duì)象觀察窗口,按下列步驟設(shè)置:
- 選擇MasterSource屬性,設(shè)定為DataSource1,說(shuō)明Tabe2使用的數(shù)據(jù)受主源MasterSource: DataSource1控制。
- 選擇 MasterFields屬性,單擊右邊的二按鈕,顯示Fields Link Designer對(duì)話框,如下圖所示。

當(dāng)利用該對(duì)話框建立了主一明細(xì)表之間的關(guān)聯(lián)之后,隨著主表記錄指針的移動(dòng),圖表組件顯示的內(nèi)容會(huì)隨之發(fā)生變化。
編寫代碼
- 為使圖表組件顯示的內(nèi)容隨主表記錄指針的移動(dòng)而變化,只需在Grid1組件的OnCellclick事件中加入一句代碼:
DBChart1.RefreshData;使得主表記錄指針移動(dòng)時(shí)不斷刷新 DACha的數(shù)據(jù),從而實(shí)現(xiàn)圖表顯示的內(nèi)容不斷地更新。
- 由于初始狀態(tài)數(shù)據(jù)庫(kù)表 Table1、Table2均處于關(guān)閉狀態(tài),在程序運(yùn)行中才打開(kāi),所以在 CheckBox1的OnClick事件中加入下列代碼即可在程序啟動(dòng)后自動(dòng)打開(kāi)數(shù)據(jù)庫(kù)表:
Table1.Active:=CheckBox1.Checked; Table2.Active:=CheckBox1.Checked;這個(gè)例子使用了短短的幾行代碼就實(shí)現(xiàn)了非常強(qiáng)大的功能,實(shí)例的運(yùn)行效果如下圖所示。

相關(guān)資料推薦:
上一章:摘要排序應(yīng)用
下一章:交叉表圖表應(yīng)用
=====================================
現(xiàn)TeeChart for .NET,TeeChart for JavaScript/HTML5,TeeChart for Xamarin.Android等均已加入在線訂購(gòu),現(xiàn)在搶購(gòu)可立享優(yōu)惠!
關(guān)注慧聚IT微信公眾號(hào)???,了解產(chǎn)品的最新動(dòng)態(tài)及最新資訊。