原創(chuàng)|其它|編輯:郝浩|2012-09-27 10:25:03.000|閱讀 1363 次
概述:詳細介紹了Teechart中的數據庫圖表,主要包括如何在在設計時連接到數據源,在運行時連接到Database數據庫,單記錄,分組數據總結,數據庫圖表特定事件等等,并附有代碼以及圖片詳細說明。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
可以在設計時使用圖表編輯器或在運行時用很少幾行代碼為數據庫連接一個TeeChart控件。你應該使用TDBChart組件,顧名思義,這個TeeChart組件支持數據訪問。TDBChart安裝在Data Controls數據控制部分的Component Palette組件面板。TDBChart擁有所有TChart屬性和方法,關鍵的區(qū)別在于,它還包括對Borland數據庫引擎的訪問,因此擴大了該組件項目編譯的規(guī)模。因為這個原因,我們建議您使用TeeChart組件,除非你想直接連接到數據源。
TeeChart連接到包括TTable,TQuery和TClientDataset在內的所有Borland TData組件。當連接到Tables 或 Queries時,沒有必要使用TDataset組件,因為TeeChart可以直接連接。
可以使用圖表編輯器將任何Series連接到表或查詢。每個Series可以連接到在相同或不同的數據庫中的相同或不同的表或查詢。
因你不受限于單一數據庫或者單一的表或查詢,所以這種設計將使連接到數據庫的圖表更具有靈活性。在設計時也可以進行數據檢索,允許您在開發(fā)過程中看到實際的數據。
下面的步驟是假定您已經將一個TTable,TQuery或TClientDataset放入表單中。對于這個例子你可以將TTable連接到TeeChart Pro Database數據庫,并在安裝TeeChart Pro和選擇Employee Table時,作為一個ODBC v3 DSN安裝。
1、 在一個窗體中放置一個TDBChart控件。
2、 雙擊TDBChart控件顯示Chart Editor圖表編輯器。
3、 添加一個Series到Chart圖表控件(例如Bar Series)。
4、 點擊 "Series" 選項卡和 "DataSource" 選項卡。
5、 點擊組合框,并選擇"Dataset"。
會出現如下所示的界面:
6、 選擇"Dataset..."下拉列表框顯示可用數據源列表。
通過從下拉列表框選擇一個項目,你可以將Series連接到指定的Table或Query。
7、 在這個例子中,我們連接Table1到“TeeChart Pro Database”和“Employee”表,如上圖所示。
定義Table或Query中的檢索字段,并添加到Series。這是通過為每個Series部分選擇適當的字段,再由圖表編輯器完成。
8、 下面的圖片,是由示例所選擇的Fields字段顯示的Chart editor DataSource標簽。
每個Series都有一個 "Label" 字段(這應該是“String”或“Char“ 類型),和一個數值字段(對于Bar Series的"Bar" 字段),它應該是整數,浮動或日期-時間字段類型。
在這個例子中,我們?yōu)镾eries標簽選擇了"Employee"表中的"LASTNAME"字段,為Bar點值選擇"SALARY"數字字段。
上面圖片中的DataSet組合框顯示了你所創(chuàng)建的可用的表或查詢。你總是可以在這個對話框中,選擇一個不同的數據集,或者通過點擊"Edit..."按鈕進行編輯。
現在我們已經分配了適當的字段,來看看得到的結果。
9、 點擊"Close"按鈕來關閉這個Chart圖表編輯器并返回到編程環(huán)境。
此時,TChart控件將試著打開選擇的Datasource database Table或者Query,并將開始檢索記錄,并為選擇的Series賦值。
在我們的示例中,您將在設計時看到以下圖表:
如果您運行這個項目,圖表將從Datasource數據源檢索所有記錄,并將值添加到Series。您將在項目運行前看到和運行時相同的圖表。
10、 運行該應用程序。
你可以在TeeChart demo中的"Database Chart"節(jié)點下找到一個示例。
上述設計時的步驟可以以編程的方式通過幾行代碼再現。這給了你在數據庫操作方面更多的自由和控制。
在一個新項目和一個新Form表單中執(zhí)行上面提到的前三個步驟。
每個Series都有DataSource屬性,它確定了數據庫值(Table或Query)的原點,"YValues.ValueSource"和"LabelsSource"屬性來指定我們所要標繪的字段。
LabelsSource和YValues.ValueSource屬性的語法是:
Series1.YValues.ValueSource := "SALARY";
Series1.XLabelsSource := "LASTNAME";
Series DataSource的語法是:
Series1.DataSource := Table1;
//or
Series1.DataSource := Query1;
建議您以上述的順序設置屬性。首先設置XLabelsSource和YValues.ValueSource,然后設置DataSource屬性。
如果數據庫值被改變,你想“刷新”連接和再一次進行數值檢索,你應該這樣做:
Series1.CheckDataSource;
CheckDataSource的方法將迫使Series再次檢索所有記錄。
所有Series也有"XValues.ValueSource"屬性。這個屬性只用于XY圖表(當每個點都有一個X坐標)。
如果TeeChart不能找到數據源或不能打開指定的Table或SQL查詢,就將會拋出一個error。記住要設置您的Datasource數據源為'Active'。
單記錄
Single Record數據圖表允許從一個數據源記錄中水平的進行數據檢索。從TeeChart Editor Datasource下拉列表框中選擇'Single Record'選項。
例如:
上面的定義采用了TeeChart的示例Stock圖表的第一個記錄,為Open, High, Low和Close值劃分一個Series上的不同點。
通過TeeChart的數據集連接檢索的數據連接可能是由創(chuàng)建概要所選字段的數據集中不同的字段分組的。從TeeChart Editor Datasource下拉列表框中選擇'Summary'。
例如:
上述選擇劃分了Delphi / c++ Builder的'Orders'表的'AmountPaid'字段的Bar Series,由Customer客戶編號”CustNo”進行分組。
如果數據集包含一個datetime字段你可能從第一個'Group by'下拉列表框中選擇分組標準作為一個DateTimeStep。以下是使用'Saledate'進行分組的Quarter year三個月平均AmountPaid”。
例如:
代碼如下:
with Series1 do
begin
DataSource:=Table1;
YValues.ValueSource:='#AVG#AmountPaid';
XLabelsSource:='#QUARTER#SaleDate';
end;
TChart的控件提供了一個事件,每次檢索記錄并將其添加到一個Series就會被調用。這個事件是“OnProcessRecord”,語法是:
procedure TForm1.DBChart1ProcessRecord(Sender: TCustomDBChart;
DataSet: TDataSet);
begin
//
end;
您可以使用此事件來生成一個沉默終止用以停止檢索數據。例如在TeeChart demo演示"Database Chart"節(jié)點。
本站文章除注明轉載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:慧都控件網