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

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

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)

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



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
凯云水利水电工程工程量清单计价软件 一、公司介绍 北京凯云创智软件技术有限公司 北京市高新技术软件企业并通过北京市双软认定,主要业务是开发并推广工程造价管理软件及相关行业管理软件,向客户提供与工程造价和施工管理相关的咨询和技术服务,是国内工程造价管理及各行业管理软件并提供相关应用解决方案的主要软件供应商。 二、软件特点 ◇根据水利水电工程的特点和要求研发,可通过软件自动生成安徽省水利水电招投标所需要表格 ◇软件界面友好,简单易用。使用者均可不通过专业培训就可直接应用软件 ◇取费设置及费率标准选择灵活、人工材料机械单价计算简单,单价编制快速准确 ◇系统录入了水利水电行业已颁布全部定额 ◇报表兼容Excel,可充分满足安徽省水利水电工程招投标及预决算的报表要求 ◇网络版适合网络协同作业 ◇软件成熟,客户群广。目前该软件已经广泛用于安徽省水利水电工程几乎所有项目的招投标工作中,主要用户包括:中国水电建设集团及下属各工程局、葛洲坝集团及下属各公司、水电武警部队、中铁及铁建集团以及各省从事安徽省水利水电工程的施工单位。 三、编制依据 安徽省水利水电工程设计概(估)算编制规定 皖水建 (2008)139号 安徽省水利水电建筑工程概预算补充定额(2008年) 水利工程设计概(估)算编制规定(水总[2002]116号) 水电工程设计概算编制规定及费用标准(2007年版) 水利工程工程量清单计价规范(GB 50501—2007) 水电工程工程量清单计价规范(2007) 水电工程设计概算编制办法及计算标准(2002年版) 水利工程建设项目施工招标标底编制指南(办建管 [2003] 120号) 安徽省水利水电建筑工程预算补充定额 其它省市水利水电工程概(估)算编制规定和相关办法 四、定额列表 第一部分 部颁定额 水利建筑工程概算、预算定额(2002年)、水利水电设备安装工程概(预)算定额(1999年) 水土保持工程概算定额(2003年) 水利水电建筑工程预算定额(1986年)、补充定额(1994年)、安装预算定额(1992年) 第二部分 各省(市)水利工程定额 B1)四川(重庆)水利水电工程预算定额(2007年、1997年) B2)重庆市水利水电工程预算定额(2005年) B3)广东省水利水电工程概预算定额(1997、2006年) B4)浙江省水利水电工程预算定额(1998年) B5)福建省水利水电工程预算定额(1997年) B6)新疆自治区水利水电工程预算定额(2005年) B7)山东省水利水电工程预算定额(2002年) B8)陕西省水利水电工程预算定额(2000年) B9)湖南省水利水电工程预算定额(1992年) B10)河北省水利水电工程预算定额(2004年) B11)甘肃省水利水电工程概预算定额(1996年) B12)贵州省水利水电工程预算定额(1990年 2011年) B13)河南省水利水电工程预算定额(2007年) B14)青海省水利水电工程预算定额(1993 2010年) B15)安徽省水利水电建筑工程概预算补充定额(2008年) B16)辽宁省水利水电工程概预算定额(2007年) B17)西藏自治区水利工程定额(2003年) B18)广西自治区水利水电工程概预算定额(2008年) 第三部分 其他定额(按1680元/套(节点)、共12套) □C1)全国统一安装工程预算定额(2000) □C2)全国土地整理开发项目预算定额(2005) □C3)风电场工程概算定额(2007) □C4)全国公路工程预算定额(1992及2007) □C5)水电建筑工程概算定额(2007) □C6)全国统一建筑装饰装修工程消耗量定额(2002) □C7)城市轨道交通工程预算定额(2008) □C8)全国统一市政工程预算定额(1999-2001) □C9)全统建筑工程基础定额(GJD-101-95) □C10)风电场工程概算定额(2011) □C11)国土开发整理预算定额(2012) □C12)山东省土地整理预算定额(2007) 、适用范围 主要适时用于国内大中小各型水利水电工程项目招投标编制 预算 决算等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值