六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 81|回复: 0

lighttpd下rails FusionCharts图表

[复制链接]

升级  8%

16

主题

16

主题

16

主题

秀才

Rank: 2

积分
62
 楼主| 发表于 2013-1-16 00:49:33 | 显示全部楼层 |阅读模式
尝试使用open_flash_chart和FusionCharts,在rails中都可以实现。
用WEBrick启动web,不管在XP平台还是centos平台下,都运行正常。
但如果在centos启动lighttpd,open_flash_chart不能显示。而FusionCharts所提供的两种方法中,chart.setDataURL在lighttpd方式下不成功,并且该方式也不支持中文。

遂将满足lighttpd,并且支持中文的FusionChartsFree的chart.setDataXML实现方式总结如下,不理想的就是要自己构造XML字符串。
FusionChartsFree的好处就是不要进行插件的安装。拷贝相关的文件就可以了。
顺带提一句,发现:FusionChartsFree的速度比FusionCharts v3破解版速度快。


下载:FusionChartsFree
地址:http://www.fusioncharts.com/Free/
FusionCharts 是一个跨浏览器和跨平台的flash图表组件,能够被 ASP.NET, ASP, PHP, JSP, ColdFusion, Ruby on Rails, 简单 HTML 页面 甚至PPT调用. 几乎所有你知道的语言它都支持。

安装:
解压:FusionChartsFree.zip
1、在自己的rails项目程序的public目录下建立一个目录:FusionCharts;
2、将目录Charts下的所有swf文件全部拷贝到第1步建立的目录下;
3、将JSClass下的FusionCharts.js文件,拷贝到rails项目的public/javascripts下。

表结构:销售表markets
产品名:product_name   string
销售量:product_sum    integer

代码如下:class ReportController < ApplicationController  def index     #构造xml字符串    my_market = Market.find(:all)    strXML =[]    strXML << "<graph caption='图表示例' xAxisName='产品' yAxisName='销量' showNames='1' decimalPrecision='0' formatNumberScale='0' BaseFontSize = '12'>"    my_market.each do |m|      strXML << "<set name='" + m.product_name + "' value='" + m.sum.to_s + "' />"    end    strXML << "</graph>"    @my_str = strXML.to_s  endend<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><head><meta http-equiv="content-type" content="text/html;charset=UTF-8" /><title>Contact:<%= controller.action_name %></title><%= javascript_include_tag 'FusionCharts'%></head><body><div id="chartdiv" align="center"></div><script language="JavaScript" type="text/javascript">var myChart = new FusionCharts("/FusionCharts/FCF_Bar2D.swf", "myChartId", "600","500" );        myChart.setDataXML("<%= @my_str %>")        myChart.render("chartdiv");</script></body></html>

FusionCharts的其它类型图表的xml格式,请见:FusionCharts解压后的Index.html说明。
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表