轉帖|使用教程|編輯:況魚杰|2020-01-16 14:10:03.027|閱讀 724 次
概述:本教程轉自屈景輝的Teechart應用技術詳解——快速圖表制作工具一書。接下來將會介紹第七章——數據庫與圖表組件。本文將會介紹第八節:交叉表圖表應用
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
Steema公司和慧都科技針對中國市場聯合推出中文版TeeChart for .NET圖表控件,一共漢化2000個詞條(17000個單詞),漢化文檔35000個單詞,包括控件設計時與運行時的界面漢化以及控件使用向導文檔的漢化,總漢化90%以上!
TeeChart for .NET中文版讓您在使用和學習上沒有任何語言障礙,至少可以節省30%的開發時間。TeeChart for .NET中文版具有易上手,使用方便,穩定性好,性價比高,價格優惠等優勢,并且針對Web應用提供無限制服務器分發授權方式,非常有利于產品集成。
交叉表圖表應用(Cross Tab Charts)
所謂交叉式圖表是指在程序運行中可以對一個數據庫表中的兩個字段的值進行分組求和或計數,利用該功能使得圖表的顯示動態交叉進行。這里仍以Delphi7自帶的數據庫DBDEMOS的定單表Orders.db為例說明。
實例組件屬性設置
實例設計階段的界面如下圖所示,組件屬性設置如下表所示。在這個例子中有兩個最關鍵問題:一是如何設置交叉源;二是如何在系統運行中動態切換分組。前者可在程序設計階段實現,也可在程序運行階段實現。在設計階段可以通過圖表編輯器在Series選項卡的DataSourc選項卡中手動設置,也可在對象觀察窗口Object Inspector中實現。
交叉式圖表演示有關屬性
組件 | 屬性 | 設定值 | 說明 |
TDBChart |
Name |
DBChart1 |
圖表組件 |
TBarSeries |
Name |
Series1 |
|
Datasource | DBCrossTabSource1 | 序列的數據源是由組件DBCrossTabSource提供 | |
ParentChart | DBChart1 | 表示該序列屬于DBChart1組件 | |
TTable | Name |
Table1 |
數據庫別名,Delphi自帶數據庫 |
DatabaseaName | DBDEMOS | ||
TableName | Orders.db | 有關定單信息的表 | |
TDataSource | Name | DataSource1 |
為DBNavigator提供數據源 為DBGrid提供數據源 |
DataSet | Table1 | ||
TDBGrid | Name | DBGrid1 | 用于顯示定單信息 |
DataSource |
DataSource1 |
||
TDBNavigator | Name | DBNavigator1 | 數據導航 |
DataSource | DataSource1 | ||
Series1 |
DataSource |
參看下圖 |
參看在圖表編輯器中設置 |
TDBCrossTableSource |
Name |
DBCrossTableSource1 |
|
DataSet |
Table1 |
交叉源 | |
Formula |
gfSum |
計算公式 | |
GroupField | Terms | 分組字段 | |
LabelField | ShipVIA | 序列顯示時橫軸標簽 | |
ValueField | AmountPaid | 計算使用字段 | |
Series |
Series1 |
顯示計算結果的序列 | |
Active | false | 交叉源初始狀態為關閉 | |
TRadioGroup |
Name |
RadioGroup |
計算選擇(計數、求和) |
Item | 計數,求和 | ||
ItemIndex |
1 | ||
TCheckBox |
Name |
CheckBox1 |
打開數據庫 |
Checked |
false |
||
TButton |
Name |
Nutton1 |
退出按鈕 |
Caption |
&E.退出 |
在圖表編輯器中設置
在程序設計階段,雙擊圖表組件DBChart1打開圖表編輯器,然后選擇Series選項卡中的DataSource選項卡,按如下圖所示進行設置。在這里,當選擇組合框的CrossTab之后,就需要設置使用的數據集、計算種類(求和、計數)、計算字段、分組字段和標簽字段以及是否大小寫敏感、是否打開表等。
在對象觀察窗口設置
實際中,當在圖表編輯器中選擇CrossTab之后,系統就自動在窗口放置了TDBCrossTabSource組件。在選中該組件后,在對象觀察窗口就可看到需要設置的一些屬性了如下圖所示。在這里要注意領會計算字段、分組字段、標簽字段以及計算公式等屬性的含義??梢钥闯?,有了TDBCrossTabSource組件后,不僅可以使用戶在設計階段改變分組、計算、標簽字段的選擇,更為在程序運行中動態地改變分組、計算、標簽字段和計算公式提供了方便。
編寫代碼
在CheckBox1組件的OnClick事件中根據選擇確定DBCrossTabSource1的打開與關閉,且處于關閉狀態時計算公式選擇框和交換按鈕Button是不可用的,代碼如下:
procedure TForml.CheckBox1Click(Sender: TObject); begin DBCrossTabSource1.Active:=CheckBox1, Checked; RadioGroup1.Enabled:=CheckBox1.Checked; Button2.Enabled:=CheckBox1.Checked; end;
在RadioGroup1組件的OnClick事件中根據選擇確定分組計算公式,在公式改變后立即激活組件起到刷新數據的效果:
procedure TForm1.RadioGroup1Click(Sender:TObject); begin case RadioGroup1.ItemIndex of 0:DBCrossTabSource1.Formula:=gfCount; 1:DBCrossTabSource1.Formula:=gfSum; end; DBCrossTabSource1.ValueField:='AmountPaid'; DBCrOssTabSource1.Active:=TRUE;
在Button按鈕的OnClick事件中加入下列代碼,用于實時切換分組方式。由于采用按鈕進行切換,所以需要設置一個邏輯變量進行區分,代碼如下:
procedure TForm1.Button2Click( Sender:Tobject); begin if not bswap then begin DBCrossTabSource1.GroupField:='Terms'; DBCrossTabSource1.LabelField:='ShipVIA'; bswap:=not bswap; end else begin DBCrossTabSource1.GroupField:='ShipVIA'; DBCrossTabSource1.Labeleield:='Terms'; bswap not bswap; end; DBCrossTabSource1.ValueField :='AmountPaid'; DBCrossTabSource1.Active:=TRUE; end;
本例運行階段的界面如圖1所示,圖2是求和計算分組字段交換后的效果圖。
圖1:
圖2:
相關資料推薦:
上一章:主明細式圖表應用
=====================================
現TeeChart for .NET,TeeChart for JavaScript/HTML5,TeeChart for Xamarin.Android等均已加入在線訂購,現在搶購可立享優惠!
關注慧聚IT微信公眾號???,了解產品的最新動態及最新資訊。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自: