在EXT中动态增删查改界面

 

1. 本界面实现的功能:

   1. 页面初始化的时候,学年学期是当前学年学期,且能加载当前学年学期的数据。

   2. 能根据学年学期查找数据。

   3. 评价课程类别+评价分类+总分只能是唯一的,且必填。

   4. 如果评价课程类别+评价分类+总分被使用就不能删除。

   5. 能无限添加记录条数。

2.evaluationcontrol.jsp页面 源代码:

<%@ page language="java" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<%@ include file="/apframe/common.jsp"%>
<script type='text/javascript' src='<foundation:root/>dwr/interface/evaluationcontrolService.js'></script>
</head>
  <body>
    <div align="center"><br></div><script type="text/javascript">
    var infoForm=null;  //教学评价安排信息表单
    var addFormNum=0;
    var addoredit;    //  addoredit=0为增加,addoredit=1为修改
    var fileup=null;
    var currentXnxqid;//当前学年学期
    var arrCau = new Array();//评价课程类别
    var arrClassify = new Array();//评价分类
    
    //定义固定的部分
    var fp=new Ext.FormPanel( {
   buttonAlign:'center',
   frame:true,
   height : 50,
   split : true,
   margins:'3 0 0 0',
   collapsible : true,
   autoScroll:true,
   labelAlign : 'right',
   region : "center",
   title:'学期评教控制基本信息:',
   buttons : [{
       text :'保存',
       id:'onSaveButton',
       handler:onSave,
       align:'center'
      }],
   border : false,
   bodyBorder:false,
   items : [{
   layout : 'column',
   items : [
     {
      columnWidth : .23,
      layout : 'form',
      labelWidth:55,
      items : [
        {xtype:'hidden',id:'PJ_SEM_TEA_EVAL_ID'},
        {
            xtype:"combo",
            id:'PSTE_XNXQ01ID',
         fieldLabel : '学年学期',
         width : 100,
         mode : 'local',
            triggerAction : 'all',
         editable:true,
         selectOnFocus : true,
         forceSelection : true,
         displayField : 'text',
            valueField : 'value',
            readOnly : true,
         store : new Ext.data.SimpleStore({
                     fields: ['value', 'text']
                  }),
         listeners :{
             "expand":function(){this.innerList.dom.style.overflowX="hidden";},
             select:function(){
               //移除选择前的学年学期下的数据显示控件
               if(addFormNum > 0){
                for(; addFormNum > 0 ; addFormNum--){
                 var id = "attment" + addFormNum
                 fp.remove(Ext.getCmp(id));
                }
               }
               
               //查询学期评教控制表的信息(主表)
               pageCall.queryNamedSqlForJsonArr("evaluationcontrol.selectsemteaevalebyxnxq",{PSTE_XNXQ01ID:$value('PSTE_XNXQ01ID')},function(list){
                if(parseInt(list.length)>0){//有数据 修改
                 addoredit=1;
                 $set('PSTE_XNXQ01ID',list[0].PSTE_XNXQ01ID);
                 $set('PJ_SEM_TEA_EVAL_ID',list[0].PJ_SEM_TEA_EVAL_ID);
                 document.getElementsByName("PSTE_INDEX_SCORE_INPUT")[list[0].PSTE_INDEX_SCORE_INPUT-1].checked=true;
                   document.getElementsByName("PSTE_STU_SEE_RES_CONT")[list[0].PSTE_STU_SEE_RES_CONT-1].checked=true;
                   
                   //查询学期评教控制详细表信息(子表) 动态显示
                   var semTeaEvalId=list[0].PJ_SEM_TEA_EVAL_ID;//学期评教控制表ID
                   pageCall.queryNamedSqlForJsonArr("evaluationcontrol.selectsemteaevaledelbyxnxq",{PSTED_SEM_TEA_EVAL_ID:semTeaEvalId},function(del){
                  if(parseInt(del.length)>0){
                   for ( var k = 1; k <= del.length; k++) {
                          addTextfield();
                          $('PSTED_CLASSIFY_ID'+addFormNum).store.loadData(getClassify());
                     $('PSTED_CLASSIFY_ID'+addFormNum).reset();
                          $set('PSTED_EVA_COU_CAT_ID'+k,del[k-1].PSTED_EVA_COU_CAT_ID);
                       $set('PSTED_CLASSIFY_ID'+k,del[k-1].PSTED_CLASSIFY_ID);
                       $set('PSTED_SCORE'+k,del[k-1].PSTED_SCORE);
                       
                       //若已存在评价信息,则相应的总分不允许修改或删除。
                       pageCall.queryNamedSqlForJsonArr("evaluationcontrol.selectDuplicateRecords",{PTEA_XNXQ01ID:$value('PSTE_XNXQ01ID'),PCEA_CLASSIFY_ID:$value('PSTED_CLASSIFY_ID'+addFormNum),PJ_EVA_COU_CAT_ID:$value('PSTED_EVA_COU_CAT_ID'+addFormNum)},function(li){
                        if(parseInt(li.length)>0)
                        {
                         $('PSTED_CLASSIFY_ID'+addFormNum).disable();
                         $('PSTED_EVA_COU_CAT_ID'+addFormNum).disable();
                         $('PSTED_SCORE'+addFormNum).disable();
                         $('DEL_BUTTON'+addFormNum).disable();
                        }
                        
                       });
                         }
                  }
                 });
                }
                else{//无数据 增加
                 addoredit=0;
                 document.getElementsByName("PSTE_INDEX_SCORE_INPUT")[0].checked=true;
                   document.getElementsByName("PSTE_STU_SEE_RES_CONT")[0].checked=true;
                   //初始化动态添加列表
                   for(var i=0;i<1;i++){
                    addTextfield();
                   }
                }
               }); 
              }
           }
        },{height:10},
        {
         columnWidth : .08,
         labelWidth:40,
         layout : 'form',
         items : [ new Ext.Button({text:'添加',iconCls : 'icon-add',handler:addTextfield}),{height:20}]
        }
        ]
     },
     {
      columnWidth : .39,
      labelWidth:120,
      layout : 'form',
      items : [
         {
             xtype: 'panel',
             layout: 'form',
          items: [{xtype:'hidden',name:'PSTE_INDEX_SCORE_INPUTVALUE'},
                  {
                 xtype : 'radio',
                 labelSeparator:'',
                 fieldLabel: '指标分值输入方式:',
                 name : 'PSTE_INDEX_SCORE_INPUT',
                                   boxLabel : '直接输入分值',
                                   checked : true,
                                   inputValue:'1'
                 },
                 {
                 xtype : 'radio',
                 labelSeparator:'',
                  labelSeparator: '',
                 name : 'PSTE_INDEX_SCORE_INPUT',
                 boxLabel : '输入权重,由系统计算分值',
                 checked : false,
                 inputValue:'2'
                 }
                
              ]
         }
      ]
     },{
      columnWidth : .38,
      labelWidth:110,
      layout : 'form',
      hidden:true,
      items : [
       {
             xtype: 'panel',
             layout: 'form',
          items: [{xtype:'hidden',name:'PSTE_STU_SEE_RES_CONTVALUE'},
                   {
                 xtype : 'radio',
                 labelSeparator:'',
                 fieldLabel: '学生查看成绩控制:',
                 name : 'PSTE_STU_SEE_RES_CONT',
                                   boxLabel : '直接查看成绩',
                                   checked : true,
                                   inputValue:'1'
                 },
                 {
                 xtype : 'radio',
                  labelSeparator: '',
                 name : 'PSTE_STU_SEE_RES_CONT',
                 boxLabel : '只能查看已评课程成绩',
                 checked : false,
                 inputValue:'2'
                  },
                {
                 xtype : 'radio',
                  labelSeparator: '',
                 name : 'PSTE_STU_SEE_RES_CONT',
                 boxLabel : '全部评完后才能查看',
                 checked : false,
                 inputValue:'3'
                 }
              ]
         }
      ]
     }]
  
   }]
  });
 
 //动态添加控件
 function addTextfield(){
   addFormNum++;
   fileup=new Ext.form.FieldSet({
       layout : 'table',
       id:'attment'+addFormNum,
    border : false,
    autoHeight  : true,
    columnWidth : 1,
    items : [
     {
      columnWidth : .30,
      labelWidth:90,
      layout : 'form',
      height:25,
      items : [
         {
             xtype:"combo",
             id:'PSTED_EVA_COU_CAT_ID'+addFormNum,
          fieldLabel : '评价课程类别',
          width : 120,
          mode : 'local',
             triggerAction : 'all',
          editable:true,
          selectOnFocus : true,
          forceSelection : true,
          displayField : 'text',
             valueField : 'value',
             readOnly : true,
             allowBlank : false,
          store : new Ext.data.SimpleStore({
                      fields: ['value', 'text'],                   
                     data : getPeccName()
                   })
         }
        ]
     },
     {width:50},
     {
      columnWidth : .30,
      labelWidth:70,
      layout : 'form',
      height:25,
      items : [
         {
          xtype:"combo",
             id:'PSTED_CLASSIFY_ID'+addFormNum,
          fieldLabel : '评价分类',
          width : 120,
          mode : 'local',
             triggerAction : 'all',
             allowBlank : false,
          editable:true,
          selectOnFocus : true,
          forceSelection : true,
          displayField : 'text',
             valueField : 'value',
             readOnly : true,
          store : new Ext.data.SimpleStore({
                      fields: ['value', 'text'],                   
                     data : getClassify()
                   }),
          listeners:{'select':function(){
           if(addFormNum>1){//同一学年学期 评价课程类别与评价分类不能重复
            var courseIdCurrent=$value('PSTED_EVA_COU_CAT_ID'+addFormNum);
            var classifyCurrent=$value('PSTED_CLASSIFY_ID'+addFormNum);
                     arrCau = [];//评价课程类别初始化
              arrClassify = [];//评价分类初始化
            fp.findBy(function(val){
                if(val.getId().indexOf("PSTED_EVA_COU_CAT_ID")!=-1 )
                 { 
                  var cauId= val.getId().substr(20);
                  arrCau.push(cauId);
                }
           });
            for(var i=0;i<arrCau.length-1;i++){
             var courseId=$value('PSTED_EVA_COU_CAT_ID'+arrCau[i]);
             var classifyId=$value('PSTED_CLASSIFY_ID'+arrCau[i]);
             if(courseIdCurrent==courseId && classifyCurrent==classifyId){
               Ext.Msg.alert("提示:","评价课程类别与评价分类,不能重复,请重新选择!");
               $('PSTED_EVA_COU_CAT_ID'+addFormNum).setValue("");
               $('PSTED_CLASSIFY_ID'+addFormNum).setValue("");
             }
            }
           }
         }}      
        }
        ]
     },
     {width:50},
     {
      columnWidth : .1,
      labelWidth:40,
      layout : 'form',
      height:25,
      items : [
         {
              xtype:"numberfield",
              fieldLabel : '总分',
              id:'PSTED_SCORE'+addFormNum,
              width : 60,
              //value :'100',
              value :addFormNum,
              allowBlank : false,
              decimalPrecision : 2,
              allowNegative : false
         }
        ]
     },
     {width:50},
     {
         columnWidth : .08,
         layout : 'form',
         labelWidth : 10,
         height:25,
         items : [ 
                  {
                   xtype:'button',
          text:'删除',
          iconCls : 'icon-delete',
          id:'DEL_BUTTON'+addFormNum,
          handler:function(){
           fp.remove(this.ownerCt.ownerCt);
           fp.doLayout();
           //addFormNum--;
           }
         }
         ]
        }]
     
   })
    fp.add(fileup);//添加
       fp.doLayout();//重新布局
      
 }
 
 //保存
    function onSave(){
          var jsonObj="";
          jsonObj=fp.getForm().getValues(false);
           var validEva=true;
           var validCau=true;
           var validScore=true;
           var num=0;
           arrCau=[];
           arrClassify=[];
           fp.findBy(function(val){
        if(val.getId().indexOf("PSTED_EVA_COU_CAT_ID")!=-1 )
         { 
          var cauId= val.getId().substr(20);
          arrCau.push(cauId);
          if($('PSTED_EVA_COU_CAT_ID'+cauId).isValid()==false)
          validEva=false;
        }
        if(val.getId().indexOf("PSTED_CLASSIFY_ID")!=-1 )
         {
          
          var classify= val.getId().substr(17);
          arrClassify.push(classify);
          if($('PSTED_CLASSIFY_ID'+classify).isValid()==false)
          validCau=false;
        }
        if(val.getId().indexOf("PSTED_SCORE")!=-1 )
         {
          var scoreId= val.getId().substr(11);
          if($('PSTED_SCORE'+scoreId).isValid()==false)
          validScore=false;
        }
       });
         
         
         //如果评价课程类别、评价分类、总分都不为空的话
         if(validEva && validCau && validScore){
           if(arrCau.length>0){//同一学年学期 评价课程类别与评价分类不能重复
     var courseIdCurrent="";
     var classifyIdCurrent="";
     var courseId="";
     var classifyId="";
     for(var i=0;i<arrCau.length;i++){
      for (var j=i+1;j<arrCau.length;j++){
       courseIdCurrent=$value('PSTED_EVA_COU_CAT_ID'+arrCau[i]);
       classifyIdCurrent=$value('PSTED_CLASSIFY_ID'+arrClassify[i]);
       courseId=$value('PSTED_EVA_COU_CAT_ID'+arrCau[j]);
       classifyId=$value('PSTED_CLASSIFY_ID'+arrClassify[j]);
       alert("i:"+i+"j:"+j+"courseIdCurrent:"+courseIdCurrent+"courseId:"+courseId+"classifyIdCurrent:"+classifyIdCurrent+"classifyId:"+classifyId);
       if(courseIdCurrent==courseId && classifyIdCurrent==classifyId){
         Ext.Msg.alert("提示:","第"+(i+1)+"行与第"+(j+1)+"行是同一重复记录,请重新选择!");
         return;
       }
      }
     }
    }
          
          jsonObj.PSTE_XNXQ01ID=$value("PSTE_XNXQ01ID");//学年学期
         
          var tempModel1 = document.getElementsByName('PSTE_INDEX_SCORE_INPUT');//遍历指标分值输入方式
    for(var i =0;i<tempModel1.length;i++){
     if(tempModel1[i].checked){
          jsonObj.PSTE_INDEX_SCORE_INPUT = tempModel1[i].value;
      }
     }
    
    var tempModel2 = document.getElementsByName('PSTE_STU_SEE_RES_CONT');//遍历学生查看成绩控制
    for(var i =0;i<tempModel2.length;i++){
     if(tempModel2[i].checked){
          jsonObj.PSTE_STU_SEE_RES_CONT = tempModel2[i].value;
      }
    }
            jsonObj.CREATOR='<foundation:property value="#session.userObject.userid"/>';
    
          if(addoredit==0){
            resourceService.getId("PJ_SEM_TEA_EVAL.PJ_SEM_TEA_EVAL_ID",function(id){
             jsonObj.PJ_SEM_TEA_EVAL_ID=id;
           });
            evaluationcontrolService.insertEvaluationControl(jsonObj, function(c){
               if(c){
                for(var i=1 ; i<=arrCau.length;i++ ){
               jsonObj.PJ_SEM_TEA_EVAL_ID=jsonObj.PJ_SEM_TEA_EVAL_ID;
            jsonObj.PSTED_EVA_COU_CAT_ID=$value('PSTED_EVA_COU_CAT_ID'+arrCau[i-1]);
            jsonObj.PSTED_CLASSIFY_ID=$value('PSTED_CLASSIFY_ID'+arrCau[i-1]) ;
            jsonObj.PSTED_SCORE=$value('PSTED_SCORE'+arrCau[i-1]) ;
            pageCall.invokeNamedSqlForInsert("evaluationcontrol.insertEvaluationControlKidInfo",jsonObj,function(c){ 
                       
                });
         }
         Ext.Msg.alert("提示:","学期评教控制添加成功!");
               } else {
                Ext.Msg.alert("提示:","学期评教控制添加失败!");
               }
              });
          }
          else if(addoredit==1){
           var arrUpdate = new Array();
           evaluationcontrolService.updateEvaluationControl(jsonObj, function(c){
            if(c){
              
              if(addFormNum>=1){
               arrUpdate.push({PSTE_XNXQ01ID:$value("PSTE_XNXQ01ID")});
              pageCall.invokeNamedSqlForBatchDelete("evaluationcontrol.deletClassificationControlInfo",arrUpdate,function(){
                   for(var i=1 ; i<=arrCau.length;i++ ){
                jsonObj.PSTE_XNXQ01ID=$value('PSTE_XNXQ01ID');
             jsonObj.PSTED_EVA_COU_CAT_ID=$value('PSTED_EVA_COU_CAT_ID'+arrCau[i-1]);
                jsonObj.PSTED_CLASSIFY_ID=$value('PSTED_CLASSIFY_ID'+arrClassify[i-1]) ;
             jsonObj.PSTED_SCORE=$value('PSTED_SCORE'+arrClassify[i-1]) ;
                pageCall.invokeNamedSqlForInsert("evaluationcontrol.insertEvaluationControlKidInfo",jsonObj,function(c){ 
                  Ext.Msg.alert("提示:","学期评教控制修改成功!");
                  });
             }
                });
              }
              else{
               Ext.Msg.alert("提示:","学期评教控制修改成功!");
              }
            }else{
             Ext.Msg.alert("提示:","学期评教控制修改失败!");
            }
            
            
           });
           
         
   }
      //}
     
    }
    }
   
    // 学年学期
     function getChargeYearPos(){
      var arr = new Array();
       pageCall.queryNamedSqlForList("evaluationcontrol.selectChargeYearName",{},function(obj){
  for(var k = 0; k < obj.length; k++){
   arr.push([obj[k].XNXQ01ID, obj[k].TERMCNAME]);
   }  
       });
      return arr;
     }
    
     // 评价课程类别
     function getPeccName(){
      var arr = new Array();
       pageCall.queryNamedSqlForList("evaluationcontrol.selectPeccName",{},function(obj){
  for(var k = 0; k < obj.length; k++){
   arr.push([obj[k].PJ_EVA_COU_CAT_ID, obj[k].PECC_NAME]);
   }  
       });
      return arr;
     }
    
     // 评价分类
     function getClassify(){
      var arr = new Array();
       pageCall.queryNamedSqlForList("evaluationcontrol.selectClassify",{},function(obj){
  for(var k = 0; k < obj.length; k++){
   arr.push([obj[k].PJ_CLASSIFY_ID, obj[k].PC_NAME]);
   }  
       });
      return arr;
     }
  
 var innerPanel = new Ext.Panel({
   layout : 'border',
          border : false,
          title:'学期评教控制',
          iconCls : 'icon-plugin',
   split : true,
   items:[fp]
  });

    var bigTabPanel = new Ext.TabPanel({
               region : 'center',
          activeTab: 0,
          border : false,
          frame:false,
          items:[innerPanel]
    });
   
   
    Ext.onReady(function(){
     new Ext.Viewport({
   layout : 'border',
   split : true,
   items:[bigTabPanel]
   });
 
 //初始化学年学期,设置为当前学年学期  
 Ext.getCmp('PSTE_XNXQ01ID').store.loadData(getChargeYearPos());
  pageCall.queryNamedSqlForObj('evaluationcontrol.selectCurrentYearName',{},function(xnxq){
     currentXnxqid = xnxq.XNXQ01ID;
        $set("PSTE_XNXQ01ID",currentXnxqid);
  });
 
 //初始化学年学期下的数据
    //查询学期评教控制表的信息(主表)
 pageCall.queryNamedSqlForJsonArr("evaluationcontrol.selectsemteaevalebyxnxq",{PSTE_XNXQ01ID:$value('PSTE_XNXQ01ID')},function(list){
  if(parseInt(list.length)>0){//有数据 修改
   addoredit=1;
   $set('PSTE_XNXQ01ID',list[0].PSTE_XNXQ01ID);
   $set('PJ_SEM_TEA_EVAL_ID',list[0].PJ_SEM_TEA_EVAL_ID);
   document.getElementsByName("PSTE_INDEX_SCORE_INPUT")[list[0].PSTE_INDEX_SCORE_INPUT-1].checked=true;
     document.getElementsByName("PSTE_STU_SEE_RES_CONT")[list[0].PSTE_STU_SEE_RES_CONT-1].checked=true;
     
     //查询学期评教控制详细表信息(子表) 动态显示
     var semTeaEvalId=list[0].PJ_SEM_TEA_EVAL_ID;//学期评教控制表ID
     pageCall.queryNamedSqlForJsonArr("evaluationcontrol.selectsemteaevaledelbyxnxq",{PSTED_SEM_TEA_EVAL_ID:semTeaEvalId},function(del){
    if(parseInt(del.length)>0){
     for ( var k = 1; k <= del.length; k++) {
            addTextfield();
            $('PSTED_CLASSIFY_ID'+addFormNum).store.loadData(getClassify());
      $('PSTED_CLASSIFY_ID'+addFormNum).reset();
            $set('PSTED_EVA_COU_CAT_ID'+k,del[k-1].PSTED_EVA_COU_CAT_ID);
         $set('PSTED_CLASSIFY_ID'+k,del[k-1].PSTED_CLASSIFY_ID);
         $set('PSTED_SCORE'+k,del[k-1].PSTED_SCORE);
         //若已存在评价信息,则相应的总分不允许修改或删除。
         pageCall.queryNamedSqlForJsonArr("evaluationcontrol.selectDuplicateRecords",{PTEA_XNXQ01ID:$value('PSTE_XNXQ01ID'),PCEA_CLASSIFY_ID:$value('PSTED_CLASSIFY_ID'+addFormNum),PJ_EVA_COU_CAT_ID:$value('PSTED_EVA_COU_CAT_ID'+addFormNum)},function(li){
          if(parseInt(li.length)>0)
          {
           $('PSTED_CLASSIFY_ID'+addFormNum).disable();
           $('PSTED_EVA_COU_CAT_ID'+addFormNum).disable();
           $('PSTED_SCORE'+addFormNum).disable();
           $('DEL_BUTTON'+addFormNum).disable();
          }
          
         });
           }
    }
   });
  }
  else{//无数据 增加
   addoredit=0;
   document.getElementsByName("PSTE_INDEX_SCORE_INPUT")[0].checked=true;
     document.getElementsByName("PSTE_STU_SEE_RES_CONT")[0].checked=true;
     //初始化动态添加列表
     for(var i=0;i<1;i++){
      addTextfield();
     }
  }
 }); 
    });
    </script>
  </body>
</html>

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值