`
dearsuper
  • 浏览: 64944 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
最近访客 更多访客>>
社区版块
存档分类
最新评论

lighttpd下rails FusionCharts图表

阅读更多
尝试使用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
  end
end


<!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说明。
分享到:
评论
12 楼 qichunren 2009-07-13  
vickyxr 写道
咦,教程里不是说如果有中文的话用setDataXML不行吗,要换成setDataURL吗?我用setDataURL不好用,用setDataXML反倒好用了,怪哉,怪哉!


你完全说反了。
11 楼 qichunren 2009-07-13  
vickyxr 写道
非常非常汗!原来我忘加了“;”了,不提示了,但是还是不能显示,错误为“Error in Loading Data”,难道要安装flash?大侠们你们都装了吗?不装不行吗?


你真是汗,你在Error in Loading Data上点鼠标右键,看有没有flash菜单出来呗。其实不用试,是有的。

另外你问得也非常汗,当然要装flash啦,如果你没有装flash,我只能代表火星圈子围观你了。
10 楼 vickyxr 2009-07-13  
大侠们,为啥这个图是横着的呀?
9 楼 vickyxr 2009-07-13  
咦,教程里不是说如果有中文的话用setDataXML不行吗,要换成setDataURL吗?我用setDataURL不好用,用setDataXML反倒好用了,怪哉,怪哉!
8 楼 vickyxr 2009-07-13  
非常非常汗!原来我忘加了“;”了,不提示了,但是还是不能显示,错误为“Error in Loading Data”,难道要安装flash?大侠们你们都装了吗?不装不行吗?
7 楼 vickyxr 2009-07-13  
是啊  我是照上面写的啊,controller是这样的:
strXML << "<graph caption='show' xAxisName='subjects' yAxisName='num' showNames='1' decimalPrecision='0' formatNumberScale='0' BaseFontSize = '12'>"
     @results_charts.each do |m|
         strXML << "<set name='" + m.subject_name + "' value='" + m.nstl.to_s + "' />"
      end
     strXML << "</graph>"
      session[:my_str] = strXML.to_s

然后页面是这样的:
<div   id="chartdiv" align="center">
        <script language="JavaScript" type="text/javascript">
        var myChart = new FusionCharts("/FusionCharts/FCF_Bar2D.swf", "myChartId", "600","500" );
        myChart.setDataURL("<%= session[:my_str] %>")
       myChart.render("chartdiv");</script>
      </div>

可是还是提示出错啊,还是说“未结束的字符串常量”
6 楼 qichunren 2009-07-13  
在生成的xml字符串中要使用单引号才行的。
5 楼 vickyxr 2009-07-13  
为什么我用了之后总是提示“未结束的字符串常量”错误呢,而且看/FusionCharts/FCF_Bar2D.swf  里面也是“Error in Loading Data”?
4 楼 qichunren 2009-07-09  
我都 想使用rails中的xml builder,用xml url不行啊。这个问题折磨人啊。搞了好久还是没有解决
3 楼 mrdangdong 2009-03-04  
rotateYAxisName='0' Y轴横着写就OK了
2 楼 supertan 2008-11-29  
是Y轴的中文...
1 楼 supertan 2008-11-29  
请问你的Y轴能显示吗? 我的Y轴不能显示

相关推荐

    最新lighttpd源码 lighttpd-1.4.22

    Lighttpd是一个德国人领导的开源软件,其根本的目的是提供一个专门针对高性能网站,安全、快速、兼容性好并且灵活的web server环境。具有非常低的内存开销,cpu占用率低,效能好,以及丰富的模块等特点。lighttpd是...

    Lighttpd源码分析_mobi

    主要内容包括:lighttpd介绍与分析准备工作、lighttpd网络服务主模型、lighttpd数据结构、伸展树、日志系统、文件状态缓存器、配置信息加载、i/o多路复用技术模型、插件链、网络请求服务响应流程、请求响应数据快速...

    龙芯2f_Debain6平台lighttpd下的CGI源码包.zip

    轻量级lighttpd下的CGI动态页面交互工具资源包,含:lighttpd-1.4.15.tar.gz、bzip2-1.0.6.tar.gz、pcre2-10.30.tar.gz、pcre-8.42.tar.gz、zlib-1.2.7.tar.gz、cgic207.zip共计6款软件源码。能够实现通过网页访问与...

    Lighttpd源码分析

    资源名称:Lighttpd源码分析内容简介: 作为最为优秀的轻量级Web Server之一,Lighttpd有着众多的忠实拥护者和使用者。Lighttpd源码分析就是一本介绍分析Lighttpd源码的初级读本,其主要目标在于:一方面让已经接触...

    lighttpd-1.4.20.tar

    lighttpd-1.4.20.tar lighttpd-1.4.20.tar

    ubuntu lighttpd实现websocket

    如何在ubuntu上实现lighttpd 1、下载mongoose使用mongoose中的example中的websocket_chat,实现websocket 2、websocket_chat源码下载路径 官网:https://cesanta.com 论坛:...

    lighttpd 主工作模式

    lighttpd 流程分析工作模式,帮助理解lighttpd

    lighttpd fastcgi

    1.修改lighttpd.conf 修改为自己的工作目录 var.server_root = "/home/caoft/lighttpd/lighttpd_websocket_fastcgi/http_server" var.state_dir = "/home/caoft/lighttpd/lighttpd_websocket_fastcgi/http_server"...

    varnish+lighttpd配置

    varnish+lighttpd配置

    最新lighttpd-1.4.28源码下载

    最新lighttpd-1.4.28源码下载最新lighttpd-1.4.28源码下载最新lighttpd-1.4.28源码下载最新lighttpd-1.4.28源码下载最新lighttpd-1.4.28源码下载最新lighttpd-1.4.28源码下载

    lighttpd-1.4.45_lighttpd服务器_

    lighttpd轻量级web嵌入式服务器,方便嵌入式平台移植,小巧安全

    lighttpd-1.4.20-cmake

    lighttpd-1.4.20-cmake

    lighttpd配置和启动脚本

    包括lighttpd.conf配置文件以及用于控制web server启动和停止的脚本。

    lighttpd代码阅读资料

    lighttpd代码阅读资料 参数的 web服务器

    Lighttpd 的windows版本

    Lighttpd 的windows版本 Lighttpd 1.4.35 发布了,该版本包含很多 bug 修复,包括 scan.coverity.com 扫描的问题。但最主要的是一个 SQL 注入(和路径遍历)问题:

    lighttpd完全学习

    lighttpd完全学习,适合新手文档参考,ppt文件

    lighttpd-1.4.55移植配置与测试.rar

    交叉编译最新版的lighttpd-1.4.55,配置与测试CGI与HTML.内含 lighttpd-1.4.55源码,移植教程,cgi测试代码,html测试代码.测试cgi时,浏览器中应该输入192.168.100.30/cgi-bin/xx.cgi .其中 192.168.100.30为开发板的ip

    lighttpd-1.4.26 源码

    lighttpd-1.4.26 源码,官方直接下载,学习的好资源。

    lighttpd-1.4.20源代码

    lighttpd-1.4.20源代码

    lighttpd-1.4.59.tar.gz

    lighttpd安装包

Global site tag (gtag.js) - Google Analytics