TeeChart Pro VCL/FMX是一款主流的圖表製做工具。提供了數百種用於可視化的2D、3D圖形樣式、56種數學、統計和金融函數,以及不限數量的座標軸和30種調色板組件。數據庫
點擊下載TeeChart Pro VCL/FMX最新試用版 編程
本篇教程爲你們帶來的是TeeChart Pro VCL/FMX中數據庫的訪問這一節,主要分爲如下幾個部分:bash
介紹編輯器
在設計時鏈接到TData組件 函數
在運行時鏈接到TData組件 工具
擴展功能ui
Single Recordspa
摘要分組數據設計
Events3d
OnProcessRecord事件
介紹
在設計時鏈接到數據源——將TeeChart控件鏈接到數據庫能夠在設計時使用圖表編輯器完成,並在運行時僅僅使用幾行代碼就完成。使用TDBChart組件, TDBChart安裝在Component Palette的Data Controls部分。TDBChart繼承了全部TChart屬性和方法,關鍵的區別在於它還包括訪問Borland的數據庫引擎,從而增長了使用此組件編譯項目的大小,通常除非是直接鏈接到數據源,不然建議使用TChart組件。
TeeChart鏈接到Borland的全部TData組件,包括TTable,TQuery和TClientDataset。鏈接到 Tables或者Queries 時,沒必要使用TDataset組件,由於TeeChart將直接創建鏈接。
可使用圖表編輯器將任何Series鏈接到Tables或者Queries。每一個系列均可以在相同或不一樣的數據庫中鏈接到相同或不一樣的Tables或者Queries。
此設計爲您提供了將圖表鏈接到數據庫的徹底靈活性,由於您不只限於一個數據庫,也不只限於一個Tables或者Queries,還能夠在設計時檢索數據,以便在開發期間查看實際數據。
在設計時鏈接到TData組件
如下步驟假定您已在表單上放置了TTable,TQuery或TClientDataset。
對於此示例,您能夠在安裝TeeChart Pro期間將TTable鏈接到安裝爲ODBC v3 DSN的TeeChart Pro數據庫,並選擇Employee Table。
在設計時,將Series鏈接Datasource所需的步驟是:
每一個Series都有一個Label字段(應該是String或Char類型)和一個值字段(Bar Series的Bar字段),它應該是整數,浮點數或日期時間 字段類型。
在此示例中,咱們從Employee表中爲Series標籤選擇LASTNAME字段,爲Bar point值選擇了SALARY數字字段。
請參見上圖中的DataSet組合框。 此組合框顯示您建立的可用的Table or Query。 您能夠進入此對話框並選擇其餘數據集,或單擊Edit..按鈕進行編輯
如今咱們已經分配了適當的字段,是時候查看結果了。
在表格上放置一個TDBChart控件。
雙擊TDBChart控件以顯示圖表編輯器。
將系列添加到圖表控件(例如條形系列。)
單擊Series選項卡和DataSource選項卡。
如今單擊組合框並選擇Dataset 此時您將看到此屏幕:
選擇Dataset...組合框以顯示可用數據源列表:
在Combobox中選擇一個項目,能夠將Series鏈接到指定的Table or Query
在這個例子中,咱們將Table1鏈接到TeeChart Pro Database和Employee表,如上圖所示。
選擇定義檢索Table or Query中的一些字段並將其添加到Series中。 這是經過圖表編輯器完成的,是爲了每一個Series部件選擇適當的字段。請參見下圖,顯示圖表編輯器DataSource選項卡,其中包含咱們的示例選定字段。
單擊Close按鈕以關閉圖表編輯器並返回編程環境。
此時,TChart控件將嘗試打開所選的Datasource數據的Table or Query,並將開始檢索記錄並向所選Series添加值。
在咱們的示例中,您將在設計時看到如下圖表:
如今,若是運行項目,Chart將從Datasource檢索全部記錄,並將向Series添加值。 在運行項目以前,您將看到在設計時看到的相同圖表。
最後運行應用程序。
在運行時鏈接到TData組件
上述設計時步驟能夠用幾行代碼以編程方式再現。這使您能夠更自由地控制數據庫操做。
新項目和新表單上重複上面的前3個步驟。
每一個Series都有DataSource屬性,它肯定數據庫值的來源(Table or 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屬性。
若是數據庫值已更改,而且您想要refresh鏈接並再次檢索值,則應執行如下操做:
Series1.CheckDataSource;複製代碼
CheckDataSource方法將強制Series再次檢索全部記錄。
全部系列都有XValues.ValueSource屬性。此屬性僅用於XY圖表(當您爲每一個點設置X座標時)。若是TeeChart沒法找到數據源,或者沒法打開您指定的表或SQL Query,則會引起錯誤。請記住將數據源設置爲Active。
擴展功能
Single Record
Single Record數據圖表容許從數據源記錄中水平檢索數據。 從TeeChart Editor數據源組合框中選擇Single Record選項。
例:
上面的定義從TeeChart示例Stock表中獲取第一條記錄,並將Open,High,Low和Close值繪製爲一個系列的不一樣點。
摘要分組數據
TeeChart數據集中鏈接檢索的數據能夠按數據集的不一樣字段來分組,這是爲了經過所選字段建立摘要。 從TeeChart Editor數據源組合框中選擇Summary
例:
上面的選擇繪製了Bar Series of Delphi / C ++ Builder的Orders表的AmountPaid字段,再按客戶編號CustNo對結果進行分組。
若是數據集包含日期時間字段,您能夠從第一個Group by組合框中選擇分組條件做爲DateTimeStep。 如下使用Saledate將按季度的平均AmountPaid分組。
例:
代碼以下所示:
With Series1 do
Begin
DataSource:=Table1;
YValues.ValueSource:='#AVG#AmountPaid';
XLabelsSource:='#QUARTER#SaleDate';
end;複製代碼
Events
OnProcessRecord事件
TChart控件提供了一個事件,每次檢索記錄並將其添加到Series時都會調用該事件。此事件是OnProcessRecord,並帶有如下語法:
procedure TForm1.DBChart1ProcessRecord(Sender: TCustomDBChart;
DataSet: TDataSet);
複製代碼