張晶瑩
摘要:長(zhǎng)期以來(lái)網(wǎng)頁(yè)圖形繪制技術(shù)大多采用Java或者動(dòng)態(tài)圖像技術(shù)進(jìn)行網(wǎng)頁(yè)圖形展示,本文對(duì)多種圖形的繪制方法進(jìn)行對(duì)比后,重點(diǎn)介紹了使用Owc.chart的格式及其優(yōu)點(diǎn)。它能更簡(jiǎn)單快捷的繪制二維圖表(如折線(xiàn)圖、柱形圖、股價(jià)圖等)和極坐標(biāo)圖表(如餅圖和雷達(dá)圖),并支持組合圖表,如兩軸線(xiàn)-柱圖,數(shù)據(jù)表會(huì)隨同圖表發(fā)布,圖表隨著數(shù)據(jù)的變化而改變。通過(guò)在物資價(jià)格審核管理系統(tǒng)應(yīng)用這一技術(shù),加快了網(wǎng)頁(yè)圖形的編程效率和提高圖形信息的共享程度。
關(guān)鍵詞:Owc chart組件繪制圖表
1、引言
傳統(tǒng)上在瀏覽器中表現(xiàn)圖形多數(shù)采用三種方式:服務(wù)器端GDI+圖形繪制、瀏覽器端JavaApplet繪圖窗口、用例如SVG或FLASH等插件繪制圖形。雖然上述幾種方式機(jī)制各不相同,但是都需要開(kāi)發(fā)人員手工編程,逐條繪制圖表中的各元素,一條線(xiàn)一個(gè)點(diǎn)的修改往往也需要一條編程語(yǔ)句去執(zhí)行。對(duì)技術(shù)人員的編程要求較高,工作效率較低。而在油田生產(chǎn)開(kāi)發(fā)中,需要對(duì)大批量的生產(chǎn)數(shù)據(jù)進(jìn)行分析比較,在這種情況下應(yīng)用了Owc.chart這一組件,它能直接傳入數(shù)據(jù),通過(guò)控件直接繪制圖表,減少了編程人員工作量,提高工作效率,使以往需要投入大量人員精力的煩瑣的繪圖工作得到改善。
2、Owc.chart技術(shù)研究
OWC(Microsoft Office Web Components)是 Microsoft Office 使用的數(shù)據(jù)綁定 ActiveX 控件,它為在Web中繪制圖形提供了靈活的同時(shí)也是最基本的機(jī)制。它是一套組件對(duì)象模型主要包含電子表格、圖表、數(shù)據(jù)透視表等4個(gè)組件。這些組件在服務(wù)器端提供了與Office功能相關(guān)的對(duì)象模型,開(kāi)發(fā)人員可以對(duì)其中相關(guān)的類(lèi)進(jìn)行編程控制,如可以進(jìn)行單元格的數(shù)據(jù)填寫(xiě)、格式的定義等操作,從而生成Office兼容的各種表格和圖表等內(nèi)容,形成高質(zhì)量的結(jié)果展示。
Owc.chart支持Microsoft Excel 中大部分的二維圖表(如折線(xiàn)圖、柱形圖、股價(jià)圖等)和極坐標(biāo)圖表(如餅圖和雷達(dá)圖),并支持組合圖表, 有了OWC.chart,我們可以在服務(wù)器上動(dòng)態(tài)創(chuàng)建一個(gè)圖表,然后將圖表以GIF圖形的形式發(fā)送到客戶(hù)端??蛻?hù)端看到的僅僅是一個(gè)普通的圖形文件,但在“背后”,圖形文件實(shí)際上是由服務(wù)器上ASP.NET回應(yīng)客戶(hù)請(qǐng)求時(shí)動(dòng)態(tài)生成的。因此,這種技術(shù)對(duì)客戶(hù)端沒(méi)有特殊的要求,只要能夠顯示GIF圖形就可以了,即使Netscape和Opera也不存在任何問(wèn)題。
3、Owc.chart應(yīng)用
我們?cè)谖镔Y價(jià)格審核管理系統(tǒng)的開(kāi)發(fā)過(guò)程中應(yīng)用了這一技術(shù)。制作需要提供給客戶(hù)的各類(lèi)統(tǒng)計(jì)圖表,實(shí)現(xiàn)系統(tǒng)中物資計(jì)劃對(duì)比功能。
以下是繪制電瓶原液YG-1KG價(jià)格走勢(shì)圖的部分核心代碼:
'創(chuàng)建ChartSpace對(duì)象來(lái)放置圖表
Dim objCSpace As New OWC11.ChartSpaceClass
'在ChartSpace對(duì)象中添加圖表,Add方法返回chart對(duì)象
Dim objChart As OWC11.ChChart = objCSpace.Charts.Add(0)
'指定圖表的類(lèi)型。類(lèi)型由OWC.ChartChartTypeEnum枚舉值得到
objChart.Type = OWC11.ChartChartTypeEnum.chChartTypeColumnClustered '折線(xiàn)圖
'給定標(biāo)題
objChart.HasTitle = True
objChart.Title.Caption = "C類(lèi)物資價(jià)格走勢(shì)圖(電瓶原液YG-1KG)"
'給定x,y軸的圖示說(shuō)明
objChart.Axes(0).HasTitle = True
objChart.Axes(0).Title.Caption = "Y 軸: 價(jià)格(元/米)"
objChart.Axes(1).HasTitle = True
objChart.Axes(1).Title.Caption = "X 軸:日期(年月)"
'計(jì)算數(shù)據(jù)
在代碼中我們可以看出,要繪制一張圖表,只需完成三步。第一步,定義繪圖組件,包括創(chuàng)建圖表。第二步定義文字說(shuō)明,包括給定標(biāo)題,設(shè)置XY軸坐標(biāo)。第三步定義數(shù)據(jù),從數(shù)據(jù)庫(kù)中引入數(shù)據(jù),完成繪制圖形。僅需要這三步,我們就可以完成一張圖表的繪制工作,不用去考慮一些細(xì)節(jié)上坐標(biāo)的定點(diǎn)問(wèn)題。根據(jù)以上代碼我們還可以繪制曲線(xiàn)圖、柱狀圖、柱狀圖、面積圖、雷達(dá)圖等各種圖表,僅僅只需更改一個(gè)參數(shù),非常簡(jiǎn)單便捷,易于操作。
4、結(jié)語(yǔ)
Owc.chart這一繪圖插件脫離了以前JAVA繪圖,GDI+繪圖還需要一筆一劃繪制的煩瑣方式。更改數(shù)據(jù)時(shí),只需要在數(shù)據(jù)庫(kù)中進(jìn)行修改,所需圖形便自動(dòng)繪制完成。如需更改所要圖形種類(lèi),則只用改動(dòng)參數(shù)即能在WED頁(yè)面上更簡(jiǎn)潔直觀的顯示出所需要的圖形。而JAVA繪圖等還需對(duì)圖形格式,排版等進(jìn)行逐一調(diào)整。但是Owc.chart也具有一定的缺點(diǎn),即不能隨意繪制圖形。在JAVA等繪圖方式中,我們可隨意繪制圖形,例如生物等不規(guī)則圖形。而Owc.chart則只可以繪制一般的規(guī)則的曲線(xiàn)圖、折線(xiàn)圖等各種圖表,這就使Owc.chart產(chǎn)生了一定的局限性。
在油田生產(chǎn)中,需要提供的圖表正是規(guī)則的曲線(xiàn)圖、折線(xiàn)圖、柱狀圖、面積圖、雷達(dá)圖等各種圖表,恰恰能滿(mǎn)足油田生產(chǎn)的需要。這就使Owc.chart的局限性變成了在油田應(yīng)用中的優(yōu)勢(shì)。正是如此,Owc.chart的應(yīng)用能為油田生產(chǎn)效率的提高提供了必要的保證。
參考文獻(xiàn)
[1]Dave Stearns編著.office2000編程技術(shù)內(nèi)幕.北京希望電子出版社,2006年5月.
[2]譚建偉.OFFICE 2007基礎(chǔ)教程.人民郵電出版社,2008年06月01.