具体属性参考:http://wenku.baidu.com/link?url=7EcOqGOGUxM22mo_nPYO5DhQA7NjephU5en6vi8RLyD-uBJ6tnWxLvtV0AJqyfUSEmkcuDr44BCvePzU269I1IbRn7Rhp2_4pT-BOGVaJnq

实例介绍:

amcharts.js编写:

var ChartsAmcharts = function() {

var initChartTrackState = function(data) {//月 客户各跟踪状态
        var chart = AmCharts.makeChart("chart_track_state", {
            "theme": "light",
            "type": "serial",
            "startDuration": 2,

"fontFamily": 'Open Sans',

"color":    '#888',
            "dataProvider":data,
            //Y轴属性设置
            "valueAxes": [{
                "axisAlpha": 1,//设置Y轴的透明度
                "gridAlpha": 0,//网格的透明度
                "axisColor":"#FF6600",//轴的颜色
                "minimum":0,//Y轴最小值
                "integersOnly":true,//是否只显示整数
                "position": "left",//Y轴显示的位置
                "title": "客户数量(个)"
            }],
            //图形设置
            "graphs": [{
                "balloonText": "[[category]]: <b>[[value]]</b>",
                "colorField": "color",//图形颜色
                "fillAlphas": 0.75,
                "lineAlpha": 0.1,
                "type": "column",//类型:线状,柱状,饼状
                "topRadius": 1,
                "valueField": "counts" //绑定数值,与data中的属性名一致
            }],
            "columnWidth":0.5,//设置每个柱状图的宽度
            "depth3D": 30,//设置3D效果
            "angle": 20,
            "chartCursor": {
                "categoryBalloonEnabled": false,
                "cursorAlpha": 0,
                "zoomable": false
            },
            "categoryField": "name",//X轴数值绑定,与data中的属性名一致
            //X轴的设置
            "categoryAxis": {
                "title":"跟踪状态",
                "gridPosition": "start",
                "axisAlpha": 1,
                "gridAlpha": 0

},
            "exportConfig": {
                "menuTop": "1px",
                "menuRight": "1px",
                "menuItems": [{
                    "icon": '/lib/3/images/export.png',
                    "format": 'png'
                }]
            }
        }, 0);
        //chart_track_state前端页面需要显示的div的id
        $('#chart_track_state').closest('.portlet').find('.fullscreen').click(function() {
            chart.invalidateSize();
        });
    }
    var initChartCloseCustomer = function(data) {//月关单客户
        var chart = AmCharts.makeChart("chart_close", {
            "theme": "light",
            "type": "serial",
            "startDuration": 2,

"fontFamily": 'Open Sans',

"color":    '#888',
            "dataProvider":data,
            "valueAxes": [{
                "axisAlpha": 1,
                "gridAlpha": 0,
                "minimum":0,//Y轴最小值
                "integersOnly":true,//是否只显示整数
                "position": "left",
                "title": "客户数量(个)"
            }],
            "graphs": [{
                "balloonText": "[[category]]: <b>[[value]]</b>",
                "colorField": "color",
                "fillAlphas": 0.75,
                "lineAlpha": 0.1,
                "type": "column",
                "topRadius": 1,
                "valueField": "nums"
            }],
            "columnWidth":0.5,
            "depth3D": 30,
            "angle": 20,
            "chartCursor": {
                "categoryBalloonEnabled": false,
                "cursorAlpha": 0,
                "zoomable": true
            },
            "categoryField": "yearmonth",
            "categoryAxis": {
                "title":"年月",
                "gridPosition": "start",
                "axisAlpha": 1,
                "gridAlpha": 0

},
            "exportConfig": {
                "menuTop": "8px",
                "menuRight": "8px",
                "menuItems": [{
                    "icon": '/lib/3/images/export.png',
                    "format": 'png'
                }]
            }
        }, 0);

$('#chart_close').closest('.portlet').find('.fullscreen').click(function() {
            chart.invalidateSize();
        });
    }
    return {
        //main function to initiate the module

initChartTrackState: function(date) {
            initChartTrackState(date);
        },

initCloseCustomer: function(date) {
            initChartCloseCustomer(date);
        }

};
    }();

//前端页面

Version:0.9StartHTML:-1EndHTML:-1StartFragment:0000000111EndFragment:0000039290

<#--<div class="page-sidebar md-shadow-z-2-i  navbar-collapse collapse">-->
         <!-- BEGIN SIDEBAR MENU -->
         <!-- DOC: Apply "page-sidebar-menu-light" class right after "page-sidebar-menu" to enable light sidebar menu style(without borders) -->
         <!-- DOC: Apply "page-sidebar-menu-hover-submenu" class right after "page-sidebar-menu" to enable hoverable(hover vs accordion) sub menu mode -->
         <!-- DOC: Apply "page-sidebar-menu-closed" class right after "page-sidebar-menu" to collapse("page-sidebar-closed" class must be applied to the body element) the sidebar sub menu mode -->
         <!-- DOC: Set data-auto-scroll="false" to disable the sidebar from auto scrolling/focusing -->
         <!-- DOC: Set data-keep-expand="true" to keep the submenues expanded -->
         <!-- DOC: Set data-auto-speed="200" to adjust the sub menu slide up/down speed -->

         <!-- BEGIN PAGE CONTENT-->
    <div class="row">
        <!-- expect customer begin-->
        <div class="col-md-6 col-sm-6">
            <div class="portlet light">
                <div class="portlet-title">
                    <div class="caption">
                        <i class="icon-bar-chart font-green-haze"></i>
                        <span class="caption-subject bold uppercase font-green-haze"> 预订签约客户统计</span>
                    </div>
                </div>
                <div class="portlet-body">
                    <div id="chart_expect" class="chart" style="height: 400px;">
                    </div>
                </div>
            </div>
        </div>
        <!-- end expect customer-->
        <!-- begin close customer-->
        <div class="col-md-6 col-sm-6">
            <!-- BEGIN CHART PORTLET-->
            <div class="portlet light">
                <div class="portlet-title">
                    <div class="caption">
                        <i class="icon-bar-chart font-green-haze"></i>
                        <span class="caption-subject bold uppercase font-green-haze"> 关单客户统计</span>
                    </div>
                </div>
                <div class="portlet-body">
                    <div id="chart_close" class="chart" style="height: 400px;">
                    </div>
                </div>
            </div>

            <!-- END CHART PORTLET-->
        </div>
        <!-- end close customer-->

    </div>
    <div class="row">
        <!-- begin trackState -->
        <div class="col-md-12">
            <!-- BEGIN CHART PORTLET-->
            <div class="portlet light">
                <div class="portlet-title">
                    <div class="caption">
                        <i class="icon-bar-chart font-green-haze"></i>
                        <span class="caption-subject bold uppercase font-green-haze"> 客户各跟踪状态统计</span>
                    </div>
                    <div class="actions">
                        <a href="javascript:getMonthData();" class="btn btn-circle red-sunglo btn-sm">
                            <i class="fa fa-plus"></i> 月报 </a>
                        <a href="javascript:getWeekData();" class="btn btn-circle red-sunglo btn-sm">
                            <i class="fa fa-plus"></i> 周报 </a>
                    </div>
                </div>
                <div class="portlet-body">
                    <div id="chart_track_state" class="chart" style="height: 400px;">
                    </div>
                </div>
            </div>

            <!-- END CHART PORTLET-->
        </div>
    </div>

         <!-- END PAGE CONTENT-->
      <#--</div>-->

<!-- BEGIN JAVASCRIPTS(Load javascripts at bottom, this will reduce page load time) -->
<!-- BEGIN CORE PLUGINS -->
            <script src="${CONTEXT_PATH}/static/assets/global/plugins/jquery.min.js" type="text/javascript"></script>
            <script src="${CONTEXT_PATH}/static/assets/global/plugins/jquery-migrate.min.js" type="text/javascript"></script>
            <!-- IMPORTANT! Load jquery-ui.min.js before bootstrap.min.js to fix bootstrap tooltip conflict with jquery ui tooltip -->
            <script src="${CONTEXT_PATH}/static/assets/global/plugins/jquery-ui/jquery-ui.min.js" type="text/javascript"></script>
            <script src="${CONTEXT_PATH}/static/assets/global/plugins/bootstrap/js/bootstrap.min.js" type="text/javascript"></script>
            <script src="${CONTEXT_PATH}/static/assets/global/plugins/bootstrap-hover-dropdown/bootstrap-hover-dropdown.min.js" type="text/javascript"></script>
            <script src="${CONTEXT_PATH}/static/assets/global/plugins/jquery-slimscroll/jquery.slimscroll.min.js" type="text/javascript"></script>
            <script src="${CONTEXT_PATH}/static/assets/global/plugins/jquery.blockui.min.js" type="text/javascript"></script>
            <script src="${CONTEXT_PATH}/static/assets/global/plugins/jquery.cokie.min.js" type="text/javascript"></script>
            <script src="${CONTEXT_PATH}/static/assets/global/plugins/uniform/jquery.uniform.min.js" type="text/javascript"></script>
            <script src="${CONTEXT_PATH}/static/assets/global/plugins/bootstrap-switch/js/bootstrap-switch.min.js" type="text/javascript"></script>
<!-- END CORE PLUGINS -->
<!-- BEGIN PAGE LEVEL PLUGINS -->
<script src="${CONTEXT_PATH}/static/assets/global/plugins/amcharts/amcharts/amcharts.js" type="text/javascript"></script>
<script src="${CONTEXT_PATH}/static/assets/global/plugins/amcharts/amcharts/serial.js" type="text/javascript"></script>
<script src="${CONTEXT_PATH}/static/assets/global/plugins/amcharts/amcharts/pie.js" type="text/javascript"></script>
<script src="${CONTEXT_PATH}/static/assets/global/plugins/amcharts/amcharts/radar.js" type="text/javascript"></script>
<script src="${CONTEXT_PATH}/static/assets/global/plugins/amcharts/amcharts/themes/light.js" type="text/javascript"></script>
<script src="${CONTEXT_PATH}/static/assets/global/plugins/amcharts/amcharts/themes/patterns.js" type="text/javascript"></script>
<script src="${CONTEXT_PATH}/static/assets/global/plugins/amcharts/amcharts/themes/chalk.js" type="text/javascript"></script>
<script src="${CONTEXT_PATH}/static/assets/global/plugins/amcharts/ammap/ammap.js" type="text/javascript"></script>
<script src="${CONTEXT_PATH}/static/assets/global/plugins/amcharts/ammap/maps/js/worldLow.js" type="text/javascript"></script>
<script src="${CONTEXT_PATH}/static/assets/global/plugins/amcharts/amstockcharts/amstock.js" type="text/javascript"></script>
<!-- END PAGE LEVEL PLUGINS -->
<!-- BEGIN PAGE LEVEL SCRIPTS -->
<script src="${CONTEXT_PATH}/static/assets/global/scripts/metronic.js" type="text/javascript"></script>
<script src="${CONTEXT_PATH}/static/assets/admin/layout4/scripts/layout.js" type="text/javascript"></script>
<script src="${CONTEXT_PATH}/static/assets/admin/layout4/scripts/demo.js" type="text/javascript"></script>
<script src="${CONTEXT_PATH}/static/assets/admin/pages/scripts/charts-amcharts.js"></script>
<script src="${CONTEXT_PATH}/static/js/ajax.js"></script>
<script src="${CONTEXT_PATH}/static/assets/global/plugins/bootstrap-growl/jquery.bootstrap-growl.min.js"></script>
<script>
jQuery(document).ready(function() {       // initiate layout and plugins
   Metronic.init(); // init metronic core components
Layout.init(); // init current layout
Demo.init(); // init demo features

    getData("${CONTEXT_PATH}/report/countExpectSignCustomer" , function(data) {ChartsAmcharts.initExpectSignCustomer(data);
    });
    getData("${CONTEXT_PATH}/report/countCloseCustomerByMonth" , function(data) {ChartsAmcharts.initCloseCustomer(data);
    });
    getData("${CONTEXT_PATH}/report/countTractStateByMonth" , function(data) {ChartsAmcharts.initChartTrackState(data);
    });
});
    function getWeekData(){getData("${CONTEXT_PATH}/report/countWeekReportByTackeState" , function(data) {if(data==""){alert("没有符合条件的记录!");
            }ChartsAmcharts.initChartTrackState(data);

        });
    }function getMonthData(){getData("${CONTEXT_PATH}/report/countTractStateByMonth" , function(data) {if(data==""){alert("没有符合条件的记录!");
            }ChartsAmcharts.initChartTrackState(data);
        });
    }
</script>

后台json数据绑定:使用的是JFinal框架

Version:0.9StartHTML:-1EndHTML:-1StartFragment:0000000111EndFragment:0000028523

package com.netfinworks.oa.controller;

import com.jfinal.core.Controller;
import com.jfinal.plugin.activerecord.Db;
import com.jfinal.plugin.activerecord.Record;
import com.netfinworks.oa.utils.DateUtils;
import com.netfinworks.oa.utils.WeekUtils;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class ReportController extends Controller{/***
     * 统计指定日期当月客户各跟踪状态
     */
    public void countTractStateByMonth() {List<Record> lst = new ArrayList<Record>();
        String firstDay = DateUtils.getFirstDay(new Date(), 0);
        String nextFirstDay = DateUtils.getFirstDay(new Date(), 1);
        lst = Db.find("select ts.name,count(ch.new_track_state_id) as counts,case when ch.new_track_state_id=1 then 'red'\n" +"\twhen ch.new_track_state_id=2 then 'orange'\n" +"\twhen ch.new_track_state_id=3 then 'yellow'\n" +"\twhen ch.new_track_state_id=4 then 'green'\n" +"\twhen ch.new_track_state_id=5 then 'blue'\n" +"\twhen ch.new_track_state_id=6 then 'purple'\n" +"   end as color from customer_history ch,track_state ts,\n" +"(select t.customer_id,max(t.change_time) as change_time from customer_history t where t.change_time between date_format(?,'%Y%m%d') and date_format(?,'%Y%m%d') group by t.customer_id ) as temp \n" +"where temp.customer_id=ch.customer_id and temp.change_time=ch.change_time\n" +"and ts.id=ch.new_track_state_id\n" +"and ch.new_track_state_id is not null group by ch.new_track_state_id", firstDay, nextFirstDay);

        renderJson(lst);
    }/**
     * 统计按周显示客户跟踪状态
     * countWeekReportByTackeState
     */
    public void countWeekReportByTackeState(){List<Record> lst = new ArrayList<Record>();
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
        String firstWeek=df.format(WeekUtils.getFirstDayOfWeek(new Date()));
        String lastWeek=df.format(WeekUtils.getLastDayOfWeek(new Date()));
        lst=Db.find("\tselect ts.name,ch.new_track_state_id,count(ch.new_track_state_id) as counts,\tcase when ch.new_track_state_id=1 then 'red'\n" +"\twhen ch.new_track_state_id=2 then 'orange'\n" +"\twhen ch.new_track_state_id=3 then 'yellow'\n" +"\twhen ch.new_track_state_id=4 then 'green'\n" +"\twhen ch.new_track_state_id=5 then 'blue'\n" +"\twhen ch.new_track_state_id=6 then 'purple'\n" +"   end as color from customer_history ch,track_state ts,\n" +"\t(select t.customer_id,max(t.change_time) as change_time from customer_history t where t.change_time between date_format(?,'%Y%m%d') and date_format(?,'%Y%m%d') group by t.customer_id ) as temp \n" +"\twhere temp.customer_id=ch.customer_id and temp.change_time=ch.change_time\n" +"\tand ts.id=ch.new_track_state_id\n" +"\tand ch.new_track_state_id is not null group by ch.new_track_state_id",firstWeek,lastWeek);
        renderJson(lst);
    }/***
     * 统计上月、本月、下月关单的客户
     *countCloseCustomerByMonth
     */
    public void countCloseCustomerByMonth(){List<Record> lst = new ArrayList<Record>();
        String lastFirstDay=DateUtils.getFirstDay(new Date(),-1);//上月第一天
        String firstDay=DateUtils.getFirstDay(new Date(),0);//本月第一天
        String nextFirstDay=DateUtils.getFirstDay(new Date(),1);//下月第一天
        String neFirstDay=DateUtils.getFirstDay(new Date(),2);//下下月第一天

        lst=Db.find("select count(ch.id) as nums,case when count(ch.id)=0 then  date_format(?,'%Y%m')\n" +"else date_format(temp.change_time,'%Y%m')\n" +"end as yearmonth from customer_history ch,\n" +"(select t.customer_id,max(t.change_time) as change_time from customer_history t where t.change_time between date_format(?,'%Y%m%d') and date_format(?,'%Y%m%d') group by t.customer_id ) as temp \n" +"where temp.customer_id=ch.customer_id and temp.change_time=ch.change_time\n" +"and ch.new_status_id is not null and ch.new_status_id=2\n" +"union all\n" +"select count(ch.id) as nums,case when count(ch.id)=0 then  date_format(?,'%Y%m')\n" +"else date_format(temp.change_time,'%Y%m')\n" +"end as yearmonth from customer_history ch,\n" +"(select t.customer_id,max(t.change_time) as change_time from customer_history t where t.change_time between date_format(?,'%Y%m%d') and date_format(?,'%Y%m%d') group by t.customer_id ) as temp \n" +"where temp.customer_id=ch.customer_id and temp.change_time=ch.change_time\n" +"and ch.new_status_id is not null and ch.new_status_id=2\n" +"union all\n" +"select count(ch.id) as nums,case when count(ch.id)=0 then  date_format(?,'%Y%m')\n" +"else date_format(temp.change_time,'%Y%m')\n" +"end as yearmonth from customer_history ch,\n" +"(select t.customer_id,max(t.change_time) as change_time from customer_history t where t.change_time between date_format(?,'%Y%m%d') and date_format(?,'%Y%m%d') group by t.customer_id ) as temp \n" +"where temp.customer_id=ch.customer_id and temp.change_time=ch.change_time\n" +"and ch.new_status_id is not null and ch.new_status_id=2",lastFirstDay,lastFirstDay,firstDay,firstDay,firstDay,nextFirstDay,nextFirstDay,nextFirstDay,neFirstDay);
        renderJson(lst);
    }/***
     * 统计上月、本月、下月预计签约的客户
     */
    public void countExpectSignCustomer(){List<Record> lst = new ArrayList<Record>();
        String lastFirstDay=DateUtils.getFirstDay(new Date(),-1);//上月第一天
        String firstDay=DateUtils.getFirstDay(new Date(),0);//本月第一天
        String nextFirstDay=DateUtils.getFirstDay(new Date(),1);//下月第一天
        String neFirstDay=DateUtils.getFirstDay(new Date(),2);//下下月第一天
        lst=Db.find("select count(t.id) nums,case when count(t.id)=0 then  date_format(?,'%Y%m')\n" +"else date_format(t.expect_sign_time,'%Y%m')\n" +"end as yearmonth from customer t where t.status_id<> 3 and  t.expect_sign_time between date_format(?,'%Y%m%d') and date_format(?,'%Y%m%d')\n" +"union all\n" +"select count(t.id) nums,case when count(t.id)=0 then  date_format(?,'%Y%m')\n" +"else date_format(t.expect_sign_time,'%Y%m')\n" +"end as yearmonth from customer t where t.status_id<> 3 and  t.expect_sign_time between date_format(?,'%Y%m%d') and date_format(?,'%Y%m%d')\n" +"union all\n" +"select count(t.id) nums,case when count(t.id)=0 then  date_format(?,'%Y%m')\n" +"else date_format(t.expect_sign_time,'%Y%m')\n" +"end  as yearmonth from customer t where t.status_id<> 3 and  t.expect_sign_time between date_format(?,'%Y%m%d') and date_format(?,'%Y%m%d')",lastFirstDay,lastFirstDay,firstDay,firstDay,firstDay,nextFirstDay,nextFirstDay,nextFirstDay,neFirstDay);
        renderJson(lst);
    }
}

amchart使用总结相关推荐

  1. amchart折线图示例

    2019独角兽企业重金招聘Python工程师标准>>> 使用amchart折现图准备工作2步: 1.需要引用封装好的amcharts.js文件和css样式表: 2.在页面上创建一个d ...

  2. 前端图表插件echart、amchart、g6

    前端图表插件 1.echart https://echarts.apache.org/examples/zh/index.html 2.amchart https://www.amcharts.com ...

  3. axis为amchart左右轴的参数

    <axis>left</axis>                                       <!-- [left] (left/ right) ind ...

  4. amcharts应用

    查看选中的软件的下载量,通过amchart报表工具显示出软件日下载量,月下载量以及年下载量,下面简单介绍,amchart在struts2中的应用. amCharts提供JavaScript/HTML5 ...

  5. 看完这一篇,你就对 Spring Security 略窥门径了 | 原力计划

    作者 | BoCong-Deng 来源 | CSDN 博客,责编 | 夕颜 头图 | CSDN 下载自东方 IC 出品 | CSDN(ID:CSDNnews) 写在前面 开发Web应用,对页面的安全控 ...

  6. 2016最新Java学习计划

    一.Java学习路线图 二.Java学习路线图--视频篇 六大阶段 学完后目标 知识点 配套免费资源(视频+笔 记+源码+模板) 密码        第一阶段 Java基础 入门 学习周期: 35天 ...

  7. JavaEE全套资料+视频+工具

    JavaEE全套资料+视频+工具[点击链接原文] Java学习路线图引言: 一.Java学习路线图-流程篇: 二.Java学习路线图-视频篇: 1.第一阶段-Java基础入门 Java视频篇第一阶段- ...

  8. amCharts 报表(转)

    amCharts 是基于Flash的一套图表解决方法,界面比JFreeChart华丽很多,而且可以与用户交互,动画效果非常漂亮.官网:http://www.amcharts.com About AmC ...

  9. JFreeChart展示柱状图和折线图的组合

    笔者最近工作需要在Web前端展示统计图表(基于SSH架构),使用了JFreeChart和amchart两个控件,谈谈使用心得.         JFreeChart的最大好处是可以在Server端保存 ...

最新文章

  1. python文字教程-Python
  2. Linux下的Nano命令
  3. 去除字符串中的小数点
  4. 操作系统实验文件管理_系统设计硬核知识(5)——操作系统的文件管理
  5. MySQL在EF Core下的Scaffolding操作
  6. 处理入参_看看优秀的程序员是如何处理NPE的
  7. 计算机英语讲课笔记05
  8. ORACLE查看某个表的索引状态
  9. (超详细)2022年最新版java 8( jdk1.8u321)安装教程
  10. 关于英特尔® 处理器显卡技术
  11. mysql读写分离ppt_MYSQL主从复制和读写分离ppt课件
  12. HAU2022冬训营字符串1
  13. Microsoft Teams管理(一)
  14. linux proftpd 用户,Linux下安装和配置proftpd教程
  15. 区块链方向的论文如何查找
  16. arcgis api for javascript4.18加载天地图服务,并且加载自己的发布的动态地图服务
  17. python字典操作 EasyDict()作用
  18. 高效轻量级集成区块链(ELIB)用于保护物联网安全和隐私
  19. android app根目录下cache,Android 手机存储目录详解
  20. 科学的固定资产管理让企业实现降本增效

热门文章

  1. PCIe——LTSSM
  2. 理论力学(静力学)-4-平面力偶系
  3. Alter对话框处理
  4. 计算机辅助几何设计(CAGD)的简单介绍
  5. python匿名函数可以赋值给变量_python3的匿名函数 | 吴老二
  6. c语言代码 txt下载,俄罗斯方块C语言源代码txt.DOC
  7. APICloud云调试解决方案
  8. Docker部署常用软件(持续更新中)
  9. 洛谷 P2829 大逃离 题解
  10. C语言程序设计-1024 科学计数法