using Core.Mes.Client.Comm.Control; using Core.Mes.Client.Comm.Format; using Core.Mes.Client.Comm.Server; using Core.Mes.Client.Comm.Tool; using Core.StlMes.Client.Qcm.model; using Core.StlMes.Client.Qcm.objectData; using CoreFS.CA06; using Infragistics.Win.UltraWinEditors; using Infragistics.Win.UltraWinGrid; using System; using System.Collections; using System.Collections.Generic; using System.Data; using System.Drawing; using System.Linq; using System.Windows.Forms; namespace Core.StlMes.Client.Qcm { /// /// 产品规范管理 /// public partial class FrmProductManage : FrmBase { /// /// 提示 /// private string errMessage = ""; /// /// 下拉框数组 /// private UltraComboEditor[] uces = new UltraComboEditor[8]; /// /// 勾选条数 /// private int isSelectData = 0; /// /// 标准名称(定位) /// private string _stdName = ""; /// /// 产品规范描述(定位) /// private string _pscDesc = ""; //位置 private int disWidth = 0; /// /// alpha名称(定位) /// private string _alphaName = ""; private string _custName = ""; private string std_code = ""; private bool _isPopupFrm = false; /// /// 标准附加项代码 /// private string _baseCode = ""; private ArrayList codeItem = new ArrayList(); /// /// 附加要求分项 /// private Dictionary itemSub = null; /// /// 标准说明 /// private Dictionary askSubItme = null; /// /// 适用规格界面 /// private CtrlBaseStdRSpec _ctrlBaseStdRSpec; private Dal _dal; private string _psc = ""; /// /// 用于弹窗过滤相同产品下MSC已经使用的用途码。 /// public string Psc { get { return _psc; } set { _psc = value; } } private string _useCode = ""; /// /// 用于弹窗过滤相同产品下MSC已经使用的用途码。 /// public string UseCode { get { return _useCode; } set { _useCode = value; } } private string _gridFlag = "std"; public FrmProductManage() { //F1 F2功能 IsLoadUserView = true; InitializeComponent(); ExceptionHelper.RegistException(); } protected override void OnLoad(EventArgs e) { base.OnLoad(e); ultraGrid5.DisplayLayout.Bands[0].Columns["CUST_CODE"].AutoCompleteMode = Infragistics.Win.AutoCompleteMode.SuggestAppend; } public void PopupLoad(string customInfo, OpeBase ob) { this.CustomInfo = customInfo; this.ob = ob; this.OnLoad(EventArgs.Empty); } public FrmProductManage(string std_Code, OpeBase _ob) : this() { this.ob = _ob; ultraTabControl1.Tabs[0].Visible = false; ultraTabControl1.Tabs[1].Visible = false; ultraTabControl1.Tabs[3].Visible = false; this.std_code = std_Code; _isPopupFrm = true; } private void FrmProductManage_Load(object sender, EventArgs e) { _dal = new Dal(ob); InitDrop(); ultraGrid2.Enabled = false; ultraGrid3.Enabled = false; ultraGrid4.Enabled = false; ultraGrid5.Enabled = false; CreateItemSub(); dataPersion(); // disWidth = splitContainer2.SplitterDistance; _ctrlBaseStdRSpec = new CtrlBaseStdRSpec(ultraTabPageControl4, ob); _ctrlBaseStdRSpec.UltraGrid1.Click += _ctrlBaseStdRSpec_Click; } /// /// 初始化下拉框 /// private void InitDrop() { for (int i = 0; i < uces.Length; i++) { uces[i] = new UltraComboEditor(); Controls.Add(uces[i]); uces[i].Visible = false; uces[i].DropDownListWidth = -1; } UltraGridBand ugb1 = ultraGrid1.DisplayLayout.Bands[0]; UltraGridBand ugb2 = ultraGrid2.DisplayLayout.Bands[0]; UltraGridBand ugb3 = ultraGrid3.DisplayLayout.Bands[0]; //标准类型 QcmBaseQuery.NitializeStandardType(uces[0], false, this.ob); ((DataTable)uces[0].DataSource).DefaultView.RowFilter = "CODE IN ('G', 'X')"; QcmBaseQuery.BindColumn(uces[0], "STDSTYLE", ugb1); //标准协会 QcmBaseQuery.NitializeSociety(uces[1], true, this.ob); QcmBaseQuery.BindColumn(uces[1], "STD_STYLE", ugb1); //管理部门 QcmBaseQuery.NitializeDepartment(uces[2], false, this.ob); QcmBaseQuery.BindColumn(uces[2], "DEPARTMENT_CODE", ugb1); QcmBaseQuery.BindColumn(uces[2], "DEPARTMENT_CODE", ugb2); //品名 QcmBaseQuery.NitializeProducName(uces[3], false, this.ob); QcmBaseQuery.BindColumn(uces[3], "PRODUCCODE", ugb2); //标准类别 QcmBaseQuery.NitializeStdStyle(uces[4], true, this.ob); QcmBaseQuery.BindColumn(uces[4], "STD_STYLE", ugb2); //钢级牌号 QcmBaseQuery.NitializeSteel(uces[5], true, this.ob); QcmBaseQuery.BindColumn(uces[5], "STEELCODE", ugb2); //附加项 QcmBaseQuery.NitializeAskIime(uces[6], false, this.ob); QcmBaseQuery.BindColumn(uces[6], "ASK_ITME", ugb3); //初始化最终客户 适用所有用户 "/"----代码是 "0000" QcmBaseQuery.NitializeCustomer(uces[7], true, this.ob); QcmBaseQuery.BindColumn(uces[7], "CUST_CODE", ultraGrid5.DisplayLayout.Bands[0]); ultraGrid5.DisplayLayout.Bands[0].Columns["CUST_CODE"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDown; //产品大类 UltraComboEditor HeadUce = new UltraComboEditor(); this.Controls.Add(HeadUce); HeadUce.Visible = false; DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreProductManage.getProductHead", null, this.ob); HeadUce.DataSource = dt; HeadUce.ValueMember = "BASECODE"; HeadUce.DisplayMember = "BASENAME"; ultraGrid2.DisplayLayout.Bands[0].Columns["PRODUC_HEAD"].EditorComponent = HeadUce; ultraGrid2.DisplayLayout.Bands[0].Columns["PRODUC_HEAD"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList; } /// /// 重写基类方法 /// /// /// public override void ToolBar_Click(object sender, string ToolbarKey) { switch (ToolbarKey) { case "doQuery": DoQuery(std_code); break; case "doSave": DoSave(); break; case "doDelete": this.DoDeleteOrResume(true); break; case "doResume": this.DoDeleteOrResume(false); break; case "DeleteStd": DeleteOrResumeStd(true); break; case "ResumeStd": DeleteOrResumeStd(false); break; case "CopyStd": CopyStd(); break; case "Forbidden": ForbiddenOrder("1"); break; case "Allow": ForbiddenOrder("0"); break; case "Refresh": InitDrop(); break; case "export": GridHelper.ulGridToExcel(ultraGrid1, "标准号管理-交付"); break; case "Close": this.Close(); break; } } private void ForbiddenOrder(string flag) { var row = ultraGrid1.ActiveRow; if (row == null) { MessageUtil.ShowWarning("请选择记录!"); return; } if (!CheckStdUnit(row)) { MessageUtil.ShowWarning(errMessage); return; } string stdCode = row.GetValue("STD_CODE"); ServerHelper.SetData("com.steering.pss.qcm.CoreProductManage.ForbiddenOrder", new object[] { stdCode, flag, UserInfo.GetUserName() }, ob); MessageUtil.ShowTips("操作成功!"); DoQuery(""); foreach (var row2 in ultraGrid1.Rows) { if (row2.GetValue("STD_CODE") == stdCode) { row2.Activate(); break; } } } private void CopyStd() { if (ultraGrid1.ActiveRow == null) { MessageUtil.ShowWarning("请选择一条记录!"); return; } string stdCode = ultraGrid1.GetActiveRowValue("STD_CODE"); string stdName = ultraGrid1.GetActiveRowValue("STD_NAME"); FrmInputStdName frmStd = new FrmInputStdName(ob, stdName); if (frmStd.ShowDialog() == System.Windows.Forms.DialogResult.OK) { _dal.CoreProductManage.CopyStd(stdCode, frmStd.StdName); MessageUtil.ShowTips("复制成功!"); DoQuery(""); foreach (var row in ultraGrid1.Rows) { if (row.GetValue("STD_NAME") == frmStd.StdName) { row.Activate(); break; } } } } private void Export() { switch (_gridFlag) { case "ultraGrid1": GridHelper.ulGridToExcel(ultraGrid1, "标准"); break; case "ultraGrid2": GridHelper.ulGridToExcel(ultraGrid2, "产品"); break; case "ultraGrid3": GridHelper.ulGridToExcel(ultraGrid3, "附加要求"); break; case "ultraGrid4": GridHelper.ulGridToExcel(ultraGrid4, "用途码"); break; case "_ctrlBaseStdRSpec": GridHelper.ulGridToExcel(_ctrlBaseStdRSpec.UltraGrid1, "适用规格"); break; } } private void DeleteOrResumeStd(bool deleteFlag) { string tipStr = deleteFlag ? "作废" : "恢复"; if (MessageUtil.ShowYesNoAndQuestion("是否确认" + tipStr + "标准向下的所有基础数据?") == DialogResult.No) { return; } foreach (UltraGridRow row in ultraGrid1.Rows) { if (row.GetValue("CHC") == "True" && row.GetValue("VALIDFLAG") != "") { if (!CheckStdUnit(row)) { MessageUtil.ShowWarning(errMessage); return; } DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreProductManage.OrderLineUseCnt", new object[] { row.GetValue("STD_CODE") }, ob); if (dt.Rows[0][0].ToString() != "0") { MessageUtil.ShowWarning("该标准正在被合同使用,不能作废!"); return; } ServerHelper.SetData("com.steering.pss.qcm.CoreProductManage.deleteOrResumeStd", new object[] { deleteFlag.ToString(), UserInfo.GetUserName(), row.GetValue("STD_CODE") }, ob); } } MessageUtil.ShowTips(tipStr + "成功!"); DoQuery(std_code); } /// /// 查询 /// private void DoQuery(string std_Code) { string valid = "1"; if (ChcValid.Checked) { valid = "0"; } string stdName = ""; if (ChcStd.Checked) { stdName = TextStd.Text.Trim(); } DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreProductManage.queryBaseStd", new Object[] { stdName, valid, std_Code, this.CustomInfo, this.ValidDataPurviewIds }, this.ob); if (dt != null && dt.Rows.Count > 0) { GridHelper.CopyDataToDatatable(ref dt, ref this.dataTable1, true); UltraGridRow[] rows = GridHelper.GetRowsWithKey(ultraGrid1, new string[] { "STD_NAME" }, new string[] { _stdName }); if (rows.Length > 0) { rows[0].Activate(); } QcmBaseCommon.SetUltraGridNoEdit(ultraGrid1); UltraGridBand bc = ultraGrid1.DisplayLayout.Bands[0]; UltraGridColumn[] col = new UltraGridColumn[] { bc.Columns["MEMO"], bc.Columns["STD_CODE"], bc.Columns["STD_NAME"] }; GridHelper.RefreshAndAutoSizeExceptColumns(ultraGrid1, col); } else { dataTable1.Rows.Clear(); } isSelectData = 0; if (ultraGrid1.Rows.Count == 0) { this.dataTable2.Clear(); this.dataTable3.Clear(); this.dataTable4.Clear(); this.dataTable5.Clear(); _ctrlBaseStdRSpec.Clear(); } } /// /// 保存 /// private void DoSave() { ultraGrid1.UpdateData(); ultraGrid2.UpdateData(); ultraGrid3.UpdateData(); ultraGrid4.UpdateData(); ultraGrid5.UpdateData(); isSelectData += _ctrlBaseStdRSpec.QueryableRows.Count(); //标准基础 if (isSelectData == 0) { MessageBox.Show("请选择记录!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } ArrayList stdData = new ArrayList(); UltraGridRow[] rowStd = GridHelper.GetRowsWithKey(ultraGrid1, new string[] { "CHC" }, new string[] { "True" }); if (rowStd.Length > 0) { foreach (UltraGridRow ugr in rowStd) { BaseStdObject com = GetStdData(ugr); if (!CheckStdUnit(ugr)) { MessageUtil.ShowWarning(errMessage); return; } if (!CheckStdData(com, ugr)) { MessageBox.Show(errMessage, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } com.CreateName = UserInfo.GetUserName(); com.UpdateName = UserInfo.GetUserName(); stdData.Add(JSONFormat.Format(com)); //定位 _stdName = com.StdName; } } //产品规范 ArrayList pscData = new ArrayList(); UltraGridRow[] rowPsc = GridHelper.GetRowsWithKey(ultraGrid2, new string[] { "CHC" }, new string[] { "True" }); if (rowPsc.Length > 0) { foreach (UltraGridRow ugr in rowPsc) { PscEntity com = GetPscData(ugr); if (!CheckPscUnit(ugr)) { MessageUtil.ShowWarning(errMessage); return; } if (!CheckPscData(com, ugr)) { MessageBox.Show(errMessage, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } com.CreateName = UserInfo.GetUserName(); com.UpdateName = UserInfo.GetUserName(); pscData.Add(JSONFormat.Format(com)); //定位 _pscDesc = com.PscDesc.ToString(); } } //附加要求 ArrayList addData = new ArrayList(); UltraGridRow[] rowAdd = GridHelper.GetRowsWithKey(ultraGrid3, new string[] { "CHC" }, new string[] { "True" }); if (rowAdd.Length > 0) { foreach (UltraGridRow ugr in rowAdd) { BaseAdditionalObject com = GetAdditionalData(ugr); if (!CheckAdditionalData(com, ugr)) { MessageBox.Show(errMessage, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } com.CreateName = UserInfo.GetUserName(); com.UpdateName = UserInfo.GetUserName(); addData.Add(JSONFormat.Format(com)); //定位 _baseCode = com.AskSubItmeVal; } } //Alpha用途码 ArrayList alphaData = new ArrayList(); UltraGridRow[] rowAlpha = GridHelper.GetRowsWithKey(ultraGrid4, new string[] { "CHC" }, new string[] { "True" }); if (rowAlpha.Length > 0) { foreach (UltraGridRow ugr in rowAlpha) { ComBaseStdAlphaEntity com = GetStdAlphaData(ugr); if (!CheckStdAlphaUnit(ugr)) { MessageUtil.ShowWarning(errMessage); return; } if (!CheckStdAlphaData(com, ugr)) { MessageBox.Show(errMessage, "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } com.CreateName = UserInfo.GetUserName(); com.UpdateName = UserInfo.GetUserName(); alphaData.Add(JSONFormat.Format(com)); //定位 _alphaName = com.AlphaName; } } //客户 ArrayList custerData = new ArrayList(); UltraGridRow[] rowAllAlpha = ultraGrid5.Rows.AsQueryable().Where("CHC = 'True'") .Where("CUST_CODE = '0000000000'").ToArray(); if (rowAllAlpha.Length > 0) { StdCusterObject com = GetCusterData(rowAllAlpha[0]); if (!CheckCustData(com)) { MessageBox.Show(errMessage, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } com.CreateName = UserInfo.GetUserName(); com.UpdateName = UserInfo.GetUserName(); custerData.Add(JSONFormat.Format(com)); //定位 UltraGridRow ugr4 = ultraGrid4.ActiveRow; if (ugr4 != null) _alphaName = ugr4.Cells["ALPHA_NAME"].Value.ToString(); _custName = com.CustName; } else { UltraGridRow[] rowCust = GridHelper.GetRowsWithKey(ultraGrid5, new string[] { "CHC" }, new string[] { "True" }); if (rowCust.Length > 0) { foreach (UltraGridRow row in rowCust) { StdCusterObject com = GetCusterData(row); if (!CheckCustData(com)) { MessageBox.Show(errMessage, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } com.CreateName = UserInfo.GetUserName(); com.UpdateName = UserInfo.GetUserName(); custerData.Add(JSONFormat.Format(com)); //定位 UltraGridRow ugr4 = ultraGrid4.ActiveRow; if (ugr4 != null) _alphaName = ugr4.Cells["ALPHA_NAME"].Value.ToString(); _custName = com.CustName; } } } //规格保存 string msg = ""; ArrayList specList = _ctrlBaseStdRSpec.GetNoQueryParms(ActionType.Save, out msg); if (msg != "") { MessageUtil.ShowWarning(msg); return; } if (MessageBox.Show("是否保存记录?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return; } if (stdData.Count > 0 || pscData.Count > 0 || addData.Count > 0 || alphaData.Count > 0 || custerData.Count > 0 || specList.Count > 0) { int count = ServerHelper.SetData("com.steering.pss.qcm.CoreProductManage.saveProductManage", new Object[] { stdData, pscData, addData, alphaData, custerData, specList }, this.ob); if (count > 0) { MessageBox.Show("保存成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); DoQuery(std_code); } } } private DataRow GetBaseStdByPk(string stdCode) { DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreProductManage.getBaseStdByPk", new object[] { stdCode }, ob); return dt.Rows[0]; } private DataRow GetBasePscByPk(string pscCode) { DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreProductManage.getBasePscByPk", new object[] { pscCode }, ob); return dt.Rows[0]; } private DataRow GetBaseStdRAlphaByPk(string alphaCode) { DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreProductManage.getBaseStdRAlphaByPk", new object[] { alphaCode }, ob); return dt.Rows[0]; } /// /// 获取客户数据 /// /// /// public static StdCusterObject GetCusterData(UltraGridRow ugr) { StdCusterObject com = new StdCusterObject(); com.StdCode = ugr.Cells["STD_CODE"].Value.ToString(); com.StdName = ugr.Cells["STD_NAME"].Value.ToString(); com.CustCode = ugr.Cells["CUST_CODE"].Value.ToString().Trim(); com.CustName = ugr.Cells["CUST_CODE"].Text; com.CreateTime = ugr.Cells["CREATE_TIME"].Value.ToString().Trim(); com.UpdateName = ugr.Cells["UPDATE_NAME"].Value.ToString().Trim(); com.UpdateTime = ugr.Cells["UPDATE_TIME"].Value.ToString().Trim(); com.DeleteName = ugr.Cells["DELETE_NAME"].Value.ToString().Trim(); com.DeleteTime = ugr.Cells["DELETE_TIME"].Value.ToString().Trim(); com.Validflag = ugr.Cells["VALIDFLAG"].Value.ToString().Trim(); com.Memo = ugr.Cells["MEMO"].Value.ToString().Trim(); com.OldCustCode = ugr.Cells["OLD_CUST_CODE"].Value.ToString().Trim(); return com; } /// /// 检查最终客户数据 /// /// /// private bool CheckCustData(StdCusterObject com) { if (com.Validflag.Equals("无效")) { errMessage = "无效记录不能操作"; return false; } if (uces[7].IsItemInList(com.CustName) == false) { errMessage = "输入的客户名称在基础数据中不存在,请重新选择!"; return false; } if (com.CustCode.Equals("") && com.Validflag.Equals("")) { errMessage = "新增的最终用户数据,最终用户不能为空!"; return false; } UltraGridRow[] rows = GridHelper.GetRowsWithKey(ultraGrid5, new string[] { "CUST_CODE", "CHC" }, new string[] { com.CustCode, "True" }); { if (rows.Length > 1) { errMessage = "最终客户" + com.CustName + "重复,请重新选择"; return false; } } if (com.Validflag.Equals("")) { DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.ComStandard.checkCuster", new Object[] { com.StdCode, com.CustCode }, this.ob); if (dt != null && dt.Rows.Count > 0) { errMessage = "最终客户" + com.CustName + "重复,请重新选择"; return false; } } else { if (!com.CustCode.Equals(com.OldCustCode)) { DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.ComStandard.checkCuster", new Object[] { com.StdCode, com.CustCode }, this.ob); if (dt != null && dt.Rows.Count > 0) { errMessage = "最终客户" + com.CustName + "重复,请重新选择"; return false; } } } return true; } /// /// 作废或者恢复 /// /// private void DoDeleteOrResume(bool flag) { ultraGrid1.UpdateData(); ultraGrid2.UpdateData(); ultraGrid3.UpdateData(); ultraGrid4.UpdateData(); ultraGrid5.UpdateData(); isSelectData += _ctrlBaseStdRSpec.QueryableRows.Count(); //标准基础 if (isSelectData == 0) { MessageBox.Show("请选择记录!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } ArrayList stdData = new ArrayList(); UltraGridRow[] rows = GridHelper.GetRowsWithKey(ultraGrid1, new string[] { "CHC" }, new string[] { "True" }); if (rows.Length > 0) { foreach (UltraGridRow ugr in rows) { BaseStdObject com = GetStdData(ugr); com.DeleteName = UserInfo.GetUserName(); stdData.Add(JSONFormat.Format(com)); if (!CheckStdUnit(ugr)) { MessageUtil.ShowWarning(errMessage); return; } if (!CheckDeleteOrResume(com.Validflag, flag)) { MessageBox.Show(errMessage, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } _stdName = com.StdName; if (flag) { DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreProductManage.checkStdDelete", new Object[] { com.StdCode }, this.ob); if (dt != null && dt.Rows.Count > 0 && Convert.ToInt32(dt.Rows[0][0]) > 0) { MessageBox.Show("标准名称[ " + com.StdName + " ]已经被引用,不能作废!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } } } } //产品规范 ArrayList pscData = new ArrayList(); rows = GridHelper.GetRowsWithKey(ultraGrid2, new string[] { "CHC" }, new string[] { "True" }); if (rows.Length > 0) { foreach (UltraGridRow ugr in rows) { PscEntity com = GetPscData(ugr); com.DeleteName = UserInfo.GetUserName(); pscData.Add(JSONFormat.Format(com)); if (!CheckPscUnit(ugr)) { MessageUtil.ShowWarning(errMessage); return; } if (!CheckDeleteOrResume(com.Validflag.ToString(), flag)) { MessageBox.Show(errMessage, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } if (flag) { //DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreProductManage.isPscLinkMsc", new Object[] { ugr.Cells["PSC"].Value.ToString() }, this.ob); //if (dt != null && dt.Rows.Count > 0) //{ // MessageBox.Show("产品规范码 [ " + ugr.Cells["PSC"].Value.ToString() + " ]关联了冶金规范码,不能作废!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); // return; //} } _pscDesc = com.PscDesc.ToString(); if (!flag) { DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreProductManage.checkFromResume", new Object[] { com.StdCode }, this.ob); if (dt != null && dt.Rows.Count > 0) { MessageBox.Show("标准名称 [ " + com.StdName + " ]已经作废,不能恢复!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } } } } //附加要求 ArrayList addData = new ArrayList(); rows = GridHelper.GetRowsWithKey(ultraGrid3, new string[] { "CHC" }, new string[] { "True" }); if (rows.Length > 0) { foreach (UltraGridRow ugr in rows) { BaseAdditionalObject com = GetAdditionalData(ugr); com.DeleteName = UserInfo.GetUserName(); addData.Add(JSONFormat.Format(com)); if (!CheckDeleteOrResume(com.Validflag, flag)) { MessageBox.Show(errMessage, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } _baseCode = com.AskSubItmeVal; if (!flag) { DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreProductManage.checkFromResume", new Object[] { com.StdCode }, this.ob); if (dt != null && dt.Rows.Count > 0) { MessageBox.Show("标准名称 [" + com.StdName + " ]已经作废,不能恢复!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } } } } //alpha ArrayList alphaData = new ArrayList(); rows = GridHelper.GetRowsWithKey(ultraGrid4, new string[] { "CHC" }, new string[] { "True" }); if (rows.Length > 0) { foreach (UltraGridRow ugr in rows) { ComBaseStdAlphaEntity com = GetStdAlphaData(ugr); com.DeleteName = UserInfo.GetUserName(); alphaData.Add(JSONFormat.Format(com)); if (!CheckStdAlphaUnit(ugr)) { MessageUtil.ShowWarning(errMessage); return; } if (!CheckDeleteOrResume(com.Validflag, flag)) { MessageBox.Show(errMessage, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } if (flag) { DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreProductManage.checkAlphaDelete", new Object[] { com.AlphaCode }, this.ob); if (dt != null && dt.Rows.Count > 0 && Convert.ToInt32(dt.Rows[0][0]) > 0) { MessageBox.Show("Alpha名称[ " + com.AlphaName + " ]已经被引用,不能作废!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } } _alphaName = com.AlphaName; if (!flag) { DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreProductManage.checkFromResume", new Object[] { com.StdCode }, this.ob); if (dt != null && dt.Rows.Count > 0) { MessageBox.Show("标准代码 [ " + com.StdCode + " ]已经作废,不能恢复!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } } } } //客户 ArrayList custData = new ArrayList(); rows = GridHelper.GetRowsWithKey(ultraGrid5, new string[] { "CHC" }, new string[] { "True" }); if (rows.Length > 0) { foreach (UltraGridRow ugr in rows) { UltraGridRow ugr4 = ultraGrid4.ActiveRow; StdCusterObject com = GetObjectData.GetCusterData(ugr); com.DeleteName = UserInfo.GetUserName(); custData.Add(JSONFormat.Format(com)); if (!CheckDeleteOrResume(com.Validflag, flag)) { MessageBox.Show(errMessage, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } _custName = com.CustName; _alphaName = ugr4.Cells["ALPHA_NAME"].Value.ToString(); if (!flag) { DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreProductManage.checkFromResumeAlpha", new Object[] { com.StdCode }, this.ob); if (dt != null && dt.Rows.Count > 0) { MessageBox.Show("Alpha名称 [ " + com.StdName + " ]已经作废,不能恢复!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } } } } //规格保存 string msg = ""; ArrayList specList = _ctrlBaseStdRSpec.GetNoQueryParms( flag ? ActionType.Delete : ActionType.Resume, out msg); if (msg != "") { MessageUtil.ShowWarning(msg); return; } if (MessageBox.Show("是否" + (flag ? "作废" : "恢复") + "选择记录", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return; } if (stdData.Count > 0 || pscData.Count > 0 || addData.Count > 0 || alphaData.Count > 0 || custData.Count > 0 || specList.Count > 0) { int count = ServerHelper.SetData("com.steering.pss.qcm.CoreProductManage.deleteOrResume", new Object[] { stdData, pscData, addData, alphaData, custData, specList, flag }, this.ob); if (count > 0) { MessageBox.Show((flag ? "作废" : "恢复") + "成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Question); DoQuery(std_code); } } } /// /// 检验作废或者恢复 /// /// 有效标识 /// /// private bool CheckDeleteOrResume(string valid, bool flag) { if (valid.Equals("")) { errMessage = "记录未保存,不能" + (flag ? "作废" : "恢复"); return false; } if (flag) { if (valid.Equals("无效")) { errMessage = "无效记录不能作废"; return false; } } else { if (valid.Equals("有效")) { errMessage = "有效记录不能恢复"; return false; } } return true; } private void CreateItemSub() { int count = uces[6].Items.Count; itemSub = new Dictionary(); askSubItme = new Dictionary(); for (int i = 0; i < count; i++) { string itemCode = uces[6].Items[i].DataValue.ToString(); DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreProductManage.getSubItem", new Object[] { itemCode, "" }, this.ob); UltraComboEditor uce = new UltraComboEditor(); uce.DataSource = dt; uce.DisplayMember = "ASK_ITEM_DESC"; uce.ValueMember = "ASK_ITEM_NO"; Controls.Add(uce); uce.Visible = false; itemSub.Add(itemCode, uce); //for (int j = 0; j < uce.Items.Count; j++) //{ // string subCode = uce.Items[j].DataValue.ToString(); // DataTable dtSub = ServerHelper.GetData("com.steering.pss.qcm.CoreProductManage.getSubItem", new Object[] { subCode, ""}, this.ob); // UltraComboEditor uceSub = new UltraComboEditor(); // uceSub.DropDownListWidth = -1; // uceSub.DataSource = dtSub; // uceSub.DisplayMember = "ASK_ITEM_DESC"; // uceSub.ValueMember = "ASK_ITEM_NO"; // Controls.Add(uceSub); // uceSub.Visible = false; // askSubItme.Add(subCode, uceSub); //} } } private void BandItemSub(InitializeRowEventArgs e) { string itemCode = e.Row.Cells["ASK_ITME"].Value.ToString(); if (itemSub.ContainsKey(itemCode)) { e.Row.Cells["ASK_SUB_ITME"].EditorComponent = itemSub[itemCode]; e.Row.Cells["ASK_SUB_ITME"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList; } //string subCode = e.Row.Cells["ASK_SUB_ITME"].Value.ToString(); //if (askSubItme.ContainsKey(subCode)) //{ // e.Row.Cells["ASK_SUB_ITME_VAL"].EditorComponent = askSubItme[subCode]; // e.Row.Cells["ASK_SUB_ITME_VAL"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDown; //} } /// /// 获取标准数据 /// /// /// private BaseStdObject GetStdData(UltraGridRow ugr) { BaseStdObject com = new BaseStdObject(); com.StdCode = ugr.Cells["STD_CODE"].Value.ToString().Trim(); com.StdName = ugr.Cells["STD_NAME"].Value.ToString().Trim(); com.StdStyle = ugr.Cells["STDSTYLE"].Value.ToString().Trim(); com.StdNote = ugr.Cells["STD_NOTE"].Value.ToString().Trim(); com.StdStyleCode = ugr.Cells["STD_STYLE"].Value.ToString().Trim(); com.StdStyleName = ugr.Cells["STD_STYLE_NAME"].Value.ToString().Trim(); com.StdVersion = ugr.Cells["STD_VERSION"].Value.ToString().Trim(); com.ProcessCode = ugr.Cells["PROCESS_CODE"].Value.ToString().Trim(); com.ProcessDesc = ugr.Cells["PROCESS_DESC"].Value.ToString().Trim(); com.DepartmentCode = ugr.Cells["DEPARTMENT_CODE"].Value.ToString().Trim(); com.DepartmentDesc = ugr.Cells["DEPARTMENT_DESC"].Value.ToString(); com.UnitCode = ugr.Cells["UNIT_CODE"].Value.ToString().Trim(); com.UnitDesc = ugr.Cells["UNIT_DESC"].Value.ToString(); com.CreateName = ugr.Cells["CREATE_NAME"].Value.ToString().Trim(); com.CreateTime = ugr.Cells["CREATE_TIME"].Value.ToString().Trim(); com.UpdateName = ugr.Cells["UPDATE_NAME"].Value.ToString().Trim(); com.UpdateTime = ugr.Cells["UPDATE_TIME"].Value.ToString().Trim(); com.DeleteName = ugr.Cells["DELETE_NAME"].Value.ToString().Trim(); com.DeleteTime = ugr.Cells["DELETE_TIME"].Value.ToString().Trim(); com.Validflag = ugr.Cells["VALIDFLAG"].Value.ToString().Trim(); com.Memo = ugr.Cells["MEMO"].Value.ToString().Trim(); return com; } private bool CheckStdUnit(UltraGridRow row) { if (row.GetValue("VALIDFLAG") != "") { DataRow drBaseStd = GetBaseStdByPk(row.GetValue("STD_CODE")); string dataDeptCode = drBaseStd["DEPARTMENT_CODE"].ToString(); string dataUnitCode = drBaseStd["UNIT_CODE"].ToString(); if (!CheckUnit(dataDeptCode, dataUnitCode)) { errMessage = "标准[" + row.GetValue("STD_NAME") + "]是[" + drBaseStd["UNIT_DESC"].ToString() + "]维护的,您没有权限!"; row.Activate(); return false; } } return true; } private bool CheckUnit(string dataDeptCode, string dataUnitCode) { string curUnitCode = UserInfo.GetDeptid(); if (UserInfo.GetUserID() == "admin" || curUnitCode == "002001001004") return true; if (dataDeptCode == "002001007" && curUnitCode == "002001007006") { return true; } else { if (dataUnitCode == curUnitCode) { return true; } else { return false; } } } /// /// 检查标准数据 /// /// /// private bool CheckStdData(BaseStdObject com, UltraGridRow row) { if (com.Validflag.Equals("无效")) { errMessage = "无效记录不能操作"; return false; } if (com.StdName.Equals("")) { errMessage = "请输入标准名称"; return false; } //验证标准名称在ultraGrid1是否重复 UltraGridRow[] rows = GridHelper.GetRowsWithKey(ultraGrid1, new string[] { "STD_NAME", "STDSTYLE" }, new string[] { com.StdName, com.StdStyle }); if (rows.Length > 1) { errMessage = "标准名称:" + com.StdName + " 重复,请重新输入"; return false; } if (com.Validflag.Equals("")) { //验证标准名称在数据表是否重复 DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreProductManage.checkStd", new Object[] { com.StdName, com.StdStyle }, this.ob); if (dt != null && dt.Rows.Count > 0) { errMessage = "标准名称:" + com.StdName + " 重复,请重新输入"; return false; } } else { //验证标准名称是否重复 DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreProductManage.checkStdUpdate", new Object[] { com.StdName, com.StdCode, com.StdStyle }, this.ob); if (dt != null && dt.Rows.Count > 0) { errMessage = "标准名称:" + com.StdName + " 重复,请重新输入"; return false; } } if (com.StdStyle == "") { errMessage = "请选择标准类型!"; return false; } string departmentCode = ClsBaseInfo.GetDepartIdBySectionId( CoreFS.SA06.CoreUserInfo.UserInfo.GetDeptid(), this.ob); if (departmentCode == "002001007" && com.DepartmentCode != "002001007") { errMessage = "技术中心所属人员,不能修改管理部门!"; row.SetCellActive("DEPARTMENT_CODE"); return false; } if (com.DepartmentCode.Equals("")) { errMessage = "请选择管理部门"; return false; } if (com.UnitCode.Equals("")) { errMessage = "请选择管理科室"; return false; } return true; } /// /// 获取产品规范数据 /// /// /// private PscEntity GetPscData(UltraGridRow ugr) { PscEntity com = new PscEntity(); com.Psc = ugr.Cells["PSC"].Value.ToString().Trim(); com.PscDesc = ugr.Cells["PSC_DESC"].Value.ToString().Trim(); com.Produccode = ugr.Cells["PRODUCCODE"].Value.ToString().Trim(); if (ugr.Cells["PRODUCCODE"].Value.ToString() == "") { com.Producname = ""; } else { com.Producname = ((DataTable)uces[3].DataSource).Select( "PRODUCCODE='" + ugr.Cells["PRODUCCODE"].Value.ToString() + "'")[0][3].ToString(); } com.StdCode = ugr.Cells["STD_CODE"].Value.ToString().Trim(); com.StdName = ugr.Cells["STD_NAME"].Value.ToString().Trim(); com.Steelcode = ugr.Cells["STEELCODE"].Value.ToString().Trim(); com.Steelname = ugr.Cells["STEELNAME"].Value.ToString().Trim(); com.StdStyle = ugr.Cells["STD_STYLE"].Value.ToString().Trim(); com.StdStyleDesc = ugr.Cells["STD_STYLE_DESC"].Value.ToString().Trim(); com.NewProcCode = ugr.Cells["NEW_PROC_CODE"].Value.ToString().Trim(); com.CompressionRatio = ugr.Cells["COMPRESSION_RATIO"].Value == null ? "0" : ugr.Cells["COMPRESSION_RATIO"].Value.ToString(); if (Convert.ToBoolean(com.NewProcCode)) { com.NewProcCode = "1"; } else { com.NewProcCode = "0"; } com.NewProcDesc = ugr.Cells["NEW_PROC_DESC"].Value.ToString().Trim(); com.DepartmentCode = ugr.Cells["DEPARTMENT_CODE"].Value.ToString(); com.DepartmentDesc = ugr.Cells["DEPARTMENT_DESC"].Value; com.UnitCode = ugr.Cells["UNIT_CODE"].Value.ToString().Trim(); com.Autojudge = ugr.Cells["AUTOJUDGE"].Value.ToString().Trim(); if (Convert.ToBoolean(com.Autojudge)) { com.Autojudge = "1"; } else { com.Autojudge = "0"; } com.UnitDesc = ugr.Cells["UNIT_DESC"].Value; com.CreateName = ugr.Cells["CREATE_NAME"].Value.ToString().Trim(); com.CreateTime = ugr.Cells["CREATE_TIME"].Value.ToString().Trim(); com.UpdateName = ugr.Cells["UPDATE_NAME"].Value.ToString().Trim(); com.UpdateTime = ugr.Cells["UPDATE_TIME"].Value.ToString().Trim(); com.DeleteName = ugr.Cells["DELETE_NAME"].Value.ToString().Trim(); com.DeleteTime = ugr.Cells["DELETE_TIME"].Value.ToString().Trim(); com.Validflag = ugr.Cells["validflag"].Value.ToString().Trim(); com.Memo = ugr.Cells["memo"].Value.ToString().Trim(); com.ProducHead = ugr.Cells["PRODUC_HEAD"].Value.ToString(); com.ProducType = ugr.Cells["TYPECODE"].Value.ToString(); com.ProducStyle = ugr.Cells["PRODUC_STYLE"].Value.ToString(); com.ProducDesc = ugr.Cells["PRODUC_DESC"].Value.ToString(); return com; } private bool CheckPscUnit(UltraGridRow row) { if (row.GetValue("VALIDFLAG") != "") { DataRow drPsc = GetBasePscByPk(row.GetValue("PSC")); string dataDeptCode = drPsc["DEPARTMENT_CODE"].ToString(); string dataUnitCode = drPsc["UNIT_CODE"].ToString(); if (!CheckUnit(dataDeptCode, dataUnitCode)) { errMessage = "产品[" + row.GetValue("PSC_DESC") + "]是[" + drPsc["UNIT_DESC"].ToString() + "]维护的, 您没有权限!"; return false; } } return true; } /// /// 检查产品规范数据 /// /// /// private bool CheckPscData(PscEntity com, UltraGridRow row) { if (com.Validflag.ToString().Equals("无效")) { errMessage = "无效记录不能操作"; return false; } if (com.Produccode.ToString().Equals("")) { errMessage = "请选择品名"; return false; } if (com.Steelcode.Equals("")) { errMessage = "请选择钢级牌号"; return false; } int sameCount = ultraGrid2.Rows.Where(a => a.GetValue("PRODUCCODE") == com.Produccode && a.GetValue("STD_CODE") == com.StdCode && a.GetValue("STEELCODE") == com.Steelcode && a.GetValue("STD_STYLE") == com.StdStyle).Count(); if (sameCount > 1) { errMessage = "将要保存的产品中存在重复记录!"; return false; } if (com.Validflag.Equals("")) { DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreProductManage.checkPsc", new Object[] { com.Produccode.ToString(), com.StdStyle.ToString(), com.Steelcode.ToString(),com.StdCode.ToString()}, this.ob); if (dt != null && dt.Rows.Count > 0) { errMessage = "产品规范描述:" + com.PscDesc + " 重复!"; return false; } } else { DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreProductManage.checkPscUpdate", new Object[] { com.Produccode, com.StdStyle, com.Steelcode, com.StdCode, com.Psc }, this.ob); if (dt != null && dt.Rows.Count > 0) { errMessage = "产品规范描述:" + com.PscDesc + " 重复!"; return false; } } string departmentCode = ClsBaseInfo.GetDepartIdBySectionId( CoreFS.SA06.CoreUserInfo.UserInfo.GetDeptid(), this.ob); if (departmentCode == "002001007" && com.DepartmentCode.ToString() != "002001007") { errMessage = "技术中心所属人员,不能修改管理部门!"; row.SetCellActive("DEPARTMENT_CODE"); return false; } if (com.UnitCode.Equals("")) { errMessage = "请选择管理科室"; return false; } if (com.DepartmentCode.Equals("")) { errMessage = "请选择管理部门"; return false; } if (com.CompressionRatio.Equals("")) { errMessage = "请输入锻造比极限值(默认值为1)"; return false; } return true; } /// /// 获取附加要求数据 /// /// /// private BaseAdditionalObject GetAdditionalData(UltraGridRow ugr) { BaseAdditionalObject com = new BaseAdditionalObject(); com.StdCode = ugr.Cells["STD_CODE"].Value.ToString().Trim(); com.StdName = ugr.Cells["STD_NAME"].Value.ToString().Trim(); com.AskItme = ugr.Cells["ASK_ITME"].Value.ToString().Trim(); com.AskItmeDesc = ugr.Cells["ASK_ITME_DESC"].Value.ToString().Trim(); com.AskSubItme = ugr.Cells["ASK_SUB_ITME"].Value.ToString().Trim(); com.AskSubItmeDesc = ugr.Cells["ASK_SUB_ITME_DESC"].Value.ToString().Trim(); com.AskSubItmeVal = ugr.Cells["ASK_SUB_ITME_VAL"].Value.ToString().Trim(); com.AskSubItmeValDesc = ugr.Cells["ASK_SUB_ITME_VAL_DESC"].Value.ToString().Trim(); com.Pic = ugr.Cells["PIC"].Value.ToString().Trim(); com.CreateName = ugr.Cells["CREATE_NAME"].Value.ToString().Trim(); com.CreateTime = ugr.Cells["CREATE_TIME"].Value.ToString().Trim(); com.UpdateName = ugr.Cells["UPDATE_NAME"].Value.ToString().Trim(); com.UpdateTime = ugr.Cells["UPDATE_TIME"].Value.ToString().Trim(); com.DeleteName = ugr.Cells["DELETE_NAME"].Value.ToString().Trim(); com.DeleteTime = ugr.Cells["DELETE_TIME"].Value.ToString().Trim(); com.Validflag = ugr.Cells["validflag"].Value.ToString().Trim(); com.Memo = ugr.Cells["memo"].Value.ToString().Trim(); com.Pk = ugr.Cells["PK"].Value.ToString().Replace("ROWID", ""); return com; } private bool CheckAdditionalData(BaseAdditionalObject com, UltraGridRow ugr) { if (com.Validflag.Equals("无效")) { errMessage = "无效记录不能操作"; return false; } if (com.AskItme.Equals("")) { errMessage = "请选择附加要求项"; return false; } if (com.AskSubItme.Equals("")) { errMessage = "请选择附加要求分项"; return false; } if (com.AskSubItmeVal.Equals("")) { errMessage = "请选择标准说明"; return false; } ///先检验ultragrid:是否有相同的附加要求项 UltraGridRow[] rows = GridHelper.GetRowsWithKey(ultraGrid3, new string[] { "ASK_SUB_ITME_VAL", "CHC" }, new string[] { com.AskSubItmeVal, "True" }); if (rows.Length > 1) { errMessage = "标准说明:" + com.AskSubItmeValDesc + " 重复,请重新选择"; return false; } //如果是新增,检验数据表里是否存在相同的附加要求项 if (com.Validflag.Equals("")) { DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreProductManage.checkAdditional", new Object[] { com.StdCode, com.AskSubItmeVal }, this.ob); if (dt != null && dt.Rows.Count > 0) { errMessage = "标准说明:" + com.AskSubItmeValDesc + "重复,请重新选择"; return false; } } //如果是修改,先判断附加要求项是否修改过,如果修改过,检验在数据表里是否存在相同的附加要求项 else { if (!codeItem.Contains(com.AskSubItmeVal)) { DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreProductManage.checkAdditional", new Object[] { com.StdCode, com.AskSubItmeVal }, this.ob); if (dt != null && dt.Rows.Count > 0) { errMessage = "标准说明:" + com.AskSubItmeValDesc + "重复,请重新选择"; return false; } } } return true; } /// /// 行不可编辑 /// /// private void SetUnEnit(UltraGridRow ugr) { //增加行如果没有勾选则不可编辑 if (!Convert.ToBoolean(ugr.Cells["CHC"].Value)) { for (int i = 0; i < ugr.Cells.Count; i++) { if (!ugr.Cells[i].Column.Key.Equals("CHC")) ugr.Cells[i].Activation = Activation.ActivateOnly; } } } //---------------------ultraGrid1---------------------------------- /// /// /// /// /// private void ultraGrid1_CellChange(object sender, CellEventArgs e) { ultraGrid1.UpdateData(); UltraGridRow ugr = ultraGrid1.DisplayLayout.ActiveRow; if (e.Cell.Column.Key.Equals("STD_NAME")) //标准名称 { for (int i = 0; i < ultraGrid2.Rows.Count; i++) { ultraGrid2.Rows[i].Cells["STD_NAME"].Value = ugr.Cells["STD_NAME"].Value.ToString().Trim(); ultraGrid2.Rows[i].Cells["STD_CODE"].Value = ugr.Cells["STD_CODE"].Value.ToString().Trim(); } for (int i = 0; i < ultraGrid3.Rows.Count; i++) { ultraGrid3.Rows[i].Cells["STD_NAME"].Value = ugr.Cells["STD_NAME"].Value.ToString().Trim(); ultraGrid3.Rows[i].Cells["STD_CODE"].Value = ugr.Cells["STD_CODE"].Value.ToString().Trim(); } } if (e.Cell.Column.Key.Equals("STDSTYLE")) //标准类型 { ugr.Cells["STD_NOTE"].Value = ugr.Cells["STDSTYLE"].Text; } if (e.Cell.Column.Key.Equals("STD_STYLE")) //标准协会 { ugr.Cells["STD_STYLE_NAME"].Value = ugr.Cells["STD_STYLE"].Text; } if (e.Cell.Column.Key.Equals("DEPARTMENT_CODE")) //部门管理 { ugr.Cells["DEPARTMENT_DESC"].Value = ugr.Cells["DEPARTMENT_CODE"].Text; ugr.Cells["UNIT_DESC"].Value = ""; ugr.Cells["UNIT_CODE"].Value = ""; } if (e.Cell.Column.Key.Equals("UNIT_CODE")) //科室管理 { ugr.Cells["UNIT_DESC"].Value = ugr.Cells["UNIT_CODE"].Text; } if (e.Cell.Column.Key.Equals("CHC"))//选择 { Activation activation = Activation.ActivateOnly; if (Convert.ToBoolean(e.Cell.Value)) { activation = Activation.AllowEdit; isSelectData += 1; } else isSelectData -= 1; CellsCollection cells = e.Cell.Row.Cells; for (int i = 0; i < cells.Count; i++) { if (!cells[i].Column.Key.Equals("CHC") && !cells[i].Column.Key.Equals("STD_NAME")) { e.Cell.Row.Cells[i].Activation = activation; } } if (!e.Cell.Row.Cells["CREATE_NAME"].Value.ToString().Equals("")) { if (ultraGrid2.Rows.Count > 0 || ultraGrid3.Rows.Count > 0 || ultraGrid4.Rows.Count > 0) { e.Cell.Row.Cells["STD_NAME"].Activation = Activation.ActivateOnly; e.Cell.Row.Cells["STDSTYLE"].Activation = Activation.ActivateOnly; } else { e.Cell.Row.Cells["STD_NAME"].Activation = activation; e.Cell.Row.Cells["STDSTYLE"].Activation = activation; } } else e.Cell.Row.Cells["STD_NAME"].Activation = activation; } } /// /// 行激活事件 /// /// /// private void ultraGrid1_AfterRowActivate(object sender, EventArgs e) { this.Cursor = Cursors.WaitCursor; try { ultraGrid2.Enabled = true; ultraGrid3.Enabled = true; ultraGrid4.Enabled = true; ultraGrid1.UpdateData(); ultraGrid2.UpdateData(); ultraGrid3.UpdateData(); ultraGrid4.UpdateData(); UltraGridRow ugr = ultraGrid1.ActiveRow; for (int i = 0; i < ultraGrid1.Rows.Count; i++) { if (!ultraGrid1.Rows[i].Equals(ugr)) { ultraGrid1.Rows[i].Cells["CHC"].Value = false; } } string stdCode = ugr.Cells["STD_CODE"].Value.ToString(); _stdName = ugr.Cells["STD_NAME"].Value.ToString(); //如果有效,则可用 if (ugr.Cells["VALIDFLAG"].Value.ToString().Equals("有效")) { ultraGrid2.Enabled = true; ultraGrid3.Enabled = true; ultraGrid4.Enabled = true; } else { ultraGrid2.Enabled = false; ultraGrid3.Enabled = false; ultraGrid4.Enabled = false; } string valid = "1"; if (ChcValid.Checked) { valid = "0"; } DataTable dtPsc = ServerHelper.GetData("com.steering.pss.qcm.CoreProductManage.queryPsc", new Object[] { stdCode, valid }, this.ob); if (dtPsc != null && dtPsc.Rows.Count > 0) { GridHelper.CopyDataToDatatable(ref dtPsc, ref dataTable2, true); //QcmBaseCommon.SetNoEdit(ultraGrid2); QcmBaseCommon.SetUltraGridNoEdit(ultraGrid2); UltraGridRow[] rows = GridHelper.GetRowsWithKey(ultraGrid2, new string[] { "PSC_DESC" }, new string[] { _pscDesc }); if (rows.Length > 0) rows[0].Activate(); UltraGridBand bc = ultraGrid2.DisplayLayout.Bands[0]; UltraGridColumn[] col = new UltraGridColumn[] { bc.Columns["MEMO"], bc.Columns["PSC"], bc.Columns["PRODUCCODE"], bc.Columns["STEELCODE"] }; GridHelper.RefreshAndAutoSizeExceptColumns(ultraGrid2, col); } else { dataTable2.Rows.Clear(); } DataTable dtAdd = ServerHelper.GetData("com.steering.pss.qcm.CoreProductManage.queryAdd", new Object[] { stdCode, valid }, this.ob); if (dtAdd != null && dtAdd.Rows.Count > 0) { GridHelper.CopyDataToDatatable(ref dtAdd, ref dataTable3, true); //QcmBaseCommon.SetNoEdit(ultraGrid3);l QcmBaseCommon.SetUltraGridNoEdit(ultraGrid3); UltraGridRow[] rows = GridHelper.GetRowsWithKey(ultraGrid3, new string[] { "ASK_SUB_ITME_VAL" }, new string[] { _baseCode }); if (rows.Length > 0) rows[0].Activate(); UltraGridBand bc = ultraGrid3.DisplayLayout.Bands[0]; UltraGridColumn[] col = new UltraGridColumn[] { bc.Columns["ASK_SUB_ITME_VAL"], bc.Columns["STD_NAME"], bc.Columns["MEMO"] }; GridHelper.RefreshAndAutoSizeExceptColumns(ultraGrid3, col); for (int i = 0; i < dtAdd.Rows.Count; i++) { codeItem.Add(dtAdd.Rows[i]["ASK_SUB_ITME_VAL"].ToString()); } } else { dataTable3.Rows.Clear(); } DataTable dtAlpha = ServerHelper.GetData("com.steering.pss.qcm.CoreProductManage.queryAlpha", new Object[] { stdCode, _psc, _useCode, valid, _isPopupFrm.ToString() }, this.ob); if (dtAlpha != null && dtAlpha.Rows.Count > 0) { GridHelper.CopyDataToDatatable(ref dtAlpha, ref dataTable4, true); QcmBaseCommon.SetUltraGridNoEdit(ultraGrid4); UltraGridRow[] rows = GridHelper.GetRowsWithKey(ultraGrid4, new string[] { "ALPHA_NAME" }, new string[] { _alphaName }); if (rows.Length > 0) rows[0].Activate(); UltraGridBand bc = ultraGrid4.DisplayLayout.Bands[0]; UltraGridColumn[] col = new UltraGridColumn[] { bc.Columns["MEMO"] }; GridHelper.RefreshAndAutoSizeExceptColumns(ultraGrid4, col); } else { dataTable4.Rows.Clear(); } foreach (UltraGridRow row in ultraGrid4.Rows) { ControlGrid4Edit(row); } string stdName = ultraGrid1.GetActiveRowValue("STD_NAME"); BaseStdRSpecEntity baseStdRSpec = new BaseStdRSpecEntity(); baseStdRSpec.StdCode = stdCode; baseStdRSpec.StdName = stdName; baseStdRSpec.ValidflagName = ultraGrid1.GetActiveRowValue("VALIDFLAG"); baseStdRSpec.Validflag = ChcValid.Checked ? "0" : "1"; _ctrlBaseStdRSpec.Query(baseStdRSpec); _pscDesc = ""; _baseCode = ""; _alphaName = ""; } finally { this.Cursor = Cursors.Default; } } private void ultraGrid1_AfterRowInsert(object sender, RowEventArgs e) { //增加一行,自动获取最大的标准代码,然后加1 UltraGridRow ugr = ultraGrid1.ActiveRow; int stdCode = 0; DataRow[] rows = dataTable1.Select("", "STD_CODE DESC"); if (rows.Length > 0) stdCode = Convert.ToInt32(rows[0]["STD_CODE"].ToString().Substring(3, 7)); ugr.Cells["STD_CODE"].Value = "STD" + string.Format("{0:0000000}", (stdCode + 1)); //增加行如果没有勾选则不可编辑 SetUnEnit(ugr); e.Row.Cells["UNIT_CODE"].Value = CoreFS.SA06.CoreUserInfo.UserInfo.GetDeptid(); e.Row.Cells["DEPARTMENT_CODE"].Value = ClsBaseInfo.GetDepartIdBySectionId( CoreFS.SA06.CoreUserInfo.UserInfo.GetDeptid(), this.ob); } private void ultraGrid1_InitializeRow(object sender, InitializeRowEventArgs e) { if (e.Row.Cells["VALIDFLAG"].Value.ToString().Equals("无效")) { e.Row.Appearance.ForeColor = Color.Red; } else { e.Row.Appearance.ForeColor = Color.Black; } } //---------------------ultraGrid2---------------------------------- /// /// /// /// /// private void ultraGrid2_CellChange(object sender, CellEventArgs e) { ultraGrid2.UpdateData(); UltraGridRow ugr = ultraGrid2.ActiveRow; string productNameJx = ""; //品名简写 DataRow[] dr1 = ((DataTable)uces[3].DataSource).Select("PRODUCCODE='" + ugr.Cells["PRODUCCODE"].Value.ToString() + "'"); if (dr1.Length > 0) { //ugr.Cells["PRODUC_DESC"].Value = dr[0][2]; //销售分类 productNameJx = dr1[0][3].ToString(); // ugr.Cells["PRODUC_HEAD"].Value = dr[0][4]; //产品大类 } if (e.Cell.Column.Key.Equals("PRODUCCODE")) //品名描述 { ugr.Cells["PRODUCNAME"].Value = ugr.Cells["PRODUCCODE"].Text; DataRow[] dr = ((DataTable)uces[3].DataSource).Select("PRODUCCODE='" + ugr.Cells["PRODUCCODE"].Value.ToString() + "'"); if (dr.Length > 0) { ugr.Cells["PRODUC_DESC"].Value = dr[0][2]; //销售分类 productNameJx = dr[0][3].ToString(); ugr.Cells["PRODUC_HEAD"].Value = dr[0][4]; //产品大类 ugr.Cells["PRODUC_STYLE"].Value = dr[0][6]; string type_desc = ""; switch (dr[0][5].ToString()) { case "A": type_desc = "钢管(管坯)"; break; case "B": type_desc = "钢管+接箍"; break; case "C": type_desc = "短节+附件"; break; case "D": type_desc = "接箍"; break; case "E": type_desc = "双公短节"; break; default: type_desc = "未定义"; break; } ugr.Cells["TYPECODE"].Value = dr[0][5]; ugr.Cells["PRODUC_TYPE"].Value = type_desc; } } if (e.Cell.Column.Key.Equals("STEELCODE")) //钢级(牌号)名称 { ugr.Cells["STEELNAME"].Value = ugr.Cells["STEELCODE"].Text; } if (e.Cell.Column.Key.Equals("STD_STYLE")) //标准类别描述(PSL1....) { ugr.Cells["STD_STYLE_DESC"].Value = ugr.Cells["STD_STYLE"].Text; } //产品规范描述组成 =品名,标准类别 空格 钢级,标准 ugr.Cells["PSC_DESC"].Value = productNameJx; //标准类别 string stdStyleDesc = ugr.Cells["STD_STYLE_DESC"].Text; if (stdStyleDesc != "") { if (ugr.Cells["PSC_DESC"].Value.ToString() == "") { ugr.Cells["PSC_DESC"].Value = stdStyleDesc; } else { if (stdStyleDesc != "") { ugr.Cells["PSC_DESC"].Value = ugr.Cells["PSC_DESC"].Value.ToString() + "," + stdStyleDesc; } } } if (ugr.Cells["STEELNAME"].Text != "") { if (ugr.Cells["PSC_DESC"].Value.ToString() == "") { ugr.Cells["PSC_DESC"].Value = ugr.Cells["STEELNAME"].Text; } else { if (ugr.Cells["STEELNAME"].Text != "") { if (stdStyleDesc == "") { ugr.Cells["PSC_DESC"].Value = ugr.Cells["PSC_DESC"].Value.ToString() + "," + ugr.Cells["STEELNAME"].Text; } else { ugr.Cells["PSC_DESC"].Value = ugr.Cells["PSC_DESC"].Value.ToString() + " " + ugr.Cells["STEELNAME"].Text; } } } } if (ugr.Cells["STD_NAME"].Text != "") { if (ugr.Cells["PSC_DESC"].Value.ToString() == "") { ugr.Cells["PSC_DESC"].Value = ugr.Cells["STD_NAME"].Text; } else { if (ugr.Cells["STD_NAME"].Text != "") { ugr.Cells["PSC_DESC"].Value = ugr.Cells["PSC_DESC"].Value.ToString() + "," + ugr.Cells["STD_NAME"].Text; } } } if (e.Cell.Column.Key.Equals("DEPARTMENT_CODE")) //部门管理 { ugr.Cells["DEPARTMENT_DESC"].Value = ugr.Cells["DEPARTMENT_CODE"].Text; //根据部门号查询管理科室 } if (e.Cell.Column.Key.Equals("UNIT_CODE")) //科室管理 { ugr.Cells["UNIT_DESC"].Value = ugr.Cells["UNIT_CODE"].Text; } if (e.Cell.Column.Key.Equals("CHC"))//选择 { Activation activation = Activation.ActivateOnly; if (Convert.ToBoolean(e.Cell.Value)) { activation = Activation.AllowEdit; isSelectData += 1; } else isSelectData -= 1; CellsCollection cells = e.Cell.Row.Cells; for (int i = 0; i < cells.Count; i++) { if (!cells[i].Column.Key.Equals("CHC")) { e.Cell.Row.Cells[i].Activation = activation; } } //-----------------2015-3-15 PSC下存在MSC时 PSC_DESC不能修改。---------------------------------------------- if (e.Cell.Value.ToString().ToUpper() == "TRUE" && ugr.Cells["VALIDFLAG"].Value.ToString() != "") { DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreProductManage.isPscLinkMsc", new Object[] { ugr.Cells["PSC"].Value.ToString() }, this.ob); if (dt != null && dt.Rows.Count > 0) { ugr.Cells["PRODUCCODE"].Activation = Activation.ActivateOnly; ugr.Cells["STEELCODE"].Activation = Activation.ActivateOnly; ugr.Cells["STD_STYLE"].Activation = Activation.ActivateOnly; ugr.Cells["PRODUC_HEAD"].Activation = Activation.ActivateOnly; } else { ugr.Cells["PRODUCCODE"].Activation = Activation.AllowEdit; ugr.Cells["STEELCODE"].Activation = Activation.AllowEdit; ugr.Cells["STD_STYLE"].Activation = Activation.AllowEdit; ugr.Cells["PRODUC_HEAD"].Activation = Activation.AllowEdit; } } //---------------------------------------------------------------------------------- } } private void ultraGrid2_AfterRowInsert(object sender, RowEventArgs e) {//增加一行,自动获取最大的最大产品规范码,然后加1 UltraGridRow ugr = ultraGrid2.DisplayLayout.ActiveRow; UltraGridRow ugr1 = ultraGrid1.DisplayLayout.ActiveRow; int psc = 0; DataRow[] rows = dataTable2.Select("", "PSC DESC"); if (rows.Length > 0) psc = Convert.ToInt32(rows[0]["PSC"].ToString().Substring(4, 6)); ugr.Cells["PSC"].Value = "PSC" + string.Format("{0:0000000}", (psc + 1)); ugr.Cells["STD_NAME"].Value = ugr1.Cells["STD_NAME"].Value.ToString().Trim(); ugr.Cells["STD_CODE"].Value = ugr1.Cells["STD_CODE"].Value.ToString().Trim(); ugr.Cells["COMPRESSION_RATIO"].Value = "1"; //ugr.Cells["DEPARTMENT_DESC"].Value = UserInfo.GetDepartment(); //ugr.Cells["DEPARTMENT_CODE"].Value = UserInfo.GetDeptid(); SetUnEnit(ugr); if (ultraGrid1.ActiveRow != null) { e.Row.Cells["UNIT_CODE"].Value = ultraGrid1.GetActiveRowValue("UNIT_CODE"); e.Row.Cells["UNIT_DESC"].Value = ultraGrid1.GetActiveRowValue("UNIT_DESC"); e.Row.Cells["DEPARTMENT_CODE"].Value = ultraGrid1.GetActiveRowValue("DEPARTMENT_CODE"); e.Row.Cells["DEPARTMENT_DESC"].Value = ultraGrid1.GetActiveRowValue("DEPARTMENT_DESC"); } } private void ultraGrid2_InitializeRow(object sender, InitializeRowEventArgs e) { if (e.Row.Cells["VALIDFLAG"].Value.ToString().Equals("无效")) { e.Row.Appearance.ForeColor = Color.Red; } else { e.Row.Appearance.ForeColor = Color.Black; } e.Row.Cells["BTN_MSC"].Value = "冶金规范"; e.Row.Cells["BTN_MSC"].ButtonAppearance.BackColor = Color.FromArgb(99, 184, 255); } //---------------------ultraGrid3---------------------------------- private void ultraGrid3_AfterRowInsert(object sender, RowEventArgs e) { ultraGrid3.UpdateData(); UltraGridRow ugrStd = ultraGrid1.ActiveRow; UltraGridRow ugrAdd = ultraGrid3.ActiveRow; ugrAdd.Cells["STD_CODE"].Value = ugrStd.Cells["STD_CODE"].Value.ToString().Trim(); ugrAdd.Cells["STD_NAME"].Value = ugrStd.Cells["STD_NAME"].Value.ToString().Trim(); SetUnEnit(ugrAdd); } private void ultraGrid3_CellChange(object sender, CellEventArgs e) { ultraGrid3.UpdateData(); UltraGridRow ugr = ultraGrid3.ActiveRow; if (e.Cell.Column.Key.Equals("ASK_ITME")) { ugr.Cells["ASK_ITME_DESC"].Value = e.Cell.Text; ugr.Cells["ASK_SUB_ITME"].Value = ""; ugr.Cells["ASK_SUB_ITME_DESC"].Value = ""; ugr.Cells["ASK_SUB_ITME_VAL"].Value = ""; ugr.Cells["ASK_SUB_ITME_VAL_DESC"].Value = ""; } if (e.Cell.Column.Key.Equals("ASK_SUB_ITME")) { ugr.Cells["ASK_SUB_ITME_DESC"].Value = e.Cell.Text; ugr.Cells["ASK_SUB_ITME_VAL"].Value = ""; ugr.Cells["ASK_SUB_ITME_VAL_DESC"].Value = ""; } if (e.Cell.Column.Key.Equals("CHC"))//选择 { Activation activation = Activation.ActivateOnly; if (Convert.ToBoolean(e.Cell.Value)) { activation = Activation.AllowEdit; isSelectData += 1; } else isSelectData -= 1; CellsCollection cells = e.Cell.Row.Cells; for (int i = 0; i < cells.Count; i++) { if (!cells[i].Column.Key.Equals("CHC")) { e.Cell.Row.Cells[i].Activation = activation; } } } } private void ultraGrid3_InitializeRow(object sender, InitializeRowEventArgs e) { BandItemSub(e); if (e.Row.Cells["VALIDFLAG"].Value.ToString().Equals("无效")) { e.Row.Appearance.ForeColor = Color.Red; } else { e.Row.Appearance.ForeColor = Color.Black; } } private void ChcStd_CheckedChanged(object sender, EventArgs e) { if (ChcStd.Checked) { TextStd.Enabled = true; } else { TextStd.Enabled = false; } } private void ultraExpandableGroupBox1_ExpandedStateChanged(object sender, EventArgs e) { if (disWidth == 0) { disWidth = splitContainer2.SplitterDistance; } if (ultraExpandableGroupBox1.Expanded) { splitContainer2.SplitterDistance = disWidth; } else splitContainer2.SplitterDistance = this.Width; } // --------------------------ultraGrid4--------------------------------------------- private void ultraGrid4_AfterRowInsert(object sender, RowEventArgs e) { UltraGridRow ugr = ultraGrid4.DisplayLayout.ActiveRow; UltraGridRow ugr1 = ultraGrid1.DisplayLayout.ActiveRow; int alphacode = -1; DataRow[] rows = dataTable4.Select("", "ALPHA_CODE DESC"); if (rows.Length > 0) alphacode = Convert.ToInt32(rows[0]["ALPHA_CODE"].ToString().Substring(10, 3)); ugr.Cells["ALPHA_CODE"].Value = ugr1.Cells["STD_CODE"].Value.ToString().Trim() + string.Format("{0:000}", (alphacode + 1)); ugr.Cells["STD_CODE"].Value = ugr1.Cells["STD_CODE"].Value.ToString().Trim(); ugr.Cells["STD_STYLE"].Value = ugr1.Cells["STD_STYLE"].Value.ToString().Trim(); ugr.Cells["STD_STYLE_NAME"].Value = ugr1.Cells["STD_STYLE"].Text.Trim(); ugr.Cells["ALPHA_NAME"].Value = ugr1.Cells["STD_NAME"].Value.ToString() + string.Format("{0:000}", (alphacode + 1)); ugr.Cells["UNIT_CODE"].Value = UserInfo.GetDeptid(); ugr.Cells["UNIT_DESC"].Value = UserInfo.GetDepartment(); ugr.Cells["DEPARTMENT_CODE"].Value = ClsBaseInfo.GetDepartIdBySectionId(UserInfo.GetDeptid(), this.ob); ugr.Cells["DEPARTMENT_DESC"].Value = ClsBaseInfo.GetDepartBySectionId(UserInfo.GetDeptid(), this.ob); SetUnEnit(ugr); } private ComBaseStdAlphaEntity GetStdAlphaData(UltraGridRow ugr) { ComBaseStdAlphaEntity cmsae = new ComBaseStdAlphaEntity(); cmsae.AlphaCode = ugr.Cells["ALPHA_CODE"].Value.ToString(); cmsae.AlphaName = ugr.Cells["ALPHA_NAME"].Value.ToString(); cmsae.StdCode = ugr.Cells["STD_CODE"].Value.ToString(); cmsae.StdNote = ugr.Cells["STD_NOTE"].Value.ToString(); cmsae.StdStyle = ugr.Cells["STD_STYLE"].Value.ToString(); cmsae.StdStyleName = ugr.Cells["STD_STYLE_NAME"].Value.ToString(); cmsae.StdVersion = ugr.Cells["STD_VERSION"].Value.ToString(); cmsae.DepartmentCode = ugr.Cells["DEPARTMENT_CODE"].Value.ToString(); cmsae.DepartmentDesc = ugr.Cells["DEPARTMENT_DESC"].Value.ToString(); cmsae.UnitCode = ugr.Cells["UNIT_CODE"].Value.ToString(); cmsae.UnitDesc = ugr.Cells["UNIT_DESC"].Value.ToString(); cmsae.CreateName = ugr.Cells["CREATE_NAME"].Value.ToString(); cmsae.CreateTime = ugr.Cells["CREATE_TIME"].Value.ToString(); cmsae.UpdateName = ugr.Cells["UPDATE_NAME"].Value.ToString(); cmsae.UpdateTime = ugr.Cells["UPDATE_TIME"].Value.ToString(); cmsae.DeleteName = ugr.Cells["UPDATE_TIME"].Value.ToString(); cmsae.DeleteTime = ugr.Cells["DELETE_TIME"].Value.ToString(); cmsae.Validflag = ugr.Cells["VALIDFLAG"].Value.ToString(); cmsae.Memo = ugr.Cells["MEMO"].Value.ToString(); return cmsae; } private bool CheckStdAlphaUnit(UltraGridRow row) { if (row.GetValue("VALIDFLAG") != "") { DataRow drStdAlpha = GetBaseStdRAlphaByPk(row.GetValue("ALPHA_CODE")); string dataDeptCode = drStdAlpha["DEPARTMENT_CODE"].ToString(); string dataUnitCode = drStdAlpha["UNIT_CODE"].ToString(); if (!CheckUnit(dataDeptCode, dataUnitCode)) { errMessage = "用途描述[" + row.GetValue("ALPHA_NAME") + "]是[" + drStdAlpha["UNIT_DESC"].ToString() + "]维护的,您没有权限!"; return false; } } return true; } private bool CheckStdAlphaData(ComBaseStdAlphaEntity com, UltraGridRow row) { if (com.Validflag.Equals("无效")) { errMessage = "无效记录不能操作"; return false; } if (com.AlphaName.Equals("")) { errMessage = "请输入Alpha名称"; return false; } UltraGridRow[] rows = GridHelper.GetRowsWithKey(ultraGrid4, new string[] { "ALPHA_NAME", "CHC" }, new string[] { com.AlphaName, "True" }); if (rows.Length > 1) { errMessage = "Alpha名称:" + com.AlphaName + " 重复!"; return false; } if (com.Validflag.Equals("")) { DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreProductManage.checkAlpha", new Object[] { com.AlphaName, com.StdCode }, this.ob); if (dt != null && dt.Rows[0][0].ToString() != "0") { errMessage = "Alpha名称:" + com.AlphaName + " 重复!"; return false; } } else { DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreProductManage.checkAlphaUpdate", new Object[] { com.AlphaCode, com.AlphaName, com.StdCode }, this.ob); if (dt != null && dt.Rows[0][0].ToString() != "0") { errMessage = "Alpha名称:" + com.AlphaName + " 重复!"; return false; } } if (com.DepartmentCode == "") { errMessage = "请选择管理部门!"; return false; } if (com.UnitCode == "") { errMessage = "请选择管理科室!"; return false; } return true; } private void ControlGridEdit(UltraGridRow row, List listNoEdit, List listDrop) { if (row.Cells.Exists("CHC") == false) return; if (row.Cells["CHC"].Value.ToString() == "True") { foreach (UltraGridCell cell in row.Cells) { if (cell.Column.Key == "CHC") continue; if (listNoEdit.Contains(cell.Column.Key)) { cell.Activation = Activation.ActivateOnly; } else if (listDrop.Contains(cell.Column.Key)) { cell.Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList; cell.Activation = Activation.AllowEdit; } else { cell.Activation = Activation.AllowEdit; } } } else { foreach (UltraGridCell cell in row.Cells) { if (cell.Column.Key == "CHC") continue; if (listDrop.Contains(cell.Column.Key)) { cell.Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDown; cell.Activation = Activation.ActivateOnly; } else { cell.Activation = Activation.ActivateOnly; } } } } private void ControlGrid4Edit(UltraGridRow row) { List listNoEdit = new List(); listNoEdit.AddRange("ALPHA_CODE", "VALIDFLAG", "CREATE_NAME", "CREATE_TIME", "UPDATE_NAME", "UPDATE_TIME", "DELETE_NAME", "DELETE_TIME"); List listDrop = new List(); listDrop.AddRange("DEPARTMENT_CODE", "UNIT_CODE"); ControlGridEdit(row, listNoEdit, listDrop); } private void ultraGrid4_CellChange(object sender, CellEventArgs e) { ultraGrid4.UpdateData(); ControlGrid4Edit(e.Cell.Row); if (e.Cell.Column.Key == "CHC") { if (e.Cell.Value.ToString() == "True") { isSelectData++; } else { isSelectData--; } } if (e.Cell.Column.Key == "DEPARTMENT_CODE") { e.Cell.Row.Cells["UNIT_CODE"].Value = ""; } ultraGrid4.UpdateData(); } private void ultraGrid4_AfterRowActivate(object sender, EventArgs e) { UltraGridRow ugr = ultraGrid4.ActiveRow; _alphaName = ugr.Cells["ALPHA_NAME"].Value.ToString(); //如果有效,则可用 if (ugr.Cells["VALIDFLAG"].Value.ToString().Equals("有效")) { ultraGrid5.Enabled = true; ultraGrid5.DisplayLayout.Override.AllowAddNew = AllowAddNew.TemplateOnBottom; //查询客户 string valid = "1"; if (ChcValid.Checked) { valid = "0"; } string alphaCode = ugr.Cells["ALPHA_CODE"].Value.ToString(); DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.ComStandard.getCuster", new Object[] { alphaCode, valid }, this.ob); GridHelper.CopyDataToDatatable(ref dt, ref this.dataTable5, true); //定位 UltraGridRow[] rows = GridHelper.GetRowsWithKey(ultraGrid5, new string[] { "CUST_NAME" }, new string[] { _custName }); if (rows.Length > 0) rows[0].Activate(); _custName = ""; UltraGridBand bc = ultraGrid5.DisplayLayout.Bands[0]; UltraGridColumn[] col = new UltraGridColumn[] { bc.Columns["CHC"], bc.Columns["CUST_CODE"] }; QcmBaseCommon.SetUltraGridNoEdit(ultraGrid5); } else { dataTable5.Rows.Clear(); ultraGrid5.Enabled = false; } } private void ultraGrid5_InitializeRow(object sender, InitializeRowEventArgs e) { if (e.Row.Cells["VALIDFLAG"].Value.ToString().Equals("无效")) { e.Row.Appearance.ForeColor = Color.Red; } else { e.Row.Appearance.ForeColor = Color.Black; } } private void ultraGrid5_AfterRowInsert(object sender, RowEventArgs e) { UltraGridRow ugrCust = ultraGrid5.DisplayLayout.ActiveRow; UltraGridRow ugrStd = ultraGrid4.DisplayLayout.ActiveRow; ugrCust.Cells["STD_NAME"].Value = ugrStd.Cells["ALPHA_NAME"].Value.ToString().Trim(); ugrCust.Cells["STD_CODE"].Value = ugrStd.Cells["ALPHA_CODE"].Value.ToString().Trim(); SetUnEnit(ugrCust); } private void ultraGrid5_CellChange(object sender, CellEventArgs e) { //ultraGrid5.UpdateData(); //if (e.Cell.Column.Key.Equals("CUST_CODE")) //客户 //{ // e.Cell.Row.Cells["CUST_NAME"].Value = e.Cell.Text; // //e.Cell.Row.Cells["CUST_NAME"].SelStart = e.Cell.Row.Cells["CUST_NAME"].Text.Length - 1; // if (e.Cell.Text == "/") // { // DataRow[] dr = dataTable5.Select("CUST_CODE <> '0000000000' OR CUST_CODE = '' OR CUST_CODE IS NULL", ""); // foreach(DataRow datarow in dr) // { // dataTable5.Rows.Remove(datarow); // } // ultraGrid5.DisplayLayout.Override.AllowAddNew = AllowAddNew.No; // } // else // { // ultraGrid5.DisplayLayout.Override.AllowAddNew = AllowAddNew.TemplateOnBottom; // } //} if (e.Cell.Column.Key == "CUST_CODE") return; ultraGrid5.UpdateData(); if (e.Cell.Column.Key.Equals("CHC")) //选择 { Activation activation = Activation.ActivateOnly; //if (Convert.ToBoolean(e.Cell.Value)) //{ // activation = Activation.AllowEdit; // isSelectData += 1; // if (e.Cell.Row.Cells["CUST_CODE"].Text.Trim() == "/") // { // DataRow[] dr = dataTable5.Select("CUST_CODE <> '0000000000' OR CUST_CODE = '' OR CUST_CODE IS NULL", ""); // foreach (DataRow datarow in dr) // { // dataTable5.Rows.Remove(datarow); // } // ultraGrid5.DisplayLayout.Override.AllowAddNew = AllowAddNew.No; // } //} //else //{ // isSelectData -= 1; // if (e.Cell.Row.Cells["CUST_CODE"].Text.Trim() == "/") // ultraGrid5.DisplayLayout.Override.AllowAddNew = AllowAddNew.TemplateOnBottom; //} if (e.Cell.Value.ToString() == "True") { activation = Activation.AllowEdit; isSelectData += 1; } else { isSelectData -= 1; } CellsCollection cells = e.Cell.Row.Cells; for (int i = 0; i < cells.Count; i++) { if (!cells[i].Column.Key.Equals("CHC")) { e.Cell.Row.Cells[i].Activation = activation; } } } } private void ultraGrid4_InitializeRow(object sender, InitializeRowEventArgs e) { if (e.Row.Cells["VALIDFLAG"].Value.ToString().Equals("无效")) { e.Row.Appearance.ForeColor = Color.Red; } else { e.Row.Appearance.ForeColor = Color.Black; } } private void ultraGrid5_BeforeRowInsert(object sender, BeforeRowInsertEventArgs e) { UltraGridRow[] row = GridHelper.GetRowsWithKey(ultraGrid5, new string[] { "CUST_CODE" }, new string[] { "0000000000" }); //存在适用所有用户 不能添加用户 if (row.Length > 0) e.Cancel = true; } /// /// 加数据权限控制 /// private void dataPersion() { if (CustomInfo.Equals("1")) { ultraGrid1.DisplayLayout.Override.AllowAddNew = AllowAddNew.No; ultraGrid1.DisplayLayout.Bands[0].Columns["CHC"].CellActivation = Activation.ActivateOnly; } } private void ultraTextEditor1_EditorButtonClick(object sender, EditorButtonEventArgs e) { if (e.Button.Key == "Choice") { string subCode = ultraGrid3.ActiveRow.Cells["ASK_SUB_ITME"].Value.ToString(); DataTable dtSub = null; try { this.Cursor = Cursors.WaitCursor; dtSub = ServerHelper.GetData("com.steering.pss.qcm.CoreProductManage.getSubItem2", new Object[] { subCode, "" }, this.ob); } finally { this.Cursor = Cursors.Default; } dtSub.Columns["BASENAME"].Caption = "标准说明"; BaseInfoPopup baseInfoPopup = new BaseInfoPopup(dtSub, "BASENAME", "BASECODE"); baseInfoPopup.LabelTextBox1.Caption = "标准说明"; baseInfoPopup.Text = "标准说明"; baseInfoPopup.UltraGrid1.DisplayLayout.Bands[0].Columns["BASENAME"].EditorComponent = baseInfoPopup.UltraTextEditor1; baseInfoPopup.UltraGrid1.DisplayLayout.Bands[0].Columns["BASENAME"].ButtonDisplayStyle = Infragistics.Win.UltraWinGrid.ButtonDisplayStyle.Always; baseInfoPopup.Shown += new EventHandler((c, d) => { IQueryable rows = baseInfoPopup.UltraGrid1.Rows.AsQueryable().Where( a => a.GetValue("BASECODE") == ultraGrid3.ActiveRow.GetValue("ASK_SUB_ITME_VAL")); if (rows.Count() > 0) { rows.First().Activate(); } }); if (baseInfoPopup.ShowDialog() == System.Windows.Forms.DialogResult.OK) { ultraGrid3.ActiveCell.Value = baseInfoPopup.ChoicedRow.GetValue("BASENAME"); ultraGrid3.ActiveRow.Cells["ASK_SUB_ITME_VAL"].Value = baseInfoPopup.ChoicedRow.GetValue("BASECODE"); ultraGrid3.UpdateData(); DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreProductManage.getStdDesc", new Object[] { baseInfoPopup.ChoicedRow.GetValue("BASECODE") }, this.ob); if (dt != null && dt.Rows.Count > 0) { ultraGrid3.ActiveRow.Cells["PIC"].Value = dt.Rows[0][0].ToString(); } } } else { PopupTextBox popupTextBox = new PopupTextBox(ultraGrid3.ActiveCell.Value.ToString(), 4000); popupTextBox.TxtInfo.ReadOnly = true; popupTextBox.UltraPanel1.Visible = false; popupTextBox.ShowDialog(); } } private void ultraGrid2_ClickCellButton(object sender, CellEventArgs e) { string psc = e.Cell.Row.Cells["PSC"].Value.ToString(); string dimater = ""; string height = ""; string textMsc = ""; string specCode = ""; string ordLnPk = ""; if (e.Cell.Column.Key == "BTN_MSC") { FrmProPSCMSC2Popup popup = null; try { this.Cursor = Cursors.WaitCursor; popup = new FrmProPSCMSC2Popup(new string[] { psc, textMsc, dimater, height, specCode, ordLnPk }, "", "", "", ordLnPk, false, this.ValidDataPurviewIds, StdExceptionType.AllMsc, "", ob); } finally { this.Cursor = Cursors.Default; } popup.ShowDialog(); } } private void ultraGrid1_Click(object sender, EventArgs e) { _gridFlag = "ultraGrid1"; } private void ultraGrid2_Click(object sender, EventArgs e) { _gridFlag = "ultraGrid2"; } private void ultraGrid3_Click(object sender, EventArgs e) { _gridFlag = "ultraGrid3"; } private void ultraGrid4_Click(object sender, EventArgs e) { _gridFlag = "ultraGrid4"; } private void _ctrlBaseStdRSpec_Click(object sender, EventArgs e) { _gridFlag = "_ctrlBaseStdRSpec"; } private void FrmProductManage_Shown(object sender, EventArgs e) { //splitContainer2.SplitterDistance = this.Width - 500; } private void ultraTextEditor2_EditorButtonClick(object sender, EditorButtonEventArgs e) { ShowDepartUnit(ultraGrid1); } private void ultraTextEditor3_EditorButtonClick(object sender, EditorButtonEventArgs e) { ShowDepartUnit(ultraGrid2); } private void ultraTextEditor4_EditorButtonClick(object sender, EditorButtonEventArgs e) { ShowDepartUnit(ultraGrid4); } private void ShowDepartUnit(UltraGrid grid) { string key = grid.ActiveCell.Column.Key; if (key == "DEPARTMENT_DESC") { DataTable dt = ServerHelper.GetData("com.steering.comm.data.ComBaseInfo.getDepartment", new object[] { }, ob); dt.Columns["DEPARTNAME"].Caption = "管理部门"; BaseInfoPopup pop = new BaseInfoPopup(dt, "DEPARTNAME", "DEPARTID", "PID", "REMARK", "ISROOT", "IDX"); if (pop.ShowDialog() == System.Windows.Forms.DialogResult.OK) { grid.ActiveRow.SetValue("DEPARTMENT_DESC", pop.ChoicedRow.GetValue("DEPARTNAME")); grid.ActiveRow.SetValue("DEPARTMENT_CODE", pop.ChoicedRow.GetValue("DEPARTID")); grid.ActiveRow.SetValue("UNIT_DESC", ""); grid.ActiveRow.SetValue("UNIT_CODE", ""); } } else if (key == "UNIT_DESC") { string department = grid.GetActiveRowValue("DEPARTMENT_CODE"); if (department == "") { MessageUtil.ShowWarning("请选择管理部门!"); return; } DataTable dt = ServerHelper.GetData("com.steering.comm.data.ComBaseInfo.getSection", new object[] { department }, ob); dt.Columns["DEPARTNAME"].Caption = "管理科室"; BaseInfoPopup pop = new BaseInfoPopup(dt, "DEPARTNAME", "DEPARTID", "PID", "REMARK", "ISROOT", "IDX"); if (pop.ShowDialog() == System.Windows.Forms.DialogResult.OK) { grid.ActiveRow.SetValue("UNIT_DESC", pop.ChoicedRow.GetValue("DEPARTNAME")); grid.ActiveRow.SetValue("UNIT_CODE", pop.ChoicedRow.GetValue("DEPARTID")); } } } } }