editGrid特定行列数据验证更新

<%@ page language="java" pageEncoding="UTF-8"%>
<%
String dir=request.getParameter("dir");//指标区间方向   1为正向,-1为负向,0为其它
 if(dir==null||dir.equals("")) dir="1";//测试用
String relparentids=request.getParameter("objid");//主表对象编号
String jfk=request.getParameter("bscsbh");//计分卡
String zbid=request.getParameter("measuresbh");//指标编号
String currnodeid=request.getParameter("currnodeid");//当前节点
String nodeid=request.getParameter("nodeid");//节点字符串
String src=request.getParameter("src");//是否查看

boolean isNode = false;//当前节点能否编辑
boolean isView = false;//查看
if(nodeid.indexOf(currnodeid)!=-1){
	isNode = true;
}
if(currnodeid.equals("-1") || nodeid.equals("-1")){
	isNode = false;
}
if(src.equals("view")){
	isView = true;
}

String qj="",qjid="", valueA="", valueB="", valueC="", valueA2="", valueB2="";//期间名称、期间编号、原A值、原B值、实际值、更新A值、更新B值
/*
//该计分卡当前期间
int jfkQj = 0;
String sql = "select bsc_qj from obj_bsc_development where singletextbox1="+jfk;
rs.executeSql(sql);
if(rs.next()){
	jfkQj = rs.getInt("bsc_qj");
}
*/
int jfkQj=201302;

String tempQj = "";
tempQj = String.valueOf(jfkQj);
if(tempQj.trim().substring(4,6).equals("00")){
	tempQj = tempQj.trim().substring(0,4) + "05";
}

%>
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>    
    <title>指标更新明细</title>
	<script type="text/javascript" src="../js/jquery.js"></script>
    <link rel="stylesheet" type="text/css" href="../js/extjs/resources/css/ext-all.css"/>
	<script type="text/javascript" src="../js/extjs/adapter/ext/ext-base.js"></script>
	<script type="text/javascript" src="../js/extjs/ext-all.js"></script>	
  </head>

<script type="text/javascript">
function updateA2(qj,A,B,C,vA2,B2){
	
		if(!B2){
			B2 = -1;
		}
		if( vA2==null){
			vA2 = 0;
			return;
		}else{
			
			$.get('/BSC/ajax/measureModifyDetailUpdate.jsp?utype=a2&relparentids='+<%=relparentids%>+'&qj='+qj+'&a='+A+'&b='+B+'&c='+C+'&a2='+encodeURI(vA2)+'&b2='+encodeURI(B2)+'&jfk='+<%=jfk%>+'&zb='+<%=zbid%>
			,{Action:"get"},function (data, textStatus){});
		}
	}
	
	function updateB2(qj,A,B,C,A2,vB2){		
		if(!A2){
			A2 = "-1";
		}
		if( vB2==null){
			vB2 = 0;
			return;
		}else{
			$.get('/BSC/ajax/measureModifyDetailUpdate.jsp?utype=b2&relparentids='+<%=relparentids%>+'&qj='+qj+'&a='+A+'&b='+B+'&c='+C+'&a2='+encodeURI(A2)+'&b2='+encodeURI(vB2)+'&jfk='+<%=jfk%>+'&zb='+<%=zbid%>
			,{Action:"get"},function (data, textStatus){});
		}
	}
Ext.onReady(function () {
    //数据源定义	
var store = new Ext.data.Store({
	proxy : new Ext.data.HttpProxy({url : 'date.jsp'}),
	autoLoad: true,
	baseParams : {'bscsbh':'<%=jfk%>','measuresbh':'<%=zbid%>'},  
	reader : new Ext.data.JsonReader({							
		totalProperty : 'totalProperty',//总页数
		root : 'root'//数据 
		},[{name:'qj'},{name:'qjid'},{name:'valueA'},{name:'valueB'},{name:'valueC'},{name:'valueA2'},{name:'valueB2'},{name:'jfk'},{name:'zb'}]
	)
});
    var cm = new Ext.grid.ColumnModel([
        {
            header: "期间",
            dataIndex: "qj",
			align:"center",
			menuDisabled : true,
            width: 95
        },
        {
            header: "qjid",
            dataIndex: "qjid",
            hidden:true
        },
        {
            header: "原A值",
            dataIndex: "valueA",
			menuDisabled : true,
			align:"center",
            width: 125
        },
        {
            header: "原B值",
            dataIndex: "valueB",
			menuDisabled : true,
			align:"center",
            width: 125
           
        },
        {
            header: "实际值",
            dataIndex: "valueC",
			align:"center",
			menuDisabled : true,
			width:115
        },
        {
            header: "更新A值",
            dataIndex: "valueA2",
			align:"center",
			menuDisabled : true,
            width: 110, 
			<%if(dir.equals("1")||dir.equals("-1")){%>           
				  editor: new Ext.grid.GridEditor(new Ext.form.NumberField())
			  <%}else{%>
				 editor: new Ext.grid.GridEditor(new Ext.form.TextField())
				<%}%>          
		
        },
        {
            header: "更新B值",
            dataIndex: "valueB2",
			align:"center",
			menuDisabled : true,
            width: 110,
			<%if(dir.equals("1")||dir.equals("-1")){%>           
				  editor: new Ext.grid.GridEditor(new Ext.form.NumberField())
			  <%}else{%>
				 editor: new Ext.grid.GridEditor(new Ext.form.TextField())
				<%}%>

        }
    ]);
    //定义EditGridPanel
    var grid = new Ext.grid.EditorGridPanel({
        store: store,
        cm: cm,
		stripeRows:true,
		border:true,
        width: 680,				
        autoHeight: true,
        renderTo:Ext.getBody(),
        autoEncode: true, //提交时是否自动编码
        clicksToEdit: 1,
		listeners:{  
           beforeedit: function(e){
              var currRecord = e.record; 
                e.cancel = true; 			 
			  if(<%=!isView%>&&<%=isNode%>&&(currRecord.get("qjid") > <%=tempQj%>||currRecord.get("qjid").substring(4,6)=="05")) 
				 e.cancel=false;
               },
		  afteredit: function(e){  
                aRow = e.grid.getView().getCell(e.row,5);
				aRow2=e.grid.getView().getCell(e.row,6);
				aRow.style.background="#99FFFF";
				aRow.style.border="1px solid #cccccc";
				aRow2.style.background="#99FFFF";
				aRow2.style.border="1px solid #cccccc";
			   }
		     },
		tbar: [ {
                text: "保存",				
                cls: "x-btn-text-icon",
                handler: function () {
                    var store = grid.getStore();
                    //得到修改过的Recored的集合
                    var modified = store.modified.slice(0);
                    //将数据放到另一个数组中
                    var jsonArray = [];
                    Ext.each(modified, function (m) {
                       // alert(m.data.valueB2);
                        //m.data 中保存的是当前Recored的所有字段的值(json),不包含结构信息
                        jsonArray.push(m.data);
                    });
                    var r = checkBlank(modified);
                    if (!r) {
                        return;
                    } else {
						 Ext.each(modified, function (m) {                       
                            updateA2(m.data.qjid,m.data.valueA,m.data.valueB,m.data.valueC,m.data.valueA2,m.data.valueB2);
					        updateB2(m.data.qjid,m.data.valueA,m.data.valueB,m.data.valueC,m.data.valueA2,m.data.valueB2);
							Ext.Msg.alert("成功","更新数据成功");
                    });
						
                    }
                }
            }]
        }); 	
	 //验证输入的数据是否有效
    var checkBlank = function (modified /*所有编辑过的和新增的Record*/ ) {
        var result = true;
		var dir=<%=dir%>;
        Ext.each(modified, function (record) {         
                //根据名称获取对应的值
                var a2 = record.data.valueA2;
				var b2 = record.data.valueB2;
				var qj=record.data.qj;
				if(dir=="1"&&a2<b2)				
                  {
                    Ext.MessageBox.alert("验证", '指标区间方向为正向时,期间"'+qj+'"更新A值必须大于或等于更新B值');
                    result = false;
                    return;
                }
				if(dir=="-1"&&a2>b2)				
                  {
                    Ext.MessageBox.alert("验证", '指标区间方向为负向时,期间"'+qj+'"更新A值必须小于或等于更新B值');
                    result = false;
                    return;
                }
           
        });
        return result;
    }
	store.on("load",function(){		
         for(i = 0; i < grid.getStore().getCount(); i ++){
           for(j = 5; j < grid.getColumnModel().getColumnCount(); j ++){               
			   var Record=grid.getStore().getAt(i); 
			   if(<%=!isView%>&&<%=isNode%>&&(Record.get("qjid") > <%=tempQj%>||Record.get("qjid").substring(4,6)=="05")){
				aRow = grid.getView().getCell(i,j);
				aRow.style.background="#99FFFF";
				aRow.style.border="1px solid #cccccc";
				}  
		    }
		 }
	});
});

</script>
后台json数据:
 {'root':[{'qj':'201301','qjid':'201301','valueA':'98.59','valueB':'98.09','valueC':'98.12','valueA2':'','valueB2':'','jfk':'1043','zb':'10541'},{'qj':'201302','qjid':'201302','valueA':'98.59','valueB':'98.09','valueC':'99.41','valueA2':'','valueB2':'','jfk':'1043','zb':'10541'},{'qj':'201303','qjid':'201303','valueA':'98.59','valueB':'98.09','valueC':'','valueA2':'5254245','valueB2':'366','jfk':'1043','zb':'10541'},{'qj':'201304','qjid':'201304','valueA':'98.59','valueB':'98.09','valueC':'','valueA2':'2124','valueB2':'333','jfk':'1043','zb':'10541'},{'qj':'2013年','qjid':'201305','valueA':'98.59','valueB':'98.09','valueC':'','valueA2':'','valueB2':'','jfk':'1043','zb':'10541'}]} 
访问参数为?src=add&objid=520002203&bscsbh=1043&measuresbh=10541&currnodeid=5005&nodeid=5005,5006,5008

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值