凯云水利水电工程造价系统 (五) 补充定额

时间:2023-01-27 16:53:49

凯云水利水电工程造价系统 (五) 补充定额 

3.10 功能9名称:补充定额

3.10-1 功能实现

补充定额数据的处理:添加、删除、复制、粘贴、导入、导出

补充定额的添加,删除:击添加会出现一个窗体,里面有相应的字段进行添加。选中重复添加,可以进行多次天机算。

对进行选中的数据进行删除。

补充定额的复制、粘贴:对现有的数据进行复制、粘贴,为了进行区分,粘贴后的数据,代号会自动跟着”复制“二字,如果某条数据时再次复制、粘贴,那代号会重复出现”复制“二字。

导入、导出:系统将自动给出一个路径,把材料的单价的所有数据导入到一张Excel表。导入:先手动填写一些数据,这些数据要根据数据库的参数来写,一一对应才能导入到补充定额表中。

定额人材机的添加、删除、替换、复制、粘贴。

定额人材机的添加、删除:添加之前编辑好的机械、人工、配合比、补充定额,选中数据进行添加。删除就是选中相应的数据进行删除。

定额人材机的替换:选中定额人材机的一行数据,再在替换窗体中选中要替换的数据,把定额人人材机的数据替换掉。

定额人材机的复制、粘贴:对现有的数据进行复制、粘贴,为了进行区分,粘贴后的数据,代号会自动跟着”复制“二字,如果某条数据时再次复制、粘贴,那代号会重复出现”复制“二字。

 

 

3.10-2 表和关系

資料表總表

SN

資料表

描述

16

SYS_BuildProjectList

建立项目表

48

SYS_QuoteEditionList

定额表

49

SYS_QuoteMachineComeposeList

定额人材机组成表

51

SYS_ReplenishQuoteList

补充定额表

 

SYS_BuildProjectList

資料表名稱

SYS_BuildProjectList

資料表描述

 

SN

欄位

資料型態

長度

null

PK

描述

1

BuildProjectID

int identity

(10, 0)

NO

PK

建立项目表

2

BuildProjectName

nchar

150

YES

 

建立项目名称

3

QuoteEditionID

int

(10, 0)

YES

外键

定额ID

 

SYS_QuoteEditionList

資料表名稱

SYS_QuoteEditionList

資料表描述

 

SN

欄位

資料型態

長度

null

PK

描述

1

QuoteEditionID

int identity

(10, 0)

NO

PK

定额表

2

QuoteEditionName

nchar

150

YES

 

定额名称

 

SYS_QuoteMachineComeposeList

資料表名稱

SYS_QuoteMachineComeposeList

資料表描述

 

SN

欄位

資料型態

長度

null

PK

描述

1

QuoteMachineComeposeID

int identity

(10, 0)

NO

PK

定额人材机组成表

2

ReplenishQuoteID

int

(10, 0)

YES

外键

补充定额ID

3

Name

nchar

150

YES

 

名称

4

Unit

nchar

150

YES

 

单位

6

TypeMap

nchar

150

YES

 

类型

 

SYS_ReplenishQuoteList

資料表名稱

SYS_ReplenishQuoteList

資料表描述

 

SN

欄位

資料型態

长度

null

PK

描述

1

ReplenishQuoteID

int identity

(10, 0)

NO

PK

补充定额ID

2

BuildProjectID

int

(10, 0)

YES

外键

建立项目ID

3

QuoteNumber

nchar

150

YES

 

定额号

4

Name

nchar

150

YES

 

名称

5

Unit

nchar

150

YES

 

单位

 

 凯云水利水电工程造价系统 (五) 补充定额

(图 1)

3.10-3模块功能的具体实现

3.10-3.1补充定额模块功能分解

3.10-3.1.1 补充定额
3.10-3.1.1.1添加                                          

(1)点击添加按钮,弹出添加补充定额的窗体,定额号是自动生成的,如果选中多次重复添加,则留在当前窗体,否则,则推出当前窗体:

凯云水利水电工程造价系统 (五) 补充定额

(图 2)

(2)填完数据之后,点击添加按钮,进行保存

凯云水利水电工程造价系统 (五) 补充定额

(图 3)

所触发的界面层的方法:

//新增补充定额
function InsertReplenishQuote(){
var   r=document.getElementById("repeat").checked;
//如果选中重复添加的复选框,就把被选中的true赋值给r
if(confirm('是否需要新增?')){
//确认是否需要新增
$.getJSON("/BuChongDingE/InsertReplenishQuote?BuildProjectID="+@Session["项目ID"]+"&"
+"QuoteNumber="+$('#STRQuoteNumber').val()+"&"
+"Name="+$('#StrName').val()+"&"
+"Unit="+$('#StrUnit').val(),
function(data){
if(data>0){
$.getJSON("/BuChongDingE/SelectedReplenishQuote?BuildProjectID="+@Session["项目ID"],
function(data){
$('#w补充定额').datagrid('loadData', data);
alert("新增成功!");
if(r){
$('#w添加补充定额').window('open');
$('#STRQuoteNumber').val("");
$('#StrName').val("");
$('#StrUnit').val("");
}
else{
$('#w添加补充定额').window('close');
}
}
);
}
});
}
}

新增的数据传到控制器:

   #region 新增补充定额
        public ContentResult InsertReplenishQuote(int BuildProjectID, string QuoteNumber, string Name, string Unit) {
            int i = myReplenishQuote.InsertReplenishQuote(BuildProjectID, QuoteNumber, Name, Unit);
             //调用逻辑层的方法
            return Content(i.ToString());
            //返回转换为字符串的值给界面
        }
        #endregion


/新增的数据传到逻辑层:

#region 新增补充定额
public int InsertReplenishQuote(int BuildProjectID,string QuoteNumber, string Name,string Unit) {
SqlParameter[] mySqlParameter = {
new SqlParameter("@Type",SqlDbType.Char),
new SqlParameter ("@BuildProjectID",SqlDbType.Int),
new SqlParameter("@QuoteNumber",SqlDbType.Char),
new SqlParameter ("@Name",SqlDbType.Char),
new SqlParameter ("@Unit",SqlDbType.Char),
};
mySqlParameter[0].Value = "InsertReplenishQuote";
mySqlParameter[1].Value = BuildProjectID;
mySqlParameter[2].Value = QuoteNumber;
mySqlParameter[3].Value = Name;
mySqlParameter[4].Value = Unit;
int i = myDALPublic.DAL_OPTableDB_Par("ReplenishQuote",mySqlParameter);
return i;

}
#endregion

新增的数据传到数据层:

-新增补充定额
	if @Type='InsertReplenishQuote'
	begin
	   insert SYS_ReplenishQuoteList(BuildProjectID, QuoteNumber, Name, Unit)
	   values (@BuildProjectID, @QuoteNumber, @Name, @Unit)
	end



凯云水利水电工程造价系统 (五) 补充定额

(图 4)

3.10-3.1.1.2 删除

(1)删除补充定额界面层的方法:

凯云水利水电工程造价系统 (五) 补充定额

(图 5)
 //删除补充定额
function DeleteReplenishQuote(){
var ReplenishQuoteID=$('#w补充定额').datagrid('getSelected');
//选中要删除的数据
if(ReplenishQuoteID){
if (confirm('是否删除此条数据?')){
$.getJSON("/BuChongDingE/DeleteReplenishQuote?ReplenishQuoteID="+ReplenishQuoteID.ReplenishQuoteID,
//获取要删除数据的ID 
function(data){
if(data>0){
$.getJSON("/BuChongDingE/SelectedReplenishQuote?BuildProjectID="+@Session["项目ID"],
function(data){
$('#w补充定额').datagrid('loadData', data);
alert("删除成功!");
});
}
});
}
else{
alert("已放弃删除此条数据");
}
}
else{
alert("请选中您要删除的数据!");
}
}

控制器的方法:

 #region 删除补充定额
        public ContentResult DeleteReplenishQuote(int ReplenishQuoteID) {
           // ReplenishQuoteID传给界面层的参数
            int i = myReplenishQuote.DeleteReplenishQuote(ReplenishQuoteID);
             //调用逻辑层的方法
            return Content(i.ToString());
        }
        #endregion

逻辑层的方法
 #region 删除补充定额
                 public int DeleteReplenishQuote(int ReplenishQuoteID) {
                     SqlParameter[] mySqlParameter ={
                                                        new SqlParameter ("@Type",SqlDbType.Char),
                                                        new SqlParameter ("@ReplenishQuoteID",SqlDbType.Int),
                                                    
                                                    };
                     mySqlParameter[0].Value = "DeleteReplenishQuote";
                     //和数据层的存储过程名对应
                     mySqlParameter[1].Value = ReplenishQuoteID;
                     int i = myDALPublic.DAL_OPTableDB_Par("ReplenishQuote", mySqlParameter);
                     return i;
                     //返回数据给控制器

                                                    
                 }
        #endregion

数据层的SQL删除语句:

--删除补充定额
	if @Type='DeleteReplenishQuote'
	begin
	   delete  SYS_ReplenishQuoteList
	   where ReplenishQuoteID=@ReplenishQuoteID
	end

3.10-3.1.1.3 复制

(1)对现有的补充定额进行复制:

凯云水利水电工程造价系统 (五) 补充定额

(图 6)
//复制补充定额
        var QuoteNumber="";
        var Name="";
        var Unit="";
        //声明全局变量,用于粘贴功能
        var fuzhi=0;
        function CopyReplenishQuote(){
            var ReplenishQuote=$('#w补充定额').datagrid('getSelected');
              //选中你要复制的一行
            if(ReplenishQuote){
              //只有选中了,才能执行下面的代码
                if(confirm('是否要复制此条数据?')){
                //确认是否复制
              fuzhi=1;
                 QuoteNumber= ReplenishQuote.QuoteNumber.trim();
                 Name=ReplenishQuote.Name;
                 Unit=ReplenishQuote.Unit;
                  //获取你要复制的数据
                 alert("复制成功!");
                 }
                 else{
                   alert("您已放弃复制此条数据!");
                 }
            } 
            else{
              alert("亲,请选中要复制的数据!");
            } 
        }

3.10-3.1.1.4 粘贴

(1)复制成功之后,就点击粘贴按钮:

凯云水利水电工程造价系统 (五) 补充定额

(图 7)
点击粘贴按钮,所触发的界面层的方法的代码:

 //粘贴补充定额
        function PasteReplenishQuote(){
             var ReplenishQuote=$('#w补充定额').datagrid('getSelected');
             var y=QuoteNumber;
             var t=y.length;
             var e=y.substring(t-2,t);
             var tr=QuoteNumber+"_复制";
             var i=tr.length;
             var d=tr.substring(i-3,i);
             if(fuzhi==1){
             if(ReplenishQuote){
                if(confirm('是否需要粘贴此条数据?')){
                   if(e=="_复制"){
                      var code=tr+"-_复制";
                         $.getJSON("/BuChongDingE/InsertReplenishQuote?BuildProjectID="+@Session["项目ID"]+"&"
                                 +"QuoteNumber="+code+"&"
                                 +"Name="+Name+"&"
                                 +"Unit="+Unit,
                                 function(data){
                                    if(data>0){
                                       $.getJSON("/BuChongDingE/SelectedReplenishQuote?BuildProjectID="+@Session["项目ID"],
                                  function(data){
                                     $('#w补充定额').datagrid('loadData', data);
                                     alert("粘贴成功!");
                                   
                                  }
                                 );
                                    }
                                 });
 
                   } 
                      else{
                             $.getJSON("/BuChongDingE/InsertReplenishQuote?BuildProjectID="+@Session["项目ID"]+"&"
                                 +"QuoteNumber="+tr+"&"
                                +"Name="+Name+"&"
                                 +"Unit="+Unit,
                                 function(data){
                                    if(data>0){
                                       $.getJSON("/BuChongDingE/SelectedReplenishQuote?BuildProjectID="+@Session["项目ID"],
                                  function(data){
                                     $('#w补充定额').datagrid('loadData', data);
                                     alert("粘贴成功!");
                                    
                                  }
                                 );
                                    }
                                 });
                   
                   }
                }
                else{
                  alert("已放弃粘贴数据!");
                }
             }
             else{
            alert("亲,请先复制数据");
             }
             }else{
             alert("请先复制!");
             }
        }

凯云水利水电工程造价系统 (五) 补充定额

 

(图 8)

粘贴其实就是新增补充定额,所粘贴的数据就是新增的数据,所有控制器、逻辑层的方法就是引用的添加补充定额的方法:

3.10-3.1.1.5 导出
凯云水利水电工程造价系统 (五) 补充定额
(图 9)

点击导出,所触发的界面层的方法:

function daoru() {

                       window.location.href = "/BuChongDingE/DownloadFile?BuildProjectID="+@Session["项目ID"];
                      }

控制器的方法:

#region 导出配合比单价
        public FileResult DownloadFile(int BuildProjectID)
        {
            DataSet ds = new DataSet();
            DataTable dt = myReplenishQuote.SelectedReplenishQuote(BuildProjectID);
            //调用逻辑层的查询补充定额的方法

            NPOI.HSSF.UserModel.HSSFWorkbook book = new NPOI.HSSF.UserModel.HSSFWorkbook();
            NPOI.SS.UserModel.ISheet sheet1 = book.CreateSheet("Sheet1");

            NPOI.SS.UserModel.IRow row1 = sheet1.CreateRow(0);
            for (int i = 0; i < dt.Columns.Count; i++)
            {
                row1.CreateCell(i).SetCellValue(dt.Columns[i].ColumnName);
            }
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                NPOI.SS.UserModel.IRow rowtemp = sheet1.CreateRow(i + 1);
                for (int j = 0; j < dt.Columns.Count; j++)
                {
                    rowtemp.CreateCell(j).SetCellValue(dt.Rows[i][j].ToString().Trim());

                }
            }

            System.IO.MemoryStream ms = new System.IO.MemoryStream();
            book.Write(ms);
            ms.Seek(0, SeekOrigin.Begin);
            return File(ms, "application/vnd.ms-excel", "导出.xls");

        }
        #endregion

凯云水利水电工程造价系统 (五) 补充定额

(图 10)

3.10-3.1.1.6 导入

(1)导入数据,点击导入按钮之前,要先选择文件:

凯云水利水电工程造价系统 (五) 补充定额

(图 11)

凯云水利水电工程造价系统 (五) 补充定额

(图 12)

界面层的代码:

<form action="/BuChongDingE/GetTableFromExcel" method="post"  enctype="multipart/form-data">
                       
                        <text>选择上传文件</text>
                        <input name="file1" type="file" id="file" />
                        <input type="submit" name="Upload" value="导入" />
                      
   </form>

控制器的代码:

 #region 导入
        public ActionResult GetTableFromExcel()
        {
            try
            {
                HttpPostedFileBase fostField = Request.Files["file1"];
                Stream streamfile = fostField.InputStream;

                HSSFWorkbook hssfworkbook = new HSSFWorkbook(streamfile);
                using (NPOI.SS.UserModel.ISheet sheet = hssfworkbook.GetSheetAt(0))
                {
                    DataTable table = new DataTable();
                    IRow headerRow = sheet.GetRow(0);
                    int cellCount = headerRow.LastCellNum;
                    int rowCount = sheet.LastRowNum;

                    for (int i = headerRow.FirstCellNum; i < cellCount; i++)
                    {
                        DataColumn column = new DataColumn(headerRow.GetCell(i).StringCellValue);
                        table.Columns.Add(column);
                    }
                    for (int i = (sheet.FirstRowNum + 1); i <= rowCount; i++)
                    {
                        IRow row = sheet.GetRow(i);
                        DataRow dataRow = table.NewRow();

                        if (row != null)
                        {
                            for (int j = row.FirstCellNum; j < cellCount; j++)
                            {
                                if (row.GetCell(j) != null)
                                    dataRow[j] = GetCellValue(row.GetCell(j));

                            }
                        }
                        table.Rows.Add(dataRow);

                    }
                    for (int i = 0; i < table.Rows.Count; i++)
                    {


                        myReplenishQuote.InsertReplenishQuote(Convert.ToInt32(table.Rows[i][0]), table.Rows[i][1].ToString(), table.Rows[i][2].ToString(), table.Rows[i][3].ToString());
//调用逻辑层的新增方法

                    }
                }
                return Content("");
            }
            catch {
                return Content("");
            }
        }


        private static string GetCellValue(ICell cell)
        {
            if (cell == null)
                return string.Empty;
            switch (cell.CellType)
            {
                case CellType.BLANK:
                    return string.Empty;
                case CellType.BOOLEAN:
                    return cell.BooleanCellValue.ToString();
                case CellType.ERROR:
                    return cell.ErrorCellValue.ToString();
                case CellType.NUMERIC:
                case CellType.Unknown:
                default:
                    return cell.ToString();
                case CellType.FORMULA:
                    try
                    {
                        HSSFFormulaEvaluator e = new HSSFFormulaEvaluator(cell.Sheet.Workbook);
                        e.EvaluateFormulaCell(cell);
                        return cell.ToString();
                    }
                    catch
                    {
                        return cell.NumericCellValue.ToString();
                    }

            }
        }
        #endregion

逻辑层的方法:

#region 新增补充定额
public int InsertReplenishQuote(int BuildProjectID,string QuoteNumber, string Name,string Unit) {
SqlParameter[] mySqlParameter = {
new SqlParameter("@Type",SqlDbType.Char),
new SqlParameter ("@BuildProjectID",SqlDbType.Int),
new SqlParameter("@QuoteNumber",SqlDbType.Char),
new SqlParameter ("@Name",SqlDbType.Char),
new SqlParameter ("@Unit",SqlDbType.Char),
};
mySqlParameter[0].Value = "InsertReplenishQuote";
mySqlParameter[1].Value = BuildProjectID;
mySqlParameter[2].Value = QuoteNumber;
mySqlParameter[3].Value = Name;
mySqlParameter[4].Value = Unit;
int i = myDALPublic.DAL_OPTableDB_Par("ReplenishQuote",mySqlParameter);
return i;
//返回数据给控制器

}
#endregion

3.10-3.1.2 定额人材机组成
3.10-3.1.2.1 添加

点击添加按钮,出现添加添加定额人材机组成的窗体:

凯云水利水电工程造价系统 (五) 补充定额

(图 13)

出现选择组成的窗体后,选择各个列表的数据,进行添加:

凯云水利水电工程造价系统 (五) 补充定额

(图 14)

所触发的方法:

//点击机械列表

       
       var gg=0;
       function onClickRowmachinery(){
             
               
     
             var d= $('#inquiremachinery').datagrid('getSelected');
            //选中机械列表的数据
             var e=$('#w定额人材机组成').datagrid('getData');
           //获取定额人材机的所有的数据
             for(var j=0;j<e.rows.length;j++){
               //循环查出来的数据
             if( d.Code.trim()==e.rows[j]["Number"].trim())
             { 
                 //不能软件相同的数据,对它们的代号进行判断,如果代号相同,就gg=1
                   gg=1; 
                
              }
                 else
                 {
                
                   }

       }
       if(gg!=1){
     //当gg不等于1的时候,才能知晓下面的代码
           gg=0;
             d.Code;
             d.Name;
             d.Unit;
             d.BudgetPrice;
             d.Remark;
           d.MachineryPriceID;
             var f = $('#nihao').datagrid('getData');
               
              $('#nihao').datagrid("insertRow", {
                index: f.rows.length,
                 row: {}
               });
              $('#nihao').datagrid('selectRow',  f.rows.length-1);

             $('#nihao').datagrid('getData').rows[f.rows.length-1]["daihao"]=d.Code;
             $('#nihao').datagrid('getData').rows[f.rows.length-1]["mingcheng"]=  d.Name;
             $('#nihao').datagrid('getData').rows[f.rows.length-1]["danwei"]=  d.Unit;  
             $('#nihao').datagrid('getData').rows[f.rows.length-1]["MachineryPriceID"]= d.MachineryPriceID;
             $('#nihao').datagrid('getData').rows[f.rows.length-1]["yusuanjiage"]=   d.BudgetPrice;  
             $('#nihao').datagrid('getData').rows[f.rows.length-1]["Remark"]= d.Remark;
             $('#nihao').datagrid('getData').rows[f.rows.length-1]["leixing"]="机械";
             $('#nihao').datagrid('refreshRow',  f.rows.length-1);
       }
         else{
             gg=0;
             alert("已添加此数据,请点击下一条");
         }
       }



           //点击材料列表
       var t=0;
       var p=0;
       var gg="";
       function  onClickRowmaterial(){
               var d= $('#materialunitprice').datagrid('getSelected') ;
                var e=$('#w定额人材机组成').datagrid('getData');
          for(var j=0;j<e.rows.length;j++){
             if( d.Code.trim()==e.rows[j]["Number"].trim()){ 
                   gg=1;
                   
                
                 }else{
                
             }

       }
           if(gg!=1){
           gg=0;
                d.Code;
                d.Name;
                d.Unit;
                d.BuildProjectID;
                d.BudgetPrice;
                d.Remark;
                t = d.MaterialPriceID;
              
               var f= $('#nihao').datagrid('getData') 
               
                 $('#nihao').datagrid("insertRow", {
                index: f.rows.length,
                 row: {}
               });
               $('#nihao').datagrid('selectRow',  f.rows.length-1);
               $('#nihao').datagrid('getData').rows[f.rows.length-1]["daihao"]=d.Code;
               $('#nihao').datagrid('getData').rows[f.rows.length-1]["mingcheng"]=  d.Name;
               $('#nihao').datagrid('getData').rows[f.rows.length-1]["danwei"]=  d.Unit;  
               $('#nihao').datagrid('getData').rows[f.rows.length-1]["MaterialPriceID"]=  d.MaterialPriceID;
               $('#nihao').datagrid('getData').rows[f.rows.length-1]["yusuanjiage"]=   d.BudgetPrice;  
               $('#nihao').datagrid('getData').rows[f.rows.length-1]["Remark"]= d.Remark;
               $('#nihao').datagrid('getData').rows[f.rows.length-1]["leixing"]="材料";
               $('#nihao').datagrid('refreshRow',  f.rows.length-1);

     
       
       }
           else{
           gg=0;
           alert("已添加此数据,请点击下一条");
           }
       }
       

              //点击人工列表
       var t=0;
       var p=0;
       function  onClickRenGongl(){
  
         
               var d= $('#inquiremanualwork').datagrid('getSelected') ;
                d.Name; 
                d.Number;
                d.Unit;
                d.BuildProjectID;
                d.BudgetPrice;
                d.Remark;
                t = d.RenGongDanJiaID;
              
               var f= $('#nihao').datagrid('getData'); 
                 $('#nihao').datagrid("insertRow", {
                    index: f.rows.length,
                    row: {}
               });
               $('#nihao').datagrid('selectRow',  f.rows.length-1);
               $('#nihao').datagrid('getData').rows[f.rows.length-1]["daihao"]=d.Number;
               $('#nihao').datagrid('getData').rows[f.rows.length-1]["mingcheng"]=  d.Name;
               $('#nihao').datagrid('getData').rows[f.rows.length-1]["danwei"]=  d.Unit;  
               $('#nihao').datagrid('getData').rows[f.rows.length-1]["MaterialPriceID"]= d.RenGongDanJiaID;
               $('#nihao').datagrid('getData').rows[f.rows.length-1]["yusuanjiage"]=   d.BudgetPrice;  
               $('#nihao').datagrid('getData').rows[f.rows.length-1]["Remark"]= d.Remark;
                $('#nihao').datagrid('getData').rows[f.rows.length-1]["leixing"]="人工";
               $('#nihao').datagrid('refreshRow',  f.rows.length-1);

       }
       //点击配合比单价
       function OnClickMicPrice(){
       
           var MixProportionPriceID=$('#w配合比').datagrid('getSelected');
          
           MixProportionPriceID.Code;
           MixProportionPriceID.MixProportionPriceName;
           MixProportionPriceID.Unit;
           MixProportionPriceID.Budget;
           MixProportionPriceID.Remark;
           var f=$('#nihao').datagrid('getData');
           $('#nihao').datagrid("insertRow",{
               index:f.rows.length,
               row:{}
           });
                   $('#nihao').datagrid('selectRow',  f.rows.length-1);
               $('#nihao').datagrid('getData').rows[f.rows.length-1]["daihao"]=MixProportionPriceID.Code;
               $('#nihao').datagrid('getData').rows[f.rows.length-1]["mingcheng"]= MixProportionPriceID.MixProportionPriceName;
               $('#nihao').datagrid('getData').rows[f.rows.length-1]["danwei"]= MixProportionPriceID.Unit;  
//             $('#nihao').datagrid('getData').rows[f.rows.length-1]["MaterialPriceID"]= d.RenGongDanJiaID;
               $('#nihao').datagrid('getData').rows[f.rows.length-1]["yusuanjiage"]= MixProportionPriceID.Budget;  
               $('#nihao').datagrid('getData').rows[f.rows.length-1]["Remark"]=MixProportionPriceID.Remark;
                $('#nihao').datagrid('getData').rows[f.rows.length-1]["leixing"]="配合比";
               $('#nihao').datagrid('refreshRow',  f.rows.length-1);

       }

选择好数据之后,进进行添加定额人材机组成了:

凯云水利水电工程造价系统 (五) 补充定额

(图 15)

点击保存按钮

//添加定额人材机组成
function InsertQuoteMachineComepose(){

var ReplenishQuoteID=$('#w补充定额').datagrid('getSelected');
if(ReplenishQuoteID){
//如果选中了补充定额,才执行下面的代码
var QuoteMachineComepose=$('#nihao').datagrid('getData');
//获取要进行添加的所有的数据
for(var i=0;i<QuoteMachineComepose.rows.length;i++){
$.getJSON("/BuChongDingE/InsertQuoteMachineComepose?ReplenishQuoteID="+ReplenishQuoteID.ReplenishQuoteID+"&"
+"Name="+  $('#nihao').datagrid('getData').rows[i]["mingcheng"]+"&"
+"Unit="+$('#nihao').datagrid('getData').rows[i]["danwei"]+"&"
+"Number="+$('#nihao').datagrid('getData').rows[i]["daihao"]+"&"
+"Type="+$('#nihao').datagrid('getData').rows[i]["leixing"],
function(data){
for(var i=0;i<QuoteMachineComepose.rows.length;i++){
$('#nihao').datagrid('deleteRow',i);
}

$('#w添加组成项').window('close');
$.getJSON("/BuChongDingE/OnclickReplenishQuote?ReplenishQuoteID="+ReplenishQuoteID.ReplenishQuoteID,
function(data){
$('#w定额人材机组成').datagrid('loadData', data);
});

});

}
}
else{
alert("请选中补充定额,再进行添加!");
}
}

凯云水利水电工程造价系统 (五) 补充定额

(图 16)

3.10-3.1.2.2  删除

(1) 对定额人材机组成的数据进行删除

凯云水利水电工程造价系统 (五) 补充定额

(图 17)

 界面层的代码:

//删除定额人材机组成
       function DeleteQuoteMachineComepose(){
        var ReplenishQuoteID=$('#w补充定额').datagrid('getSelected');
        var QuoteMachineComeposeID=$('#w定额人材机组成').datagrid('getSelected');
        if(QuoteMachineComeposeID){
           if(confirm('是否需要删除此数据?')){
          $.getJSON("/BuChongDingE/DeleteQuoteMachineComepose?QuoteMachineComeposeID="+QuoteMachineComeposeID.QuoteMachineComeposeID,
          function(data){
          if(data>0){
               
                              $.getJSON("/BuChongDingE/OnclickReplenishQuote?ReplenishQuoteID="+ReplenishQuoteID.ReplenishQuoteID,
                              function(data){
                                 $('#w定额人材机组成').datagrid('loadData', data);
                                            });
                                            alert("删除成功!");
          }
          });
          }
            else{
              alert("您已放弃删除此数据!");
            }
        }
        else{
           alert("请选中要删除的数据");
        }
       }

控制器的代码:

 #region 删除定额人材机组成
        public ContentResult DeleteQuoteMachineComepose(int QuoteMachineComeposeID) {
            int i = myReplenishQuote.DeleteQuoteMachineComepose(QuoteMachineComeposeID);
            return Content(i.ToString());
        }
        #endregion

逻辑层的代码:

 #region  删除定额人材机组成
                 public int DeleteQuoteMachineComepose(int QuoteMachineComeposeID)
                 {
                     SqlParameter[] mySqlParameter = { 
                                                         new SqlParameter ("@Type",SqlDbType.Char),
                                                         new SqlParameter("@QuoteMachineComeposeID",SqlDbType.Int),
                                                     };
                     mySqlParameter[0].Value = "DeleteQuoteMachineComepose";
                     mySqlParameter[1].Value = QuoteMachineComeposeID;
                     int i = myDALPublic.DAL_OPTableDB_Par("ReplenishQuote",mySqlParameter);
                     return i;
                 }
        #endregion

数据层的SQL删除语句:

--删除定额人材机组成
	if @Type='DeleteQuoteMachineComepose'
	begin
	   delete SYS_QuoteMachineComeposeList
	   where QuoteMachineComeposeID=@QuoteMachineComeposeID
	end

3.10-3.1.2.3 替换

(1)对添加好数据,进行替换:

凯云水利水电工程造价系统 (五) 补充定额


(图 18)

凯云水利水电工程造价系统 (五) 补充定额

(图 19)

点击保存按钮:

界面层所触发的方法:

//修改(替换)人材机组成   
function UpdataQuoteMachineComepose(){
var ReplenishQuoteID=$('#w补充定额').datagrid('getSelected');
var QuoteMachineComeposeID=$('#w定额人材机组成').datagrid('getSelected');
var w机械列表=$('#w机械列表').datagrid('getSelected');
var w人工列表=$('#w人工列表').datagrid('getSelected');
var w材料单价=$('#w材料单价').datagrid('getSelected');
var w配合比单价=$('#w配合比单价').datagrid('getSelected');
if(QuoteMachineComeposeID){
if(w机械列表){
$.getJSON("/BuChongDingE/UpdataQuoteMachineComepose?ReplenishQuoteID="+ReplenishQuoteID.ReplenishQuoteID+"&"
+"Name="+w机械列表.Name+"&"
+"Unit="+w机械列表.Unit+"&"
+"Number="+w机械列表.Code+"&"
+"TypeMap="+"机械"+"&"
+"QuoteMachineComeposeID="+QuoteMachineComeposeID.QuoteMachineComeposeID,
function(data){
if(data>0){
$.getJSON("/JiXieDanJia/inquiremachinery",
function (data) {
$('#w机械列表').datagrid('loadData', data);

});
$('#w替换组成项').window('close');
$.getJSON("/BuChongDingE/OnclickReplenishQuote?ReplenishQuoteID="+ReplenishQuoteID.ReplenishQuoteID,
function(data){
$('#w定额人材机组成').datagrid('loadData', data);

});
}
});

}
else{
if(w人工列表){

$.getJSON("/BuChongDingE/UpdataQuoteMachineComepose?ReplenishQuoteID="+ReplenishQuoteID.ReplenishQuoteID+"&"
+"Name="+w人工列表.Name+"&"
+"Unit="+w人工列表.Unit+"&"
+"Number="+w人工列表.Number+"&"
+"TypeMap="+"人工"+"&"
+"QuoteMachineComeposeID="+QuoteMachineComeposeID.QuoteMachineComeposeID,
function(data){
if(data>0){
$.getJSON("/RenGongDanJia/SelectRenGongDanJia/?IntBuildProjectID="+@Session["项目ID"],
function (data) {
$('#w人工列表').datagrid('loadData', data);

});
$('#w替换组成项').window('close');
$.getJSON("/BuChongDingE/OnclickReplenishQuote?ReplenishQuoteID="+ReplenishQuoteID.ReplenishQuoteID,
function(data){
$('#w定额人材机组成').datagrid('loadData', data);

});
}
});

}
else{

if(w材料单价){
$.getJSON("/BuChongDingE/UpdataQuoteMachineComepose?ReplenishQuoteID="+ReplenishQuoteID.ReplenishQuoteID+"&"
+"Name="+w材料单价.Name+"&"
+"Unit="+w材料单价.Unit+"&"
+"Number="+w材料单价.Code+"&"
+"TypeMap="+"材料"+"&"
+"QuoteMachineComeposeID="+QuoteMachineComeposeID.QuoteMachineComeposeID,
function(data){
if(data>0){
$.getJSON("/CaiLiaoDanJia/SelectAllCaiLiao?BuildProjectID="+ @Session["项目ID"],
function(data){
$('#w材料单价').datagrid('loadData', data);

});
$('#w替换组成项').window('close');
$.getJSON("/BuChongDingE/OnclickReplenishQuote?ReplenishQuoteID="+ReplenishQuoteID.ReplenishQuoteID,
function(data){
$('#w定额人材机组成').datagrid('loadData', data);

});
}
});

}
else{
if(w配合比单价){

$.getJSON("/BuChongDingE/UpdataQuoteMachineComepose?ReplenishQuoteID="+ReplenishQuoteID.ReplenishQuoteID+"&"
+"Name="+w配合比单价.MixProportionPriceName+"&"
+"Unit="+w配合比单价.Unit+"&"
+"Number="+w配合比单价.Code+"&"
+"TypeMap="+"配合比"+"&"
+"QuoteMachineComeposeID="+QuoteMachineComeposeID.QuoteMachineComeposeID,
function(data){
if(data>0){
$.getJSON("/PeiHeBiDanJia/BindingMixProportionPrice?BuildProjectID="+@Session["项目ID"],
function(data){
$('#w配合比单价').datagrid('loadData', data);
}
);
$('#w替换组成项').window('close');
$.getJSON("/BuChongDingE/OnclickReplenishQuote?ReplenishQuoteID="+ReplenishQuoteID.ReplenishQuoteID,
function(data){
$('#w定额人材机组成').datagrid('loadData', data);

});
}
});
}

}

}

}


}
else{
alert("请选中要替换的数据");
}

}

控制器所用的方法:

 #region 修改(替换)
        public ContentResult UpdataQuoteMachineComepose(int ReplenishQuoteID, string Name, string Unit, string Number, string TypeMap, int QuoteMachineComeposeID) {
     
            int i = myReplenishQuote.UpdataQuoteMachineComepose(ReplenishQuoteID, Name, Unit, Number, TypeMap, QuoteMachineComeposeID);
          //把界面修改的值通过参数传给逻辑层
            return Content(i.ToString());
         //把值返回给界面
        }
        #endregion

逻辑层所用的方法:

#region 修改(替换)
public int UpdataQuoteMachineComepose(int ReplenishQuoteID, string Name, string Unit, string Number, string TypeMap, int QuoteMachineComeposeID)
{
SqlParameter[] mySqlParameter = {
new SqlParameter("@Type",SqlDbType.Char),
new SqlParameter ("@ReplenishQuoteID",SqlDbType.Int),
new SqlParameter ("@Name",SqlDbType.Char),
new SqlParameter ("@Unit",SqlDbType.Char),
new SqlParameter("@Number",SqlDbType.Char),
new SqlParameter("@TypeMap",SqlDbType.Char),
new SqlParameter("@QuoteMachineComeposeID",SqlDbType.Int),

};
mySqlParameter[0].Value = "UpdataQuoteMachineComepose";
mySqlParameter[1].Value = ReplenishQuoteID;
mySqlParameter[2].Value = Name;
mySqlParameter[3].Value = Unit;
mySqlParameter[4].Value = Number;
mySqlParameter[5].Value = TypeMap;
mySqlParameter[6].Value = QuoteMachineComeposeID;
int i = myDALPublic.DAL_OPTableDB_Par("ReplenishQuote",mySqlParameter);
return i;

数据层所用的SQL修改语句:

 --修改(替换)
     if @Type='UpdataQuoteMachineComepose'
     begin
        update SYS_QuoteMachineComeposeList
        set ReplenishQuoteID=@ReplenishQuoteID, Name=@Name, Unit=@Unit, Number=@Number,TypeMap=@TypeMap
        where QuoteMachineComeposeID=@QuoteMachineComeposeID
     end

凯云水利水电工程造价系统 (五) 补充定额

(图 20)

3.10-3.1.2.4 复制

 (1)选择数据进行复制:

凯云水利水电工程造价系统 (五) 补充定额

(图 21)

 点击复制,所触发的界面层的方法的代码:

  //复制w定额人材机组成
       var StrNumber="";
       var StrName="";
       var StrUnit="";
       var StrTypeMap="";
      //声明全局变量,用于粘贴功能
       var COPY=0;
       function StrCopy(){
         var QuoteMachineComeposeID=$('#w定额人材机组成').datagrid('getSelected');
         //先选中要复制的一行
         if(QuoteMachineComeposeID){
         COPY=1;
         if(confirm('是否需要复制此数据?')){
         StrNumber=QuoteMachineComeposeID.Number.trim();
         StrName=QuoteMachineComeposeID.Name;
         StrUnit=QuoteMachineComeposeID.Unit;
         StrTypeMap=QuoteMachineComeposeID.TypeMap;
      //获取要复制那一行的数据
          alert("复制成功!");
         }
           else{
              alert("已放弃复制此数据!");
           }
         }
         else{
           alert("请选中需要复制的数据");
         }
      
       }

3.10-3.1.2.5 粘贴

(1)复制数据成功之后,就进行粘贴功能:

凯云水利水电工程造价系统 (五) 补充定额

(图 22)

点击粘贴,所触发的界面层的方法:

//粘贴w定额人材机组成
function PasteMachineComepose(){
if(COPY==1){
if(confirm('是否需要粘贴?')){
//先确定是否进行粘贴
var ReplenishQuoteID=$('#w补充定额').datagrid('getSelected');
var QuoteMachineComeposeID=$('#w定额人材机组成').datagrid('getSelected');
var y=StrNumber;
var t=y.length;
var e=y.substring(t-2,t);
var d=StrNumber+"-复制"
var i=d.length;
var f=d.substring(i-3,i);

if(QuoteMachineComeposeID){

if(e=="-复制"){
var Number=d+"_复制";
$.getJSON("/BuChongDingE/InsertQuoteMachineComepose?ReplenishQuoteID="+ReplenishQuoteID.ReplenishQuoteID+"&"
+"Name="+  StrName+"&"
+"Unit="+StrUnit+"&"
+"Number="+Number+"&"
+"Type="+StrTypeMap,
function(data){

$.getJSON("/BuChongDingE/OnclickReplenishQuote?ReplenishQuoteID="+ReplenishQuoteID.ReplenishQuoteID,
function(data){
$('#w定额人材机组成').datagrid('loadData', data);
alert("粘贴成功!数据已经在最后一行");
});

});
}
else{
$.getJSON("/BuChongDingE/InsertQuoteMachineComepose?ReplenishQuoteID="+ReplenishQuoteID.ReplenishQuoteID+"&"
+"Name="+ StrName+"&"
+"Unit="+StrUnit+"&"
+"Number="+d+"&"
+"Type="+StrTypeMap,
function(data){


$.getJSON("/BuChongDingE/OnclickReplenishQuote?ReplenishQuoteID="+ReplenishQuoteID.ReplenishQuoteID,
function(data){
$('#w定额人材机组成').datagrid('loadData', data);
alert("粘贴成功!数据已经在最后一行");
});

});

}


}
else{
alert("请先复制数据!");
}
}
else{
alert("已放弃粘贴!");
}
}
else{
alert("请先复制!");
}

}

凯云水利水电工程造价系统 (五) 补充定额

(图 23)

仅供学习参考,禁止商业用途,否则后果自负!