项目属性
//下面就是点击确定后就把值付给单价统调系数
//下面就是弹出那个窗体的HTML代码
<div id="w调整系数" title="设置高程系数" class="easyui-window" style="width:500px;height:500px;padding:0px">
<table style="width:480px;height:100px">
<tr style="width:490px;height:30px" >
<td style="padding:0px">选择高程系数</td>
</tr>
<tr style="width:480px;height:70px;left:20px;">
<td class='indent4'>海拔高于2000m的地区,根究水利枢纽工程所在地的海拔高程确定的调整系数计算。海拔高程以拦河坝或水闸顶的海拔高程为准,没有拦河坝或水闸的,以进水口或厂房顶的海拔高程为准。</td>
</tr>
</table>
<table id="tiaozhengxishu" class="easyui-datagrid" style="width:480px;height:300px" data-options="singleSelect:true" >
<thead>
<tr>
<th data-options="field:'AdjustFactorID',width:10,hidden:true, align:'center'">导入材料单价计算公式</th>
<th data-options="field:'Number',width:75, align:'center'">编号</th>
<th data-options="field:'ManpowerFactor',width:75, align:'center'">人工系数</th>
<th data-options="field:'MaterialFacto',width:75, align:'center'">材料系数</th>
<th data-options="field:'MachineFactor',width:75, align:'center'">机械系数</th>
<th data-options="field:'Remark',width:152, align:'center'">备注</th>
</tr>
</thead>
</table>
<table>
<tr style="padding-left:300px">
<td><a οnclick="adjustconfirm()" ><input type="submit" value="确定"/></a></td>
<td><a><input type="submit" value="取消"/></a></td>
</tr>
</table>
</div>
//下面就是赋值给统调系数的代码
function adjustconfirm(){
var tiaozhengxishu = $('#tiaozhengxishu').datagrid('getSelected');//这就是选中哪一行
var Number = tiaozhengxishu.Number.trim();
var ManpowerFactor= tiaozhengxishu.ManpowerFactor.trim();获取选中那一行里面的值
var MaterialFacto = tiaozhengxishu.MaterialFacto.trim();
var MachineFactor = tiaozhengxishu.MachineFactor.trim();
var Remark = tiaozhengxishu.Remark.trim();
$('#TXTManpowerFactor').val(ManpowerFactor);//这就是把值付给人工系数
$('#TXTMaterialFacto').val(MaterialFacto);//这就是把值付给材料系数
$('#TXTMachineFactor').val(MachineFactor);这就是把值付给机械系数
$('#w调整系数').window('close');//付完值就把窗体给关闭
}
//下面就是设置计算公式
//下面就是弹出一个窗体的html代码:
<div id="w材料单价组成项" class="easyui-window" title="Basic Window" data-options="iconCls:'icon-save'" style="width:450px;height:470px;padding:10px;">
<div style="width:410px;height:35% " >
<fieldset>
<legend>材料单价组成项</legend>
<table>
<tr>
<td>
<table id="TXTmaterialconstitute" class="easyui-datagrid" style="width:300%;height:300%"
data-options="singleSelect:true,collapsible:true,onClickRow:onClickRowMingXi,onAfterEdit:onAfterEdit">
<thead>
<tr>
<th data-options="field:'InventoryCountUnitIName',width:80,editor:'text'">名称</th>
<th data-options="field:'Remark',width:100,editor:'text'">单位</th>
</tr>
</thead>
</table>
</td>
<td>
<a οnclick="upmove()" class="easyui-linkbutton" >上移 </a><br /><br />
<a οnclick="belowmove()" class="easyui-linkbutton" >下移</a><br /><br />
<a οnclick="increase()" class="easyui-linkbutton">增加</a><br /><br />
<a οnclick="deleteproject()" class="easyui-linkbutton" >删除</a><br /><br />
<a οnclick="tolead()"class="easyui-linkbutton" >导入</a><br /><br />
</td>
</tr>
</table>
</fieldset>
设置单价的计算公式<br />
<input id="gongshi1" style="width:50%"/><a οnclick="open1()" class="easyui-linkbutton" >...</a><br />
<a οnclick="confirmformula()" class="easyui-linkbutton">确定</a>
<a οnclick="tuichu" class="easyui-linkbutton"> 退出 </a>
</div>
</div>
//注释:这里做的上移下移就是把两条数据进行修改
第一步:下面就是上移、下移,存储过程的代码;
第二步:
//再下面就到了逻辑层
//上移、下移
public int Updateinventory(int InventoryCountUnitID, string InventoryCountUnitIName, string Remark)
{
SqlParameter[] mySQL = {
new SqlParameter("@InventoryCountUnitID",SqlDbType.Int),
new SqlParameter("@type",SqlDbType.Char),
new SqlParameter("@InventoryCountUnitIName",SqlDbType.Char),
int i = nihao.DAL_OPTableDB_Par("XianMuShuXing", mySQL);
new SqlParameter("@Remark",SqlDbType.Char),
};
mySQL[0].Value = "updateqingdan";
mySQL[1].Value = InventoryCountUnitID;
mySQL[2].Value = InventoryCountUnitIName;
mySQL[3].Value = Remark;
return i;
}
第三步:
//然后就到了控制器的代码;
上移,下移
public ContentResult Updateinventory(string InventoryCountUnitID, string InventoryCountUnitIName, string Remark)
{
int i = xiangmushuxing.Updateinventory(Convert.ToInt32(InventoryCountUnitID), InventoryCountUnitIName, Remark);
string k = i.ToString();
return Content(k);
}
第四步: //到界面层上移、下移
var ww="";
function onClickRowMingXi(index,data,dd) {
ww =index;
if (editIndex != index) {
$('#TXTmaterialconstitute').datagrid('endEdit', editIndex);
$('#TXTmaterialconstitute').datagrid('beginEdit', index);
editIndex = index;
}
//上移
function upmove(){
var i =ww-1;//索引-1就是找出上一项
var xishu = $('#TXTmaterialconstitute').datagrid('getData');//这是获取表里所有数据
var InventoryCountUnitID(当前)=xishu.rows[ww].InventoryCountUnitID;//获取选中那一项里面InventoryCountUnitID值
var InventoryCountUnitIName(当前) = xishu.rows[ww].InventoryCountUnitIName; 获取选中那一项里面InventoryCountUnitIName值
var Remark(当前) = xishu.rows[ww].Remark; 获取选中那一项里面Remark值
var InventoryCountUnitID1(上一项)=xishu.rows[ww-1].InventoryCountUnitID;// 获取上一项里面InventoryCountUnitID值
var InventoryCountUnitIName1(上一项) = xishu.rows[ww-1].InventoryCountUnitIName;/// 获取上一项里面InventoryCountUnitIName值
var Remark1(上一项) = xishu.rows[ww-1].Remark; //获取上一项里面Remark值
//修改的时候就是把它们两项的值互换
$.getJSON("/XiangMuShuXing/Updateinventory?InventoryCountUnitID="+InventoryCountUnitID(当前)+"&"
+ "InventoryCountUnitIName="+ InventoryCountUnitIName1(上一项)+"&"
+"Remark=" + Remark1(上一项) + "&"
,
function(data){
gg();//这是调用了一个查询的方法
});
$.getJSON("/XiangMuShuXing/Updateinventory?InventoryCountUnitID="+InventoryCountUnitID1(上一项)+"&"
+ "InventoryCountUnitIName="+ InventoryCountUnitIName(当前)+"&"
+"Remark=" + Remark (当前)+ "&"
,
function(data){
gg();
});
}
//就是调用这个方法
function gg(){
$.getJSON("/XiangMuShuXing/Selectinventorydetailed/",
function(data){
$('#TabInventoryCountUnitIName').datagrid('loadData', data);
$('#TXTmaterialconstitute').datagrid('loadData',data);
});
}
//下移
function belowmove(){
var i =ww+1;//索引+1就是找出下一项
var xishu = $('#TXTmaterialconstitute').datagrid('getData');//这是获取表里的所用数据
var InventoryCountUnitID1=xishu.rows[ww].InventoryCountUnitID;
var InventoryCountUnitIName1 = xishu.rows[ww].InventoryCountUnitIName;
var Remark1 = xishu.rows[ww].Remark;
var InventoryCountUnitID=xishu.rows[ww+1].InventoryCountUnitID;
var InventoryCountUnitIName = xishu.rows[ww+1].InventoryCountUnitIName;
var Remark = xishu.rows[ww+1].Remark;
$.getJSON("/XiangMuShuXing/Updateinventory?InventoryCountUnitID="+InventoryCountUnitID1+"&"
+ "InventoryCountUnitIName="+ InventoryCountUnitIName+"&"
+"Remark=" + Remark + "&"
,
function(data){
gg();
});
$.getJSON("/XiangMuShuXing/Updateinventory?InventoryCountUnitID="+InventoryCountUnitID+"&"
+ "InventoryCountUnitIName="+ InventoryCountUnitIName1+"&"
+"Remark=" + Remark1 + "&"
,
function(data){
gg();
});
}
//新增按钮
第一步: //下面就是新增的存储过程
第二步:
//新增、再到逻辑层
public int Insertinventory(string InventoryCountUnitIName, string Remark)
{
SqlParameter[] mySQL = {
new SqlParameter("@type",SqlDbType.Char),
new SqlParameter("@InventoryCountUnitIName",SqlDbType.Char),
new SqlParameter("@Remark",SqlDbType.Char),
};
mySQL[0].Value = "insertqingdan";
mySQL[1].Value = InventoryCountUnitIName;
mySQL[2].Value = Remark;
int i = nihao.DAL_OPTableDB_Par("XianMuShuXing", mySQL);
return i;
}
第三步:
//然后就到控制器
public ContentResult Insertinventory(string InventoryCountUnitIName, string Remark)
{
int i = xiangmushuxing.Insertinventory(InventoryCountUnitIName, Remark);
string k = i.ToString();
return Content(k);
}
第四步:就到界面层 function increase(){
$.getJSON("/XiangMuShuXing/Insertinventory?InventoryCountUnitIName="+"(没命名)"+"&"
+"Remark=" + "" + "&",
function(data){
gg();
});
}
//增加完一行数据就要对这一行数据进行编制修改了
//结束编制后立马执行,onAfterEdit这方法的启动是写在html代码里面的
function onAfterEdit(index,data,dd){
var InventoryCountUnitID=data.InventoryCountUnitID;//这就是获取结束的那一行的主键InventoryCountUnitID
var InventoryCountUnitIName = data.InventoryCountUnitIName.trim();这就是获取结束的那一行的InventoryCountUnitIName
var Remark= data.Remark.trim();这就是获取结束的那一行的Remark
$.getJSON("/XiangMuShuXing/Updateinventory?InventoryCountUnitID="+InventoryCountUnitID+"&"//这是它的主键ID
+ "InventoryCountUnitIName="+ InventoryCountUnitIName+"&"
+"Remark=" + Remark + "&"
,
function(data){
});
}
第二步:
//结束编织后控制器的值
第三步:
public ContentResult Updateinventory(string InventoryCountUnitID, string InventoryCountUnitIName, string Remark)
{
int i = xiangmushuxing.Updateinventory(Convert.ToInt32(InventoryCountUnitID), InventoryCountUnitIName, Remark);
string k = i.ToString();
return Content(k);
}
第三步:
//结束编织后逻辑层的代码
public int Updateinventory(int InventoryCountUnitID, string InventoryCountUnitIName, string Remark)
{
SqlParameter[] mySQL = {
new SqlParameter("@type",SqlDbType.Char),
new SqlParameter("@InventoryCountUnitID",SqlDbType.Int),
new SqlParameter("@InventoryCountUnitIName",SqlDbType.Char),
new SqlParameter("@Remark",SqlDbType.Char),
};
mySQL[0].Value = "updateqingdan";
mySQL[1].Value = InventoryCountUnitID;
mySQL[2].Value = InventoryCountUnitIName;
mySQL[3].Value = Remark;
int i = nihao.DAL_OPTableDB_Par("XianMuShuXing", mySQL);
return i;
}
第四步:
// 结束编制存储过程的代码
//再下来就是删去按钮的·代码
第一步: //下面是删去的存储过程的代码
第二步:
//再到逻辑层
public int deleteproject(int InventoryCountUnitID)
{
SqlParameter[] mySQL = {
new SqlParameter("@type",SqlDbType.Char),
new SqlParameter("@InventoryCountUnitID",SqlDbType.Int),
};
mySQL[0].Value = "DeleteXiangMu";//这类型一定要对应存储过程里面的@type类型
mySQL[1].Value = InventoryCountUnitID;
int i = nihao.DAL_OPTableDB_Par("XianMuShuXing", mySQL); //XianMuShuXing这就是存储过程名
return i;
}
第三步:
//然后就到控制器
public ContentResult deleteproject(string InventoryCountUnitID)
{
int i = xiangmushuxing.deleteproject(Convert.ToInt32(InventoryCountUnitID));
string k = i.ToString();//i就是删去成功从数据库返回的一个1,失败就返回一个0或-1
return Content(k);//通过返回的1、0.-1、我们可以在界面判断它是否修改成功
}
第四步:
//最后就到界面层
function deleteproject(){
if (confirm('是否删除项目?')) { // confirm()这是一个删去前给人看的一个系统提示方法
$.getJSON("/XiangMuShuXing/deleteproject?InventoryCountUnitID="+zuchengxiangID,
function (data) {
if (data > 0) {//这就可一通过从控制器返回的值来判断它是否大于0,如果大于0就删去成功,否则失败
alert("删除成功!");
$('#TXTmaterialconstitute').datagrid('deleteRow', editIndex);//这是一个表面的删去方法,不删数据库
}
else { alert("删除失败") }
});
}
else { alert("请选择要删除的项目") }
}
//下面就是导入按钮
//点击导入按钮它会弹出一个窗体,里面有系统默认的计算公式
//下面就是双击datagrid赋值给文本的界面代码
<div id="w导入材料单价计算公式" title="导入材料单价计算公式" class="easyui-window" style="width:500px;height:470px;padding:0px">
<table id="TBLToLeadMaterialPrice" data-options="singleSelect:true,onDblClickRow:toleadmaterial" class="easyui-datagrid" style="e:450px;height:340px">
<thead>
<tr>
<th data-options="field:'ToLeadMaterialPriceCountID',width:10,hidden:true, align:'center'">导入材料单价计算公式</th>
<th data-options="field:'Classify',width:75, align:'center'">分类</th>
<th data-options="field:'Furmula',width:345, align:'center'">公式</th>
</tr>
</thead>
</table>
<table>
<tr><td>材料单价计算公式</td></tr>
</table>
<textarea id="TEXToLeadMaterialPriceCountID"style="width:450px;height:50px" cols="20" rows="2"></textarea>
</table>
<table>
<tr>
<td><a class="easyui-linkbutton" οnclick="toleadconfirm()" style="width:50px" >确定</a></td>
<td><a class="easyui-linkbutton" style="width:50px">取消</a></td>
</tr>
</table>
</div>
//下面就是赋值给文本的代码
function toleadmaterial(){
var danjia = $('#TBLToLeadMaterialPrice').datagrid('getSelected');//获取datagrid里面的选中的那一行
var o = danjia.Furmula.trim();//这是把选中哪一行的值给提取出来
$('#TEXToLeadMaterialPriceCountID').val(o);//这就是给文本赋值
}
//这就是点击确定后给材料单价赋值的方法
function toleadconfirm(){
var e =$('#TEXToLeadMaterialPriceCountID').val()//这就是获取文本里面的值
$('#TXTCountFurmula').val(e);//这就是把文本里面的值给赋给材料单价的文本
$('#w导入材料单价计算公式').window('close');//这就是把导入材料单价的窗体给关闭
}
//下面就是点击…弹出一个设置计算公式的窗体
//下面就是html的代码;
<div id="w公式编辑器" title="公式编辑器" class="easyui-window" style="width:500px;height:370px;padding:0px">
<center>
@* <table style="width:500px;height:400px">*@
<table>
<tr>
<td>
<table>
<a>
<textarea id="TextArea1" cols="100" style="width:300px;" readonly="readonly"></textarea></a>
</table>
</td>
<td>
<table>
<a οnclick="setunitpriceformula()" class="easyui-linkbutton" >确定</a><br /><br />
<a οnclick="clear1()" class="easyui-linkbutton">取消</a>
</table>
</td>
</tr>
</table>
</center>
<div>
<a οnclick="add()" class="easyui-linkbutton">+</a>
<a οnclick="reduce()" class=" easyui-linkbutton">-</a>
<a οnclick="ride()" class="easyui-linkbutton" >*</a>
<a οnclick="inclined()" class="easyui-linkbutton" >/</a>
<a οnclick="leftbracket()" class="easyui-linkbutton">(</a>
<a οnclick="rightbracket()" class="easyui-linkbutton">)</a>
</div>
<table>
<tr>
<td>
<div style="margin-left:46px;margin-top:10px">
<right>
<table id="TabInventoryCountUnitIName" data-options="singleSelect:true, noheader:true,onClickRow:qingdanbiao" class="easyui-datagrid"style="width:400px;height:150px" >
<thead>
<tr>
<th data-options="field:'InventoryCountUnitIName',align:'center'" ></th>
</tr>
</thead>
</table>
</right>
</div>
</td>
</tr>
</table>
<table style="height:20px">
<tr>
<td><input style="width:48px;border:0px"/></td>
<td><a href="XiangMuShuXing/XiangMuShuXing"; class="easyui-linkbutton">返回上一页</a></td>
</tr>
</table>
</div>
//这下面就是编织器的生成代码
//下面就是点击datagrid给文本赋值的方法
function qingdanbiao(){
y= $('#TextArea1').val().toString().trim();//把文本的值赋给y
var n =y.length;//然后就获取文本里面字段的长度赋值给n
var v = y.substring(n-1,n);//把文本里面的最后一个字段给截取出来,用来做下面的判断,如果有了这些符号,就能再在文本里面拼接datagrid里面的值
if(v=="+"||v=="-"||v=="*"||v=="/"||v=="("||v==")"||v==""){//这就是获取上面的值来判断
var YuanGong2 = $('#TabInventoryCountUnitIName').datagrid('getSelected');//选中一行
var a = YuanGong2.InventoryCountUnitIName.toString().trim();//获取选中哪一行里面的值
var j= y+a;//y就是文本里面原来有的值,然后在文本里面不断的拼接字符窜
$('#TextArea1').val(j);//再把拼接的值赋给文本
}
else{
alert("请客户输入正确的符号");
}
}
//下面就是点击+号给文本赋值
function add(){
if( $('#TextArea1').val()!=""){//这就是文本为空不让它增加+号,如果不为空才能增加+号
y= $('#TextArea1').val().toString().trim();//获取文本的值
var n =y.length;//获取文本里面字段的长度
var v = y.substring(n-1,n);获取文本里面最后一个字段
if(v=="+"||v=="-"||v=="*"||v=="/"){//用它来判断,如果文本最后有+、-,*、/这些符号就不能增加+号
}else{
var r =$('#TextArea1').val();//获取文本的值
var g=r+"+";//在原来的文本上增加+号
var t = $('#TextArea1').val(g);//再把值赋给文本
}
}
}
//减
function reduce(){
if( $('#TextArea1').val()!=""){//这就是文本为空不让它增加+号,如果不为空才能增加-号
y= $('#TextArea1').val().toString().trim();//获取文本的值
var n =y.length; //获取文本里面字段的长度
var v = y.substring(n-1,n); //;获取文本里面最后一个字段
if(v=="+"||v=="-"||v=="*"||v=="/" ){ //用它来判断,如果文本最后有+、-,*、/这些符号就不能增加-号
}else{
var k = $('#TextArea1').val();;//获取文本的值
var l=k+"-";//在原来的文本上增加-号
$('#TextArea1').val(l); //再把值赋给文本
}
}
}
<span style="color:#333333;"> function ride(){
if( $('#TextArea1').val()!=""){//这就是文本为空不让它增加+号,如果不为空才能增加*号
y= $('#TextArea1').val().toString().trim();
var n =y.length;
var v = y.substring(n-1,n); //获取文本里面最后一个字段
if(v=="+"||v=="-"||v=="*"||v=="/" ){ //用它来判断,如果文本最后有+、-,*、/这些符号就不能增加*号
}else{
var a= $('#TextArea1').val();
var b=a+"*";
$('#TextArea1').val(b);
}
}
}</span>
//斜杠
function inclined(){
if( $('#TextArea1').val()!=""){//这就是文本为空不让它增加+号,如果不为空才能增加/号
y= $('#TextArea1').val().toString().trim();
var n =y.length;
var v = y.substring(n-1,n);
if(v=="+"||v=="-"||v=="*"||v=="/" ){ //用它来判断,如果文本最后有+、-,*、/这些符号就不能增加/号
}else{
var c=$('#TextArea1').val();
var d= c+"/";
$('#TextArea1').val(d);
}
}
}
//左括号
function leftbracket(){
y= $('#TextArea1').val().toString().trim();
var n =y.length;
var v = y.substring(n-1,n);
if(v=="("||v==")" ){ //用它来判断,如果文本最后有(、)、这些符号就不能增加(号
}else{
var e=$('#TextArea1').val();
var f=e+"(";
$('#TextArea1').val(f);
}
}
//右括号
function rightbracket(){
y= $('#TextArea1').val().toString().trim();
var n =y.length;
var v = y.substring(n-1,n);
if(v=="("||v==")" ){ //用它来判断,如果文本最后有(、)、这些符号就不能增加)号
}else{
var g= $('#TextArea1').val();
var h= g+ ")";
$('#TextArea1').val(h);
}
仅供学习:禁止用于商业用途