using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using CoreFS.CA06;using Pur.Entity; using com.hnshituo.pur.vo; using Pur.configure; using Pur.require_plan; using Core.Mes.Client.Comm.Control; using System.Text.RegularExpressions; using Infragistics.Win.UltraWinEditors; using System.Collections; using System.Web.UI.WebControls; using Pur.Pop_upWindow; namespace Pur.Balance { public partial class FrmPurClause : FrmPmsBase { public FrmPurClause() { InitializeComponent(); } private void FrmPurClause_Load(object sender, EventArgs e) { clearEdtArea(); preInit(); QureyClauseM(); } #region toolbar工具栏 //toolbar工具栏加载 public override void ToolBar_Click(object sender, string ToolBarKey) { switch (ToolBarKey) { case "Query"://查询主表数据 QureyClauseM(); //GetQueryPhysicWH(); break; case "Add"://增加主表 AddClauseM(); break; case "Update"://修改主表 EditClauseM(); break; case "Delete"://删除主表 DeleteClauseM(); break; case "AddClauseC": //新增明细表 AddClauseC(); break; case "UpdateClauseC"://修改明细表 EditClauseC(); break; case "DeleteClauseC"://删除明细表 DeleteClauseC(); break; case "Close"://关闭窗口 this.Close(); break; } } #endregion #region 数据处理 /// /// 查询主表数据 /// private void QureyClauseM() { try { //获取查询区域数据 string strBcmId = QBcmId.Text.ToString().Trim(); string strBcmName = QBcmName.Text.ToString().Trim(); //构建查询实体类 BalanceClauseM bm = new BalanceClauseM(); bm.BcmId = strBcmId; bm.BcmName = strBcmName; bm.Validflag = "1"; //执行查询 DataTable dt = this.execute("com.hnshituo.pur.balance.service.BalanceClauseMService", "doQueryClauseM", new object[] { bm }); GridHelper.CopyDataToDatatable(ref dt, ref dataTable4, true); // QureyBasePriceM(); // BalanceClassCommon.doActiveSelRow(ultraGrid1, "id", oldstrid); // BalanceClassCommon.doActiveSelRow(ultraGrid2, "id", strid); } catch (Exception ex) { MessageBox.Show("查询失败:"+ex.Message,"提示"); } } private void AddClauseM() { try { //获取编辑区信息与校验 string strbcnname = edtBcmName.Text.ToString().Trim(); if (!isBcmNameMatch(strbcnname)) { MessageBox.Show("条款行名称为空或者过长", "提示"); edtBcmName.Focus(); return; } String strmatClassCode = edtSuitMatClassCode.Text.ToString().Trim(); string strmatcode = edtSuitMatCode.Text.ToString().Trim(); string strsuppcode = edtSuitSuppCode.Text.ToString().Trim(); if (edtStartTime.Value == null) { MessageBox.Show("请输入有效生效时间","提示"); edtStartTime.Focus(); return; } if (edtEndTime.Value == null) { MessageBox.Show("请输入有效失效时间","提示"); edtStartTime.Focus(); return; } DateTime starttime = (DateTime)edtStartTime.Value; DateTime endtime = (DateTime)edtEndTime.Value; if (!(DateTime.Compare(starttime, endtime)<0)) { MessageBox.Show("生效时间不能晚于失效时间", "提示"); edtEndTime.Focus(); return; } if (!isRemarkMatch(edtRemark.Text.ToString().Trim())) { MessageBox.Show("备注过长", "提示"); edtBcmName.Focus(); return; } //构建实体类 BalanceClauseM bc = new BalanceClauseM(); bc.BcmName = strbcnname; bc.Status = "1"; bc.SuitMat = strmatcode; bc.SuitMatClass = strmatClassCode; bc.SuitSupp = strsuppcode; bc.Validflag = "1"; bc.StartTime = starttime; bc.EndTime = endtime; bc.Remark = edtRemark.Text.ToString().Trim(); bc.CreateName = CoreFS.SA06.CoreUserInfo.UserInfo.GetUserName(); bc.CreateTime = DateTime.Now; bc.CreateUserid = CoreFS.SA06.CoreUserInfo.UserInfo.GetUserID(); //执行插入 CoreResult re = this.execute("com.hnshituo.pur.balance.service.BalanceClauseMService", "doAddClauseM", new object[] { bc }); if (re.Resultcode == 0) { QureyClauseM(); BalanceClassCommon.doActiveSelRow(ultraGrid1, "bcmName", strbcnname); // BalanceClassCommon.doActiveSelRow(ultraGrid2, "id", strid); } else { MessageBox.Show(re.Resultmsg,"提示"); return; } } catch (Exception ex) { MessageBox.Show("操作失败:"+ex.Message, "提示"); } } private void EditClauseM() { try { if (ultraGrid1.ActiveRow != null) { //获取编辑区信息与校验 string strbcmid = ultraGrid1.ActiveRow.Cells["bcmId"].Value.ToString().Trim(); string strVersionno = ultraGrid1.ActiveRow.Cells["bcmVersionNo"].Value.ToString().Trim(); if (string.IsNullOrEmpty(strbcmid) || string.IsNullOrEmpty(strVersionno)) { MessageBox.Show("数据异常,获取条款编码或者版本号为空", "提示"); edtBcmId.Focus(); return; } string strbcnname = edtBcmName.Text.ToString().Trim(); if (!isBcmNameMatch(strbcnname)) { MessageBox.Show("条款行名称为空或者过长", "提示"); edtBcmName.Focus(); return; } String strmatClassCode = edtSuitMatClassCode.Text.ToString().Trim(); string strmatcode = edtSuitMatCode.Text.ToString().Trim(); string strsuppcode = edtSuitSuppCode.Text.ToString().Trim(); if (edtStartTime.Value == null) { MessageBox.Show("请输入有效生效时间", "提示"); edtStartTime.Focus(); return; } if (edtEndTime.Value == null) { MessageBox.Show("请输入有效失效时间", "提示"); edtStartTime.Focus(); return; } DateTime starttime = (DateTime)edtStartTime.Value; DateTime endtime = (DateTime)edtEndTime.Value; if (!(DateTime.Compare(starttime, endtime) < 0)) { MessageBox.Show("生效时间不能晚于失效时间", "提示"); edtEndTime.Focus(); return; } if (!isRemarkMatch(edtRemark.Text.ToString().Trim())) { MessageBox.Show("备注过长", "提示"); edtBcmName.Focus(); return; } //提示是否需要修改 if (MessageBox.Show("将修改编号为[" + strbcmid + "]的条款信息?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK) { //构建实体类 BalanceClauseM bc = new BalanceClauseM(); bc.BcmId = strbcmid; bc.BcmVersionNo = strVersionno; bc.BcmName = strbcnname; bc.Status = "1"; bc.SuitMat = strmatcode; bc.SuitMatClass = strmatClassCode; bc.SuitSupp = strsuppcode; bc.Validflag = "1"; bc.StartTime = starttime; bc.EndTime = endtime; bc.Remark = edtRemark.Text.ToString().Trim(); bc.UpdateName = CoreFS.SA06.CoreUserInfo.UserInfo.GetUserName(); bc.UpdateTime = DateTime.Now; bc.UpdateUserid = CoreFS.SA06.CoreUserInfo.UserInfo.GetUserID(); //执行插入 CoreResult re = this.execute("com.hnshituo.pur.balance.service.BalanceClauseMService", "doUpdateClauseM", new object[] { bc }); if (re.Resultcode == 0) { QureyClauseM(); BalanceClassCommon.doActiveSelRow(ultraGrid1, "bcmId", strbcmid); // BalanceClassCommon.doActiveSelRow(ultraGrid2, "id", strid); } else { MessageBox.Show(re.Resultmsg, "提示"); return; } } } else { MessageBox.Show("请选择需要编辑的条款", "提示"); } } catch (Exception ex) { MessageBox.Show("操作失败:" + ex.Message, "提示"); } } private void DeleteClauseM() { try { if (ultraGrid1.ActiveRow != null) { //获取编辑区信息与校验 string strbcmid = ultraGrid1.ActiveRow.Cells["bcmId"].Value.ToString().Trim(); string strVersionno = ultraGrid1.ActiveRow.Cells["bcmVersionNo"].Value.ToString().Trim(); if (string.IsNullOrEmpty(strbcmid) || string.IsNullOrEmpty(strVersionno)) { MessageBox.Show("数据异常,获取条款编码或者版本号为空", "提示"); edtBcmId.Focus(); return; } //提示是否需要修改 if (MessageBox.Show("将删除编号为[" + strbcmid + "]的条款信息?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK) { //构建实体类 BalanceClauseM bc = new BalanceClauseM(); bc.BcmId = strbcmid; bc.BcmVersionNo = strVersionno; bc.Validflag = "0"; bc.DeleteName = CoreFS.SA06.CoreUserInfo.UserInfo.GetUserName(); bc.DeleteTime = DateTime.Now; bc.DeleteUserid = CoreFS.SA06.CoreUserInfo.UserInfo.GetUserID(); //执行插入 CoreResult re = this.execute("com.hnshituo.pur.balance.service.BalanceClauseMService", "doUpdateClauseM", new object[] { bc }); if (re.Resultcode == 0) { QureyClauseM(); BalanceClassCommon.doActiveSelRow(ultraGrid1, "bcmId", strbcmid); // BalanceClassCommon.doActiveSelRow(ultraGrid2, "id", strid); } else { MessageBox.Show(re.Resultmsg, "提示"); return; } } } else { MessageBox.Show("请选择需要删除的条款", "提示"); } } catch (Exception ex) { MessageBox.Show("操作失败:" + ex.Message, "提示"); } } /// /// 新增条款明细 /// private void AddClauseC() { try { if (ultraGrid1.ActiveRow != null) { string strbcmid = ultraGrid1.ActiveRow.Cells["bcmId"].Value.ToString().Trim(); edtBcmIdC.Text = strbcmid; //获取编辑区信息 string strbalanceclass = edtBalanceClass.Value.ToString().Trim(); if (string.IsNullOrEmpty(strbalanceclass)) { MessageBox.Show("请选择标准类型", "提示"); edtBalanceClass.Focus(); return; } string strbalanceid = edtBalanceId.Value.ToString().Trim(); if (string.IsNullOrEmpty(strbalanceid)) { MessageBox.Show("请选择一条有效的计价标准", "提示"); edtBalanceId.Focus(); return; } string strremarkc = edtremarkc.Text.ToString().Trim(); //构建实体类 BalanceClauseC bc = new BalanceClauseC(); bc.BcmId = strbcmid; bc.BalanceClass = strbalanceclass; bc.BalanceId = strbalanceid; bc.Remark = strremarkc; bc.Validflag = "1"; bc.CreateName = CoreFS.SA06.CoreUserInfo.UserInfo.GetUserName(); bc.CreateTime = DateTime.Now; bc.CreateUserid = CoreFS.SA06.CoreUserInfo.UserInfo.GetUserID(); //调用API进行操作 CoreResult re = this.execute("com.hnshituo.pur.balance.service.BalanceClauseCService", "doAddClauseC", new object[] { bc }); if (re.Resultcode == 0) { QureyClauseM(); BalanceClassCommon.doActiveSelRow(ultraGrid1, "bcmId", strbcmid); BalanceClassCommon.doActiveSelRow(ultraGrid2, "balanceid", strbalanceid); } else { MessageBox.Show(re.Resultmsg, "提示"); return; } } else { MessageBox.Show("请选择需要新增条款明细的条款行","提示"); return; } } catch (Exception ex) { MessageBox.Show("操作失败:" + ex.Message, "提示"); } } /// /// 修改明细 /// private void EditClauseC() { try { if (ultraGrid2.ActiveRow != null) { string strbcmid = ultraGrid2.ActiveRow.Cells["bcmId"].Value.ToString().Trim(); string strbccid = ultraGrid2.ActiveRow.Cells["bccId"].Value.ToString().Trim(); //edtBcmIdC.Text = strbcmid; //获取编辑区信息 string strbalanceclass = edtBalanceClass.Value.ToString().Trim(); if (string.IsNullOrEmpty(strbalanceclass)) { MessageBox.Show("请选择标准类型", "提示"); edtBalanceClass.Focus(); return; } string strbalanceid = edtBalanceId.Value.ToString().Trim(); if (string.IsNullOrEmpty(strbalanceid)) { MessageBox.Show("请选择一条有效的计价标准", "提示"); edtBalanceId.Focus(); return; } string strremarkc = edtremarkc.Text.ToString().Trim(); //构建实体类 BalanceClauseC bc = new BalanceClauseC(); bc.BccId = strbccid; bc.BcmId = strbcmid; bc.BalanceClass = strbalanceclass; bc.BalanceId = strbalanceid; bc.Remark = strremarkc; bc.Validflag = "1"; bc.UpdateName = CoreFS.SA06.CoreUserInfo.UserInfo.GetUserName(); bc.UpdateTime = DateTime.Now; bc.UpdateUserid = CoreFS.SA06.CoreUserInfo.UserInfo.GetUserID(); //调用API进行操作 CoreResult re = this.execute("com.hnshituo.pur.balance.service.BalanceClauseCService", "doUpdateClauseC", new object[] { bc }); if (re.Resultcode == 0) { QureyClauseM(); BalanceClassCommon.doActiveSelRow(ultraGrid1, "bcmId", strbcmid); BalanceClassCommon.doActiveSelRow(ultraGrid2, "bccId", strbccid); } else { MessageBox.Show(re.Resultmsg, "提示"); return; } } else { MessageBox.Show("请选择需要修改条款明细的条款行", "提示"); return; } } catch (Exception ex) { MessageBox.Show("操作失败:" + ex.Message, "提示"); } } /// /// 删除明细 /// private void DeleteClauseC() { try { if (ultraGrid2.ActiveRow != null) { string strbcmid = ultraGrid2.ActiveRow.Cells["bcmId"].Value.ToString().Trim(); string strbccid = ultraGrid2.ActiveRow.Cells["bccId"].Value.ToString().Trim(); //构建实体类 BalanceClauseC bc = new BalanceClauseC(); bc.BccId = strbccid; bc.Validflag = "0"; bc.DeleteName = CoreFS.SA06.CoreUserInfo.UserInfo.GetUserName(); bc.DeleteTime = DateTime.Now; bc.DeleteUserid = CoreFS.SA06.CoreUserInfo.UserInfo.GetUserID(); //调用API进行操作 CoreResult re = this.execute("com.hnshituo.pur.balance.service.BalanceClauseCService", "doUpdateClauseC", new object[] { bc }); if (re.Resultcode == 0) { QureyClauseM(); BalanceClassCommon.doActiveSelRow(ultraGrid1, "bcmId", strbcmid); BalanceClassCommon.doActiveSelRow(ultraGrid2, "bccId", strbccid); } else { MessageBox.Show(re.Resultmsg, "提示"); return; } } else { MessageBox.Show("请选择需要删除条款明细的条款行", "提示"); return; } } catch (Exception ex) { MessageBox.Show("操作失败:" + ex.Message, "提示"); } } #endregion #region 界面事件 private void ultraGrid1_AfterRowActivate(object sender, EventArgs e) { try { //清空界面 clearEdtArea(); //加载数据 string strbcmid=ultraGrid1.ActiveRow.Cells["bcmId"].Value.ToString().Trim(); edtBcmId.Text = strbcmid; edtBcmName.Text = ultraGrid1.ActiveRow.Cells["bcmName"].Value.ToString().Trim(); if (ultraGrid1.ActiveRow.Cells["endTime"].Value != null) { edtEndTime.Value = ultraGrid1.ActiveRow.Cells["endTime"].Value; } if (ultraGrid1.ActiveRow.Cells["startTime"].Value != null) { edtStartTime.Value = ultraGrid1.ActiveRow.Cells["startTime"].Value; } edtRemark.Text = ultraGrid1.ActiveRow.Cells["remark"].Value.ToString().Trim(); edtSuitMatClassCode.Text = ultraGrid1.ActiveRow.Cells["suitMatClass"].Value.ToString().Trim(); edtSuitMatCode.Text = ultraGrid1.ActiveRow.Cells["suitMat"].Value.ToString().Trim(); edtSuitSuppCode.Text = ultraGrid1.ActiveRow.Cells["suitSupp"].Value.ToString().Trim(); //加载从表数据 BalanceClauseC bc = new BalanceClauseC(); bc.BcmId = strbcmid; bc.Validflag = "1"; DataTable dt = this.execute("com.hnshituo.pur.balance.service.BalanceClauseCService", "doQueryClauseC", new object[] { bc }); GridHelper.CopyDataToDatatable(ref dt, ref dataTable3, true); } catch (Exception ex) { MessageBox.Show("操作失败:" + ex.Message, "提示"); } } private void ultraGrid1_AfterCellActivate(object sender, EventArgs e) { try { ultraTabControl2.SelectedTab = ultraTabControl2.Tabs[0]; } catch (Exception ex) { MessageBox.Show("操作失败:" + ex.Message, "提示"); } } private void ultraGrid2_AfterCellActivate(object sender, EventArgs e) { try { ultraTabControl2.SelectedTab = ultraTabControl2.Tabs[1]; } catch (Exception ex) { MessageBox.Show("操作失败:" + ex.Message, "提示"); } } private void ultraGrid2_AfterRowActivate(object sender, EventArgs e) { try { //加载数据到编辑区 edtBccId.Text = ultraGrid2.ActiveRow.Cells["bccId"].Value.ToString().Trim(); edtBcmIdC.Text = ultraGrid2.ActiveRow.Cells["bcmId"].Value.ToString().Trim(); edtremarkc.Text = ultraGrid2.ActiveRow.Cells["remark"].Value.ToString().Trim(); string strbalanceclass=ultraGrid2.ActiveRow.Cells["BalanceClass"].Value.ToString().Trim(); string strbalanceid=ultraGrid2.ActiveRow.Cells["BalanceId"].Value.ToString().Trim(); if (string.IsNullOrEmpty(strbalanceclass) || string.IsNullOrEmpty(strbalanceid)) { MessageBox.Show("数据异常,标准类型编号和编号都不能为空",""); return; } edtBalanceClass.Value = strbalanceclass; edtBalanceId.Value = strbalanceid; //加载其它的数据 if (strbalanceclass == "1") { //tab控制 ultraTabControl1.SelectedTab = ultraTabControl1.Tabs[0]; //构建查询实体类 BalanceBasepriceC pc = new BalanceBasepriceC(); pc.StandId = strbalanceid; pc.Validflag = "1"; //调用服务器查询API进行查询 DataTable re = this.execute("com.hnshituo.pur.balance.service.BalanceBasepriceCService", "doQureyBasePriceC", new object[] { pc }); GridHelper.CopyDataToDatatable(ref re, ref dataTable2, true); CicpPriceC.Clear(); } else if (strbalanceclass == "2") { //tab控制 ultraTabControl1.SelectedTab = ultraTabControl1.Tabs[1]; //构建查询实体类 BalanceCicpriceC pc = new BalanceCicpriceC(); pc.StandId = strbalanceid; pc.Validflag = "1"; //调用服务器查询API进行查询 DataTable re = this.execute("com.hnshituo.pur.balance.service.BalanceCicpriceCService", "doQureyCicpPriceC", new object[] { pc }); GridHelper.CopyDataToDatatable(ref re, ref dataTable1, true); basepriceC.Clear(); } else if (strbalanceclass == "3") { ultraTabControl1.SelectedTab = ultraTabControl1.Tabs[2]; MessageBox.Show("批量计价计暂时无数据", "提示"); return; } else if (strbalanceclass == "9") { ultraTabControl1.SelectedTab = ultraTabControl1.Tabs[3]; MessageBox.Show("其它计价暂时无数据", "提示"); return; } else { MessageBox.Show("无效标准类型编码:" + strbalanceclass, "提示"); return; } } catch (Exception ex) { MessageBox.Show("操作失败:" + ex.Message, "提示"); } } private void clearEdtArea() { foreach (Control ctr in ultraExpandableGroupBox1.Controls) { if (ctr is System.Windows.Forms.Label) { continue; } if (ctr is UltraCheckEditor) { UltraCheckEditor ultcmb = (UltraCheckEditor)ctr; ultcmb.Checked = false; } if (ctr is UltraComboEditor) { UltraComboEditor ultcmb = (UltraComboEditor)ctr; ultcmb.Text = ""; ultcmb.Enabled = false; } if (ctr is System.Windows.Forms.CheckBox) { System.Windows.Forms.CheckBox cb = (System.Windows.Forms.CheckBox)ctr; cb.Checked = false; } ctr.Text = null; } } private void edtSuitMatClassName_EditorButtonClick(object sender, Infragistics.Win.UltraWinEditors.EditorButtonEventArgs e) { FrmMatClassPop_ups classfrm = new FrmMatClassPop_ups(this.ob); classfrm.ShowDialog(); string strmatclasscode = classfrm.Basecode; string strmatclassname = classfrm.Basename; edtSuitMatClassCode.Text = strmatclasscode; edtSuitMatClassName.Text = strmatclassname; } private void edtSuitMatName_EditorButtonClick(object sender, Infragistics.Win.UltraWinEditors.EditorButtonEventArgs e) { FrmPurPlanMat matfrm = new FrmPurPlanMat(this.ob); matfrm.ShowDialog(); string strmatcode = matfrm.getItemCode(); string strmatname = matfrm.getItemName(); edtSuitMatCode.Text = strmatcode; edtSuitMatName.Text = strmatname; } private void edtSuitSuppName_EditorButtonClick(object sender, Infragistics.Win.UltraWinEditors.EditorButtonEventArgs e) { frmSuppSel suppfrm = new frmSuppSel(this.ob); suppfrm.ShowDialog(); string strsuppcode = suppfrm.strSUPP_CODE; string strsuppname = suppfrm.strSUPP_NAME; edtSuitSuppCode.Text = strsuppcode; edtSuitSuppName.Text = strsuppname; } private void edtBalanceName_EditorButtonClick(object sender, EditorButtonEventArgs e) { //获取类型 String strbalclass = edtBalanceClass.Value.ToString().Trim(); if (string.IsNullOrEmpty(strbalclass)) { MessageBox.Show("请先选中计价标准类型", "提示"); } FrmPopGetBalance Frmb = new FrmPopGetBalance(this.ob, strbalclass); Frmb.balclass = strbalclass; Frmb.ShowDialog(); edtBalanceName.Text = Frmb.BalanceName; edtBalanceId.Text = Frmb.BalanceId; } #endregion #region 正则表达式定义 private bool isBcmNameMatch(string str) { Regex obj = new Regex("^.{1,20}$"); bool isos=obj.IsMatch(str); return isos; } private bool isRemarkMatch(string str) { Regex obj = new Regex("^.{0,178}$"); return obj.IsMatch(str); } #endregion #region 界面初始化加载数据 //初始化结算类型 private void preInit() { ArrayList aryTmp = new ArrayList(); aryTmp.Add(new ValueListItem("1", "基准计价")); aryTmp.Add(new ValueListItem("2", "成分计价")); aryTmp.Add(new ValueListItem("3", "批量计价")); aryTmp.Add(new ValueListItem("9", "其它计价")); BalanceClassCommon.FilComboboxbyList(edtBalanceClass, aryTmp); } #endregion } }