翻譯|使用教程|編輯:況魚杰|2019-08-29 15:14:20.783|閱讀 403 次
概述:本教程將會持續介紹有關于圖表控件Teechart的問答文章,幫助用戶解決常見問題。本篇文章將會介紹如何將TeeChart for NET連接到數據綁定源。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
TeeChart for .NET圖表組件庫提供數百種2D和3D圖形樣式,54種運算和統計函數以及無限數量的坐標軸和14工具箱供你選擇。該圖表控件還可以有效地用于創建多任務的儀表板。
本文章中的演示展示了擁有TeeChart的圖表如何在WinForm的應用程序中的表單上相互協作。
該演示使用了小型技術產品供應商的公司數據的基礎;該公司銷售電子產品,小型計算機,平板電腦和移動電話,并在全球一些國家擁有市場。
可以在點擊下載使用Visual Studio 2015編寫的演示代碼。
創建項目
我們創建一個新的的WinForms項目,并將主窗體重命名為ReportForm。
向表單添加對象。我們將三個圖表,一個dataGridView和一個文本框添加到表單中,并將它們放置在占據表單的整個空間中,參見下圖。
使用圖表編輯器,我們在圖表中添加了一個數據集以及一個平滑功能,您可以在此階段看到填充的隨機數據,可以在設計時或運行時添加數據系列。
我們將公司銷售數據放在名為TechProducts Ltd的MS Access文件中,并將該文件放在LinkingCharts解決方案文件夾中。
將數據添加到項目中
我們已經將數據庫添加到項目中,公開表和查詢(視圖)。
使用BindingSource的組件,我們連接到訪問數據庫。數據庫已經為我們希望可視化的一些數據準備了查詢。對于其他情況,在運行時執行期間,我們將在代碼中編寫一些SQL查詢。
添加了三個BindingSources,連接到$ _€_SalesByYear,$ _SalesByCountry_2015和$ _SalesByContinent視圖。
將圖表連接到數據
要連接到的BindingSource,請打開要修改的圖表編輯器,然后選擇先前已添加的系列并轉到其數據源選項卡。如果單擊數據集選項卡,則可以選擇要連接該系列的BindingSource的。在以下選擇框中,您可以將不同的源字段與X和y系列值列表相關聯。
對三個圖表重復連接技術。我們已將左欄系列圖表連接到SalesByContinent數據,右側是餅圖,連接到SalesByCountry_2015數據,將下線圖表連接到SaleByYear數據。
鏈接圖表
我們現在有三個圖表,按大陸,地區(銷售國家,非洲大陸)和國家的數據區分。我們在這個演示中的目的是鏈接三個圖表,這樣,通過點擊大陸圖表的條形圖,我們可以填充區域圖表,通過點擊區域圖表,我們可以顯示所選國家最近幾年的銷售演變。dataGridView將更新以顯示區域圖表的內容。
注意:演示將打開,顯示區域圖表中的所有國家/地區。文本框更新以顯示機器人記者的模擬評論。
要鏈接項目頁面的不同元素,我們將設置一些圖表事件。
ClickSeries事件
我們正在使用ClickSeries事件,它將會查看點擊圖表中的值作為參數填充下一個相關圖表。我們可以在設計時添加事件定義,方法是選擇我們希望操作的圖表,然后選擇Visual Studio的屬性窗口的事件選項卡,在這種情況下,從列表中選擇TChart的點擊事件。
這將在Form的代碼頁中創建事件方法。在這里,我們需要添加一些內容,以便將系列點擊與我們希望去的地方聯系起來。為清晰起見,我們選擇部分手動編碼查詢。該方法遵循以下步驟:
以國家/大陸圖表的原始查詢為基礎,對其進行修改以收集所有可用年份的數據。
修改區域查詢:
@contiparam是您要查看的大陸,來自大陸圖表值的標簽。如果要為查詢創建更好的索引,可以使用索引值或其他變量。
string sqlStr =“SELECT Sum(Fact_Invoices.Invoice_Value)AS SumOfInvoice_Value,Lookup_Country.Country_name,Lookup_Continent.continent_name”; sqlStr + =“FROM((Fact_Invoices INNER JOIN Lookup_Customers ON Fact_Invoices.Cod_Customer = Lookup_Customers.Cod_Customer)”; sqlStr + =“INNER JOIN Lookup_Country ON Lookup_Customers.Country_code_A2 = Lookup_Country.Country_code_A2)”; sqlStr + =“INNER JOIN Lookup_Continent ON Lookup_Country.Continent = Lookup_Continent.continent”; sqlStr + =“where Lookup_Continent.continent_name = @contiParam GROUP BY Lookup_Country.Country_name,Lookup_Continent.continent_name”;
修改國家/地區查詢:
我們將要審核的國家/地區的標簽作為國家/地區時間查詢的參數。
string sqlStr =“SELECT Sum(Fact_Invoices.Invoice_Value)AS SumOfInvoice_Value,Fact_Invoices.Invoice_year AS AYear,Lookup_Country.Country_name”; sqlStr + =“FROM(Lookup_Customers INNER JOIN Fact_Invoices ON Lookup_Customers.Cod_Customer = Fact_Invoices.Cod_Customer)”; sqlStr + =“INNER JOIN Lookup_Country ON Lookup_Customers.Country_code_A2 = Lookup_Country.Country_code_A2”; sqlStr + =“WHERE Lookup_Country.Country_name = @countryParam”; sqlStr + =“GROUP BY Fact_Invoices.Invoice_year,Lookup_Country.Country_name”;
這些查詢足以鏈接圖表,我們從GridView控件以相同的方式點擊一下。以其中一個為例,對于區域圖表,您可以看到如何為收件人圖表創建的BindingSource以方便插入。
使用SQL查詢創建和使用新的BindingSource的作為網格和圖表的源。
DataSet customers = new DataSet(); System.Data.OleDb.OleDbDataAdapter myAdapter = new System.Data.OleDb.OleDbDataAdapter(sqlStr, this.___SalesByCountry_2015TableAdapter.Connection); //apply region code myAdapter.SelectCommand.Parameters.Clear(); myAdapter.SelectCommand.Parameters.Insert(0, new System.Data.OleDb.OleDbParameter("contiParam", region)); myAdapter.Fill(customers, "Customers"); bindEurope = new BindingSource(); bindEurope.DataSource = customers; bindEurope.DataMember = customers.Tables[0].ToString(); dataGridView1.DataSource = bindEurope; dataGridView1.Refresh(); dataGridView1.Columns[0].HeaderText = "Sales Income"; dataGridView1.Columns[1].HeaderText = "Country"; dataGridView1.Columns[2].HeaderText = "Continent"; tChart3[0].DataSource = bindEurope; tChart3[0].YValues.DataMember = "SumOfInvoice_Value"; tChart3[0].LabelMember = "Country_name"; tChart3[0].CheckDataSource();
TeeChart使用Chart Series的CheckDatasource()方法刷新Chart數據。
應用輸出
下列兩圖的屏幕截圖顯示了運行時的應用程序。
相關資料推薦:
TeeChart for .NET已加入在線訂購,現在搶購可立享特別優惠!!!
關注慧聚IT微信公眾號???,了解產品的最新動態及最新資訊。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自: