FusionChartFree报表[ASP版]
时间:2010-09-20 来源:宅熊
http://tomieric.wordpress.com/2009/12/17/fusionchartfree_about_aspversion/
原来yo2.cn文章被墙了。
fusionchartsFusionChartsFree作为FusionCharts免费版。
唯一缺点是在y轴上不支持中文显示。
FusionChart支持当今流行的各种web语言,如asp,jsp,php,ruby on rails等。
由于工作需要,找了大量的图表插件,但有许多不支持中文显示。选择了asp,因为自己项目是asp。
类似的有许多图表都是采取flash读取xml来实现的,之前也意识到,但js和flash不是很懂。
FusionChartsFree asp精简版主要由两个文件构成。自己翻译了中文注释。
<!--r />--> ' 02 '页面: FusionCharts.asp 03 '作者: InfoSoft Global (P) Ltd. 04 '@中文注释 By tomieric 05 '</div> 06 <div>'本页包含一个可以返回FusionCharts的函数</div> 07 <div>'encodeDataURL函数通过dataURL传送参数到FusionCharts中。 08 '如果您的dataURL参数已经有参数值,记住一定要进行编码。 09 '参数: strDataURL - dataURL必须传送图表数据(chart data) 10 '参数: addNoCacheStr - 是否添加其它的URL字符串的数据禁用缓存。 11 Function encodeDataURL(strDataURL, addNoCacheStr) 12 '如果需要可以添加无必要字符串缓存 13 if addNoCacheStr=true then 14 '我们添加 ?FCCurrTime=xxyyzz 15 '如果dataURL已经包含一个a ?, 我们添加 &FCCurrTime=xxyyzz 16 '我们要替换"_", 因为 FusionCharts在URLs不能使用包含此字符 17 if Instr(strDataURL,"?")0 then 18 strDataURL = strDataURL & "&FCCurrTime=" & Replace(Now(),":","_") 19 else 20 strDataURL = strDataURL & "?FCCurrTime=" & Replace(Now(),":","_") 21 end if 22 end if 23 ' 将URL进行编码 24 encodeDataURL = Server.URLEncode(strDataURL) 25 End Function</div> 26 <div>'renderChart函数是通过JavaScript + HTML代码需要嵌入一个图表。 27 '假如在您的网页此函数已经包括了FusionCharts JS类</div> 28 <div>' chartSWF - 图表的显示主要通过的SWF文件名 (和路径) 29 ' strURL - 如果您打算使用dataURL方法显示图表, 就通过URL传送swf文件路径. 否则,将其设置为“”(在dataXML方法的情况下) 30 ' strXML - 如果您打算使用dataXML方法显示图表, 就利用xml来传送数据.否则,设置为 "" (在 dataURL 的情况下) 31 ' chartId - 图表的DIV的ID值, 用于图表在html页面中显示的位置. 每个图表在html页面中必须使用一个ID. 32 ' chartWidth - 图表显示宽度 33 ' chartHeight -图表显示高度 (像素)</div> 34 <div>Function renderChart(chartSWF, strURL, strXML, chartId, chartWidth, chartHeight) 35 '首先我们要为图表写一个div. 一般设置div的id为"chartId"Div. 36 'DIV的名称是区分大小写. 37 --> 38 <!-- 图表脚本块从 开始 --> 39 <div id="<%=chartId%>Div">Chart.图表加载中... 40 <!--r />--> '"Chart.图表加载中..."在图表未加载完成前显示,(可以加入进度条图片等。) 41 '(如果服务器中的swf文件加载滞后). "Chart.图表加载中..."文本也会显示给用户 42 '没有安装Flash Player.你可以配置它按你的需要(写一个在线安装Flash Player或提示下载url). 43 --></div> 44 <!--r />--> '现在,我们使用FusionCharts图表类。每个被命名为chart_“chartId”的ID创建图表的实例。 45 --> 46 <!-- 47 //实例图,主要利用js读取xml中的数据 48 var chart_ = new FusionCharts("", "", "", ""); 49 50 //设置图表chart的dataURL值 51 chart_.setDataURL(""); 52 53 //提供完整的XML数据使用dataXML方法 54 chart_.setDataXML(""); 55 56 //最后反馈到chart图表中(指传送xml数据到swf中,flash文件可以通过xml交换数据。) 57 chart_.render("Div"); 58 // --> 59 <!-- 图表脚本块从 结束 --> 60 <!--r />--> End Function</div> 61 <div>'renderChartHTML函数利用JavaScript转换它成html代码. 62 '此方法不使用图表嵌入JavaScript类. 63 '相反,它使用直接的HTML嵌入。 64 '所以,如果你看到的IE 6的图表(或以上),您会看到在图表上看到“点击激活...”信息。</div> 65 <div>' chartSWF - 图表的显示主要通过的SWF文件名 (和路径) 66 ' strURL - 如果您打算使用dataURL方法显示图表, 就通过URL传送swf文件路径. 否则,将其设置为“”(在dataXML方法的情况下) 67 ' strXML - 如果您打算使用dataXML方法显示图表, 就利用xml来传送数据.否则,设置为 "" (在 dataURL 的情况下) 68 ' chartId - 图表的DIV的ID值, 用于图表在html页面中显示的位置. 每个图表在html页面中必须使用一个ID. 69 ' chartWidth - 图表显示宽度 70 ' chartHeight -图表显示高度 (像素)</div> 71 <div>Function renderChartHTML(chartSWF, strURL, strXML, chartId, chartWidth, chartHeight) 72 'Generate the FlashVars string based on whether dataURL has been provided 73 'or dataXML. 74 Dim strFlashVars 75 if strXML="" then 76 'DataURL方法 77 strFlashVars = "&chartWidth=" & chartWidth & "&chartHeight=" & chartHeight & "&dataURL=" & strURL 78 else 79 'DataXML方法 80 strFlashVars = "&chartWidth=" & chartWidth & "&chartHeight=" & chartHeight & "&dataXML=" & strXML 81 end if 82 --> 83 <!-- 图表脚本块 开始 --> 84 <div></div>
相关阅读 更多 +