資源描述:
《mschart控件使用詳解》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。
1、一.數(shù)據(jù)源???? 說到繪制圖表,可能很多人的第一反應(yīng)除了是圖表呈現(xiàn)的方式外,更關(guān)心的便是數(shù)據(jù)如何添加,記得在很多年前,哪時要繪制一個數(shù)據(jù)曲線圖,一直找不到好的呈現(xiàn)方式,后來使用了SVG的繪圖模式,不過在添加數(shù)據(jù)的時候可謂吃盡了苦頭,畢竟,SVG只是一種描述語言,要動態(tài)的實(shí)現(xiàn)一個圖表的繪制,是非常困難的.對于微軟的圖表控件,數(shù)據(jù)添加是一件很簡單的方式,它支持多種數(shù)據(jù)添加方式,如:·?????????可以在圖表的設(shè)計界面,在屬性設(shè)置窗口中的Series屬性下的Points中添加需要的數(shù)據(jù).·?????????可以在圖表的設(shè)計界面中,在屬性中綁定一個數(shù)據(jù)源.·?????????可以在后臺代碼中
2、,動態(tài)添加數(shù)據(jù).·?????????可以在后臺代碼中設(shè)置一個或多個數(shù)據(jù)源,直接綁定到圖表中. 在此處,我只著重講解一下第3,4兩點(diǎn).對于第3點(diǎn),相對來說比較簡單,在后臺代碼中,找到要添加代碼的Series,通過它下面Points的Add、AddXY、AddY等方法,即可以實(shí)現(xiàn)數(shù)據(jù)的添加.例如:1.????doublet;2.??????????for(t=0;t<=(2.5*Math.PI);t+=Math.PI/6)3.??????????{4.????????????doublech1=Math.Sin(t);5.????????????doublech2=Math.Sin(t-Mat
3、h.PI/2);6.????????????Chart1.Series["Channel1"].Points.AddXY(t,ch1);7.????????????Chart1.Series["Channel2"].Points.AddXY(t,ch2);8.??????????}復(fù)制代碼注:代碼摘自微軟的例子,上例中,Chart1為圖表的名字,Channel1、Channel2分別表示兩個Series數(shù)據(jù)序列)二.綁定數(shù)據(jù)????先來看看圖表控件都支持什么類型的數(shù)據(jù)綁定,根據(jù)官方文檔的說法,只要是實(shí)現(xiàn)了IEnumerable接口的數(shù)據(jù)類型,都可以綁定到圖表控件中,例如:DataView,D
4、ataReader,DataSet,DataRow,DataColumn,Array,List,SqlCommand,OleDbCommand,SqlDataAdapter,及OleDbDataAdapter對象。???對于開發(fā)來說,最常用的還是DataView、DataReader、DataSet、DataRow、Array、List這幾種類型了,有幾點(diǎn)需要注意一下:·?????????圖表控件支持多數(shù)據(jù)源的綁定,例如:X軸綁定一個數(shù)據(jù)集ds1,Y軸可以綁定另一個數(shù)據(jù)集ds2,當(dāng)然也可以是X軸綁定到一個List數(shù)據(jù)對象,Y軸綁定到一個DataView對象等等?!?????????圖表控件的
5、綁定方式一般有兩種,常規(guī)綁定及交差表的綁定?!?????????圖表控件的Y軸數(shù)據(jù),支持一次綁定多個值,以繪制時間、區(qū)域、使用量等之類的圖形?! 〗壎〝?shù)據(jù)的流程如下:2008111015142478.png?(44.03K)2008-11-1022:19:03?大意是,綁定數(shù)據(jù)里面是否有分組數(shù)據(jù)需要綁定,如果有,則調(diào)用交叉表綁定的方法。否則判斷是否時綁定X軸和Y軸(包括標(biāo)簽、超鏈接、圖例文字等自定義屬性),如果是,則調(diào)用Points.DataBind方法進(jìn)行綁定操作。再判斷是否有不同的X軸或Y軸數(shù)據(jù),如果有,則分別調(diào)用X,Y軸的綁定方法Points.DataBindX,Points.Data
6、BindY進(jìn)行數(shù)據(jù)綁定。最后,再判斷是否需要進(jìn)行多個Y軸值的綁定。??下面分別對幾種數(shù)據(jù)綁定的方法進(jìn)行一下說明:1.綁定一張數(shù)據(jù)表? 綁定一張數(shù)據(jù)表,例如綁定一張普通的數(shù)據(jù)表,表數(shù)據(jù)如下:?2008-11-10_214947.gif?(3.24K)2008-11-1022:19:03綁定方法的代碼:1.????stringmySelectQuery="SELECTName,SalesFROMREPS;";2.????OleDbConnectionmyConnection=newOleDbConnection(myConnectionString);3.????OleDbCommandmyC
7、ommand=newOleDbCommand(mySelectQuery,myConnection);4.????myCommand.Connection.Open();5.????OleDbDataReadermyReader=myCommand.ExecuteReader(CommandBehavior.CloseConnection);6.????Chart1.DataBindTable(myReade