天天看點

FusionCharts 使用手記

從 http://www.infosoftglobal.com/ 站點下載下傳免費版本到本地,解壓到本地,取出 JSClass目錄和Charts 目錄下所有檔案拷貝到你的網站chart目錄下,即可開始FusionCharts的使用之旅。

一、 開始一個簡單的demo

1. 在你的網站根目錄下建立 Data.xml文檔,作為圖表的資料源,内容如下:

2. 再建立一個展示頁面,Demo.html :

"Content-Type" content="text/html; charset=UTF-8">

第一個Flash圖表頁面

<script language= src= "chart/FusionCharts.js"></script>

"chartDiv" align= "center">First Chart Container Pie 3D

<script type= >

var myChart1 = new FusionCharts("chart/FCF_Column3D.swf", "myChartId", "600", "350");

myChart1.setDataURL("Data.xml");

myChart1.render("chartDiv");

</script>

3. 猛擊 Demo.html 檔案,即可看到如下效果:

FusionCharts 使用手記

4. 夠簡單吧,這樣才好。

二、 對中文字元的支援

1. 讓 FusionCharts支援中文

修改一下剛才 Data.xml 檔案,加入幾個中文字元,狂重新整理浏覽器,會看到幾個不協調的字元。這裡我修改圖表标題(caption='Monthly Unit Sales' è caption='月銷售曆史'):

FusionCharts 使用手記

FusionCharts告訴我們XML檔案加載失敗,可能有非法字元。下面要修改Data.xml,使之好好工作。官方說目前Data.xml檔案缺乏BOM标記(Byte Order Mark),打開UltraEdit 文本編輯器,另存為的時候,一定要選擇:

FusionCharts 使用手記

UTF-8編碼方式(已經附加BOM标記),直接覆寫原檔案。

再次重新整理Demo.html 頁面,即可看到标題變成了中文:

FusionCharts 使用手記

若您對16進制熟悉,以16進制打開檔案,直接修改前6位字元為

”EF BB BF”,儲存成UTF-8格式即可。

牢記:靜态的XML檔案,須包含BOM特征碼。

2. 讓動态産生的XML檔案避免中文問題

我們實驗一下把Data.xml檔案替換成動态生成XML方式。

建立一個JSP 頁面:Data.jsp ,輸入以下内容:

<%@ page language="java" contentType="text/xml; charset=UTF-8"%>

<%

String xmlStr = " "

+ " "

+ " "

+ " "

+ " "

+ " "

+ " "

+ " "

+ " "

+ " "

+ " "

+ " "

+ " "

+ "";

out.write(xmlStr);

%>

在Demo.html頁面,修改 setDataURL參數為“Data.jsp”,再次重新整理Demo.html頁面,即可看到效果。

下面在JSP頁面中同樣把圖表标題修改成中文,重新整理浏覽器,會看到“Invalid XML Data”字樣。

怎麼辦,設定JSP檔案具有BOM标記,不行!設定其XML輸出編碼嘗試一下吧:

<%@ page language="java" contentType="text/xml; charset=GBK"%>

看到了嗎,UTF-8 被修改成了 GBK編碼,重新整理Demo.html檔案,看一看到正常效果了。

牢記 :動态産生的XML文檔,編碼須是GBK或者gb2312。

三、 表格資料源-字元串形式加載

以上使用FusionCharts 提供的 setDataURL方法,參數須是可通路、産生xml文檔的URL位址。若不是url,字元串亦可作為參數傳遞過去:

建立Demo2.html檔案:

"Content-Type" content="text/html; charset=UTF-8">

使用字元串充當資料源

<script language= src= "chart/FusionCharts.js"></script>

"chartDiv" align= "center"> Chart Container Pie 3D

<script type= >

//資料源

var xmlData = " " +

" " +

" " +

" " +

" " +

" " +

" " +

" " +

" " +

" " +

" " +

" " +

" " +

"";

var myChart1 = new FusionCharts("chart/FCF_Column3D.swf", "myChartId", "600", "350");

myChart1.setDataXML(xmlData);

myChart1.render("chartDiv");

</script>

通路Demo2.html頁面,會看到正常的圖示顯示。

嘗試一下将圖表标題修改成中文,這次很順利的顯示出來了,但标題顯示為亂碼:

FusionCharts 使用手記

怎麼辦 ?把目前的html檔案修改成包含有BOM特征碼的UTF-8檔案,這招不好使了。

解決方法,建立一個JSP頁面(Demo2.jsp),比Demo2.html檔案多了一行内容:

<%@ page language="java" contentType="text/html; charset=UTF-8"%>

通路一下,可以看到中午亂碼問題解決了。

牢記 :提供字元串資料源的頁面必須寫死才行,可以是GBK或UTF-8。

再深入一下,動态産生的字元串資料源,是否也存在亂碼問題。

修改Demo2.jsp中的

myChart1.setDataXML(" ");

繼續閱讀