Highcharts学习小计之决策分析
来源:互联网 发布:腾讯软件中心 编辑:程序博客网 时间:2024/05/22 03:05
一 简介
项目中使用Highcharts技术,第一次使用,记录下
二 页面源码
/*按类型*/
if('eventType' == '<%=analysiType%>'){
getEventCataInfoByEventType();
}
/*按类型*/
function getEventCataInfoByEventType(){
var param = getParam();
//柱状图数据
var jsonXData = [];//x-数据
var jsonyRegData = [];//y-登记数据
var jsonyDoneData = [];//y-结案数据
$.getJSON("/enforce/event/event_getEventCataInfoByEventType.action?"+param, function(json) {
/**[表格信息][start]**/
var retHtml = "<table class='shujuj' ><tr class='taitou'><td width='25%'>大类</td><td width='35%' colspan='-4' >中类</td><td width='20%' >登记数</td><td width='20%' >结案数</td></tr>";
$.each(json, function(id, object) {
var parantName = object.parentName;
var count= object.count;
var reCount = object.reCount;
var doCount = object.doCount;
var child = object.child;
retHtml += "<tr><td rowspan='"+count+"'<label for='checkbox'></label> ";
retHtml += "<label for='checkbox'>"+parantName+"</label></td>";
for(var i=0;i<child.length;i++){
var childJson = eval(child[i]);
var doneNum = childJson.doneNum;
var name = childJson.name;
var registerNum = childJson.registerNum;
//柱状图数据获取
jsonXData.push(name);
jsonyRegData.push(registerNum);
jsonyDoneData.push(doneNum);
<!-- for (var key in childJson) {-->
<!-- alert("childJson["+key+"]"+childJson[key]);-->
<!-- }-->
<!-- -->
retHtml += "<td colspan='-4'><a href='javascript:void(0)' onclick=javascript:xiaolei('"+parantName+"','"+name+"');>"+name+"</a></td>";
retHtml += "<td>"+registerNum+"</td>";
retHtml += "<td>"+doneNum+"</td></tr>";
}
retHtml += "<tr><td colspan='2' bgcolor='#F2F2F2'>小计</td>";
retHtml += "<td bgcolor='#F2F2F2' >"+reCount+"</td>";
retHtml += "<td bgcolor='#F2F2F2' >"+doCount+"</td></tr>";
});
retHtml += "</table>";
$("#eventTable").html(retHtml);
/**[表格信息][end]**/
/**[柱状图][start]**/
var series = [
{
name:"登记数",
data:jsonyRegData
},
{
name:"结案数",
data:jsonyDoneData
}
];
getHighchartsBar("eventBar","按类别",jsonXData,"数量/件",series,-60);
/**[柱状图][end]**/
}
);
}
三 后台源码
/**
* 决策分析-事件统计(事件类型)
*/
public void getEventCataInfoByEventType(){
String whereJaStr = getSearchJaSqlWhereStr();
String whereStr = getSearchSqlWhereStr();
List<NormalMessageBO> list = eventService.getEventCataInfoByEventType(whereStr,whereJaStr);
List<Map<String,Object>> retList = new ArrayList();
//retHtml.append("<table class='shujuj' ><tr class='taitou'><td width='18%'>大类</td><td width='28%' colspan='-4' >中类</td><td width='30%' >登记数</td><td width='24%' >结案数</td></tr>");
//前父编码
String preParentCode = "";
//父map
Map<String,Object> map = new HashMap<String,Object>();
List<Map<String,Object>> childList = new ArrayList<Map<String,Object>>();
//同一大类的种类数
int count = 0;
//登记数小计
int reCount = 0;
//结案数小计
int doCount = 0;
for(Object object:list)
{
Object[] obj =(Object[])object;
//parentCode
String parentCode = String.valueOf(obj[0]);
//parentName
String parentName = String.valueOf(obj[1]);
//name
String name = String.valueOf(obj[2]);
//registerNum登记数
String reNum = String.valueOf(obj[3]);
int registerNum = Integer.parseInt(reNum);
//doneNum结案数
String doNum = String.valueOf(obj[4]);
int doneNum = Integer.parseInt(doNum);
Map<String,Object> childMap = new HashMap<String,Object>();
childMap.put("name", name);
childMap.put("registerNum", registerNum);
childMap.put("doneNum", doneNum);
if(!preParentCode.equalsIgnoreCase(parentCode)){
preParentCode = parentCode;
count = 1;
reCount = registerNum;
doCount = doneNum;
map = new HashMap<String,Object>();
childList = new ArrayList();
childList.add(childMap);
map.put("parentName",parentName);
map.put("reCount", reCount);
map.put("doCount", doCount);
map.put("count", count);
map.put("child", childList);
retList.add(map);
}else {
count++;
reCount += registerNum;
doCount += doneNum;
map = retList.get(retList.size()-1);
childList = (List<Map<String, Object>>) map.get("child");
childList.add(childMap);
map.put("reCount", reCount);
map.put("doCount", doCount);
map.put("count", count);
}
}
this.outJsonArray(retList);
}
四 效果展示
五 总结
highcharts技术是java web项目中使用的非常普遍的技术,其图形样式可以满足大多数项目的需求
- Highcharts学习小计之决策分析
- highcharts学习之线图
- 学习小计
- 学习小计
- 机器学习笔记之决策边界
- 强化学习之马尔可夫决策过程
- highcharts学习之第一个例子
- highcharts学习
- 数据统一管理--企业决策分析之刚需
- 数据统一管理--企业决策分析之刚需
- Java学习小计
- iOS学习小计划
- eXosip 学习小计
- or1200学习小计划
- gnuplot 学习小计4
- extjs学习小计
- ucos学习小计
- android学习Fragment小计
- 软件测试工具LoadRunner结果分析中的响应时间
- 2017年初你绝对想尝试的25个新安卓库
- Linux 多线程编程(1)
- 微信小程序中一些有用的组件总结
- 快速入手开源日志分析系统logstash
- Highcharts学习小计之决策分析
- 前端实现组织结构列表
- 奇异的家庭
- highCharts去掉图表官网标识链接和导出按钮
- Google Guava (14.0) Part2
- 2017省市区最新编码(依据国家统计局最新数据生成)
- 【Unet】Unet Networked Events 事件同步
- https://biendata.com/软件编程大赛
- 大数据下基于Tensorflow框架的深度学习示例教程