下载:

  http://www.cnblogs.com/huangcong/archive/2013/01/27/2878650.html

安装:

  解压ZIP包, 将open-flash-chart.swf以及swfobject.js三个文件拷贝到您的服务器根目录下, 当然你也可以自由放置这三个文件的位置, 但是一定要确保文件路径的正确调用。

使用:

  1.使用静态数据:

   此处index.html、open-flash-chart.swf、swfobject.js以及data.txt在同一文件加下, 自己制定也可以;

  以下为index.html内容:

 <div id="chart"></div>

 <script type="text/javascript" src="swfobject.js"></script>
<script type="text/javascript">
var flashvars = {"data-file":"data.txt"}; //这里是数据源 静态数据
var params = {menu: "false",scale: "noScale",wmode:"opaque"};
swfobject.embedSWF("open-flash-chart.swf", "chart", "550px", "350px", "9.0.0","expressInstall.swf", flashvars,params);
</script>

  注意: flashvars是设置的数据源, 该数据位JOSN格式数据, 本例提供了一个txt的JOSN数据源, 接下来会用PHP来生成JOSN数据, 然后用OFC调用渲染出图表的案例。
  params是设置FLASH输出的菜单、比例、窗口模式等属性。 最后载入flash文件, 注意“chart”是页面中的一个HTML元素的ID值, 就是用这个ID来装入图表。接着就是设置元素的大小, 很简单吧。

  以下为data.txt内容:

 {
"title": {
"text": "Many data lines",
"style": "{font-size: 20px; color:#0000ff; font-family: Verdana; text-align: center;}"
}, "y_legend":{
"text": "Open Flash Chart",
"style": "{color: #736AFF; font-size: 12px;}"
}, "elements":[
{
"type": "bar_glass",
"alpha": 0.5,
"colour": "#9933CC",
"text--": "Page views",
"font-size--": 10,
"values": [9,6,7,9,5,{"top":7,"colour":"#FF0000", "tip": "Mooo#val#"},6,9,7]
}
], "x_axis":{
"stroke": 1,
"tick_height": 10,
"colour": "#d000d0",
"grid_colour": "#00ff00",
"labels": {
"labels": ["January","February","March","April","May","June","July","August","Spetember"]
}
}, "y_axis":{
"stroke": 4,
"tick_length": 3,
"colour": "#d000d0",
"grid_colour": "#00ff00",
"offset": 0,
"max": 20
}, "tooltip": {
"text": "My Tipval=#val#, top=#top#"
}
}

  结果如图:

  

  2.使用动态数据

  此处index.html、open-flash-chart.swf、swfobject.js以及apra_pie.php在同一文件加下, 自己制定也可以;

  index.html内容

 <div id="chart"></div>

 <script type="text/javascript" src="js/swfobject.js"></script>
<script type="text/javascript">
var flashvars = {"data-file":"area_pie.php"}; //这里是数据源
var params = {menu: "false",scale: "noScale",wmode:"opaque"};
swfobject.embedSWF("open-flash-chart.swf", "chart", "550px", "350px", "9.0.0","expressInstall.swf", flashvars,params);
</script>

  注意:与上一张不同的是我们使用的数据源文件area_pie.php, 该文件就是用来将MYSQL数据生成JSON数据的。

  准备OFC库

  我们知道OFC提供了各种接口程序, 包括PHP/PHP5、Pear、Python、Java、Dotnet。
  我们将从官网上下载的压缩包文件解压后发现有一个名为php-ofc-library文件夹, 这里放的就是PHP接口的所有库文件, 不用管里面的文件, 只需把整个文件夹复制到你的项目的根目录下并改名为ofc。

  读取MySQL生成JSON数据

  这是关键部分, 调用mysql数据库接口的部分代码大家可以自己写下, 限于篇幅, 本文就没有将其附上。

  area_pie.php代码如下:

  

 include_once ('global.php');  //调用数据库
include_once ('ofc/open-flash-chart.php'); //调用OFC库文件
//设置图表标题
$title = new title( '各区域单位场所数量分布图'.date('Y-m-d') );
$title->set_style("font-size:12px; font-weight:bold;");
$pie = new pie();
$pie->set_alpha(0.6);
$pie->set_start_angle( 32 );
$pie->add_animation( new pie_fade() );
$pie->set_tooltip( '#val# of #total##percent# of 100%' );
$pie->set_colours( array('#1C9E05','#FF368D','#0099cc','#d853ce','#ff7400','#006e2e',
'#d15600','#4096ee','#c79810') );
//读取各区域信息
$sql="select sum(total) as num from ".$prefix."district";
$query=$db->query($sql);
$rs=$db->fetch_array($query);
$t=$rs[num];
$sql="select name,total from ".$prefix."district";
$query=$db->query($sql);
while($row=$db->fetch_array($query)){
$total=$row[total];
if(!empty($t)){
$v=round($total/$t,4)*100;
}else{
$v=0;
}
$dis[]=array("name"=>$row[name],"total"=>$row[total],"v"=>$v);
}
$len_dis=count($dis);
for($i=0;$i<$len_dis;$i++){
$dis_value[]=new pie_value(intval($dis[$i][total]),$dis[$i][name]."(".$dis[$i][v]."%)");
}
$pie->set_values($dis_value); $chart = new open_flash_chart();
$chart->set_title( $title );
$chart->add_element( $pie );
$chart->x_axis = null;
echo $chart->toPrettyString(); //生成json数据

  参考http://www.helloweba.com/view-blog-40.html

PHP-Open Flash Chart报表生成的更多相关文章

  1. Open Flash Chart在php中的使用教程

    http://www.cnblogs.com/huangcong/archive/2013/01/27/2878650.html 为了画一个漂亮的表格,我从网上找到了OpenFlashChart(of ...

  2. Python Open Flash Chart (pyOFC2) — Home

    Python Open Flash Chart (pyOFC2) - Home pyOFC2 Python Open Flash Chart 2

  3. 使用Open Flash Chart(OFC)制作图表(Struts2处理)

    Java开源项目中制作图表比较出色的就是JFreeChart了,相信大家都听说过,它不仅可以做出非常漂亮的柱状图,饼状图,折线图基本图形之外,还能制作甘特图,仪表盘等图表.在Web应用中可以为项目增色 ...

  4. Open Flash Chart 之线图(二)

    上一节在研究Open Flash Chart时,漏掉不少东西,只是简单的熟悉了一下后端的属性设置.今天再来补充一下. 一.显示Open Flash Chart图表 Open Flash Chart 前 ...

  5. Open Flash Chart IO ERROR Loading test data Error #2032

    http://blog.sina.com.cn/s/blog_6754464e0100qfvd.html Open Flash Chart 2 提示Open Flash Chart IO ERROR ...

  6. Open Flash Chart 简介

    http://www.ibm.com/developerworks/cn/opensource/os-cn-ecl-ofc/ Open Flash Chart(OFC)是一个开源的 Flash 图表绘 ...

  7. Open Flash Chart图表的JSON格式基本属性详解

    http://blog.csdn.net/wangwenhui11/article/details/4283571 数据文件必须是JSON格式.JSON对象的基本格式: {} 把所有对象都编写在{}里 ...

  8. Open Flash Chart 之线图

    天公司要求开发一个曲线图,简单看了一下之前公司的一个系统,发现一个曲线图效果还不错,查了一下叫OpenFlashChart,还是很不错的,很多人用.研究了一下,发现还不错,特地写了个DEMO测试下. ...

  9. PHP-Open Flash Chart学习一(swfobject知识)

    首先必须了解下swfobject的知识 在网页里面插入swf再平常不过了, 一般会想到如下代码: <object classid="clsid:D27CDB6E-AE6D-11cf-9 ...

随机推荐

  1. 收藏的iOS技术站点汇总(持续更新ing)

    大牛博客 objc.io PS:经典,内容深而广 objc中国 NSHipster PS:非常多小细节 NSHipster 中文版 唐巧的技术博客 PS:LZ是唐巧的脑残粉- OneV's Den 王 ...

  2. Android图片加载框架最全解析(五),Glide强大的图片变换功能

    大家好,又到了学习Glide的时间了.前段时间由于项目开发紧张,再加上后来又生病了,所以停更了一个月,不过现在终于又可以恢复正常更新了.今天是这个系列的第五篇文章,在前面四篇文章的当中,我们已经学习了 ...

  3. wireshark抓取本地回环及其问题

    一:The NPF driver isn't running 这个错误是因为没有开启NPF服务造成的. NPF即网络数据包过滤器(Netgroup Packet Filter,NPF)是Winpcap ...

  4. R语言缺点

    R的优点:免费,开源,体积小.缺点:对大文本处理差,另外一个也在于开源,package如果出错,烦死你.当你跑比较大的simulation,对效率有要求的时候,有时还是不得不用C,这可能是10小时和1 ...

  5. 【BZOJ】【2750】【HAOI2012】Road

    最短路+拓扑序DP orz zyf & lyd 统计每条边在多少条最短路径上……其实可以统计 有多少条最短路径经过了x,以及y出发到达任意一个结束点有多少种走法(沿最短路) 我们可以用Dijk ...

  6. DeDeCMS(织梦)变量覆盖0day getshell

    测试方法: @Sebug.net   dis本站提供程序(方法)可能带有攻击性,仅供安全研究与教学之用,风险自负! #!usr/bin/php -w <?php error_reporting( ...

  7. 浅析Linux线程调度

    在Linux中,线程是由进程来实现,线程就是轻量级进程( lightweight process ),因此在Linux中,线程的调度是按照进程的调度方式来进行调度的,也就是说线程是调度单元.Linux ...

  8. Android中XML解析-PULL解析

    前面写了两篇XML解析的Dom和SAX方式,Dom比较符合思维方式,SAX事件驱动注重效率,除了这两种方式以外也可以使用Android内置的Pull解析器解析XML文件. Pull解析器的运行方式与 ...

  9. Reverse Linked List II leetcode java

    题目: Reverse a linked list from position m to n. Do it in-place and in one-pass. For example: Given 1 ...

  10. 手把手教你Android手机与BLE终端通信--连接,发送和接收数据

    假设你还没有看上一篇 手把手教你Android手机与BLE终端通信--搜索,你就先看看吧,由于这一篇要接着讲搜索到蓝牙后的连接.和连接后的发送和接收数据. 评论里有非常多人问假设一条信息特别长,怎么不 ...