ExtJs_chart_columnchart示例完整版



/**-打印日志start-*/
Ext.namespace("A");
isDebug = true;
/**
 * 日志调式
 *
 * 使用方法 log("blabla: {0}, blabla: {1}", obj0, obj1)
 *
 * @param {} format     //格式。
 */
A.log = function(format){
    if(!isDebug){ return; } // 只在debug下用
    try{
        if(arguments.length < 2){ // 直接打印
            console.log(format);
        } else {
            var params = Array.prototype.slice.call(arguments, 1), ps = [format];
            Ext.each(params, function(obj){
                ps.push(obj.filterOptRe ? "[EXT控件, " + obj.getXType() + "]" : Ext.encode(obj)); // ext 控件,不打印,避免内存溢出
            });
            console.log(String.format.apply(window, ps));
        }
    }catch(e){} //忽略错误,可能是在IE下或是生产环境下
}
/**-打印日志end-*/



/**引入FLASH文件*/
Ext.chart.Chart.CHART_URL='charts.swf';

/**命名空间*/
Ext.ns("App.chart");

/**程序入口*/
Ext.onReady(function(){
    new App.chart.bzfcolumnchart();    //特别提醒:要用这种格式new哦!
});


App.chart.bzfcolumnchart = Ext.extend(Ext.Panel, {
    title:"2011-2012学年学生标准分成绩柱形图end_ok?",
    frame:true,
    iconCls:"chart",
    renderTo:Ext.getBody(),
    width:700,
    height:300,
    layout:'fit',
    /**初始化组件*/
    initComponent:function(){
        Ext.apply(this,{
            items:[{
                xtype:'columnchart',
                store:this.getStore(),
                xField:'ksmc',
                url:'charts.swf',
                series:this.getSeries(),
                chartStyle:this.chartStyle
            }]
        });
        App.chart.bzfcolumnchart.superclass.initComponent.call(this);
    },

    /**原始数据*/
    getchartDatas:function(){
        var data=[
            {
                "ysf":93,
                 "ksmc":"2011-2012学年度上学期高一年级期中考试",
                 "bzf":481.025199206007,
                 "bjmc":"111",
                 "tglv":" ",
                 "ksrq":"2011-11-07"
             },{
                 "ysf":95.2923076923077,
                 "ksmc":"2011-2012学年度上学期高一年级期末考试",
                 "bzf":500.334870366218,
                 "bjmc":"111",
                 "tglv":"4.0143%",
                 "ksrq":"2012-02-05"
             },{
                 "ysf":97.0820512820513,
                 "ksmc":"2011-2012学年度上学期高一年级期中考试",
                 "bzf":515.100108417183,
                 "bjmc":"112",
                 "tglv":" ",
                 "ksrq":"2011-11-07"
             },{
                 "ysf":95.0461538461539,
                 "ksmc":"2011-2012学年度上学期高一年级期末考试",
                 "bzf":495.658860100003,
                 "bjmc":"112",
                 "tglv":"-3.7743%",
                 "ksrq":"2012-02-05"
             },{
                 "ysf":95.7333333333333,
                 "ksmc":"2011-2012学年度上学期高一年级期中考试",
                 "bzf":503.87469237681,
                 "bjmc":"113",
                 "tglv":" ",
                 "ksrq":"2011-11-07"
             },{
                 "ysf":95.5641025641026,
                 "ksmc":"2011-2012学年度上学期高一年级期末考试",
                 "bzf":504.006269533779,
                 "bjmc":"113",
                 "tglv":"0.0261%",
                 "ksrq":"2012-02-05"
             },{
                 "ysf":97.7333333333333,
                 "ksmc":"2011-2012学年度上学期高一年级期中考试",
                 "bzf":603.87469237681,
                 "bjmc":"114",
                 "tglv":" ",
                 "ksrq":"2011-11-07"
             },{
                 "ysf":99.5641025641026,
                 "ksmc":"2011-2012学年度上学期高一年级期末考试",
                 "bzf":684.006269533779,
                 "bjmc":"114",
                 "tglv":"0.0261%",
                 "ksrq":"2012-02-05"
             },{
                 "ysf":80.7333333333333,
                 "ksmc":"2011-2012学年度上学期高一年级期中考试",
                 "bzf":303.87469237681,
                 "bjmc":"115",
                 "tglv":" ",
                 "ksrq":"2011-11-07"
             },{
                 "ysf":79.5641025641026,
                 "ksmc":"2011-2012学年度上学期高一年级期末考试",
                 "bzf":284.006269533779,
                 "bjmc":"115",
                 "tglv":"0.0261%",
                 "ksrq":"2012-02-05"
             }
        ];
        return data;
    },
   
    /**
     * 功能:判断是否已经存在ksmc,既是否已有同名考试名称。
     * @param {} newdatas    放组装好的数据数组。
     * @param {} ksmc    考试名称。
     * @return 不存在返回-1;存在为,则返回下标序号。
     */
    getksmcIndex:function(newdatas,ksmc){
        for(var i=0,size=newdatas.length;i<size;i++)
        {
            if(newdatas[i]["ksmc"]==ksmc)
            {
                return i;
            }
        }
        return -1;
    },
   
    /**
     * 功能:组装数据。
     * 思路:拿到数据->循环数据,取出ksmc进行判断->根据ksmc组装数据。
     * @return {}
     */
    dosomething:function(){
        var olddatas=this.getchartDatas();    //拿到原始数据。
        var newdatas=[];    //用于存放新数据数组。
        var j=0;
        for(var i=0,size=olddatas.length;i<size;i++)
        {//循环读取数据。
            var ksmc=olddatas[i]["ksmc"];    //得到考试名称。
            var index=this.getksmcIndex(newdatas,ksmc);        //判断考试名称在新数据数组中是否已经存在,如存在则返回其下标。
            if(index==-1)
            {//考试名称不存在。
                newdatas[j]={"ksmc":ksmc};    //注意:Json对象是这样添加的。
                newdatas[j][String.format("bzf{0}",olddatas[i]["bjmc"])]=olddatas[i]["bzf"];    //添加Json对象。注意它是一个无序的“‘名称/值’对”集合
                j++    //自增1,以用于添加不同考试名称。
            }else{
                newdatas[index][String.format("bzf{0}",olddatas[i]["bjmc"])]=olddatas[i]["bzf"];
            }
        }
       
        /**调试:打印输出newdatas*//*
        Ext.each(newdatas,function(d){
            for(var p in d)
            {
                alert(p+":"+d[p]);
            }
            alert("---a---b---c---");
        })
        alert("组装好的数据长度:" + newdatas.length);*/
       
        return newdatas;
    },
   
    /**获取store的fields
     * 注意:要根据新数据数组循环以得到其字段名称。
     * */
    getStoreFields:function(){
        var newdatas=this.dosomething();    //解释:得到组装好的数据。
       
        //说明:循环取得store里的fields字段。
        var storeFields=[];
        if(newdatas.length>0)
        {
            Ext.each(newdatas[0],function(d){
                for(var f in d)
                {
                    storeFields.push(f);
                }
            })
        }
        //打印日记:
        A.log("storeFields数据为:{0}",storeFields);    //???为什么不显示???
        return storeFields;
    },
   
    /**获取series*/
    getSeries:function(){
        var newdatas=this.dosomething();//解释:得到组装好的数据
        var seriesSjz=[];
        if(newdatas.length>0)
        {
            for(var s in newdatas[0])
            {
                if(s!="ksmc")
                {
                    seriesSjz.push({
                        displayName: s.substring(3)+"班",    //特别提醒:可通过string的substring(start,end)来剪切字符串。
                        yField: s,
                        style: {
                            mode: 'stretch'
                        }
                    });
                }
            }
        }
       
        A.log("series里yField的值数组为:{0}",seriesSjz)
       
        return seriesSjz;
    },
   
    /**获取store*/
    getStore:function(){
        var store=new Ext.data.JsonStore({
            fields:this.getStoreFields(),    //解释:直接引用。
            //fields:['ksmc','bzf111','bzf112','bzf113'],
            data:this.dosomething()
            //data:this.getDatas()
        });
        return store;
    },
   
    /**提醒:组装好的store数据data格式*//*
    getDatas:function(){
        var data=[
                {"ksmc":"2011-2012学年度上学期高一年级期中考试",
                 "bzf111":481.025199206007,
                 "bzf112":515.100108417183,
                 "bzf113":503.87469237681},
                 
                {"ksmc":"2011-2012学年度上学期高一年级期末考试",
                 "bzf111":500.334870366218,
                 "bzf112":495.658860100003,
                 "bzf113":504.006269533779}
            ];
        return data;
    },*/
   
    /*series:[{
            displayName: '班级11(1)',
            yField: 'bzf111',
            style: {
                mode: 'stretch',
                color: 0x15428B
            }
        }, {
            displayName: '班级11(2)',
            yField: 'bzf112',
            style: {
                mode: 'stretch',
                color: 0x99BBE8
            }
        }, {
            displayName: '班级11(3)',
            yField: "bzf113",
            style: {
                mode: 'stretch',
                color: 0xdfe8f6
            }
        }],*/
    chartStyle:{padding:10,    //填充。
            animationEnabled:true,
            legend:{    //柱形说明文字。
                display:'top',
                font:{
                    hold:true
                }
            },
            font:{    //X轴Y轴字体设置。
                name:'Tahoma',
                color:0x444444,
                size:11
            },
            dataTip:{    //提示框显示。
                padding:5,
                border:{    //边框设置。
                    color:0x99bbe8,
                    size:1
                },
                background:{
                    color:0xDAE7F6,
                    alpha:.9    //透明度。
                },
                font:{    //字体设置。
                    name:'Tahoma',
                    color:0x15428B,
                    size:10,
                    hold:true
                }
            }}
});

Ext.reg("bzfcolumnchart",App.chart.bzfcolumnchart);

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值