新版本的fusionchatrs XML格式的实现

前端之家收集整理的这篇文章主要介绍了新版本的fusionchatrs XML格式的实现前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

以前的fusionchatrs 采用的是flash的方式去实现,但是现在许多浏览器即将不再支持flash.fusionchatrs 官网的例子已经是采用json格式来实现。本文是介绍xml实现的方式:

首先,是引入js

  1. <script language="JavaScript" src='${root}/common/js/fusioncharts-n-xt/js/fusioncharts.js'></script>
之后的工具类

/**
* 柱状图和区域图的结合
* Xdata:a;b;c
* Ydata:a1;b1;c1|a2;b2;c2
* Yname: name1|name2
* Ycolor:color1|color2
* plotSpacePercent(数值范围:0~80) 可以,80最小,0最大,超出范围数值无效
* showPlotBorder='0/1'(是否显示柱子的边框)
* usePlotGradientColor 是否柱体渐变色
* valuePosition 值的位置(ABOVE/BELOW/AUTO,上下自动)
* showBorder 画布是否显示边框
* showToolTip 悬浮框是否显示提示
* valuePosition='ABOVE' value的显示位置ABOVE/BELOW/AUTO
*/

  1. function initCombineColumAndArea(root,containerId,width,height,Xdata,Ydata,Yname,Ycolor,chartAttrs,dataSetAttrs,trendLines,styles,dataLink,plotspace)
  2. {
  3. var xml = "<chart baseFontSize='12' baseFont='宋体' caption='' xAxisName='' showBorder='0' showToolTip='0' plotSpacePercent='"+plotspace+"' showPlotBorder='0' usePlotGradientColor='0' formatNumberScale='0' yAxisName='' canvasBgAlpha='0' showValues='1' numberPrefix='' "+(chartAttrs==null?"":chartAttrs)+">";
  4. xml += "<categories>";
  5. var Xdatas = delLastCharIfExist(Xdata,";").split(";");
  6. for(var i=0; i<Xdatas.length; i++)
  7. {
  8. xml += "<category label='"+Xdatas[i]+"'/>";
  9. }
  10. xml += "</categories>";
  11. var Ydatas = Ydata.split("|");
  12. var Ynames = Yname.split("|");
  13. var Ycolors = Ycolor.split("|");
  14. var dataSetAttRSS=dataSetAttrs.split("|");
  15. //var setLinks = dataLink==null?null:delLastCharIfExist(dataLink,";").split("|");
  16. var setLinks =dataLink==null?null:dataLink.split("|");
  17. for(var i=0; i<Ydatas.length; i++)
  18. {
  19. var Yset = Ydatas[i].split(";");
  20. xml += "<dataset seriesName='"+Ynames[i]+"' color='"+Ycolors[i]+"' "+(dataSetAttRSS[i]==null?"":dataSetAttRSS[i])+">";
  21. for(var j=0; j<Yset.length; j++)
  22. {
  23. xml += "<set value=\""+Yset[j]+"\" link=\""+(setLinks==null?"":setLinks[j])+"\" />";
  24. //xml += "<set value='"+Yset[j]+"' link='"+(setLinks==null?"":setLinks[j])+"'/>";
  25. //xml += "<set value='"+Yset[j]+"' link='JavaScript:alert(\'1\');'/>";
  26. }
  27. xml += "</dataset>";
  28. }
  29. if(trendLines != null)
  30. {
  31. xml += trendLines;
  32. }
  33. if(styles != null)
  34. {
  35. xml += styles;
  36. }
  37. xml += "</chart>";
  38. var chart = new FusionCharts({type: 'mscombi2d',renderAt:containerId,width:width,height:height,dataFormat: 'xml'});
  39. chart.setXMLData(xml);
  40. chart.render(containerId);
  41. }

这里的setXMLData()用于传入xm字符串。如果是引入外部的xml文件则chart.setXMLUrl()

前天的js代码

  1. var Xdata="a;b;c;d;e;f;g";
  2. //总数20
  3. var Ydata='${Ydata}';
  4. var Yname="处于该状态量|完成该状态量";
  5. //var Ycolor="61bfad|e5e4e0|ff7900";
  6. var Ycolor="1DA389|f7b000";
  7. //var Ycolor="0075c2|1aaf5d";
  8. var dataSetAttrs="showValues='1' valuePosition='auto' | renderas='area' showValues='1' Alpha='30' valuePosition='BELOW' ";//柱形|区域的属性
  9. //showAlternateHGridColor 是否在横向网格带交替的颜色,默认为0(False)
  10. //showLegend 显示标题
  11. //canvasBorderColor 画布边框色 canvasBorderColor='#ffffff'
  12. //yAxisValuesStep='1'
  13. //showXAxisLine 显示x轴
  14. //interactiveLegend lengend可点的?
  15. //valuePosition='ABOVE' value的显示位置ABOVE/BELOW/AUTO
  16. //Alpha
  17. var chartAttrs="bgColor='#ffffff' canvasBorderColor='#ffffff' showAlternateHGridColor='0' showXAxisLine='1' showYAxisLine='1' showLegend='0' legendShadow='0' interactiveLegend='0' ";//图形的属性
  18. //initStackedColumn2DLine("${root}","container1",1000,300,null,78);
  19. initCombineColumAndArea("${root}",78);
HTML代码
  1. <div id="container1" style="text-align:center;border:1px solid #ccc;border-bottom:none;padding:5px 5px 0px 5px;"></div>

开发过程中,可以参考官网的例子进行开发。

http://www.fusioncharts.com/javascript-chart-fiddles/?charts



图2在线测试

猜你在找的XML相关文章