徐長友 隨著Internet技術的興起,B/S結構的程式出現得越來越多,在Web上實現統計圖表的方法有很多,相對於一般的應用程式實現比較難些。本文主要介紹Web統計圖表的實現方法,對各種資訊進行統計和分析,為提供決策依據,形象地表現分析結果,讓資訊用柱狀圖、折線圖和圓餅圖等結合資料倉儲旋轉分析以直觀的形式表現出來!我們很多項目中都需要用到圖表,查看了網上一些文章,B/S結構中大多使用了MS chart、shortGraph、Aspchart等組件實現,這些組件大多都是國外軟體公司開發的,且需要Money才行,最終的效果看起來並不怎麼樣(個人覺得),並且有很一些缺點,如MS chart用戶端得裝有Office才行,否則無法使用。另外還有一些使用Applet實現的,如Java chart工具包,這個工具包是Java寫的,適用於支援Java Applet的瀏覽器,如果不用Java的話,一般的應用程式很難使用它們。 本文就提供一統計圖表解決方案給你,當然你完全可以用於所有支援ActiveX的地方,不只是Web中。看完本文,我想你也能通過ASP、VBScript、Javascript來完成統計圖表。最重要的是你可以寫上 Copyright(C),yourcompany...,用戶端讓瀏覽器自動下載註冊,無需安裝。 下面就用Delphi簡單的開發一個可以在瀏覽器上產生統計圖表的ActiveX(用BCB開發是一樣的,只是代碼有點點不同而已): 首先,開啟Delphi,通過菜單File->new,在New items中選取Acitvex Form,在AcitveForm winzard中New AcitveX Name輸入自定名: 如Mychart,下面的選項可以根據需要自行選定,這裡只選取Include AboutBox, 這樣delphi會自動產生一個關於對話方塊。 在Mychart視窗中放置一個Tchart組件,Tchart增加一個Bar形的Series,具體的情況可以自行設定,本文只做簡單的介紹, 建議用方法動態產生Series。 在菜單view->Type Libary ,這裡分別添加兩個方法: Add_data和Clear_data,作用分別是添加資料和清除資料。 Add_data方法中添加兩個參數(ANum,類型:double, AName,類型:BSTR, Modifier 都設為in) 代碼如下: procedure TMychart.Add_data(ANum:Double;const AName:WideString); begin Series1.Add(ANum,AName,clteeColor); end;
procedure TMychart.Clear_data; begin Series1.clear; end; 設定一下Aboutbox,在Mychart視窗中加入一個TPopupMenu,使用者快顯功能表看到關於對話方塊。 添加一個Menuitem設定Caption:="關於(&A)...", onclick代碼如下: procedure TMychart.PM_AboutClick(sender:TObject); begin showMychartAbout; end; 作用是顯示關於對話方塊然後設定TChart的PopupMenu設定為加個的TPopupMenu就可以了! 如果工程名沒有更改的,編譯一下產生MychartProj1.ocx,註冊這個控制項就可以使用了。對於瀏覽器,可以用下面方法讓其它自動註冊它: Delphi中通過Project->Web Deloyment Options設定Web發布選項,簡單設定如下: Target dir: c:/document and settings/administrator/案頭/chart/html Target URL: . Html dir : c:/document and settings/administrator/案頭/chart/html然後通過菜單 project -> web Deploy 在 c:/document and settings/administrator/案頭/chart/html 目錄下產生兩個檔案,一個html,另一個ocx檔案。 這裡更改一下HTML檔案加上個ID=mychart1,後面加些VBScript代碼,如下: <HTML> <H1> Delphi 5 AcitveX Test Page </H1> <P> You should see you Delphi 5 forms or controls embedded in the form below<HR><center><P><OBJECT id=mychart1 classid="clsid:B977D48F1-4DDA-4F00-9781-EC7BA3278CBD" codebase=" ./MychartProj1.oxc#version=1,0,0,0" width=538 height=350 align=center hspace=0 vspace=0></OBJECT><script language=VBScript> mychart1.Add_data 110,"1月" mychart1.Add_data 180,"2月" mychart1.Add_data 120,"3月" mychart1.Add_data 100,"4月" mychart1.Add_data 80,"5月" mychart1.Add_data 90,"6月" mychart1.Add_data 110,"7月" mychart1.Add_data 109,"8月" mychart1.Add_data 108,"9月" mychart1.Add_data 78,"10月" mychart1.Add_data 99,"11月" mychart1.Add_data 101,"12月"</script> 儲存後再用瀏覽器開啟HTML檔案, 怎麼樣?這個Chart還行吧!然後開啟VB再試試,代碼與上面的VBS一樣. 在ASP中使用和HTML類似,你可通過ASP取出資料,然後使用Add_data方法。 Delphi中的Chart功能非常強大,你完全可以開發適合自己需要的統計圖表控制項,上面只是一個簡簡單單的樣本。