FusionChart使用1
一、 FusionCharts构成的基本三要素:swf,data,承载图表的载体。 Swf:Charts文件夹下面的所有swf文件,需要什么样的图表样式,就加在与之相对应的swf文件。 Data:数据源。数据可以是*.xml, *.json 文件,也可以是代码中xml或json格式的数据。 载体:页面中装载swf的空间组件。Eg:div,span等等。二、装载swf的注意事项1. 装载swf的基本语法页面必须引用FusionCharts.js<scripttype="text/javascript" src="../ FusionCharts.js"></script><div id="chartdiv">FusionCharts will be loaded here!</div><script type="text/javascript">var chart = new FusionCharts("../FusionCharts/Column3D.swf", "chartid", "400", "300", "0", "1"); chart.setDataURL("../FusionData/LinkjavascriptData.xml"); chart.render("chartdiv"); </script>Column3D.swf:所要展现的图表类型LinkjavascriptData.xml:图表引用的数据源FusionCharts(“swf”,”id”,”width”,”height”,”debugmodel”,”registerwithjs”):debugmodel 通常设置为0,registerwithjs通常设置为1.2. 基本数据格式XML文件<chart>开头,以</chart>结束;或者以<graph>开头,以</graph>结束。XML标签属性有以下四种数据类型:布尔型、数字型、字符型、十六进制颜色代码(只支持十六进制的颜色表示,且去掉前面的#号)Eg:<?xml version="1.0" encoding="UTF-8"?><chart caption='Weekly Sales Summary' xAxisName='Week' yAxisName='Sales' placeValuesInside='1' useRoundEdges='1' showBorder='1' exportEnabled="1" exportHandler="fcExporter1" exportAtClient="1" exportFormats="JPEG=jpg|PDF=pdf"> <set label='Week 1' value='14400' displayValue='good' /> <set label='Week 2' value='19600' /> <set label='Week 3' value='24000' /> <set label='Week 4' value='15700' /> <sytles> <definition> <sytle name='myBevel' type='Bevel' /> </definition> <application> <apply toObject='Background' styles='myBevel'/> </application> </sytles></chart>该data.xml运行的结果如下:三、 Charts文件中的swf文件及运行结果图(略)四、结合javascript的应用1. 前提:置FusionCharts中的registerwithjs为1.(实际中似乎0也可以,但最好用1)2. 事件:1) FC_Loaded(DOMId):描述当SWF文件在客户端已经完成下载2) FC_Rendered(DOMId):描述swf装载完成。3) FC_DataRendered(DOMId):描述当图表数据已经下载到dataxml或者dataURL 4) FC_DataLoadError(DOMId):描述当从特定的URL下载数据发生错误5) FC_NoDataToDisplay(DOMId):描述当下载的xml文件里没有可显示的数据6) FC_DataXMLInvalid(DOMId):描述xml格式错误3. 方法1) setDataXML(strDataXML:string):改变图表的数据2) setDataXML(strDataXML:string):改变图表的数据3) setDataURL(strDataURL:string):同上4) print():打印图表5) getXML():返回图表的xml数据6) getChartAttribute(attrNamr:string):返回xml <chart>标记的属性7) hasRendered():布尔型,标志图表是否已经呈现成功8) getDataAsCSV():返回图表的数据位CSV字符型五、热点链接:link=’’四种链接方式:1. 链接到同一个窗口:link='指定页面%3F参数' (link=’index.html?param’)2. 链接到新的窗口:link='n-指定页面%3F参数'(link=’n-index.html?param’)3. 链接到一个指定的frame:link='F-FrameName-指定页面%3F参数'(注参数一般不能超过两个,当超过两个则必须追加为一个字符串用逗号分隔)4. 链接到一个弹出框:link="P-detailsWin,width=400,height=300,toolbar=no,scrollbars=no, resizable=no-ShowDetails.asp%3FMonth%3DJan"5. 整个图表链接:clickURL='指定路径'6. 链接到Js :link="j-function()"7. Click 事件处理:link='S-parameter'(此方法是整个图表的链接情况)六、图表数据导出1. 使用context menu:设置属性showExportDataMenuItem='1',并可以通过exportDataMenuItemLabel=” ”设置导出标签的名称。这样就可以把图表中的数据复制到剪贴板上了,然后打开记事本之类的东东就可以把数据粘贴到上面去了。Eg:Data.xml<chart caption='Weekly Sales Summary' xAxisName='Week' yAxisName='Sales' placeValuesInside='1' useRoundEdges='1' showBorder='1'showExportDataMenuItem='1' > <set label='Week 1' value='14400' displayValue='good' /> <set label='Week 2' value='19600' /> <set label='Week 3' value='24000' /> <set label='Week 4' value='15700' /></chart>显示:在图标上右击,有Copy data to clipboard.2. 使用JavaScript Menu:首先置registerWithJS为1,即var chart1 = new FusionCharts("../../FusionCharts/Column3D.swf", "chart1Id", "400", "300", "0", "1")。然后根据charts节点id获得一个对象,使用var chartObj = getChartFromId("chart1Id")方法。最后从这个对象取出图表里的数据,使用chartObj.getDataAsCSV( ),然后就可以进行你需要的处理了七、表导出为pdf或者图片(JPEG和PNG)形式1、服务器端图表导出1) 把jar包放到lib下面2) 把classes文件发布到web-info下面3) 在data.xml文件里加入exportEnabled='1'(允许导出)、exportHandler='JSP/FCExporter.jsp'(即处理导出的路径,注意:默认是在跟data.xml在同一个跟目录下面)、还可以设置exportAction(选择导出的图片会到客户端作为下载还是直接保存到服务器)、exportAtClient(选择是选择客户端导出还是选择服务器端导出)等属性4) 把FCExporter.jsp、FCExporterError.jsp放在web工程下面(注意:FCExporter.jsp里WEB_ROOT_PATH的路径,默认情况是Resources文件直接放在web工程下的,若将Resources文件放在其他文件包下面时注意修改WEB_ROOT_PATH路径5) 处理流程:data.xml中指明exportHandler路径。触发导出时转向exportHandler所指向的路径FCExporter.jsp,在FCExporter.jsp中调用FusionChartsExportHelper.class中的HttpServletRequest类将data.xml中的数据以流的形式传进来,将charts的宽度、高度、颜色、domid作为元数据传入。并且根据选择是导出pdf还是图片导向resource下面的不同页面路径。(导出时会遇到数据传入的数据为空的情况,推荐使用客户端图表导出的方法)2、客户端图表导出1) 包含FusionChartsExportComponent.js文件2) 包含FCExporter.swf文件3) 设置xml文件里的一下属性:exportEnabled='1'(允许导出) exportAtClient='1' (客户端导出方式)exportHandler='fcExporter1'(处理导出)4) Html文件里加入<div id="fcexpDiv" align="center">FusionCharts Export Handler Component</div><script type="text/javascript">Var myExportComponent = new FusionChartsExportObject("fcExporter1", "../../FusionCharts/FCExporter.swf"); myExportComponent.Render("fcexpDiv");</script>3、批图表导出处理:1) 前提:要批导出的数据共用一个xml文件,即共用数据。2) 与单个导出的不同之处:ØmyExportComponent.sourceCharts = ['myChartId1','myChartId2','myChartId3'];Ø用sourceCharts方法包含需导出的所以图表DOMidØ设置导出图片相关的属性:componentAttributes。附件:http://down.51cto.com/data/2359294
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。