凯云水利水电工程造价系统 (五) 补充定额
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)填完数据之后,点击添加按钮,进行保存:
所触发的界面层的方法:
//新增补充定额 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)删除补充定额界面层的方法:
//删除补充定额 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)对现有的补充定额进行复制:
//复制补充定额 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)复制成功之后,就点击粘贴按钮:
//粘贴补充定额 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)
点击导出,所触发的界面层的方法:
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)导入数据,点击导入按钮之前,要先选择文件:
(图 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 添加
点击添加按钮,出现添加添加定额人材机组成的窗体:
出现选择组成的窗体后,选择各个列表的数据,进行添加:
所触发的方法:
//点击机械列表 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) 对定额人材机组成的数据进行删除
界面层的代码:
//删除定额人材机组成 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)选择数据进行复制:
点击复制,所触发的界面层的方法的代码: //复制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)复制数据成功之后,就进行粘贴功能:
点击粘贴,所触发的界面层的方法:
//粘贴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)
仅供学习参考,禁止商业用途,否则后果自负!