69.资金管理-税率表管理extjs 页面
1.
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>"> <title>培训信息</title> <script type="text/javascript">
var revenue = new Revenue();
var tabId = Ext.getCmp('mainTab').getActiveTab().id.split('_')[1];
juage(tabId,"reve",revenue, "revenue");
</script> </head>
<body>
<div id="revenue" ></div>
</body>
</html>
2.税率表js
/**
* 税率信息
*
* @author sux 2011-02-22
* @memberOf {TypeName}
*/
var Revenue = Ext.extend(Ext.grid.EditorGridPanel, {
id : 'revenueId',
constructor : function() {
// 实现统一的提示方式
Ext.form.Field.prototype.msgTarget = 'title';
var number = new Ext.grid.RowNumberer();
var sm = new Ext.grid.CheckboxSelectionModel();
var revenueStore = new Ext.data.JsonStore({
url : 'revenue_edit.action',
root : 'root',
totalProperty : 'totalProperty',
fields : [ 'reId', 'reMin', 'reMax', 'rePercent', 'reMinus' ]
});
var cm = new Ext.grid.ColumnModel([ number, sm, {
header : '编号',
dataIndex : 'reId',
align : 'center'
}, {
header : '最小值',
dataIndex : 'reMin',
align : 'center',
//设置在编辑状态下,指定编辑器
//Ext_数字输入框_Ext.form.NumberField
editor : new Ext.form.NumberField({
allowBlank : false,
blankText : '不能为空'
})
}, {
header : '最大值',
dataIndex : 'reMax',
align : 'center',
editor : new Ext.form.NumberField({
allowBlank : false,
blankText : '不能为空'
})
}, {
header : '税率',
dataIndex : 'rePercent',
align : 'center',
editor : new Ext.form.NumberField({
allowBlank : false,
blankText : '不能为空'
})
}, {
header : '速算减值',
dataIndex : 'reMinus',
align : 'center',
editor : new Ext.form.NumberField({
allowBlank : false,
blankText : '不能为空'
})
} ]); Revenue.superclass.constructor.call(this, {
width: Ext.getCmp('mainTab').getActiveTab().getInnerWidth(),
height: Ext.getCmp('mainTab').getActiveTab().getInnerHeight(),
/**表格高度自适应 document.body.clientHeight浏览器页面高度 start**/
monitorResize: true,
doLayout: function() {
this.setWidth(document.body.clientWidth-205);
this.setHeight(document.body.clientHeight-140);
Ext.grid.GridPanel.prototype.doLayout.call(this);
} ,
viewConfig: {
forceFit: true
},
sm: sm,
cm: cm,
store: revenueStore,
tbar: new Ext.Toolbar({
items: [{
text: '删除',
iconCls: 'delete',
id: 'reve_delete',
handler: delRevenueFn
},{
text: '新增',
iconCls: 'add',
id: 'reve_add',
handler: newRevenueFn
},{
text: '保存或修改',
iconCls: 'save',
id: 'reve_saveorupdate',
handler: modifyRevenueFn
}]
}),
bbar: new PagingToolbar(revenueStore, 20)
});
revenueStore.load({
params: {
start: 0,
limit: 20
}
});
}
});
//删除
delRevenueFn = function(){
gridDel('revenueId', 'reId','revenue_delete.action');
};
//新增
newRevenueFn = function(){ var DefaultRecord = new Ext.data.Record.create([{name: 'reId', mapping: 0},{name: 'reMin', mapping: 1},
{name: 'reMax', mapping: 2},{name: 'rePercent', mapping: 3},{name: 'reMinus', mapping: 4}]);
//Store.getCount()返回的是store中的所有数据记录,然后使用for循环遍历整个store,从而得到每条记录。
var num = Ext.getCmp('revenueId').getStore().getCount();
var newRecord = new DefaultRecord({
reId: num+1,
reMin: '',
reMax: '',
rePercent: '',
reMinus: ''
});
Ext.getCmp('revenueId').getStore().insert(0,newRecord);
};
//保存或修改
modifyRevenueFn=function(){
//获取以后都是第一次修改的值
var modifiedRecords = Ext.getCmp('revenueId').getStore().getModifiedRecords(); var revenues = reRevenueJson(modifiedRecords);
Ext.Ajax.request({
url: 'revenue_modify.action',
waitTitle: '提示',
waitMsg: '正在保存数据...',
method: 'post',
params: {
json: revenues
},
success: reModifySuccessFn,
failure: reModifyfailureFn
})
};
//保存成功后处理
reModifySuccessFn = function(response, options){
var datas = Ext.util.JSON.decode(response.responseText);
Ext.Msg.alert('提示',datas.msg,function(){
Ext.getCmp('revenueId').getStore().load({
params: {
start: 0,
limit: 20
}
});
});
};
//删除成功后处理
reModifyfailureFn = function(response, options){
Ext.Msg.alert('提示','连接失败',function(){})
};
//转化json
reRevenueJson = function(modifiedRecords){
var count = modifiedRecords.length;
var revenues='';
//有修改
if(count > 0){
revenues = "[";
for(i=0; i<count; i++){
revenues += "{";
var reId = modifiedRecords[i].get('reId');
var reMin = modifiedRecords[i].get('reMin');
var reMax = modifiedRecords[i].get('reMax');
var rePercent = modifiedRecords[i].get('rePercent');
var reMinus = modifiedRecords[i].get('reMinus');
revenues += '"reId":'+reId+', "reMin":'+reMin+',"reMax":'+reMax+',"rePercent":'+rePercent+',"reMinus":'+reMinus+'}';
if( i != count-1)
revenues += ","
}
revenues += "]"
}
return revenues;
}
69.资金管理-税率表管理extjs 页面的更多相关文章
- 70.资金管理-福利表管理 Extjs 页面
1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8&quo ...
- 80.用户管理 Extjs 页面
1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8" ...
- 74.资金管理-员工工资配置 extjs 页面
1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8&quo ...
- 82.角色管理Extjs 页面
1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8&quo ...
- SNF开发平台WinForm之四-开发-主细表管理页面-SNF快速开发平台3.3-Spring.Net.Framework
4.1运行效果: 4.2开发实现: 4.2.1 有了第一个程序的开发,代码生成器的配置应该是没有问题了,我们只要在对应的数据库中创建我们需要的表结构就可以了,如下: 主表结构如下: ...
- SQLSERVER新建表的时候页面分配情况是怎样的?
SQLSERVER新建表的时候页面分配情况是怎样的? 再次感谢sqlskill网站和转载sqlskill网站文章并翻译的人,因为您们的转载和翻译让小弟又学习到新的东西o(∩_∩)o 文章中用到的工具: ...
- 给ecshop后台增加管理功能页面
给ecshop后台增加管理功能页面 比如我们增加一个统计报表叫做 物流费用统计报表 放在后台“报表统计”栏目中 具体操作步骤: 第一步,我们要添加一个菜单到后台,然后设置语言项,最后设置权限,这样,后 ...
- django学习-22.admi管理后台页面的文案展示等相关配置
目录结果 1.前言 2.完整的操作步骤 2.1.第一步:对[settings.py]里的相关常量的值做如下修改 2.2.第二步:重启django项目[helloworld]的服务 2.3.第三步:重新 ...
- OracleDBA之表管理
下面是Oracle表管理的部分,用到的测试表是oracle数据库中scott用户下的表做的测试,有的实验也用到了hr用户的数据,以下这些东西是我的麦库上存的当时学Oracle的学习笔记今天拿出来和大家 ...
随机推荐
- 「 Luogu P2230 」X 「 Vijos 1142 」 HXOS系统
题目描述可能稍有偏差,但实质上是一样的. 看下面 题目大意 题面这么长,先说说题意吧. 就是有一个操作系统,他的存储方式是树形的.其中分为文件和目录(文件夹)每一个子目录下只能存储 $K$ 个文件或目 ...
- <SpringMvc>入门四 响应结果
1.响应String类型 根据试图解析器,去找相对应的jsp Model将对象存在request中 2.响应void类型 可以看出,此时void方法执行了,系统默认会去找testVoid.jsp 意思 ...
- Python学习第二阶段,day1, 装饰器,生成器,迭代器
装饰器 不得不说,这是对初学者最难以理解的概念了,虽然我学过面向对象,但还是被搞懵逼了..前面还好理解,主要是后面“装饰器的装饰器”我理解不了.装饰器工厂,根据传入的参数不同去返回不同的装饰器,我不得 ...
- led1,1s取反,led2计数10次取反
1 //利用定时器0 1s,led1取反,利用计数器1,跳10,取反 #include<reg52.h> #define uchar unsigned char #define uint ...
- Codeforces 938C - Constructing Tests
传送门:http://codeforces.com/contest/938/problem/C 给定两个正整数n,m(m≤n),对于一个n阶0-1方阵,其任意m阶子方阵中至少有一个元素“0”,则可以求 ...
- 2.5.5 基本的 I/0 重定向
标准输入/输出(standard I/O)可能是软件设计原则里最重要的概念了.这个概念就是:程序应该有数据的来源端.数据的目的端以及报告问题的地方,它们分别被称为标准输入(standard i ...
- nagios添加check_logfiles监控注意事项
为被监控机器添加日志监控,需注意: 1.确认被监控机器/usr/local/nagios/libexec下是否已存在check_logfiles插件,如没有,需要copy进来: 2.确认被监控机器/u ...
- Windows学习总结(9)——Windows系统常用的网络控制指令
ping 命令式用来测试TCP/IP 网络是否畅通或者网络连接速度的命 令,其原理是根据计算机唯一标示的IP 地址,当用户给目的地址发 送一个数据包时,对方就会返回一个同样大小的数据包,根据返回的 数 ...
- noip模拟赛 蒜头君的坐骑
分析:标准的棋盘dp问题. 如果没有技能,那么就很好做了,相当于传纸条的做法.有了技能的限制,我们就要加上一维表示用了多少次技能,这个时候转移就要用到dfs了,而且不能用填表法,要用刷表法,从当前位置 ...
- 9、Java并发性和多线程-线程安全与共享资源
以下内容转自http://ifeve.com/thread-safety/: 允许被多个线程同时执行的代码称作线程安全的代码.线程安全的代码不包含竞态条件.当多个线程同时更新共享资源时会引发竞态条件. ...