Ext 行统计有意思的实现.(js对象的循环, ext列的设置)
考勤界面, 列包含日期. 行的数据格式: 需要实现 编辑一列然后在最后产生的统计的效果.
行数据内容.

Gird Load 的时候统计数据:
-- 根据对象. 可以Ext.Date.parse 成功的都是日期列. 其他非日期列则不会执行统计.
function AttenAllStaticsCalc() {
for (var i = 0; i < AttendanceTable.store.data.items.length; i++) {
var record = AttendanceTable.store.data.items[i];
var recordData = record.data;
var staticQty = {};
for (var k in recordData) {
var tm = Ext.Date.parse(k, 'Ymd')
var recordDatas = recordData[k];
if (tm) {
if (recordData[k]) {
if (staticQty[recordData[k]] != undefined) {
staticQty[recordData[k]] += 1;
} else {
staticQty[recordData[k]] = 1;
}
}
}
}
var res = "";
if (staticQty) {
for (var t in staticQty) {
if (staticQty[t]) {
var si = t + ": " + staticQty[t] + "; ";
res += si;
}
}
}
if (res.length > 0) {
res = res.substring(0, res.length - 2);
}
recordData['AttenStatics'] = res;
//record.set("AttenStatics", res); //显示数据
}
AttendanceTable.view.refresh();
}
每行编辑后设置统计数字;
var staticQty = {};
for (var k in recordData) {
var tm = Ext.Date.parse(k, 'Ymd')
var recordDatas = recordData[k];
if (tm) {
if (recordData[k]) {
if (staticQty[recordData[k]] != undefined) {
staticQty[recordData[k]] += 1;
} else {
staticQty[recordData[k]] = 1;
}
}
}
}
//oldValue, newValue -1 + 1动作
staticQty[oldValue] = staticQty[oldValue] - 1;
staticQty[newValue] = typeof(staticQty[newValue]) == 'undefined' ? 1 : staticQty[newValue] + 1;
var res = "";
if (staticQty) {
for (var t in staticQty) {
if (staticQty[t]) {
var si = t + ": " + staticQty[t] + "; ";
res += si;
}
}
}
if (res.length > 0) {
res = res.substring(0, res.length - 2);
}
record.set("AttenStatics", res); //显示数据
使用
Ext 行统计有意思的实现.(js对象的循环, ext列的设置)的更多相关文章
- EXT心得--并非所有的items配置对象都属于EXT的内置类
之前我对EXT的items中未指明xtype的配置对象有一个错误的认识--即虽然某个items未指明它下面的某个组件的xtype,但这个组件肯定属性EXT的某个类.然而今天在查看actioncolum ...
- js 对象的循环
var car = {type:"Fiat", model:500, color:"white"}; var arr = array(); for(i in c ...
- Ext JS学习第九天 Ext基础之 扩展原生的javascript对象
此文来记录学习笔记: •Ext对于原生的javascript对象进行了一系列的扩展,我们把他们掌握好,更能深刻的体会Ext的架构,从而对我们的web开发更好的服务, 源码位置,我们可以从开发包的这个位 ...
- Ext JS学习第十天 Ext基础之 扩展原生的javascript对象(二)
此文来记录学习笔记: 今天继续说Ext.Array,Ext.Function,Ext.Date,Ext.Error ------------------------------------------ ...
- Ext 行模型与Grid视图
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- JSON与js对象序列化
JavaScript对象表示法(JavaScript Object Notation,简称JSON)是一种轻量级的数据交换格式,它基于js字面量表示法,是js的一个子集.虽然是一个js的子集但是他与语 ...
- js 对象深复制,创建对象和继承
js 对象深复制,创建对象和继承.主要参考高级编程第三版,总结网上部分资料和自己的代码测试心得.每走一小步,就做一个小结. 1.对象/数组深复制 一般的=号传递的都是对象/数组的引用,如在控制台输入 ...
- 超实用的JavaScript代码段 Item8 -- js对象的(深)拷贝
js 对象 浅拷贝 和 深拷贝 1.浅拷贝 拷贝就是把父对像的属性,全部拷贝给子对象. 下面这个函数,就是在做拷贝: var Chinese = { nation:'中国' } var Doctor ...
- Ext JS学习第十二天 Ext基础之操作dom ; get与fly 方法
此文用来记录学习笔记 •嗯!首先,什么是DOM(Document Object Model) –W3C对DOM的定义:文档对象模型是一个平台,一个中立于语言的应用程序编程接口(API),允许程序访问并 ...
随机推荐
- SQL注入之Sqli-labs系列第四十六关(ORDER BY注入)
0X1查看页面 0x2源码 <?php include("../sql-connections/sql-connect.php"); $id=$_GET['sort']; i ...
- 【TLV】非递归TLV数据解析
#include <stdio.h> #define X_LEN_OF_TAG_MAX ( 2 ) #define X_LEN_OF_LEN_MAX ( 2 ) struct st_tlv ...
- ubuntu18.04LTS配置apache虚拟目录(基于端口)
假设在用户目录下要新建两个虚拟目录web1,web2,分别对应端口8081,8082 $ cd ~ #切换到用户目录 $ mkdir www #新建www文件夹,以后新建的虚拟目录都放在该文件夹下 $ ...
- Python相关
当Python源码编译以后,需要对一些依赖库重新安装,而且有些是要用pip去安装. python 文件.目录属性的操作os.path等os模块函数 https://blog.csdn.net/bytx ...
- java效验只能为数字类型
首先要import java.util.regex.Pattern 和 java.util.regex.Matcher /** * 利用正则表达式判断字符串是否是数字 * @param str * @ ...
- Java并发编程75道面试题及答案
1.在java中守护线程和本地线程区别? java中的线程分为两种:守护线程(Daemon)和用户线程(User). 任何线程都可以设置为守护线程和用户线程,通过方法Thread.setDaemon( ...
- JVM垃圾收集器-Serial Old收集器,Parallel Old收集器
Serial Old收集器 Serial Old收集器是Serial收集器的老年代版本,它是一个单线程收集器,使用“标记-整理”算法.这个收集器的主要意义也是被Client模式下的虚拟机使用.在ser ...
- 【bug记录】OS Lab3 踩坑记
OS Lab3 踩坑记 Lab3在之前Lab2的基础上,增加了进程建立.调度和中断异常处理.其中测试包括进程建立以及进程调度部分. 由于是第一次做bug记录,而且是调试完bug后再做的记录,所以导致记 ...
- vue.js组件传值
组件传值有一下几种方式:父子传值(父传子,子传父),非父子传值,vuex,插槽作用域 1.父子传值: (1)父传子: 传值方:当子元素在父元素中当标签使用时,通过给子标签绑定一个自定义属性,属性值为需 ...
- 523. Continuous Subarray Sum
class Solution { public: bool checkSubarraySum(vector<int>& nums, int k) { unordered_map&l ...