项目进入到中后期,迭代需求慢慢浮出,客户想更直观的看到各种分析报表的需求也越来越强烈,在使用wabacus开发完毕相关业务表单的数据编辑后,图形化报表进入项目的切实开发阶段,因wabacus作为国内新兴的开发快速平台,其开发效率非常可观,而且又开放了诸多接口方便在此上面进行一些特殊功能开发,故特此研究了一下关于图形报表的开发使用,在此,我们选用FusionCharts作为图形控件,数据组织成xml格式(也可以组织成json)。下面是做的一个的例子,供大家参看交流。
第一步:先开发完标准的wabacus报表,示例代码如下
<report id="report1" title="图形报表" pagesize="10" template="/myproject/resource/jsp/tagpages/test.jsp">
<display>
<col column="M_TYPE" label="设备类型"></col>
<col column="NUM" label="数量" ></col>
</display>
<sql>
<select>
<value>
<![CDATA[
select m_type,count(*) num from YW_MACHINE_MODIFY_BY_INTER where {#condition#} group by m_type
]]>
</value>
<condition name="txtqqs" label="报修起始时间" defaultvalue="2012-1-1" labelstyle="2">
<value>
<![CDATA[(Q_DATE >=to_date('#data#','YYYY-MM-DD'))]]>
</value>
<inputbox type="datepicker" ></inputbox>
</condition>
condition name="txtqjz" label="截止时间" labelstyle="2" >
<value>
<![CDATA[(Q_DATE <= to_date('#data#','YYYY-MM-DD') )]]>
</value>
<inputbox type="datepicker"></inputbox> </condition>
</select>
</sql>
</report>
其中<report/>标签中的template是所引用的动态模板。
第二部:编写动态模板,示例代码如下:
<%@page language="java" contentType="text/html;charset=UTF-8" pageEncoding="utf-8"%>
<%@page import="com.wabacus.system.component.application.report.abstractreport.AbsReportType"%>
<%@page import="com.wabacus.system.assistant.ReportAssistant"%>
<%@page import="com.wabacus.system.ReportRequest"%>
<%@page import="java.util.List"%>
<%@taglib uri="wabacus" prefix="wx"%>
<html>
<head>
<title>图形报表示例</title>
<script type="text/javascript" src="<%=request.getContextPath()%>/myproject/resource/jsp/tagpages/FusionCharts/FusionCharts.js"></script>
</head>
<body >
<wx:searchbox/><br/>
<wx:title/><br/>
<div id="chartContainer" style="width:800px; height:300px;"> FusionCharts will load here!</div>
<%
AbsReportType reportTypeObj=(AbsReportType)request.getAttribute("WX_REPORTTYPE_OBJ");//取到当前报表对象
List lstData=reportTypeObj.getLstReportData();//从报表对象中取到此报表所有数据
String graph = "<chart caption='设备统计' xAxisName='类别' yAxisName='数量' numberPrefix=''> ";//拼装XML文件
String set = "";
for(int i=0;i<lstData.size();i++){
Object objlabel = ReportAssistant.getInstance().getPropertyValue(lstData.get(i),"M_TYPE"); //获取报表中列的值
Object objvalue = ReportAssistant.getInstance().getPropertyValue(lstData.get(i),"NUM");
String label = objlabel.toString();
String value = objvalue.toString();
set = set+"<set label='"+label+"' value='"+value+"' />";
}
graph += set+"</chart>";
graph = graph.replaceAll("%","");
graph = graph.replaceAll("&"," ");
%>
<wx:data/><br/>
<script type="text/javascript">
var myChart = new FusionCharts( "<%=request.getContextPath()%>/myproject/resource/jsp/tagpages/FusionCharts/Column3D.swf","myChartId", "80%", "100%", "0", "1" );
var myData ="<%=graph%>";
myChart.setDataXML(myData);//加载拼装完的xml
myChart.render("chartContainer");
</script>
</body>
</html>
大家一定想知道我拼装成的xml到底是什么样子,如下图
<chart caption='设备统计' xAxisName='类别' yAxisName='数量' numberPrefix=''>
<set label='笔记本' value='1' />
<set label='打印机' value='14' />
<set label='台式机' value='3' />
<set label='网络' value='1' />
</chart>
运行效果如下:
还可以轻易换成饼状图
了解FusionCharts的朋友可能知道,这个饼是可以动的,呵呵……
要刚换成此种效果,只需要更换动态模板中引用的图形模型即可,即jsp示例代码中37行最后的“Column3D.swf”更换为“Pie3D.swf”。
当然,要运行起图形来还需要一些其他的文件,三个脚本:FusionCharts.js,highcharts.js,jquery.min.js,均与图形模板放在一个目录下即可。
想要详细了解FusionCharts的朋友,可以从其官方下载,里面有个示例,教大家一步步的实现Creating your First Chart~!
- 大小: 50.8 KB
- 大小: 44.1 KB
分享到:
相关推荐
免费漂亮的Flash图形报表-FusionCharts Free V2.1
FusionCharts 很好 很强大的免费图形报表。
图形工具fusioncharts
FusionCharts各种图形报表资源下载
通过配置xml制作报表FusionCharts
报表开发工具文档 FusionCharts Free
使用Fusioncharts 开发报表,有充分的教程以及例子,愿你也可以实现用fusioncharts做出您满意的报表
FusionCharts是最炫的3D图形工具,全面取代JFreeChar,这里提供了破解版,能生成没有水印的图形报表。 FusionCharts中文开发指南为pdf格式
NULL 博文链接:https://huanglz19871030.iteye.com/blog/704194
附件内含本人测试过的代码。绝对是不可多得统计报表...FusionCharts是一个Flash的图表组件,是制作统计报表,图像报表的最牛选择。 基于Flash技术的产品,都非常的漂亮,内置20套左右的Flash统计图。 效果查看如下: ...
asp.net 报表 ,FusionCharts资料文档(全)
FusionCharts图形控件在JSP下生成各种图表
FusionCharts_Professional 免费专业报表FusionCharts_Professional 免费专业报表FusionCharts_Professional 免费专业报表FusionCharts_Professional 免费专业报表
FusionCharts常用图形属性
该版本为正式版,最近做了一个项目要引入fusioncharts,所以弄来了这个正式版,绝对没有问题,大家可以放心下载使用
FusionCharts.js,报表的js及一些swf文件,还有一个例子
FusionCharts_Evaluation报表工具
FusionCharts flash报表工具
本资源 是较为轻量级的 JAVA WEB 图形解决方案 实例,采用JS和FLASH技术,下载即可运行。相对于jfreeChart 更为简洁方便好用,高效。
FusionCharts2D、3D报表统计源码 功能介绍: 1、本示例是基于fusioncharts进行二次开发。包含二次开发的word(相关参数配置)已上传。 2、本程序包含柱状图、饼图、折线图以及map地图销售统计。所有的数据自己动态...