凯云水利水电工程造价系统 (四)配合比单价(2)

3.6-3.1.2 配合比单价明细
3.6-3.1.2.1  添加

(1)添加配合比单价明细,点击添加按钮:

(图 23)

当你单击材料单价中材料列表的一行,数据就会绑定到下面的datagrid中,代码如下:

(图 24)

                    // 添加-点击材料单价var PanDuan=0;function OnClickRowMaterialPrice(){var MaterialPrice=$('#MaterialPrice').datagrid('getSelected');//选中材料单价的一行var PeiHeBiDanJiaMingXi=$('#w配合比明细').datagrid('getData');//获取配合比明细的所有数据for(var j=0;j<PeiHeBiDanJiaMingXi.rows.length;j++){//循环所有数据if(PeiHeBiDanJiaMingXi.rows[j]["Name"].trim()==MaterialPrice.Name){//如果配合比明细的代号等于点击材料单价的代号,则PanDuan=1;PanDuan=1;}else{}}if( PanDuan!=1){//所以,只有PanDuan!=1,才能执行下面的代码PanDuan=0;MaterialPrice.MaterialPriceID;  MaterialPrice.Code;MaterialPrice.Name;MaterialPrice.Unit;MaterialPrice.BudgetPrice;    MaterialPrice.effectivityno;//获取选中材料单价下的数据var d=$('#intCode').datagrid('getData'); $('#intCode').datagrid("insertRow", {index: d.rows.length,row: {}});$('#intCode').datagrid('selectRow',  d.rows.length-1);$('#intCode').datagrid('getData').rows[d.rows.length-1]["materialpriceID"]= MaterialPrice.MaterialPriceID;$('#intCode').datagrid('getData').rows[d.rows.length-1]["code"]=MaterialPrice.Code;$('#intCode').datagrid('getData').rows[d.rows.length-1]["name"]=MaterialPrice.Name;$('#intCode').datagrid('getData').rows[d.rows.length-1]["unit"]=MaterialPrice.Unit;$('#intCode').datagrid('getData').rows[d.rows.length-1]["budgetprice"]=MaterialPrice.BudgetPrice; $('#intCode').datagrid('getData').rows[d.rows.length-1]["effectivityno"]=MaterialPrice.effectivityno;$('#intCode').datagrid('refreshRow', d.rows.length-1);}else{PanDuan=0;alert("不能添加相同的数据,请点击下一行!");}}


(图 25)

选好要添加的材料单价后,就点击左上角的保存按钮,所触发的界面层的方法:

(图 26)

function Save(){var MixProportionPriceID=$('#w配合比单价表').datagrid('getSelected');
//先选中要新增配合比单价的一行
if (MixProportionPriceID){
//如果被选中了,就执行下面的代码
var d=$('#intCode').datagrid('getData');
for(var i=0;i<d.rows.length;i++){$.getJSON("/PeiHeBiDanJia/InsertMixPriceDetail?Code="+$('#intCode').datagrid('getData').rows[i]["code"]+"&"
+"Unit="+$('#intCode').datagrid('getData').rows[i]["unit"]+"&"
+"BudgetPrice="+$('#intCode').datagrid('getData').rows[i]["budgetprice"]+"&"
+"MixProportionPriceID="+MixProportionPriceID.MixProportionPriceID+"&"
+"Total="+"0"+"&"
+"Name="+$('#intCode').datagrid('getData').rows[i]["name"]+"&"
+"QuoteAmout="+"0",
function(data){
for(var i=0;i<d.rows.length;i++){
$('#intCode').datagrid('deleteRow',i);}$('#w添加明细').window('close');
$.getJSON("/PeiHeBiDanJia/OnclickMixProporDetail?MixProportionPriceID="+MixProportionPriceID.MixProportionPriceID,
function(data){$('#w配合比明细').datagrid('loadData', data);
}
);
});
}}
else{
alert("请先选中配合比单价!,再进行添加 !");
}}

把值传到控制器的方法:

#region 新增配合比明细public ContentResult InsertMixPriceDetail(string Code, string Unit, string BudgetPrice, int MixProportionPriceID, string Total, string Name, string QuoteAmout){int i = myMixProportionPrice.InsertMixPriceDetail(Code, Unit, BudgetPrice, MixProportionPriceID, Total, Name, QuoteAmout);return Content(i.ToString());//返回数据给界面层}#endregion

逻辑层的方法:

#region  新增配合比明细
public int InsertMixPriceDetail(string  Code,string Unit,string BudgetPrice,int  MixProportionPriceID,string Total,string Name,string QuoteAmout) {
SqlParameter[] mySqlParameter = {
new SqlParameter("@Type",SqlDbType.Char),
new SqlParameter ("@Code",SqlDbType.Char),
new SqlParameter ("@Unit",SqlDbType.Char),
new SqlParameter ("@BudgetPrice",SqlDbType.Char),
new SqlParameter ("@MixProportionPriceID",SqlDbType.Int),
new SqlParameter ("@Total",SqlDbType.Char),
new SqlParameter ("@Name",SqlDbType.Char),
new SqlParameter ("@QuoteAmout",SqlDbType.Char),
//和数据层中声明的变量名对应
};
mySqlParameter[0].Value = "InsertMixPriceDetail";
//和数据层的存储过程名对应
mySqlParameter[1].Value = Code;
mySqlParameter[2].Value = Unit;
mySqlParameter[3].Value = BudgetPrice;
mySqlParameter[4].Value = MixProportionPriceID;
mySqlParameter[5].Value = Total;
mySqlParameter[6].Value = Name;
mySqlParameter[7].Value = QuoteAmout;
int i = myDALMethod.DAL_OPTableDB_Par("MixProportionPrice",mySqlParameter);
return i;
//返回数据给控制器
}
#endregion

数据层的SQL新增语句:

--新增配合比单价明细if @Type='InsertMixPriceDetail'begininsert  SYS_MixProportionPriceDetailList(Code, Unit, BudgetPrice, MixProportionPriceID, Total, Name, QuoteAmout)values  ( @Code, @Unit,@BudgetPrice, @MixProportionPriceID, @Total, @Name, @QuoteAmout)end

(图 27)

3.6-3.1.2.2 删除

(1)删除配合比单价明细,所触发的界面层大方法:

(图 28)

//删除配合比明细
function DeleteMixProporDetail(){
var MixProportionPriceID=$('#w配合比单价表').datagrid('getSelected');
var  MixProporDetail=$('#w配合比明细').datagrid('getSelected');
//选中要删除的明细if(MixProporDetail){
if(confirm('是否将要删除此条明细?')){
//确认是否要删除
$.getJSON("/PeiHeBiDanJia/DeleteMixPriceDetail?MixProportionPriceDetailID="+MixProporDetail.MixProportionPriceDetailID,
function(data){
if (data>0){
$.getJSON("/PeiHeBiDanJia/OnclickMixProporDetail?MixProportionPriceID="+MixProportionPriceID.MixProportionPriceID,
function(data){$('#w配合比明细').datagrid('loadData', data);
JiSuan();//掉用计算明细的预算单价的总和
//在这里调用原因是,当删除一条明细后,配合比单价的预算单价会自动重新更新}
}
else{
alert("请选中你要删除的数据!");
}
}
function JiSuan(){
var Phb=$('#w配合比单价表').datagrid('getSelected');
var D=0;
var rengongMingXiID = $('#w配合比明细').datagrid('getData');
//获取配合比明细的所有数据
for (var i = 0; i < rengongMingXiID.rows.length; i++)//循环查出的所有数据
{
D += rengongMingXiID.rows[i].Total*1;//循环出总价,然后进行相加
}
$('#YingFuJingE').val(D);
$.getJSON("/PeiHeBiDanJia/Update_MixProportionPriceList?BuildProjectID=" + @Session["项目ID"] + "&"
+ "MixProportionPriceName=" +Phb.MixProportionPriceName + "&"
+ "Code=" +Phb.Code+ "&"
+ "Unit=" + Phb.Unit+ "&"
+ "Remark=" +"暂时没有备注" + "&"
+ "Budget=" +D+"&"
+"MixProportionPriceID="+Phb.MixProportionPriceID ,function (data) {
if (data > 0) {
$.getJSON("/PeiHeBiDanJia/BindingMixProportionPrice?BuildProjectID="+@Session["项目ID"],
function(data){
$('#w配合比单价表').datagrid('loadData', data);
setTimeout(function(){ $('#w配合比单价表').datagrid('selectRow',InDexSs);},500);});} else {}
});}
3.6-3.1.2.3 替换

(1)对于添加好了的配合比明细,可以选中一条进行替换 :

(图 29)

(图 30)

点击保存按钮,进行替换:

(图 31)

所触发的界面层的方法:

//修改配合比单价明细(替换)function Update_MixPriceDetail(){
var row = $('#w配合比单价表').datagrid('getSelected');
//选中配合比单价的一行
var  MixProportionPriceDetailID=$('#w配合比明细').datagrid('getSelected');
//选中要替换配合比明细的一行
var MaterialPrice=$('#MaterialPriceID').datagrid('getSelected');
//选中替换数据的材料列表的数据
if(MixProportionPriceDetailID){
if(MixProportionPriceDetailID.Code.trim()!==MaterialPrice.Code.trim() && MixProportionPriceDetailID.Name.trim()!==MaterialPrice.Name.trim()){
//而且被替换的代号不能相等
$.getJSON("/PeiHeBiDanJia/Update_MixPriceDetail?Code="+MaterialPrice.Code+"&"
+"Unit="+MaterialPrice.Unit+"&"
+"MixProportionPriceID="+row.MixProportionPriceID+"&"
+"BudgetPrice="+MaterialPrice.BudgetPrice+"&"
+"Total="+"0.00"+"&"
+"Name="+MaterialPrice.Name+"&"
+"QuoteAmout="+"0"+"&"
+"MixProportionPriceDetailID="+MixProportionPriceDetailID.MixProportionPriceDetailID,function(data){
if(data>0){
$.getJSON("/PeiHeBiDanJia/OnclickMixProporDetail?MixProportionPriceID="+row.MixProportionPriceID,
function(data){$('#w配合比明细').datagrid('loadData', data);
JiSuan();
});
alert("替换成功!");
$('#w替换').window('close');}
});
}
else{
alert("对不起!数据相同,不能替换");
}
}
else{
alert("请选中要替换的数据!");
}}

替换其实就是一个修改功能,控制器、逻辑层就按照修改的方法来写

3.6-3.1.2..4 复制

(图 32)

界面层的方法:

//复制配合比明细
var daihao="";
var Unit="";
var CopyBudgetPrice="";
var CopyMixProportionPriceID="";
var CopyTotal="";
var CopyName="";
var CopyQuoteAmout="";
//声明全局变量,用于粘贴
var COPY=0
function CopyMixProporDetail(){
var d=$('#w配合比明细').datagrid('getSelected');
//选中要复制那一行的数据
var MixProportionPriceID=$('#w配合比单价表').datagrid('getSelected');
if(d){
COPY=1;
if(confirm('是否需要复制这条数据?')){
//确认是否要进行复制
daihao=d.Code.trim();
Unit=d.Unit;
CopyBudgetPrice=d.BudgetPrice;
CopyMixProportionPriceID=MixProportionPriceID.MixProportionPriceID;
CopyTotal=d.Total;
CopyName=d.Name;
CopyQuoteAmout=d.QuoteAmout;
//获取要复制那一行的数据,并把它赋值给声明的全局变量
alert("复制成功!");
}
}
else{
alert("亲,请选中要复制的数据!");
}}
3.6-3.1.2.5 粘贴

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

(图 33)

界面层的方法:

//粘贴配合比明细
function PasteMixProporDetail(){
var MixProportionPriceID=$('#w配合比单价表').datagrid('getSelected');var y=daihao;
var t=y.length;
var e=y.substring(t-2,t);
var tr=daihao+"_复制";
var i=tr.length;
var d=tr.substring(i-3,i);
if(COPY==1){
if(MixProportionPriceID){
if (confirm('是否需要粘贴?')){
if (e=="_复制"){
var code=tr+"-_复制"$.getJSON("/PeiHeBiDanJia/InsertMixPriceDetail?Code="+code+"&"
+"Unit="+Unit+"&"
+"BudgetPrice="+CopyBudgetPrice+"&"
+"MixProportionPriceID="+CopyMixProportionPriceID+"&"
+"Total="+"0.00"+"&"
+"Name="+CopyName+"&"
+"QuoteAmout="+"0",
function(data){$.getJSON("/PeiHeBiDanJia/OnclickMixProporDetail?MixProportionPriceID="+MixProportionPriceID.MixProportionPriceID,
function(data){$('#w配合比明细').datagrid('loadData', data);
alert("粘贴成功!数据已经在最后一行!");
}
);
//
});
}
else{$.getJSON("/PeiHeBiDanJia/InsertMixPriceDetail?Code="+tr+"&"
+"Unit="+CopyUnit+"&"
+"BudgetPrice="+CopyBudgetPrice+"&"
+"MixProportionPriceID="+CopyMixProportionPriceID+"&"
+"Total="+"0.00"+"&"
+"Name="+CopyName+"&"
+"QuoteAmout="+"0",
function(data){$.getJSON("/PeiHeBiDanJia/OnclickMixProporDetail?MixProportionPriceID="+MixProportionPriceID.MixProportionPriceID,
function(data){$('#w配合比明细').datagrid('loadData', data);
alert("粘贴成功!数据已经在最后一行!");});
});}
}
else{
alert("已放弃粘贴!");
}
}
else{
alert("请先复制!");
}
}
else{
alert("请先复制!");
}
}


(图 34)

3.6-3.1.2.6 计算预算单价

(图 35)

(图 36)

(图 37)

点击一行,当结束编辑的时候,如果这行有值发生了变化,进行计算的方法:

//配合比单价的编辑
var editIndex = undefined;
function onClickRowMingXi(index) {
if (editIndex != index) {
$('#w配合比明细').datagrid('beginEdit', index);
$('#w配合比明细').datagrid('endEdit', editIndex);
editIndex = index;
}
}
//对人工单价的修改(计算)
function onAfterBefore(index,data,dd){var Phb=$('#w配合比单价表').datagrid('getSelected');
var  MixProportionPriceDetailID=$('#w配合比明细').datagrid('getChanges');
//如果配合比单价的一行数据发生改变,就把值赋值给MixProportionPriceDetailID
var PeiHeBiMingXi=$('#w配合比明细').datagrid('getData');
//获取配合比明细的所有数据var d=MixProportionPriceDetailID.length;
//获取选中一行的长度
if(d>0){
//如果d>0,就说明有值发生了改变,就可以执行下面的代码
var PeiHeBiMingXiID=data.MixProportionPriceDetailID;
var Code=data.Code;
var Name=data.Name;
var Unit=data.Unit;
var BudgetPrice=data.BudgetPrice;
var QuoteAmout=data.QuoteAmout;
var Total=data.Total;
var MixPriceID=Phb.MixProportionPriceID;
var Count=(data.QuoteAmout*1)*(data.BudgetPrice*1);
//获取点击一行的数据$.getJSON("/PeiHeBiDanJia/Update_MixPriceDetail?Code="+Code+"&"
+"Unit="+Unit+"&"
+"MixProportionPriceID="+MixPriceID+"&"
+"BudgetPrice="+BudgetPrice+"&"
+"Total="+Count+"&"
+"Name="+Name+"&"
+"QuoteAmout="+QuoteAmout+"&"
+"MixProportionPriceDetailID="+PeiHeBiMingXiID,
function(data){
if(data>0){
$.getJSON("/PeiHeBiDanJia/OnclickMixProporDetail?MixProportionPriceID="+Phb.MixProportionPriceID,
function(data){$('#w配合比明细').datagrid('loadData', data);
Count11();
//调用计算预算单价的方法
$('#YingFuJingE').val(ZongJia);
});}});
}}
function Count11(rowIndex, rowData, changes){var YuSuanDanJia=0;
var PeiHeBiMingXi=$('#w配合比明细').datagrid('getData');for(var j=0;j<PeiHeBiMingXi.rows.length;j++){
YuSuanDanJia+=PeiHeBiMingXi.rows[j].Total*1
}
var Phb=$('#w配合比单价表').datagrid('getSelected');var Code=Phb.Code.trim();
var MixProportionPriceName=Phb.MixProportionPriceName.trim();
var Unit=Phb.Unit.trim();
var Remark=Phb.Remark;
$.getJSON("/PeiHeBiDanJia/Update_MixProportionPriceList?BuildProjectID=" + @Session["项目ID"] + "&"
+ "MixProportionPriceName=" + MixProportionPriceName + "&"
+ "Code=" +Code + "&"
+ "Unit=" + Unit+ "&"
+ "Remark=" +Remark + "&"
+ "Budget=" +YuSuanDanJia+"&"
+"MixProportionPriceID="+Phb.MixProportionPriceID ,function (data) {
if (data > 0) {$.getJSON("/PeiHeBiDanJia/BindingMixProportionPrice?BuildProjectID="+@Session["项目ID"],
function(data){
$('#w配合比单价表').datagrid('loadData', data);
$('#YingFuJingE').val(YuSuanDanJia);setTimeout(function(){ $('#w配合比单价表').datagrid('selectRow',InDexSs);},500);});} else {}
});}

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

凯云水利水电工程造价系统 (四)配合比单价(2)相关推荐

  1. 凯云水利水电工程造价系统 (四) 配合比单价模块

    凯云水利水电工程造价系统  (四) 配合比单价模块 3.6-1功能实现 配合比单价的数据处理有:添加.批量修改.从定额导入.删除.复制.粘贴.导入.导出. 配合比单价的添加.批量修改.删除:点击添加会 ...

  2. 凯云水利水电工程造价系统 (三) 材料单价 (2)

    凯云水利水电工程造价系统 (二) 材料单价 (2) 接着上一篇的材料单价 (1) 3.4-3.2.2.2修改 (1)当点击材料单价的修改按钮时,就会弹出修改材料单价的窗体: (图 1) (2)修改之前 ...

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

    凯云水利水电工程造价系统 (五) 补充定额 3.10 功能9名称:补充定额 3.10-1 功能实现 补充定额数据的处理:添加.删除.复制.粘贴.导入.导出 补充定额的添加,删除:击添加会出现一个窗体, ...

  4. 凯云水利水电工程造价管理系统 技术解释(十三) 中间单价(四)

    中间单价 功能实现 中间单价包含三个部分:一个是中间单价列表,一个是中间单价定额组成表,一个是中间单价定额人材机组成表,中间单价列表,你可以对其进行新增,删除和修改.当点击时,点击添加会在datagr ...

  5. 凯云水利水电工程造价管理系统 技术解析(四)取费管理(一)

    取费管理 3.7-1 功能实现 取费管理的数据处理主要有:添加.删除.复制.粘贴.导出.导入 取费管理的添加,会弹出一个窗体,里面只有取费分类列表名,而其它的字段可以双击列名为名称和单位那两列时,会弹 ...

  6. 凯云水利水电工程造价管理系统 技术解析(七) 机械单价(二)

    机械单价 功能实现: 机械单价包含三个部分:一个是机械单价分类,一个是机械单价,一个是机械单价明细.机械分类的是一个下拉树,可以对其进行新增,删除和修改它的节点.当点击机械分类时,机械单价会出现相应的 ...

  7. 凯云水利水电造价工程系统 (三) 材料单价模块(1)

    凯云水利水电造价工程系统 (三)  材料单价模块(新增) 3.3-3模块功能的具体实现 3.4功能4名称:材料单价 3.4-1功能实现 材料单价包含两个部分:一个是材料分类,一个是材料单价.材料分类的 ...

  8. 水利水电工程管理与实务电子版习题_水利水电工程管理与实务复习题集

    内容概要 为了帮助全国二级建造师执业资格考试水利水电专业应考人员进一步理解考试大纲和考试用书,加深对考点和知识点的理解和掌握,提高复习效率,巩固复习效果,提高应考人员的解题能力,本书编委会依据< ...

  9. 水利水电工程与计算机技术应用,水利水电施工中计算机的应用

    摘要:近几年来,我国的经济与科技的发展十分迅速,很多行业都相应的使用了电子技术与计算机技术,这两项技术不仅是给各行业的研究带来了很重要的作用,也给该行业的发展起到了非常重要的作用.在水利水电的施工工程 ...

最新文章

  1. C Tester Doer Pattern
  2. mysql安装 ---简单实用
  3. 2019 ACOUG China Tour-北京站3.23与您相约!
  4. Slim 框架源码解读
  5. CentOS6.8安装oracle11gR2
  6. Python基本语法(快速入门)
  7. Hadoop大数据开发基础课后答案
  8. 谷歌地球(Google Earth) 7.3.2.5776
  9. Android与Windows Socket通信,TLS双向认证
  10. ILSVRC2012数据集介绍
  11. Raid5数据恢复算法原理- raid5数据恢复案例
  12. PNG图片压缩对比分析
  13. Mac外接显示器问题解决
  14. 小程序页面onload(),onready()加载顺序
  15. nginx配置访问白名单
  16. hp笔记本无线网服务器,惠普电脑连不上无线网该怎么办
  17. #include指令引号与尖括号的区别
  18. IP通信中音频编解码技术与抗丢包技术概要
  19. 夜来风雨声,Python协程知多少
  20. 4.2 线性方程组有解判断

热门文章

  1. Pandas+Pyecharts | 20000+天猫订单数据可视化
  2. F - Construct Highway
  3. __attribute__作用
  4. ThinkPHP5整合阿里云oss
  5. 2020知道走进故宫答案-----【快捷查询】
  6. 数据流挖掘_Flajolet-Martin算法
  7. unity3d 常见图形/音频制作软件
  8. [转载]chrome中非https无法打开摄像头
  9. sql server 将日期时间转为中文大写日期
  10. python正则匹配日期2019-03-11_Python正则表达式匹配日期与时间的方法