<script type="text/jscript">
var grid;
Ext.onReady(function () {
Ext.QuickTips.init();
var reader = new Ext.data.Record.create([
{ name: 'DWDM', type: 'string' }
, { name: 'AZFS', type: 'string' }
, { name: 'ND', type: 'string' }
, { name: 'MXMC', type: 'string' }
, { name: 'ZX', type: 'string' }
, { name: 'ZD', type: 'string' }
, { name: 'PJZ', type: 'string' }
, { name: 'TQJG', type: 'string' }
, { name: 'TBZJL', type: 'string' }
, { name: 'SL', type: 'string' }
, { name: 'SR', type: 'string' }
]);
var views = new Ext.grid.GroupingView({
groupTextTpl: '{text} ({[values.rs.length]} {[values.rs.length > 1 ? "条" : "条"]})',
startCollapsed: true
});
//Ext.getBody().mask("数据重新加载中,请稍等");
//Ext.getBody().unmask();//去除MASK var store = cs(new Ext.data.GroupingStore({})); //首次加载的数据源
function cs(url) {
var store = new Ext.data.GroupingStore({
proxy: new Ext.data.HttpProxy({ url: url }),
sortInfo: { field: "MXMC", direction: "ASC" },
groupField: "MXMC",
reader: new Ext.data.JsonReader({
totalProperty: 'total',
root: 'rows',
successProperty: 'success',
fields: ['DWDM', 'AZFS', 'ND', 'MXMC', 'ZX', 'ZD', 'PJZ', 'TQJG', 'TBZJL', 'SL', 'SR']
})
});
store.addListener({
beforeload: function (store, records, options) {
Ext.getBody().mask("数据重新加载中,请稍等");
}
});
store.load({ params: { start: 0, limit: 100000 }, callback: function (records, options, success) { Ext.getBody().unmask(); } });
return store;
}
function cs_(url) {
var store = new Ext.data.GroupingStore({
proxy: new Ext.data.HttpProxy({ url: url }),
sortInfo: { field: "ND", direction: "ASC" },
groupField: "ND",
reader: new Ext.data.JsonReader({
totalProperty: 'total',
root: 'rows',
successProperty: 'success',
fields: ['DWDM', 'AZFS', 'ND', 'MXMC', 'ZX', 'ZD', 'PJZ', 'TQJG', 'TBZJL', 'SL', 'SR']
})
});
store.addListener({
beforeload: function (store, records, options) {
Ext.getBody().mask("数据重新加载中,请稍等");
}
});
store.load({ params: { start: 0, limit: 100000 }, callback: function (records, options, success) { Ext.getBody().unmask(); } });
return store;
} //总和
var summary = new Ext.ux.grid.GridSummary();
//墓型销售全局变量
var MXXSTOTAL = "";
var cm = new Ext.grid.ColumnModel([
{ header: "陵园代码", hidden: true, sortable: true, dataIndex: 'DWDM', width: 100 }
, { header: "安葬方式", sortable: true, dataIndex: 'AZFS', width: 100 }
, { header: "年度", sortable: true, hidden: true, dataIndex: 'ND', width: 100 }
, { header: "墓型名称", sortable: true, hidden: true, dataIndex: 'MXMC', width: 100
, summaryType: 'count',
summaryRenderer: function (val, params, data) {
return val ? ((val == 0 || val > 0) ? '<span style="font-weight:bold;font-size:15;color:#0000FF" >合计:共(' + val + ')条' : '(1)') : '' + '</span>';
MXXSTOTAL = val;
}
}
, { header: "最小值", sortable: true, dataIndex: 'ZX', width: 100 }
, { header: "最大值", sortable: true, dataIndex: 'ZD', width: 100 }
, { header: "平均值", sortable: true, dataIndex: 'PJZ', width: 100 }
, { header: "去年同期", sortable: true, dataIndex: 'TQJG', width: 100 }
, { header: "同比增率", sortable: true, dataIndex: 'TBZJL', width: 100 }
, { header: "本年数量", sortable: true, dataIndex: 'SL', width: 100 }
, { header: "本年收入", sortable: true, dataIndex: 'SR', width: 100 }
]);
var cm_ = new Ext.grid.ColumnModel([
{ header: "陵园代码", sortable: true, dataIndex: 'DWDM', width: 100 }
, { header: "安葬方式", sortable: true, dataIndex: 'AZFS', width: 100 }
, { header: "年度", sortable: true, hidden: true, dataIndex: 'ND', width: 100 }
, { header: "墓型名称", sortable: true, hidden: true, dataIndex: 'MXMC', width: 100
, summaryType: 'count',
summaryRenderer: function (val, params, data) {
return val ? ((val == 0 || val > 0) ? '<span style="font-weight:bold;font-size:15;color:#0000FF" >合计:共(' + val + ')条' : '(1)') : '' + '</span>';
MXXSTOTAL = val;
}
}
, { header: "最小值", sortable: true, dataIndex: 'ZX', width: 100 }
, { header: "最大值", sortable: true, dataIndex: 'ZD', width: 100 }
, { header: "平均值", sortable: true, dataIndex: 'PJZ', width: 100 }
, { header: "去年同期", sortable: true, dataIndex: 'TQJG', width: 100 }
, { header: "同比增率", sortable: true, dataIndex: 'TBZJL', width: 100 }
, { header: "本年数量", sortable: true, dataIndex: 'SL', width: 100 }
, { header: "本年收入", sortable: true, dataIndex: 'SR', width: 100 }
]);
//单位查询下拉框Store
var store_DW = new Ext.data.JsonStore({
url: "/YWBLDJ/SelectDWMC_Data"
, totalProperty: 'total'
, root: 'rows'
, fields: [{ name: 'DWDM' }, { name: 'DWMC'}]
});
//单位查询
var combDW = new Ext.form.ComboBox({
emptyText: '请选择'
, id: 'comb_DWCX'
, width: 200
, triggerAction: 'all'
, lazyRender: true
, valueField: 'DWDM'
, displayField: 'DWMC'
, store: store_DW
, allowBlank: false
, lazyRender: true
, listClass: 'x-combo-list-small'
})
grid = new Ext.grid.GridPanel({
labelAlign: 'center',
plugins: [summary],
store: store,
cm: cm,
frame: true,
view: views,
tbar: [
{ xtype: 'tbtext', text: '单位名称:' }, combDW, '-',
{ text: '墓型', pressed: true, handler: function () { query("mx"); }, iconCls: 'searchIcon' }
, '-'
, { text: '年度', pressed: true, handler: function () { query("date"); }, iconCls: 'searchIcon' }
],
width: document.documentElement.clientWidth,
height: document.documentElement.clientHeight,
title: '墓碑价格分析表',
loadMask: { msg: '正在加载数据,请稍侯……' },
renderTo: 'grid',
loadMask: true
}); function query(typ) {
var lymc = Ext.getCmp("comb_DWCX").getValue();
if (lymc == "") {
var r = window.confirm("没有输入查询条件,这样可能造成查询时间超长,确认查询?");
if (!r) { return; }
}
var url = "/MXJGFX/GetMXND?" + "lymc=" + lymc + "";
if (typ == "mx") {
store = cs(url);
grid.reconfigure(store, cm);
} else { store = cs_(url);
grid.reconfigure(store, cm_);
} }
});
</script>

  

extjs分组查询的更多相关文章

  1. MySQL时间分组查询

    表TESTER 字段:id -- INT    date  -- TIMESTAMP 1.如何按年.月.日分组查询? select DATE_FORMAT(date,'%Y-%m-%d') time, ...

  2. 关系数据库SQL之基本数据查询:子查询、分组查询、模糊查询

    前言 上一篇关系数据库常用SQL语句语法大全主要是关系型数据库大体结构,本文细说一下关系型数据库查询的SQL语法. 语法回顾 SELECT [ALL|DISTINCT] <目标列表达式>[ ...

  3. Hibernate 分组查询 子查询 原生SQL

    分组查询: 使用group by关键字对数据分组,使用having关键字对分组数据设定约束条件,从而完成对数据分组和统计 1.1 聚合函数:常被用来实现数据统计功能 ① count() 统计记录条数 ...

  4. mysql 分组查询问题 group_concat

    这几天在做购物车的时候.购物车内的商品为一个商品占一行,结果再从数据库读出的时候,没有分组,而是循环所有的内容出来,然后进行判断.如果一样的话就把他保存到一个变量中.但是自己逻辑没搞清楚.一直出bug ...

  5. mongodb 分组查询

    数据的保存 include_once 'mDB.class.php'; $m=new mDB(); $m->setDB('mydb'); // $m->save('stu',['dept' ...

  6. 08章 分组查询、子查询、原生SQL

    一.分组查询 使用group by关键字对数据分组,使用having关键字对分组数据设定约束条件,从而完成对数据分组和统计 1.1 聚合函数:常被用来实现数据统计功能 ① count() 统计记录条数 ...

  7. Mongodb for C# 分组查询

    #region 排序获取集合 static List<BsonDocument> GetPagerWithGroup(string connectionString, string dat ...

  8. SQL分组查询group by

    注意:select 后的字段,必须要么包含在group by中,要么包含在having 后的聚合函数里. 1. GROUP BY 是分组查询, 一般 GROUP BY 是和聚合函数配合使用 group ...

  9. SQL group by分组查询(转)

    本文导读:在实际SQL应用中,经常需要进行分组聚合,即将查询对象按一定条件分组,然后对每一个组进行聚合分析.创建分组是通过GROUP BY子句实现的.与WHERE子句不同,GROUP BY子句用于归纳 ...

随机推荐

  1. EF4.1之覆盖EF的默认的约定

    覆盖EF默认的约定可以通过两种方式: 1.拦截模型构建器,使用流畅的API 2.通过给 类添加标签 好的,我还用之前定义的订单类来做例子: public class Order { public in ...

  2. Xcode常用快捷键及代码格式刷(缩进)方法-b

    Xcode版本:4.5.1 一.总结的常用命令: 隐藏xcode command+h 退出xcode command+q 关闭窗口 command+w 关闭所有窗口 command+option+w ...

  3. webstorm 11 安装配置 grunt 时遇到的问题及解决办法

    想学grunt的可以看看这篇文章,写的很有意思,教程之类的我就不写了,网上很多资料,我就记录下我遇到的问题和解决办法. http://yujiangshui.com/grunt-basic-tutor ...

  4. CROSS APPLY vs OUTER APPLY

    Apply 工作原理:    Apply操作符让符合查询的每一条记录都调用一次TVF函数,并将结果与原数据表的记录内容一起展开.    Apply操作符定义在From子句内,使用方式与Join操作符类 ...

  5. HTML <iframe> 标签

    参考地址:http://www.w3school.com.cn/tags/tag_iframe.asp ------------------------------------------------ ...

  6. 团体程序设计天梯赛-练习集L2-008. 最长对称子串

    L2-008. 最长对称子串 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 对给定的字符串,本题要求你输出最长对称子串的长度. ...

  7. spoj 345

    DP  想了好久  还是看了一下题解.... f[i][j]表示i到j全部合并后的最小花费,f[i][j] = min{f[i][k]+f[k+1][j]+d[i][k]*d[k+1][j]} (i ...

  8. python参考手册--第4、5、6、7章

    1.zip zip(s,t):将序列组合为一个元组序列[(s[0],t[0]), (s[1],t[1]), (s[2],t[2]), (s[3],t[3]),...] >>> s = ...

  9. C++11 生产者消费者

    下面是一个生产者消费者问题,来介绍condition_variable的用法.当线程间的共享数据发生变化的时候,可以通过condition_variable来通知其他的线程.消费者wait 直到生产者 ...

  10. Maven Source jar

    http://blog.csdn.net/symgdwyh/article/details/4407945