`
qimo601
  • 浏览: 3444204 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

Extjs chart 丰富呈多个数据形式

阅读更多

界面如图:

 

web层js源代码:

//===============================================================================
// Copyright (C) 2010 XXXXXXX有限公司。版权所有。 
//===============================================================================
// 
// 文件名:ComponentCheckExceptionStatistics.js
//
// 文件描述:web层js文件,部件盘点异常统计
//
//
// 创建人:  truman

// 创建时间:2010年4月15日

// 说明:

// 修改人:  
// 修改时间:

// 修改描述:

//=============================================================================== 

//===部件盘点异常统计===//
function ComponentCheckExceptionStatisticsInfo(){
    cmptExcepStatisticsRequestWindow.show();//显示部件盘点异常统计窗口
}




//========================部件异常统计store==============================//

//==数据解析器 cmptExcepStatisticsRequestReader==//
var cmptExcepStatisticsRequestReader = new Ext.data.JsonReader({
    totalProperty: 'totalCount',
    root: 'data',
    idProperty: 'CHECK_ID'
}, [{
    name: 'ID',
    mapping: 'ID'
},{
    name: 'CHECK_ID',
    mapping: 'CHECK_ID'
}, {
    name: 'COUNT_EXCEPTION',
    mapping: 'COUNT_EXCEPTION'
}, {
    name: 'COUNT_CMPT_EXCEPTION',
    mapping: 'COUNT_CMPT_EXCEPTION'
},{
    name: 'COUNT_STUFF_EXCEPTION',
    mapping: 'COUNT_STUFF_EXCEPTION'
},{
    name: 'BEGIN_TIME',
    mapping: 'BEGIN_TIME'
}, {
    name: 'END_TIME',
    mapping: 'END_TIME'
}, {
    name: 'CHECKPLAN_TIME',
    mapping: 'CHECKPLAN_TIME'
}]);


//==代理cmptExcepStatisticsRequestProxy==//
var cmptExcepStatisticsUrlPath = '../../../Url/Warehouse/CheckWarehouse/GetComponentsCheckExceptionStatistics.aspx';// 请求的页面
var cmptExcepStatisticsRequestProxy = new Ext.data.HttpProxy({
    url: cmptExcepStatisticsUrlPath
});
//==存储器cmptExcepStatisticsStore==//
var cmptExcepStatisticsStore = new Ext.data.Store({
    reader: cmptExcepStatisticsRequestReader,
    proxy: cmptExcepStatisticsRequestProxy
});


//查询范围 开始时间
var startTimeCmptExcepStatistics = new Ext.form.DateField({
    name: 'startTimeCmptExcepStatistics',
    fieldLabel: '开始时间',
    width: 150,
    maxLength: 20,
    minLength: 1,
    format: 'Y-m-d',//2010-01-01格式固定,y-m-d:10-01-01
    readOnly: false,
    emptyText: nowDate,
    allowBlank: false,
    blankText: '请输入开始时间'
});
//查询范围 结束时间
var endTimeCmptExcepStatistics = new Ext.form.DateField({
    name: 'endTimeCmptExcepStatistics',
    fieldLabel: '结束时间',
    width: 150,
    maxLength: 20,
    minLength: 1,
    format: 'Y-m-d',//2010-01-01格式固定,y-m-d:10-01-01
    readOnly: false,
    emptyText: nowDate,
    allowBlank: false,
    blankText: '请输入结束时间'
});

//盘点异常统计 查询按钮定义
var btnSearchOfcmptExcepStatistics = new Ext.Button({
    id: 'btnSearchOfcmptExcepStatistics',
    text: '盘点异常统计'
});

//读取所有异常 
cmptExcepStatisticsStore.load({
    params: {
        startTime: "1900-01-01",
        endTime: "2999-01-01"
    }
});

//btnSearchOfcmptExcepStatistics查询统计按钮 单击事件
btnSearchOfcmptExcepStatistics.on("click", function(){
    var startTimeValue = startTimeCmptExcepStatistics.getValue();
    var endTimeValue = endTimeCmptExcepStatistics.getValue();
    
    //如果时间范围都选择的话
    if (IsDateFieldNull(startTimeValue) && IsDateFieldNull(endTimeValue)) {
        var startTime = startTimeCmptExcepStatistics.formatDate(startTimeValue, 'yyyy-mm-dd');
        var endTime = endTimeCmptExcepStatistics.formatDate(endTimeValue, 'yyyy-mm-dd');
        cmptExcepStatisticsStore.load({
            params: {
                startTime: startTime,
                endTime: endTime
            }
        });
    }
    else {
        Ext.Msg.show({
            title: '提示',
            msg: '请选择盘点统计时间范围!',
            buttons: Ext.Msg.OK,
            animEl: 'elId',
            width: 200,
            icon: Ext.MessageBox.QUESTION
        });
    }
});



//==盘点异常统计FormPanel==//    
var cmptExcepStatisticsStorePanel = new Ext.FormPanel({
    width: 700,
    height: 400,
    title: '盘点异常统计',
    tbar: ["开始时间:", startTimeCmptExcepStatistics, " ", "结束时间:", endTimeCmptExcepStatistics, " ", btnSearchOfcmptExcepStatistics],
    items: {
        xtype: 'columnchart',
        store: cmptExcepStatisticsStore,
        xField: 'ID',
        //提示字符串
        tipRenderer: function(chart, record, index, series){
            if(series.yField == 'COUNT_EXCEPTION')
                return '盘点单ID:' + record.data.CHECK_ID + ' \n总异常数目: ' + record.data.COUNT_EXCEPTION + '\n盘点制定时间:' 
                + record.data.CHECKPLAN_TIME+'\n盘点开始时间:' + record.data.BEGIN_TIME+'\n盘点结束时间:' + record.data.END_TIME;
            else if(series.yField == 'COUNT_CMPT_EXCEPTION')
                return '盘点单ID:' + record.data.CHECK_ID + ' \n部件异常数目: ' + record.data.COUNT_CMPT_EXCEPTION ;
            else if(series.yField == 'COUNT_STUFF_EXCEPTION')
                return '盘点单ID:' + record.data.CHECK_ID + ' \n耗材工具异常数目: ' + record.data.COUNT_STUFF_EXCEPTION ;
        },
        xAxis: new Ext.chart.CategoryAxis({
            title: '盘点单'            
        }),
        yAxis: new Ext.chart.NumericAxis({
            title: '异常数目'
        }),
        series: [{
                type: 'column',
                displayName: '异常总数',
                yField: 'COUNT_EXCEPTION',
                style: {
                    image:'bar.gif',
                    mode: 'stretch'
                }
            },{
                type:'line',
                displayName: '部件异常数',
                yField: 'COUNT_CMPT_EXCEPTION',
                style: {
                    color: '#FFA928'
                }
            },{
                type:'line',
                displayName: '耗材工具异常数',
                yField: 'COUNT_STUFF_EXCEPTION',
                style: {
                    color: 0x15428B
                }
            }],
        extraStyle: {
            xAxis: {
                labelRotation: 0//x轴标题旋转度数
            },
            yAxis: {
                labelRotation: 0//y轴标题旋转度数
            }
        }
    }
});

// ===部件盘点异常统计Window===//
var cmptExcepStatisticsRequestWindow = new Ext.Window({
    name: 'cmptExcepStatisticsRequestWindow',
    title: '历史盘点异常统计',
    layout: 'fit',
    width: 600,
    height: 400,
    modal: true,
    closeAction: 'hide',
    resizable: false,
    
    items: [cmptExcepStatisticsStorePanel],
    listeners: {
        'beforehide': function(){
            cmptExcepStatisticsStorePanel.getForm().reset();
        }
    }
});

//==判断选择的时间范围是否为空==//
function IsDateFieldNull(value){

    if (value != null && value != "") {
        return true;
    }
    else {
        return false;
    }
}

 

web层 URL获取数据代码

//===============================================================================
// Copyright (C) 2010 XXXX有限公司。版权所有。 
//===============================================================================
// 
// 文件名:GetComponentsCheckExceptionStatistics.aspx.cs
//
// 文件描述:Url,部件盘点历史盘点异常数目统计
//
//
// 创建人:  truman
// 创建时间:2010年4月16日
//
// 修改人:  
// 修改时间:
// 修改描述:
//===============================================================================
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using BusinessEntity.WarehouseItem.CheckWarehouse;

namespace AfcMaintenanceSystem.Url.Warehouse.CheckWarehouse
{
    public partial class GetComponentsCheckExceptionStatistics : System.Web.UI.Page
    {
        private BeCheckDetail beCheckDetail = new BeCheckDetail();
        public string JSON = "";
        protected void Page_Load(object sender, EventArgs e)
        {
            GetComponentsCheckExceptionStatisticsInfo();
        }
        /// <summary>
        /// 获取统计部件历史盘点异常数目
        /// </summary>
        public void GetComponentsCheckExceptionStatisticsInfo()
        {
            ////获得前台store传来的参数      
            //string limits = Request.Params["limit"];
            //string starts = Request.Params["start"];
            ////盘点单ID
            //string CHECK_ID = Request.Params["CHECK_ID"].ToString();
            DateTime startTime = new DateTime();
            DateTime endTime = new DateTime();
            if (Request.Params["startTime"] != null && Request.Params["startTime"] != "")//""是为有参数,但无值,null是判断无此参数
            {
                startTime = DateTime.Parse(Request.Params["startTime"].ToString());                
            }
            if (Request.Params["endTime"] != null && Request.Params["startTime"] != "")
            {
                endTime = DateTime.Parse(Request.Params["endTime"].ToString());
            }
            //如果时间未赋值 0001-1-1
            if (startTime.Year != 1 && endTime.Year != 1)
            {
                try
                {
                    //获取从startTime到endTime之间的历史盘点异常数目 
                    JSON = beCheckDetail.GetJsonComponentsCheckExceptionStatistics(startTime, endTime);
                }
                catch (Exception ex)
                {
                    Response.Write("{success:false,errors:{info: '错误了,后台获取统计盘点异常数据!'}}");
                    throw (ex);
                }
            }
            else
            {
                Response.Write("{success:false,errors:{info: '没有选择统计盘点时间范围!'}}");
            }
        }
    }
}

 

 业务层 源代码

/// <summary>
        /// 获得部件盘点异常统计
        /// </summary>
        /// <param name="startTime">查询盘点范围 开始日期</param>
        /// <param name="endTime">查询盘点范围 结束日期</param>
        /// <returns></returns>
        public string GetJsonComponentsCheckExceptionStatistics(DateTime startTime, DateTime endTime)
        {
            string jsonString = "";
            //Json字符串方法类
            JSONHelper json = new JSONHelper();
            json.Success = true;
            DataSet ds = null;
            int i = 1;//盘点单临时序号用
            int countCmptException = 0;
            int countStuffException = 0;
            try
            {
                //获得盘点单历史异常记录
                ds = Query(startTime, endTime);
            }
            catch (Exception ex)
            {
                throw (ex);
            }
            //将每一行的每一列的列名和对应的值放倒一个数组中,每一行以<BR>结束
            foreach (DataRow dr in ds.Tables[0].Rows)
            {
                string CHECK_ID = dr["CHECK_ID"].ToString();
                countCmptException = GetCount(" check_id = " + CHECK_ID + " and sequence_no is not null  and store_amount != sys_amount ");//该盘点单所有异常
                countStuffException = GetCount(" check_id = " + CHECK_ID + " and sequence_no is null and store_amount != sys_amount ");//该盘点单所有异常

                json.AddItem("ID", i++);//盘点单临时序号
                json.AddItem("CHECK_ID", CHECK_ID);//盘点单ID
                json.AddItem("COUNT_EXCEPTION",int.Parse(dr["COUNT_EXCEPTION"].ToString()));//盘点历史异常总记录数目 必须转换成整型,前台的chart表才能显示正确。
                json.AddItem("COUNT_CMPT_EXCEPTION", countCmptException);//盘点历史异常部件记录数目 必须转换成整型,前台的chart表才能显示正确。
                json.AddItem("COUNT_STUFF_EXCEPTION", countStuffException);//盘点历史异常耗材工具记录 必须转换成整型,前台的chart表才能显示正确。
                if (dr["BEGIN_TIME"].ToString() != "")
                    json.AddItem("BEGIN_TIME", ((DateTime)dr["BEGIN_TIME"]).ToString("yyyy-MM-dd"));//盘点开始时间
                else
                    json.AddItem("BEGIN_TIME", "");
                if (dr["END_TIME"].ToString() != "")
                    json.AddItem("END_TIME", ((DateTime)dr["END_TIME"]).ToString("yyyy-MM-dd"));//盘点结束时间
                else
                    json.AddItem("END_TIME", "");
                if (dr["CHECKPLAN_TIME"].ToString() != "")
                    json.AddItem("CHECKPLAN_TIME", ((DateTime)dr["CHECKPLAN_TIME"]).ToString("yyyy-MM-dd"));//盘点制定时间
                else
                    json.AddItem("CHECKPLAN_TIME", "");


                json.ItemOk();
            }

            //得到总记录数,用于分页页数
            json.TotlalCount = ds.Tables[0].Rows.Count;
            jsonString = json.ToString();
            return jsonString;
        }

 

暂未毕业,做点小项目,程序编的不是很完善,请大家原谅。

0
1
分享到:
评论
2 楼 qimo601 2010-10-08  
fengshengshijie 写道
非常实用,有个问题,chart中的"异常数目"能不能竖着展示,查了半天没找到

呵呵对不起,这是我以前实习时候做的项目,现在一直没研究这方面。。
你要是知道了,也可以告诉我一声。多谢
1 楼 fengshengshijie 2010-08-04  
非常实用,有个问题,chart中的"异常数目"能不能竖着展示,查了半天没找到

相关推荐

    EXTJS 折线 chart action 代码示例

    EXTJS 是一款强大的JavaScript前端框架,它提供了丰富的组件库,包括图表(chart)功能,用于展示数据可视化。在EXTJS中,折线图(line chart)是一种常见的图表类型,常用于展示趋势或时间序列数据。本篇文章将深入...

    ExtJS Chart 扩展 - 增加对数据的过滤等操作

    ExtJS 是一个强大的JavaScript 库,专用于构建富客户端应用程序,尤其在创建数据驱动的Web应用界面方面表现出色。在给定的标题“ExtJS Chart 扩展 - 增加对数据的过滤等操作”中,我们关注的是ExtJS图表组件的功能...

    extjs 4chart

    其中,Chart组件是ExtJS 4中的一个重要部分,它提供了丰富的图表类型,包括曲线图,帮助开发者创建动态、交互式的数据展示。在这个“extjs 4chart”主题中,我们将深入探讨ExtJS 4中曲线图的实现与应用。 首先,让...

    Extjs4.2 Chart柱状图

    它提供了丰富的组件库,包括图表(Chart)功能,让开发者能够创建交互式的、数据驱动的可视化元素。在4.2版本中,ExtJS 的图表功能得到了进一步的增强,为用户提供了多种图表类型,其中柱状图(Bar Chart)是常用的...

    续:ExtJS Chart 扩展(重构了下,并写了个新的示例--内存监控)

    【标题】"续:ExtJS Chart 扩展(重构了下,并写了个新的示例--内存监控)"指的是一个关于ExtJS图表扩展的更新版本,其中作者进行了重构,并且添加了一个全新的示例,用于实现内存监控功能。这个主题涵盖了两个主要的...

    adapter-extjs.rar_extjs chart_highchart_javascript

    与ExtJS相比,Highcharts更专注于图表的绘制,而ExtJS则是一个完整的UI框架,包含更多的组件和功能。 在实际项目中,有时我们可能需要将ExtJS的界面组件和Highcharts的图表功能结合起来,以利用各自的优势。例如,`...

    EXTJS 多文件上传

    总的来说,EXTJS的`MultiFileUploadField` 是一个强大且灵活的多文件上传解决方案,它结合了现代Web技术,提供了优秀的用户体验和丰富的开发者接口。通过合理利用这个组件,开发者可以快速构建出功能完善的文件上传...

    extjs—chart柱形图 例子

    ### ExtJS Chart 柱形...综上所述,这段代码实现了在ExtJS中创建一个柱形图窗口的过程,涵盖了从数据准备到图表渲染的全过程。通过这种细致的配置,开发者可以灵活地调整图表的样式和交互行为,以满足不同的业务需求。

    ExtJs4 line chart render by ajax

    ExtJS是一个强大的JavaScript库,专为构建富客户端应用程序而设计,它提供了丰富的图表组件,使得数据可视化变得简单易行。让我们一步步了解如何在ExtJS4中通过Ajax获取并渲染线形图表。 首先,你需要引入ExtJS库和...

    Extjs4.2.1 实现chart line 动态切换并tips显示饼状图和grids

    经过一周的时间终于做出来了,此文件代码主要的是实现动态切换 chart line ,tips 显示数据的饼状图和grids,难点在作用域的实现需要的有一定的js基础,(因开发的原因后台代码未上传,基于json的传输,SQL是...

    Ext.ux.GoogleChart extjs插件

    总的来说,Ext.ux.GoogleChart插件是ExtJS开发者实现数据可视化的一个强大工具,它结合了Google Charts的灵活性和ExtJS的组件化优势,使得在JavaScript应用中创建高质量的数据图表变得更加容易。

    ExtJS效果Tabs形式

    在描述中提到的"ExtJS效果Tabs形式"指的是使用ExtJS实现的标签页(Tabs)布局。这种布局方式在Web应用中非常常见,用于组织和展示多个相关的视图或内容区域。在本文中,我们将深入探讨如何使用ExtJS创建和管理标签页...

    ExtJS Tag Cloud chart library

    在这个特定的案例中,"ExtJS Tag Cloud chart library" 提供了一个组件,用于创建动态的、可交互的标签云图表。标签云是一种视觉表现形式,常用于显示与网站相关的关键词或主题,其中每个标签的大小和颜色通常代表其...

    extjs读取解析后端json格式数据显示条形图

    ExtJS 是一个强大的JavaScript前端框架,它提供了丰富的组件库,用于构建交互式的Web应用程序。在本案例中,我们将深入探讨如何使用ExtJS读取并解析后端返回的JSON格式数据,然后将这些数据呈现为动态的条形图,以...

    extJs3升级extjs4方案

    在 ExtJS4 中,API 也发生了很大的变化,包括 tree、tab panel、grid、window、form、chart、data stores、border layout 等等。这些变化使得大型应用程序迁移变得非常困难。 在 ExtJS3 中,我们可以使用 Ext....

    extjs多文件上传

    首先,ExtJS是一个基于JavaScript的UI框架,它提供了丰富的组件和强大的数据绑定机制,使得开发者能够构建复杂的桌面级Web应用。在多文件上传场景下,ExtJS提供了一个名为`Ext.form.field.File`的组件,它是用来创建...

    extjs grid数据导出excel文件

    在EXTJS中,Grid控件是用于展示大量结构化数据的关键组件,具有丰富的功能和高度可定制性。本文将深入讲解EXTJS Grid如何实现数据导出到Excel文件的功能。 首先,我们要明白EXTJS Grid的数据导出到Excel的过程通常...

    100多个ExtJS应用初学实例集

    100多个ExtJS应用初学实例集,采用最新框架实现。

    ExtJS4多文件上传,带进度条及管理

    ExtJS4是Sencha公司推出的一个前端框架,它提供了丰富的组件库和强大的数据绑定机制,支持创建复杂的、响应式的Web应用程序。ExtJS4改进了布局管理、图表功能和性能,为开发者提供了更优雅的API和更好的用户体验。 ...

Global site tag (gtag.js) - Google Analytics