Teechart圖表應(yīng)用技術(shù)詳解—第七章之主明細式圖表應(yīng)用
Steema公司和慧都科技針對中國市場聯(lián)合推出中文版TeeChart for .NET圖表控件,一共漢化2000個詞條(17000個單詞),漢化文檔35000個單詞,包括控件設(shè)計時與運行時的界面漢化以及控件使用向?qū)臋n的漢化,總漢化90%以上!
TeeChart for .NET中文版讓您在使用和學習上沒有任何語言障礙,至少可以節(jié)省30%的開發(fā)時間。TeeChart for .NET中文版具有易上手,使用方便,穩(wěn)定性好,性價比高,價格優(yōu)惠等優(yōu)勢,并且針對Web應(yīng)用提供無限制服務(wù)器分發(fā)授權(quán)方式,非常有利于產(chǎn)品集成。
主明細式圖表應(yīng)用( Master- Detail)
當需要根據(jù)主表的選擇,在副表中查找與主表相關(guān)的信息時,采用主一明細方式查詢是一個很好的選擇,這時如果能將查詢結(jié)果以圖表形式表示那就更是錦上添花了。下面以一個企業(yè)備有客戶的基本信息和經(jīng)濟往來賬目,需要根據(jù)主表中某一客戶的基本信息,以圖表和表格的形式顯示與該客戶的經(jīng)濟往來情況為例,介紹如何實現(xiàn)以主一明細表方式進行圖表查詢顯示。
實例組件屬性設(shè)置
利用Delphi7自帶的數(shù)據(jù)庫實例演示主一明細功能的實現(xiàn),用隨Delphi7一起安裝的BDE( Borland Database Administrator)管理員,可以看到有別名為 DBDEMOS的數(shù)據(jù)庫,提供了一些演示數(shù)據(jù),為敘述方便以DBDEMOS數(shù)據(jù)庫中的客戶表Customer.db和定單表Orders.db為例說明。
實例設(shè)計階段的界面如下圖所示,組件屬性設(shè)置如下表所示。
組件
屬性
設(shè)定值
說明
TDBChart
Name
DBChart1
圖表組件
TAreaSeries
Name
Series1
序列組件名稱
Datasource
Table2
序列的數(shù)據(jù)源是Table2(結(jié)果)
ParentChart
DBChart1
表示該序列屬于DBChart1組件
TTable
Name
Table1
表組件名稱
Datasource
DBDEMOS
數(shù)據(jù)庫別名, Delphi自帶數(shù)據(jù)庫
TableName
Customer.db
有關(guān)客戶基本信息的表
TDataSource
Name
DataSource1
為 DBNavigator1提供數(shù)據(jù)源
DataSet
Table1
TTable
Name
Table2
表組件名稱
DatabaseName
DBDEMOS
數(shù)據(jù)庫別名, Delphi自帶數(shù)據(jù)庫
TableName
Orders.db
數(shù)據(jù)庫表名,有關(guān)定單信息的表
MasterSource
DataSource1
控制Table2的主源
MasterFileds
CustNo
調(diào)用Field Link Designer對話框
IndexName
CustNo
上步完成后自動填寫
TDBGrid
Name
DBGrid1
用于顯示主表(客戶信息)
DataSource
DataSource1
TDBGrid
Name
DBGrid2
這個柵格顯示明細,由主表控制,不
用設(shè)數(shù)據(jù)源 DataSource
TDBNavigator
Name
DBNavigator1
數(shù)據(jù)導(dǎo)航
DataSource
DataSource1
Series1
DataSource
參見摘要排序應(yīng)用圖3
參見下面的序列的數(shù)據(jù)源設(shè)置
TButton
Name
Nutton2
退出按鈕
Caption
&E.退出
序列的數(shù)據(jù)源設(shè)置
當在圖表編輯器中設(shè)置序列的數(shù)據(jù)源屬性時,按下圖所示進行設(shè)置。注意,序列的數(shù)據(jù)來自Table2,但實際顯示時是要滿足特定條件的數(shù)據(jù)才能顯示, Customer.CustNo= Orders.CustNo,Table2中不滿足這個條件的數(shù)據(jù)是不顯示的,這就是主一明細表顯示的奧妙之處。
組件Table2的屬性設(shè)定
實例中Table1、Table2組件的Database和TableName屬性設(shè)置按上表說明分別作為主表(客戶基本信息)和副表(定單信息)進行設(shè)置。Table2組件的MasterSource和MasterFields屬性設(shè)置是關(guān)鍵。單擊對象觀察窗口,按下列步驟設(shè)置:
- 選擇MasterSource屬性,設(shè)定為DataSource1,說明Tabe2使用的數(shù)據(jù)受主源MasterSource: DataSource1控制。
- 選擇 MasterFields屬性,單擊右邊的二按鈕,顯示Fields Link Designer對話框,如下圖所示。
當利用該對話框建立了主一明細表之間的關(guān)聯(lián)之后,隨著主表記錄指針的移動,圖表組件顯示的內(nèi)容會隨之發(fā)生變化。
編寫代碼
- 為使圖表組件顯示的內(nèi)容隨主表記錄指針的移動而變化,只需在Grid1組件的OnCellclick事件中加入一句代碼:
DBChart1.RefreshData;使得主表記錄指針移動時不斷刷新 DACha的數(shù)據(jù),從而實現(xiàn)圖表顯示的內(nèi)容不斷地更新。
- 由于初始狀態(tài)數(shù)據(jù)庫表 Table1、Table2均處于關(guān)閉狀態(tài),在程序運行中才打開,所以在 CheckBox1的OnClick事件中加入下列代碼即可在程序啟動后自動打開數(shù)據(jù)庫表:
Table1.Active:=CheckBox1.Checked; Table2.Active:=CheckBox1.Checked;這個例子使用了短短的幾行代碼就實現(xiàn)了非常強大的功能,實例的運行效果如下圖所示。
相關(guān)資料推薦:
上一章:摘要排序應(yīng)用
下一章:交叉表圖表應(yīng)用
=====================================
現(xiàn)TeeChart for .NET,TeeChart for JavaScript/HTML5,TeeChart for Xamarin.Android等均已加入在線訂購,現(xiàn)在搶購可立享優(yōu)惠!
關(guān)注慧聚IT微信公眾號???,了解產(chǎn)品的最新動態(tài)及最新資訊。