ライトtpd下rails FusionChartsグラフ


Open_を使用してみますflash_chartとFusionChartsは、railsでも実現できます.
WebをWEBrickで起動し、XPプラットフォームでもcentosプラットフォームでも正常に動作します.
ただしcentosでlighttpdを起動するとopen_flash_chartは表示できません.FusionChartsが提供する2つの方法のうち、chart.setDataURLはlighttpd方式では成功せず、中国語もサポートされていない.
lighttpdを満たし、中国語のFusionChartsFreeのchartをサポートします.setDataXMLの実現方式は以下のようにまとめられており,理想的ではないのはXML文字列を自分で構築することである.
FusionChartsFreeのメリットはプラグインのインストールを行わないことです.関連書類をコピーすればいいです.
ちなみに、FusionChartsFreeの速度はFusionCharts v 3の解読版より速いことがわかりました.
ダウンロード:FusionChartsFree
アドレス:http://www.fusioncharts.com/Free/
FusionChartsはブラウザとプラットフォームにまたがるflashグラフコンポーネントであり、ASP.NET、ASP、PHP、JSP、ColdFusion、Ruby on Rails、簡単なHTMLページ、PPT呼び出しもあります.ほとんどの言語がサポートされています.
インストール:
解凍:FusionChartsFree.zip
1、自分のrailsプロジェクトプログラムのpublicディレクトリの下で1つのディレクトリを創立します: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説明.