凯云水利水电工程造价管理系统 技术解析(三)项目属性(二)

项目属性

 //下面就是点击确定后就把值付给单价统调系数

 

  

//下面就是弹出那个窗体的HTML代码

 <div id="w调整系数" title="设置高程系数" class="easyui-window" style="width:500px;height:500px;padding:0px"> 
       <table style="width:480px;height:100px">
           <tr style="width:490px;height:30px" >
             <td style="padding:0px">选择高程系数</td> 
           </tr>
          <tr style="width:480px;height:70px;left:20px;">
            <td class='indent4'>海拔高于2000m的地区,根究水利枢纽工程所在地的海拔高程确定的调整系数计算。海拔高程以拦河坝或水闸顶的海拔高程为准,没有拦河坝或水闸的,以进水口或厂房顶的海拔高程为准。</td>
          </tr>
           </table> 
            <table id="tiaozhengxishu" class="easyui-datagrid" style="width:480px;height:300px" data-options="singleSelect:true" >
             <thead>
                 <tr>
                     <th data-options="field:'AdjustFactorID',width:10,hidden:true, align:'center'">导入材料单价计算公式</th>
                     <th data-options="field:'Number',width:75, align:'center'">编号</th>
                     <th data-options="field:'ManpowerFactor',width:75, align:'center'">人工系数</th>
                      <th data-options="field:'MaterialFacto',width:75, align:'center'">材料系数</th>
                     <th data-options="field:'MachineFactor',width:75, align:'center'">机械系数</th>
                      <th data-options="field:'Remark',width:152, align:'center'">备注</th>
                 </tr>
             </thead>
          </table>
             <table>
               <tr style="padding-left:300px">
                  <td><a οnclick="adjustconfirm()" ><input type="submit" value="确定"/></a></td>
                  <td><a><input type="submit" value="取消"/></a></td>  
            </tr>
         </table>
         </div>

 //下面就是赋值给统调系数的代码 

     function adjustconfirm(){
          var tiaozhengxishu = $('#tiaozhengxishu').datagrid('getSelected');//这就是选中哪一行
          var Number  = tiaozhengxishu.Number.trim();
          var ManpowerFactor=   tiaozhengxishu.ManpowerFactor.trim();获取选中那一行里面的值
          var MaterialFacto =  tiaozhengxishu.MaterialFacto.trim();
          var MachineFactor  = tiaozhengxishu.MachineFactor.trim();
         var Remark  =  tiaozhengxishu.Remark.trim();
         $('#TXTManpowerFactor').val(ManpowerFactor);//这就是把值付给人工系数
          $('#TXTMaterialFacto').val(MaterialFacto);//这就是把值付给材料系数
           $('#TXTMachineFactor').val(MachineFactor);这就是把值付给机械系数
          $('#w调整系数').window('close');//付完值就把窗体给关闭
     
}

 //下面就是设置计算公式

 

//下面就是弹出一个窗体的html代码:

   <div id="w材料单价组成项" class="easyui-window" title="Basic Window" data-options="iconCls:'icon-save'" style="width:450px;height:470px;padding:10px;">
    <div style="width:410px;height:35% " >
     <fieldset>
        <legend>材料单价组成项</legend>
      <table>
     <tr>
       <td>
            <table id="TXTmaterialconstitute" class="easyui-datagrid"  style="width:300%;height:300%"
			   data-options="singleSelect:true,collapsible:true,onClickRow:onClickRowMingXi,onAfterEdit:onAfterEdit">
		<thead>
			<tr>
				<th data-options="field:'InventoryCountUnitIName',width:80,editor:'text'">名称</th>
				<th data-options="field:'Remark',width:100,editor:'text'">单位</th>
			</tr>
		</thead>
	</table>
    </td>
    <td>
             <a οnclick="upmove()"   class="easyui-linkbutton" >上移 </a><br /><br />
             <a οnclick="belowmove()" class="easyui-linkbutton" >下移</a><br /><br />
             <a  οnclick="increase()"  class="easyui-linkbutton">增加</a><br /><br />
             <a οnclick="deleteproject()"  class="easyui-linkbutton" >删除</a><br /><br />
             <a  οnclick="tolead()"class="easyui-linkbutton" >导入</a><br /><br />
    </td>
   </tr>
   </table>
   </fieldset>
      设置单价的计算公式<br />       
      <input id="gongshi1" style="width:50%"/><a οnclick="open1()" class="easyui-linkbutton"  >...</a><br /> 
      <a οnclick="confirmformula()" class="easyui-linkbutton">确定</a>
      <a οnclick="tuichu"  class="easyui-linkbutton"> 退出  </a>
    </div> 	
	</div>


 

//注释:这里做的上移下移就是把两条数据进行修改

第一步:下面就是上移、下移,存储过程的代码;

 

第二步:  
//再下面就到了逻辑层

  //上移、下移

     public int Updateinventory(int InventoryCountUnitID, string InventoryCountUnitIName, string Remark)
        {
            SqlParameter[] mySQL = {
                                   new SqlParameter("@InventoryCountUnitID",SqlDbType.Int),                                   
                                   new SqlParameter("@type",SqlDbType.Char),                                   
                                                               
                                   new SqlParameter("@InventoryCountUnitIName",SqlDbType.Char),                                   
            int i = nihao.DAL_OPTableDB_Par("XianMuShuXing", mySQL);
                                  new SqlParameter("@Remark",SqlDbType.Char), 
     

                                   };
            mySQL[0].Value = "updateqingdan";
            mySQL[1].Value = InventoryCountUnitID;
            mySQL[2].Value = InventoryCountUnitIName;
            mySQL[3].Value = Remark;
            return i;
        } 


 

 

第三步:

//然后就到了控制器的代码;

上移,下移

 

      public ContentResult Updateinventory(string InventoryCountUnitID, string InventoryCountUnitIName, string Remark)
        {
            int i = xiangmushuxing.Updateinventory(Convert.ToInt32(InventoryCountUnitID), InventoryCountUnitIName, Remark);
            string k = i.ToString();
            return Content(k);
        }  

 第四步: //到界面层上移、下移

 var ww="";

      function onClickRowMingXi(index,data,dd) {
                       
                        ww =index;
                  

                           if (editIndex != index) {
                                    $('#TXTmaterialconstitute').datagrid('endEdit', editIndex);
                                    $('#TXTmaterialconstitute').datagrid('beginEdit', index);
                                     editIndex = index;
                                     
                                      
							    }


//上移

     function upmove(){
           var i  =ww-1;//索引-1就是找出上一项
          
           var xishu = $('#TXTmaterialconstitute').datagrid('getData');//这是获取表里所有数据
           var InventoryCountUnitID(当前)=xishu.rows[ww].InventoryCountUnitID;//获取选中那一项里面InventoryCountUnitID值
         
           var InventoryCountUnitIName(当前) =    xishu.rows[ww].InventoryCountUnitIName; 获取选中那一项里面InventoryCountUnitIName值

           var Remark(当前) = xishu.rows[ww].Remark; 获取选中那一项里面Remark值

              
            var InventoryCountUnitID1(上一项)=xishu.rows[ww-1].InventoryCountUnitID;// 获取上一项里面InventoryCountUnitID值

           
         
           var InventoryCountUnitIName1(上一项) =    xishu.rows[ww-1].InventoryCountUnitIName;/// 获取上一项里面InventoryCountUnitIName值

           var Remark1(上一项) = xishu.rows[ww-1].Remark; //获取上一项里面Remark值
                //修改的时候就是把它们两项的值互换


               $.getJSON("/XiangMuShuXing/Updateinventory?InventoryCountUnitID="+InventoryCountUnitID(当前)+"&"
                                                + "InventoryCountUnitIName="+ InventoryCountUnitIName1(上一项)+"&"
                                                +"Remark=" + Remark1(上一项) + "&"
                                              ,
                                      function(data){
                                        gg();//这是调用了一个查询的方法
                                      
                                       
                                      });         
          

          
               $.getJSON("/XiangMuShuXing/Updateinventory?InventoryCountUnitID="+InventoryCountUnitID1(上一项)+"&"
                                                + "InventoryCountUnitIName="+ InventoryCountUnitIName(当前)+"&"
                                                +"Remark=" + Remark (当前)+ "&"
                                              ,
                                      function(data){
                                        gg();
                                      
                                     
                                      }); 

         
                                      
     
     }



//就是调用这个方法




   function gg(){
                 $.getJSON("/XiangMuShuXing/Selectinventorydetailed/",
                     function(data){
                  
                        $('#TabInventoryCountUnitIName').datagrid('loadData', data);  
                        $('#TXTmaterialconstitute').datagrid('loadData',data); 
                     
                        });
             
             }

 //下移


      function belowmove(){
          var i  =ww+1;//索引+1就是找出下一项
          
           var xishu = $('#TXTmaterialconstitute').datagrid('getData');//这是获取表里的所用数据
           var InventoryCountUnitID1=xishu.rows[ww].InventoryCountUnitID;
         
           var InventoryCountUnitIName1 = xishu.rows[ww].InventoryCountUnitIName;
           var Remark1 = xishu.rows[ww].Remark;
              
            var InventoryCountUnitID=xishu.rows[ww+1].InventoryCountUnitID;
           
         
           var InventoryCountUnitIName =    xishu.rows[ww+1].InventoryCountUnitIName;
           var Remark = xishu.rows[ww+1].Remark;


               $.getJSON("/XiangMuShuXing/Updateinventory?InventoryCountUnitID="+InventoryCountUnitID1+"&"
                                                + "InventoryCountUnitIName="+ InventoryCountUnitIName+"&"
                                                +"Remark=" + Remark + "&"
                                              ,
                                      function(data){
                                        gg();
                                       
                                      
                                      });
          

          
               $.getJSON("/XiangMuShuXing/Updateinventory?InventoryCountUnitID="+InventoryCountUnitID+"&"
                                                + "InventoryCountUnitIName="+ InventoryCountUnitIName1+"&"
                                                +"Remark=" + Remark1 + "&"
                                              ,
                                      function(data){
                                        gg();
                                      
                                      
                                      });
   
                              }

 
 

  //新增按钮

   第一步: //下面就是新增的存储过程

   

第二步:

//新增、再到逻辑层

  public int Insertinventory(string InventoryCountUnitIName, string Remark)
        {
            SqlParameter[] mySQL = {
                                   new SqlParameter("@type",SqlDbType.Char),                                   
                                                               
                                   new SqlParameter("@InventoryCountUnitIName",SqlDbType.Char),                                   
                                   new SqlParameter("@Remark",SqlDbType.Char),                                   
                                
     

                                   };
            mySQL[0].Value = "insertqingdan";
            mySQL[1].Value = InventoryCountUnitIName;
            mySQL[2].Value = Remark;

            int i = nihao.DAL_OPTableDB_Par("XianMuShuXing", mySQL);
            return i;
        } 

 
 第三步: 

//然后就到控制器

   public ContentResult Insertinventory(string InventoryCountUnitIName, string Remark)
        {
            int i = xiangmushuxing.Insertinventory(InventoryCountUnitIName, Remark);
            string k = i.ToString();
            return Content(k);
        }
第四步:就到界面层

 
 
             function increase(){
        
              
            
                 $.getJSON("/XiangMuShuXing/Insertinventory?InventoryCountUnitIName="+"(没命名)"+"&"
                                                +"Remark=" + "" + "&",
                                                function(data){
                                                  
                                                  gg();
                                                
                                                });
                                            }

   //增加完一行数据就要对这一行数据进行编制修改了

   //结束编制后立马执行,onAfterEdit这方法的启动是写在html代码里面的



第一步:


                       function onAfterEdit(index,data,dd){
                                  
                       

                               var InventoryCountUnitID=data.InventoryCountUnitID;//这就是获取结束的那一行的主键InventoryCountUnitID
                             
                                var InventoryCountUnitIName = data.InventoryCountUnitIName.trim();这就是获取结束的那一行的InventoryCountUnitIName

                                var Remark= data.Remark.trim();这就是获取结束的那一行的Remark

                           
                          
                               $.getJSON("/XiangMuShuXing/Updateinventory?InventoryCountUnitID="+InventoryCountUnitID+"&"//这是它的主键ID
                                                + "InventoryCountUnitIName="+ InventoryCountUnitIName+"&"
                                                +"Remark=" + Remark + "&"
                                              ,
                                      function(data){
                                   
                                      
                                      
                                      });         
                                     
                            }

 
 第二步: 
     //结束编织后控制器的值
 
     public ContentResult Updateinventory(string InventoryCountUnitID, string InventoryCountUnitIName, string Remark)
        {
            int i = xiangmushuxing.Updateinventory(Convert.ToInt32(InventoryCountUnitID), InventoryCountUnitIName, Remark);
            string k = i.ToString();
            return Content(k);
        }

 
  第三步: 

  //结束编织后逻辑层的代码

   
     public int Updateinventory(int InventoryCountUnitID, string InventoryCountUnitIName, string Remark)
        {
            SqlParameter[] mySQL = {
                                   new SqlParameter("@type",SqlDbType.Char),                                   
                                                               
                                   new SqlParameter("@InventoryCountUnitID",SqlDbType.Int),                                   
                                   new SqlParameter("@InventoryCountUnitIName",SqlDbType.Char),                                   
                                  new SqlParameter("@Remark",SqlDbType.Char), 
     

                                   };
            mySQL[0].Value = "updateqingdan";
            mySQL[1].Value = InventoryCountUnitID;
            mySQL[2].Value = InventoryCountUnitIName;
            mySQL[3].Value = Remark;
            int i = nihao.DAL_OPTableDB_Par("XianMuShuXing", mySQL);
            return i;
        }

 
   第四步: 
 

// 结束编制存储过程的代码

  //再下来就是删去按钮的·代码

    第一步: //下面是删去的存储过程的代码  

 

第二步:
    //再到逻辑层  
            public int deleteproject(int InventoryCountUnitID)
        {
            SqlParameter[] mySQL = {
                                   new SqlParameter("@type",SqlDbType.Char),                                   
                                   new SqlParameter("@InventoryCountUnitID",SqlDbType.Int),                                   
                                   };
            mySQL[0].Value = "DeleteXiangMu";//这类型一定要对应存储过程里面的@type类型
            mySQL[1].Value = InventoryCountUnitID;
            int i = nihao.DAL_OPTableDB_Par("XianMuShuXing", mySQL); //XianMuShuXing这就是存储过程名
            return i;
        }

 
 第三步: 

     //然后就到控制器

 
   public ContentResult deleteproject(string InventoryCountUnitID)
        {
            int i = xiangmushuxing.deleteproject(Convert.ToInt32(InventoryCountUnitID));
            string k = i.ToString();//i就是删去成功从数据库返回的一个1,失败就返回一个0或-1
            return Content(k);//通过返回的1、0.-1、我们可以在界面判断它是否修改成功
        }

 
 第四步: 

  //最后就到界面层

      function  deleteproject(){
                            
                    if (confirm('是否删除项目?')) {   // confirm()这是一个删去前给人看的一个系统提示方法               
                        $.getJSON("/XiangMuShuXing/deleteproject?InventoryCountUnitID="+zuchengxiangID,
                                 function (data) {
                                     if (data > 0) {//这就可一通过从控制器返回的值来判断它是否大于0,如果大于0就删去成功,否则失败
                                         alert("删除成功!");
                                           $('#TXTmaterialconstitute').datagrid('deleteRow', editIndex);//这是一个表面的删去方法,不删数据库
                                     
                                       
                                             }
                                        else { alert("删除失败") }
                                 });
                                 
                    }
               else { alert("请选择要删除的项目") }
          
                    }        

 
    //下面就是导入按钮   
  
 

//点击导入按钮它会弹出一个窗体,里面有系统默认的计算公式

  //下面就是双击datagrid赋值给文本的界面代码

   <div id="w导入材料单价计算公式" title="导入材料单价计算公式" class="easyui-window" style="width:500px;height:470px;padding:0px">
       <table id="TBLToLeadMaterialPrice"  data-options="singleSelect:true,onDblClickRow:toleadmaterial"  class="easyui-datagrid" style="e:450px;height:340px">
             <thead>
                 <tr>
                     <th data-options="field:'ToLeadMaterialPriceCountID',width:10,hidden:true, align:'center'">导入材料单价计算公式</th>
                     <th data-options="field:'Classify',width:75, align:'center'">分类</th>
                     <th data-options="field:'Furmula',width:345, align:'center'">公式</th>
                     
                 </tr>
             </thead>
          </table>
          <table>
            <tr><td>材料单价计算公式</td></tr> 
          </table>
           <textarea id="TEXToLeadMaterialPriceCountID"style="width:450px;height:50px" cols="20" rows="2"></textarea>
          </table>
          <table>
            <tr>
              <td><a class="easyui-linkbutton"  οnclick="toleadconfirm()" style="width:50px" >确定</a></td>
               <td><a class="easyui-linkbutton" style="width:50px">取消</a></td>
            </tr>
          </table>
     </div>


   //下面就是赋值给文本的代码

  function   toleadmaterial(){
       
      var danjia = $('#TBLToLeadMaterialPrice').datagrid('getSelected');//获取datagrid里面的选中的那一行
     var o = danjia.Furmula.trim();//这是把选中哪一行的值给提取出来

     $('#TEXToLeadMaterialPriceCountID').val(o);//这就是给文本赋值
     
     
     
     }
     //这就是点击确定后给材料单价赋值的方法
     function toleadconfirm(){
     var e =$('#TEXToLeadMaterialPriceCountID').val()//这就是获取文本里面的值
     $('#TXTCountFurmula').val(e);//这就是把文本里面的值给赋给材料单价的文本
     $('#w导入材料单价计算公式').window('close');//这就是把导入材料单价的窗体给关闭
     }



 
 

//下面就是点击弹出一个设置计算公式的窗体

//下面就是html的代码;

<div id="w公式编辑器" title="公式编辑器" class="easyui-window" style="width:500px;height:370px;padding:0px">
    <center>
   @* <table style="width:500px;height:400px">*@
   <table>
   <tr>
   <td>
   <table>
    <a> 
       <textarea  id="TextArea1"   cols="100" style="width:300px;" readonly="readonly"></textarea></a>
   </table> 
   </td>
   <td> 
     <table>
       <a οnclick="setunitpriceformula()" class="easyui-linkbutton" >确定</a><br /><br />
        <a οnclick="clear1()" class="easyui-linkbutton">取消</a>
      </table> 
    </td> 
    </tr>
    </table>
     </center>
    <div>
                      
     <a  οnclick="add()"  class="easyui-linkbutton">+</a>
     <a οnclick="reduce()" class=" easyui-linkbutton">-</a>
     <a οnclick="ride()" class="easyui-linkbutton" >*</a>
     <a οnclick="inclined()" class="easyui-linkbutton" >/</a>
     <a οnclick="leftbracket()" class="easyui-linkbutton">(</a>
     <a οnclick="rightbracket()" class="easyui-linkbutton">)</a>
    </div>
    <table>
    <tr>
    <td>
    <div style="margin-left:46px;margin-top:10px">
     <right>
      <table id="TabInventoryCountUnitIName" data-options="singleSelect:true, noheader:true,onClickRow:qingdanbiao" class="easyui-datagrid"style="width:400px;height:150px" >
      <thead>
      <tr>
      <th data-options="field:'InventoryCountUnitIName',align:'center'" ></th>
      
      </tr>
      </thead>
     </table> 
    </right>
    </div>
    </td> 
     </tr>
    </table> 
        <table style="height:20px">
        <tr>
           <td><input  style="width:48px;border:0px"/></td>
           <td><a href="XiangMuShuXing/XiangMuShuXing"; class="easyui-linkbutton">返回上一页</a></td>
        </tr>
        </table>
    </div>



 
 //这下面就是编织器的生成代码 
 

//下面就是点击datagrid给文本赋值的方法

  function qingdanbiao(){                  
              y=  $('#TextArea1').val().toString().trim();//把文本的值赋给y
             var n =y.length;//然后就获取文本里面字段的长度赋值给n
             
            var v =  y.substring(n-1,n);//把文本里面的最后一个字段给截取出来,用来做下面的判断,如果有了这些符号,就能再在文本里面拼接datagrid里面的值
           
            if(v=="+"||v=="-"||v=="*"||v=="/"||v=="("||v==")"||v==""){//这就是获取上面的值来判断
               var YuanGong2 = $('#TabInventoryCountUnitIName').datagrid('getSelected');//选中一行
             var  a =  YuanGong2.InventoryCountUnitIName.toString().trim();//获取选中哪一行里面的值
             var j= y+a;//y就是文本里面原来有的值,然后在文本里面不断的拼接字符窜
        
              $('#TextArea1').val(j);//再把拼接的值赋给文本
            
            }
             else{
             
                alert("请客户输入正确的符号");
             
             }
       } 

 //下面就是点击+号给文本赋值


 
 
           function add(){
                if( $('#TextArea1').val()!=""){//这就是文本为空不让它增加+号,如果不为空才能增加+号
               y=  $('#TextArea1').val().toString().trim();//获取文本的值
             var n =y.length;//获取文本里面字段的长度 
            var v =  y.substring(n-1,n);获取文本里面最后一个字段 
            if(v=="+"||v=="-"||v=="*"||v=="/"){//用它来判断,如果文本最后有+、-,*、/这些符号就不能增加+号 
                }else{
                                      var r =$('#TextArea1').val();//获取文本的值
                                     var g=r+"+";//在原来的文本上增加+号

                                    var t =  $('#TextArea1').val(g);//再把值赋给文本
                       }
                   }
             }

   //

   function reduce(){
                      if( $('#TextArea1').val()!=""){//这就是文本为空不让它增加+号,如果不为空才能增加-号
             y=  $('#TextArea1').val().toString().trim();//获取文本的值
             var n =y.length; //获取文本里面字段的长度

             
            var v =  y.substring(n-1,n); //;获取文本里面最后一个字段 
            if(v=="+"||v=="-"||v=="*"||v=="/" ){ //用它来判断,如果文本最后有+、-,*、/这些符号就不能增加-号 
                }else{
                        var  k  = $('#TextArea1').val();;//获取文本的值
                        var  l=k+"-";//在原来的文本上增加-号
                           $('#TextArea1').val(l); //再把值赋给文本

                           }
                   }
                   }

      //
<span style="color:#333333;">    function ride(){
                      if( $('#TextArea1').val()!=""){//这就是文本为空不让它增加+号,如果不为空才能增加*号 
             y=  $('#TextArea1').val().toString().trim();
             var n =y.length; 
            var v =  y.substring(n-1,n); //获取文本里面最后一个字段 
            if(v=="+"||v=="-"||v=="*"||v=="/" ){ //用它来判断,如果文本最后有+、-,*、/这些符号就不能增加*号 
                }else{
                     var  a=  $('#TextArea1').val();
                       var b=a+"*";
                        $('#TextArea1').val(b);
                        }
                        }
                   }</span>

   //斜杠


 
 
                function inclined(){
                      if( $('#TextArea1').val()!=""){//这就是文本为空不让它增加+号,如果不为空才能增加/号

              y=  $('#TextArea1').val().toString().trim();
             var n =y.length;
             
            var v =  y.substring(n-1,n); 
            if(v=="+"||v=="-"||v=="*"||v=="/" ){ //用它来判断,如果文本最后有+、-,*、/这些符号就不能增加/号 
                }else{
                  var  c=$('#TextArea1').val();
                  var d= c+"/";
                   $('#TextArea1').val(d);
                   }
                 }
              }

  //左括号


 
 
 
             function leftbracket(){ 
             y=  $('#TextArea1').val().toString().trim();
             var n =y.length; 
            var v =  y.substring(n-1,n); 
            if(v=="("||v==")" ){ //用它来判断,如果文本最后有(、)、这些符号就不能增加(号 
                }else{
              var  e=$('#TextArea1').val();
              var  f=e+"(";
                $('#TextArea1').val(f);
                } 
          }

   //右括号


             function rightbracket(){ 
              y=  $('#TextArea1').val().toString().trim();
             var n =y.length; 
            var v =  y.substring(n-1,n); 
            if(v=="("||v==")" ){ //用它来判断,如果文本最后有(、)、这些符号就不能增加)号 
                }else{
                   var    g=   $('#TextArea1').val();
              var  h= g+ ")";
                $('#TextArea1').val(h); 
            }

 
 




     仅供学习:禁止用于商业用途





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值