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 CoreFS.CA06; using Infragistics.Win.UltraWinEditors; using Infragistics.Win.UltraWinGrid; using System; using System.Collections; using System.Collections.Generic; using System.Data; using System.Linq; using System.Windows.Forms; namespace Core.StlMes.Client.Qcm { /// /// 化学成分标准 /// public partial class FrmChemStandard : FrmBase { private bool isPasting = false; /// /// 成分索引号 /// private string cic = ""; public string Cic { get { return cic; } set { cic = value; } } private string msc = ""; public string Msc { get { return msc; } set { msc = value; } } //如果接箍为字符串空,会在SQL语句中新增接箍等于空的条件,所以单页面默认了个不为空的值。 private string codeJg = "DefaultValue"; public string CodeJg { get { return codeJg; } set { codeJg = value; } } private string stdCode = ""; public string StdCode { get { return stdCode; } set { stdCode = value; } } private ArrayList steelCodes = new ArrayList(); public ArrayList SteelCodes { get { return steelCodes; } set { steelCodes = value; } } private string produccodeNk = ""; public string ProduccodeNk { get { return produccodeNk; } set { produccodeNk = value; } } private string steelcodeNk = ""; public string SteelcodeNk { get { return steelcodeNk; } set { steelcodeNk = value; } } private string processCodeNk = ""; public string ProcessCodeNk { get { return processCodeNk; } set { processCodeNk = value; } } private string modelCode = ""; public string ModelCode { get { return modelCode; } set { modelCode = value; } } private string acceptBid = ""; public string AcceptBid { get { return acceptBid; } set { acceptBid = value; } } //提示信息信息 private string errMessage = ""; //判断是否勾选记录 //public int isSelect = 0; //是否展开 private bool _isEx = false; //定位行 private string _cic = ""; private UltraComboEditor[] ultras = new UltraComboEditor[13]; public FrmChemStandard() { //F1 F2功能 IsLoadUserView = true; InitializeComponent(); ExceptionHelper.RegistException(); } public void PopupLoad(string customInfo, OpeBase ob) { this.CustomInfo = customInfo; this.ob = ob; FrmChemStandard_Load(null, null); } public override void ToolBar_Click(object sender, string ToolbarKey) { switch (ToolbarKey) { case "Query": DoQuery(); break; case "Save": DoSave(); break; case "Delete": DoDeleteOrResume(true); break; case "Resume": DoDeleteOrResume(false); break; case "Copy": Copy(); break; case "Paste": isPasting = true; try { Paste(); } finally { isPasting = false; } break; case "Refresh": InitDrop(); break; case "Group": Group(); break; case "CancelGroup": CancelGroup(); break; case "Close": this.Close(); break; } } /// /// 复制 /// private void Copy() { if (ultraGrid1.ActiveRow == null) { MessageUtil.ShowWarning("请选择记录后,再进行操作!"); return; } ultraGrid1.UpdateData(); DataTable copyTab = dataTable1.Copy(); DataTable copyTab2 = dataTable2.Copy(); copyTab.Clear(); copyTab2.Clear(); if (ultraGrid1.ActiveRow.HasParent()) { foreach (UltraGridRow row in ultraGrid1.ActiveRow.ParentRow.ChildBands[0].Rows) { if (row.GetValue("CHC") != "True") continue; DataRow dr = copyTab.NewRow(); CopyRowToRow(((DataRowView)row.ListObject).Row, dr); copyTab.Rows.Add(dr); } } else { foreach (UltraGridRow row in ultraGrid1.ActiveRow.ChildBands[0].Rows) { DataRow dr = copyTab.NewRow(); CopyRowToRow(((DataRowView)row.ListObject).Row, dr); copyTab.Rows.Add(dr); } DataRow dr2 = copyTab2.NewRow(); CopyRowToRow(((DataRowView)ultraGrid1.ActiveRow.ListObject).Row, dr2); copyTab2.Rows.Add(dr2); } DataTable[] copyTabs = new DataTable[] { copyTab, copyTab2 }; Clipboard.SetData("Cic", copyTabs); } private void CopyRowToRow(DataRow srcRow, DataRow desRow) { for (int i = 0; i < srcRow.Table.Columns.Count; i++) { string columnName = srcRow.Table.Columns[i].ColumnName; desRow[columnName] = srcRow[columnName]; } } /// /// 粘贴 /// private void Paste() { DataTable[] copyTabs = (DataTable[])Clipboard.GetData("Cic"); if (copyTabs == null) { MessageUtil.ShowWarning("没有数据,请复制后再进行操作!"); return; } DataTable copyTab = copyTabs[0]; DataTable copyTab2 = copyTabs[1]; if (copyTab == null || copyTab.Rows.Count == 0) { MessageUtil.ShowWarning("没有数据,请复制后再进行操作!"); return; } dataTable1.BeginInit(); string cic = ""; UltraGridRow rowParent; if (ultraGrid1.ActiveRow.HasParent()) { //if (ultraGrid1.ActiveRow.ParentRow.ChildBands[0].Rows.Count > 0) //{ // MessageUtil.ShowWarning("该记录下存在子记录,不能进行粘贴操作!"); // return; //} cic = ultraGrid1.ActiveRow.ParentRow.GetValue("CIC"); rowParent = ultraGrid1.ActiveRow.ParentRow; } else { //if (ultraGrid1.ActiveRow.ChildBands[0].Rows.Count > 0) //{ // MessageUtil.ShowWarning("该记录下存在子记录,不能进行粘贴操作!"); // return; //} cic = ultraGrid1.GetActiveRowValue("CIC"); rowParent = ultraGrid1.ActiveRow; } List notCopyColumns = new List(); notCopyColumns.AddRange("CHC", "CREATE_TIME", "CREATE_NAME", "UPDATE_TIME", "UPDATE_NAME", "DELETE_TIME", "DELETE_NAME", "VALIDFLAG", "CIC", "MSC", "PSC_DESC", "PSC", "STDSTYLE", "STD_NAME_B", "PRODUCNAME", "STEELNAME", "STD_CODE_NK", "STD_NAME_NK", "PROCESS_CODE", "PROCESS_DESC", "STD_STYLE_DESC", "GRADECODE", "GRADENAME", "PRODUCCODE_NK", "PRODUCNAME_NK", "STEELCODE_NK", "STEELNAME_NK", "XH"); if (CustomInfo == "2") { //内控子记录不要限制规格。 notCopyColumns.AddRange("SIZE_CODE2", "SIZE_NAME2", "SIZE_MIN_SIGN2", "SIZE_MIN2", "SIZE_MAX_SIGN2", "SIZE_MAX2", "SIZE_CODE", "SIZE_NAME", "SIZE_MIN_SIGN", "SIZE_MIN", "SIZE_MAX_SIGN", "SIZE_MAX", "SPEC_JG", "SPEC_JG_DESC"); } if (copyTab2.Rows.Count > 0) { DataRow drParent = ((DataRowView)rowParent.ListObject).Row; foreach (DataColumn column in dataTable2.Columns) { string columnName = column.ColumnName; if (notCopyColumns.Contains(columnName) == true) continue; drParent[columnName] = copyTab2.Rows[0][columnName]; } } foreach (DataRow row in copyTab.Rows) { DataRow tempRow = dataTable1.NewRow(); foreach (DataColumn column in dataTable1.Columns) { string columnName = column.ColumnName; if (notCopyColumns.Contains(columnName) == true) continue; if (!copyTab.Columns.Contains(columnName)) continue; tempRow[columnName] = row[columnName]; } tempRow["CIC"] = cic; dataTable1.Rows.Add(tempRow); } dataTable1.EndInit(); if (copyTab.Rows.Count > 0 && ultraGrid1.ActiveRow != null) { ultraGrid1.ActiveRow.ExpandAll(); } ultraGrid1.UpdateData(); } /// /// 根据交付 内控 Alpha 分别隐藏不同列 /// private void HideColumn() { if (CustomInfo == "1") { //内控标准名称 ultraGrid1.DisplayLayout.Bands[0].Columns["STD_CODE_NK"].Hidden = true; //适用工序 ultraGrid1.DisplayLayout.Bands[0].Columns["PROCESS_DESC"].Hidden = true; //适用钢种 ultraGrid1.DisplayLayout.Bands[0].Columns["GRADENAME"].Hidden = true; ultraGrid1.DisplayLayout.Bands[0].Columns["STEELNAME_NK"].Hidden = true; ultraGrid1.DisplayLayout.Bands[0].Columns["MODEL_DESC_NK"].Hidden = true; ultraGrid1.DisplayLayout.Bands[0].Columns["PRODUCCODE_NK"].Hidden = true; ultraGrid1.DisplayLayout.Bands[0].Columns["PRODUCNAME_NK"].Hidden = true; ultraGrid1.DisplayLayout.Bands[0].Groups[0].Hidden = true; ultraGrid1.DisplayLayout.Bands[0].Groups[1].Hidden = true; //ultraGrid1.DisplayLayout.Bands[0].Columns["MIN_D"].Hidden = true; //ultraGrid1.DisplayLayout.Bands[0].Columns["MAX_D"].Hidden = true; //ultraGrid1.DisplayLayout.Bands[0].Columns["MIN_H"].Hidden = true; //ultraGrid1.DisplayLayout.Bands[0].Columns["MAX_H"].Hidden = true; //ultraGrid1.DisplayLayout.Bands[0].Columns["MIN_D_SIGN"].Hidden = true; //ultraGrid1.DisplayLayout.Bands[0].Columns["MAX_D_SIGN"].Hidden = true; //ultraGrid1.DisplayLayout.Bands[0].Columns["MIN_H_SIGN"].Hidden = true; //ultraGrid1.DisplayLayout.Bands[0].Columns["MAX_H_SIGN"].Hidden = true; this.ultraCheckStd.Text = "标准名称"; } if (CustomInfo == "2" || CustomInfo == "4") { //产品规范描述 ultraGrid1.DisplayLayout.Bands[0].Columns["PSC_DESC"].Hidden = true; //冶金规范码 ultraGrid1.DisplayLayout.Bands[0].Columns["MSC"].Hidden = true; ultraGrid1.DisplayLayout.Bands[0].Columns["STD_NAME_B"].Hidden = true; ultraGrid1.DisplayLayout.Bands[0].Columns["PRODUCNAME"].Hidden = true; ultraGrid1.DisplayLayout.Bands[0].Columns["STEELNAME"].Hidden = true; ultraGrid1.DisplayLayout.Bands[0].Columns["STD_STYLE_DESC"].Hidden = true; ultraGrid1.DisplayLayout.Bands[0].Columns["SMELTING_CNT"].Hidden = true; ultraGrid1.DisplayLayout.Bands[0].Columns["PRODUCT_CNT"].Hidden = true; ultraGrid1.DisplayLayout.Bands[0].Columns["RATE"].Hidden = true; if (CustomInfo == "2") { ultraGrid1.DisplayLayout.Bands[0].Columns["STD_CODE_NK"].Header.Caption = "内控管理编号"; ultraGrid1.DisplayLayout.Bands[1].Columns["SIZE_CODE2"].Hidden = true; ultraGrid1.DisplayLayout.Bands[1].Columns["SIZE_CODE2"].CellActivation = Activation.ActivateOnly; ultraGrid1.DisplayLayout.Bands[1].Columns["SIZE_NAME2"].Hidden = true; ultraGrid1.DisplayLayout.Bands[1].Columns["SIZE_NAME2"].CellActivation = Activation.ActivateOnly; ultraGrid1.DisplayLayout.Bands[1].Columns["SIZE_MIN_SIGN2"].Hidden = true; ultraGrid1.DisplayLayout.Bands[1].Columns["SIZE_MIN_SIGN2"].CellActivation = Activation.ActivateOnly; ultraGrid1.DisplayLayout.Bands[1].Columns["SIZE_MIN2"].Hidden = true; ultraGrid1.DisplayLayout.Bands[1].Columns["SIZE_MIN2"].CellActivation = Activation.ActivateOnly; ultraGrid1.DisplayLayout.Bands[1].Columns["SIZE_MAX_SIGN2"].Hidden = true; ultraGrid1.DisplayLayout.Bands[1].Columns["SIZE_MAX_SIGN2"].CellActivation = Activation.ActivateOnly; ultraGrid1.DisplayLayout.Bands[1].Columns["SIZE_MAX2"].Hidden = true; ultraGrid1.DisplayLayout.Bands[1].Columns["SIZE_MAX2"].CellActivation = Activation.ActivateOnly; ultraGrid1.DisplayLayout.Bands[1].Columns["SIZE_CODE"].Hidden = true; ultraGrid1.DisplayLayout.Bands[1].Columns["SIZE_CODE"].CellActivation = Activation.ActivateOnly; ultraGrid1.DisplayLayout.Bands[1].Columns["SIZE_NAME"].Hidden = true; ultraGrid1.DisplayLayout.Bands[1].Columns["SIZE_NAME"].CellActivation = Activation.ActivateOnly; ultraGrid1.DisplayLayout.Bands[1].Columns["SIZE_MIN_SIGN"].Hidden = true; ultraGrid1.DisplayLayout.Bands[1].Columns["SIZE_MIN_SIGN"].CellActivation = Activation.ActivateOnly; ultraGrid1.DisplayLayout.Bands[1].Columns["SIZE_MIN"].Hidden = true; ultraGrid1.DisplayLayout.Bands[1].Columns["SIZE_MIN"].CellActivation = Activation.ActivateOnly; ultraGrid1.DisplayLayout.Bands[1].Columns["SIZE_MAX_SIGN"].Hidden = true; ultraGrid1.DisplayLayout.Bands[1].Columns["SIZE_MAX_SIGN"].CellActivation = Activation.ActivateOnly; ultraGrid1.DisplayLayout.Bands[1].Columns["SIZE_MAX"].Hidden = true; ultraGrid1.DisplayLayout.Bands[1].Columns["SIZE_MAX"].CellActivation = Activation.ActivateOnly; ultraGrid1.DisplayLayout.Bands[1].Columns["SPEC_JG"].Hidden = true; ultraGrid1.DisplayLayout.Bands[1].Columns["SPEC_JG"].CellActivation = Activation.ActivateOnly; } InnerChange(); if (CustomInfo == "4") { ultraGrid1.DisplayLayout.Bands[0].Columns["STD_CODE"].Hidden = true; //ultraGrid1.DisplayLayout.Bands[0].Columns["MIN_D"].Hidden = true; //ultraGrid1.DisplayLayout.Bands[0].Columns["MAX_D"].Hidden = true; //ultraGrid1.DisplayLayout.Bands[0].Columns["MIN_H"].Hidden = true; //ultraGrid1.DisplayLayout.Bands[0].Columns["MAX_H"].Hidden = true; //ultraGrid1.DisplayLayout.Bands[0].Columns["MIN_D_SIGN"].Hidden = true; //ultraGrid1.DisplayLayout.Bands[0].Columns["MAX_D_SIGN"].Hidden = true; //ultraGrid1.DisplayLayout.Bands[0].Columns["MIN_H_SIGN"].Hidden = true; //ultraGrid1.DisplayLayout.Bands[0].Columns["MAX_H_SIGN"].Hidden = true; ultraGrid1.DisplayLayout.Bands[0].Groups[0].Hidden = true; ultraGrid1.DisplayLayout.Bands[0].Groups[1].Hidden = true; } ultraCheckMSC.Visible = false; ultraTextMSC.Visible = false; } if (CustomInfo == "3") { //产品规范描述 ultraGrid1.DisplayLayout.Bands[0].Columns["PSC_DESC"].Hidden = true; //冶金规范码 ultraGrid1.DisplayLayout.Bands[0].Columns["MSC"].Hidden = true; ultraGrid1.DisplayLayout.Bands[0].Columns["STD_NAME_B"].Hidden = true; ultraGrid1.DisplayLayout.Bands[0].Columns["PRODUCNAME"].Hidden = true; ultraGrid1.DisplayLayout.Bands[0].Columns["STEELNAME"].Hidden = true; ultraGrid1.DisplayLayout.Bands[0].Columns["STD_STYLE_DESC"].Hidden = true; ultraGrid1.DisplayLayout.Bands[0].Columns["STD_CODE"].Hidden = true; ultraGrid1.DisplayLayout.Bands[0].Columns["PROCESS_DESC"].Hidden = true; ultraGrid1.DisplayLayout.Bands[0].Columns["STEELNAME_NK"].Hidden = true; ultraGrid1.DisplayLayout.Bands[0].Columns["MODEL_DESC_NK"].Hidden = true; ultraGrid1.DisplayLayout.Bands[0].Columns["PRODUCCODE_NK"].Hidden = true; ultraGrid1.DisplayLayout.Bands[0].Columns["PRODUCNAME_NK"].Hidden = true; ultraGrid1.DisplayLayout.Bands[0].Columns["SMELTING_CNT"].Hidden = true; ultraGrid1.DisplayLayout.Bands[0].Columns["PRODUCT_CNT"].Hidden = true; ultraGrid1.DisplayLayout.Bands[0].Groups[0].Hidden = true; ultraGrid1.DisplayLayout.Bands[0].Groups[1].Hidden = true; ultraCheckMSC.Visible = false; ultraTextMSC.Visible = false; } } /// /// 初始化数据 /// /// /// private void FrmChemStandard_Load(object sender, EventArgs e) { HideColumn(); InitDrop(); } public void PopupRefresh() { UltraGridBand ugb = ultraGrid1.DisplayLayout.Bands[0]; if (CustomInfo == "1") { //冶金规范码 QcmBaseQuery.NitializeMSC(ultras[10], false, this.ob, msc); QcmBaseQuery.BindColumn(ultras[10], "MSC", ugb); } } /// /// 初始化下拉框 /// private void InitDrop() { for (int i = 0; i < ultras.Length; i++) { ultras[i] = new UltraComboEditor(); Controls.Add(ultras[i]); ultras[i].Visible = false; ultras[i].DropDownListWidth = -1; } //主表 UltraGridBand ugb = ultraGrid1.DisplayLayout.Bands[0]; //从表 UltraGridBand ugbC = ultraGrid1.DisplayLayout.Bands[1]; QcmBaseQuery.NitializeSignMin(ultraComSignMin); QcmBaseQuery.NitializeSignMax(ultraComSignMax); ClsBaseInfo.FillComBaseInfo(ultraComboEditor1, "4086", ob, false); DataTable dtRate = (DataTable)ultraComboEditor1.DataSource; dtRate.DefaultView.RowFilter = "BASECODE IN ('408602', '408603')"; //下限 QcmBaseQuery.NitializeSignMin(ultras[0]); //标准范围下限符号 QcmBaseQuery.BindColumn(ultras[0], "STDMIN_SIGN", ugbC); //上限 QcmBaseQuery.NitializeSignMax(ultras[1]); //标准范围上限符号 QcmBaseQuery.BindColumn(ultras[1], "STDMAX_SIGN", ugbC); //化学元素描述 QcmBaseQuery.NitializeChemicalElement(ultras[2], true, this.ob); QcmBaseQuery.BindColumn(ultras[2], "CHEM_CODE", ugbC); //结箍 QcmBaseQuery.NitializeJG(ultras[3], true, this.ob); QcmBaseQuery.BindColumn(ultras[3], "SPEC_JG", ugbC); //限制元素下限符号 QcmBaseQuery.BindColumn(ultras[0], "ELE_MIN_SIGN", ugbC); //限制规格(一)下限符号 QcmBaseQuery.BindColumn(ultras[0], "SIZE_MIN_SIGN2", ugbC); //限制规格(二)下限符号 QcmBaseQuery.BindColumn(ultras[0], "SIZE_MIN_SIGN", ugbC); //限制元素上限符号 QcmBaseQuery.BindColumn(ultras[1], "ELE_MAX_SIGN", ugbC); //限制规格(一)上限符号 QcmBaseQuery.BindColumn(ultras[1], "SIZE_MAX_SIGN2", ugbC); //限制规格(二)上限符号 QcmBaseQuery.BindColumn(ultras[1], "SIZE_MAX_SIGN", ugbC); //限制规格(一) QcmBaseQuery.NitializeLimitSpecifications(ultras[5], true, this.ob); QcmBaseQuery.BindColumn(ultras[5], "SIZE_CODE2", ugbC); //限制规格(二) QcmBaseQuery.BindColumn(ultras[5], "SIZE_CODE", ugbC); if (CustomInfo == "1") { //成分偏差 QcmBaseQuery.NitializeChemBias(ultras[6], true, this.ob); QcmBaseQuery.BindColumn(ultras[6], "STD_CODE", ugb); //冶金规范码 QcmBaseQuery.NitializeMSC(ultras[10], false, this.ob, msc); QcmBaseQuery.BindColumn(ultras[10], "MSC", ugb); } if (CustomInfo == "2" || CustomInfo == "3" || CustomInfo == "4") { //标准名称 if (CustomInfo == "2") { QcmBaseQuery.NitializeInnerStandard(ultras[7], false, this.ob); //成分偏差 QcmBaseQuery.NitializeChemBias(ultras[6], true, this.ob); QcmBaseQuery.BindColumn(ultras[6], "STD_CODE", ugb); } else if (CustomInfo == "3") QcmBaseQuery.NitializeAlphaStandard(ultras[7], false, this.ob); else QcmBaseQuery.NitializeOtherStandard(ultras[7], false, this.ob); QcmBaseQuery.BindColumn(ultras[7], "STD_CODE_NK", ugb); //工序 QcmBaseQuery.NitializeProcess(ultras[8], true, this.ob); QcmBaseQuery.BindColumn(ultras[8], "PROCESS_CODE", ugb); //钢种 //QcmBaseQuery.NitializeGrade(ultras[9], true, this.ob); //QcmBaseQuery.BindColumn(ultras[9], "GRADECODE", ugb); } //限制元素 QcmBaseQuery.NitializeChemicalElement(ultras[11], true, this.ob); QcmBaseQuery.BindColumn(ultras[11], "ELE_CODE", ugbC); //替代元素 QcmBaseQuery.BindColumn(ultras[0], "REP_MIN_SIGN", ugbC); QcmBaseQuery.BindColumn(ultras[1], "REP_MAX_SIGN", ugbC); QcmBaseQuery.BindColumn(ultras[2], "REP_CODE", ugbC); QcmBaseQuery.NitializeProductBigType(ultras[12], false, ob); QcmBaseQuery.BindColumn(ultras[12], "PRODUC_HEAD", ugb); } private void Group() { //PopupGroup ultraGrid1.UpdateData(); List index = new List(); string cic = ""; foreach (var pRow in ultraGrid1.Rows) { foreach (var cRow in pRow.ChildBands[0].Rows) { if (cRow.GetValue("CHC").ToLower() == "true") { if (cRow.GetValue("VALIDFLAG") == "") { MessageUtil.ShowWarning("请先保存选择的记录!"); return; } index.Add(cRow.GetValue("INDEX_SEQ")); cic = pRow.GetValue("CIC"); } } if (index.Count > 0) break; } if (index.Count == 0) { MessageUtil.ShowWarning("请选择从记录!"); return; } PopupGroup popup = new PopupGroup(); if (popup.ShowDialog() != System.Windows.Forms.DialogResult.OK) { return; } ServerHelper.SetData("com.steering.pss.qcm.CoreChemStandard.group", new object[] { index, cic, popup.NumGroupNum.Value.ToString3() }, ob); MessageUtil.ShowTips("分组成功!"); _isEx = true; _cic = cic; DoQuery(); } private void CancelGroup() { List index = new List(); string cic = ""; foreach (var pRow in ultraGrid1.Rows) { foreach (var cRow in pRow.ChildBands[0].Rows) { if (cRow.GetValue("CHC").ToLower() == "true") { index.Add(cRow.GetValue("INDEX_SEQ")); cic = pRow.GetValue("CIC"); } } if (index.Count > 0) break; } if (index.Count == 0) { MessageUtil.ShowWarning("请选择从记录!"); return; } if (MessageUtil.ShowYesNoAndQuestion("是否确认取消分组?") == System.Windows.Forms.DialogResult.OK) { return; } ServerHelper.SetData("com.steering.pss.qcm.CoreChemStandard.cancelGroup", new object[] { index, cic }, ob); MessageUtil.ShowTips("取消分组成功!"); _cic = cic; _isEx = true; DoQuery(); } /// /// 查询条件 /// /// private ArrayList GetQueryData() { ArrayList list = new ArrayList(); //标准名称 string stdName = ""; if (ultraCheckStd.Checked) stdName = ultraTextStd.Text.Trim(); list.Add(stdName); //冶金规范码 string msc = ""; if (ultraCheckMSC.Checked) { msc = ultraTextMSC.Text.Trim(); } list.Add(msc); //是否包含无效 string valid = "1"; if (ultraCheckValid.Checked) valid = "0"; list.Add(valid); list.Add(stdCode); return list; } /// /// 查询 /// private void DoQuery() { //查询交付标准、内控标准或者Alpha ArrayList QueryConditon = GetQueryData(); //主表查询 dataTable1.Clear(); DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreChemStandard.getCoreChemStandard", new Object[] { QueryConditon, CustomInfo, cic, msc, codeJg, steelCodes, produccodeNk, steelcodeNk, processCodeNk, modelCode }, this.ob); GridHelper.CopyDataToDatatable(ref dt, ref this.dataTable2, true); //从表查询 DataTable dt1 = ServerHelper.GetData("com.steering.pss.qcm.CoreChemStandard.getCoreChemStandardC", new Object[] { QueryConditon, CustomInfo, cic, msc, codeJg, steelCodes, produccodeNk, steelcodeNk, processCodeNk, modelCode }, this.ob); GridHelper.CopyDataToDatatable(ref dt1, ref this.dataTable1, true); //不同颜色区分是否有效数据 QcmBaseCommon.SetGridColor(ultraGrid1, "VALIDFLAG", "无效"); QcmBaseCommon.SetUltraGridNoEdit(ultraGrid1); UltraGridBand bc = ultraGrid1.DisplayLayout.Bands[0]; UltraGridBand bcC = ultraGrid1.DisplayLayout.Bands[1]; UltraGridColumn[] col = new UltraGridColumn[] { bc.Columns["MEMO"],bc.Columns["MSC"], bc.Columns["STD_CODE_NK"] , bcC.Columns["ISCHECK"],bcC.Columns["ISJUDGE"],bcC.Columns["ISQUOTE"],bc.Columns["MODEL_DESC"], bcC.Columns["COMPLEX_TYPE"],bcC.Columns["STDMIN"],bcC.Columns["STDMAX"]}; //GridHelper.RefreshAndAutoSizeExceptRows(ultraGrid1, col); //isSelect = 0; //定位行和展开行 UltraGridRow[] rows1 = GridHelper.GetRowsWithKey(ultraGrid1, new string[] { "CIC" }, new string[] { _cic }); if (rows1.Length > 0) { rows1[0].Activate(); if (_isEx) rows1[0].ExpandAll(); } _isEx = false; _cic = ""; foreach (UltraGridRow ugr in ultraGrid1.Rows) { ultraGrid1.UpdateData(); DataView dv = new DataView(dataTable1); DataTable newdt = dv.ToTable(false, "CIC", "CHEM_NAME"); DataRow[] dr = newdt.Select("CIC='" + ugr.Cells["CIC"].Value.ToString() + "'", ""); ugr.Cells["COUNT"].Value = newdt.AsEnumerable().Where(a => a["CIC"].ToString() == ugr.Cells["CIC"].Value.ToString()).Distinct(new DataRowComparer()).Count(); ugr.Cells["CHKNK"].Value = "选择"; } ultraGrid1.UpdateData(); dataTable1.AcceptChanges(); dataTable2.AcceptChanges(); //清空复制数据 //_copyedRows.Clear(); } private void DoQuery1() { //查询交付标准、内控标准或者Alpha ArrayList QueryConditon = GetQueryData(); //主表查询 dataTable1.Clear(); DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreChemStandard.getComChemNK", new Object[] { msc }, this.ob); GridHelper.CopyDataToDatatable(ref dt, ref this.dataTable2, true); //从表查询 DataTable dt1 = ServerHelper.GetData("com.steering.pss.qcm.CoreChemStandard.getComChemNKC", new Object[] { msc }, this.ob); GridHelper.CopyDataToDatatable(ref dt1, ref this.dataTable1, true); //不同颜色区分是否有效数据 QcmBaseCommon.SetGridColor(ultraGrid1, "VALIDFLAG", "无效"); QcmBaseCommon.SetUltraGridNoEdit(ultraGrid1); UltraGridBand bc = ultraGrid1.DisplayLayout.Bands[0]; UltraGridBand bcC = ultraGrid1.DisplayLayout.Bands[1]; UltraGridColumn[] col = new UltraGridColumn[] { bc.Columns["MEMO"],bc.Columns["MSC"], bc.Columns["STD_CODE_NK"] , bcC.Columns["ISCHECK"],bcC.Columns["ISJUDGE"],bcC.Columns["ISQUOTE"],bc.Columns["MODEL_DESC"], bcC.Columns["COMPLEX_TYPE"],bcC.Columns["STDMIN"],bcC.Columns["STDMAX"]}; //GridHelper.RefreshAndAutoSizeExceptRows(ultraGrid1, col); //isSelect = 0; //定位行和展开行 UltraGridRow[] rows1 = GridHelper.GetRowsWithKey(ultraGrid1, new string[] { "CIC" }, new string[] { _cic }); if (rows1.Length > 0) { rows1[0].Activate(); if (_isEx) rows1[0].ExpandAll(); } _isEx = false; _cic = ""; foreach (UltraGridRow ugr in ultraGrid1.Rows) { ultraGrid1.UpdateData(); DataView dv = new DataView(dataTable1); DataTable newdt = dv.ToTable(false, "CIC", "CHEM_NAME"); DataRow[] dr = newdt.Select("CIC='" + ugr.Cells["CIC"].Value.ToString() + "'", ""); ugr.Cells["COUNT"].Value = newdt.AsEnumerable().Where(a => a["CIC"].ToString() == ugr.Cells["CIC"].Value.ToString()).Distinct(new DataRowComparer()).Count(); } ultraGrid1.UpdateData(); dataTable1.AcceptChanges(); dataTable2.AcceptChanges(); //清空复制数据 //_copyedRows.Clear(); } public void QueryPurchaseAgreement(string stdCodeNk) { dataTable1.Clear(); dataTable2.Clear(); DataTable dtP = ServerHelper.GetData("com.steering.pss.qcm.CoreChemStandard.getPurchaseAgreementCic", new object[] { stdCodeNk }, ob); GridHelper.CopyDataToDatatable(ref dtP, ref this.dataTable2, true); DataTable dtC = ServerHelper.GetData("com.steering.pss.qcm.CoreChemStandard.getPurchaseAgreementChem", new object[] { stdCodeNk }, ob); GridHelper.CopyDataToDatatable(ref dtC, ref this.dataTable1, true); QcmBaseCommon.SetGridColor(ultraGrid1, "VALIDFLAG", "无效"); QcmBaseCommon.SetUltraGridNoEdit(ultraGrid1); } private int GetGridSelectCount() { foreach (UltraGridRow row in ultraGrid1.Rows) { if (row.Cells["CHC"].Value.ToString() == "True") { return 1; } UltraGridRow[] rows = GridHelper.GetRowsWithKey(row.ChildBands[0], new string[] { "CHC" }, new string[] { "True" }); if (rows.Length > 0) { return 1; } } return 0; } private DataRow GetComBaseStdRowByPk(string stdCode) { DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.ComStandard.getComBaseStdByPk", new object[] { stdCode }, ob); return dt.Rows[0]; } /// /// 保存 /// private void DoSave() { try { ultraGrid1.UpdateData(); } catch (Exception) { MessageBox.Show("数据不合法,请重新输入!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } DataRow comBaseStdRow = null; string style = "G"; if (CustomInfo == "2") { comBaseStdRow = GetComBaseStdRowByPk(stdCode); if (comBaseStdRow["ACCEPT_BID"].ToString() == "1") { style = "N"; } else { style = "L"; } } if (CustomInfo == "3") style = "K"; if (CustomInfo == "4") style = "S"; if (GetGridSelectCount() == 0) { MessageBox.Show("请选择记录!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } if (CustomInfo == "2") { /*if (comBaseStdRow["ACCEPT_BID"].ToString() == "1" && comBaseStdRow["UNIT_CODE"].ToString() != UserInfo.GetDeptid() && UserInfo.GetUserID() != "admin" && UserInfo.GetUserID() != "longjinhua") { MessageUtil.ShowWarning("该记录只有[" + comBaseStdRow["UNIT_DESC"].ToString() + "]的成员才能操作!"); return; }*/ //限制同一钢种下的成分数 var groupRows = ultraGrid1.Rows.Where(a => a.GetValue("CHC") == "True" && a.GetValue("VALIDFLAG") == "").GroupBy( a => new { gradeCode = a.GetValue("GRADECODE"), gradeName = a.GetValue("GRADENAME") }).Select( a => new { gradeCode = a.Key.gradeCode, gradeName = a.Key.gradeName, cnt = a.Count() }); foreach (var groupRow in groupRows) { int cnt = FrmStandarNSub.GetSameGradeCnt(groupRow.gradeCode, stdCode, ob); if (cnt + groupRow.cnt > 9) { MessageUtil.ShowWarning("钢种:" + groupRow.gradeName + " 已存在" + cnt + "条成分内控," + "新增成分内控" + groupRow.cnt + "条,总数大于9条,无法新增!"); return; } } //验证碳当量 foreach (var pRow in ultraGrid1.Rows) { var chkRowsC = pRow.ChildBands[0].Rows.Where(a => a.GetValue("CHC") == "True"); if (chkRowsC.Count() == 0) continue; //var groupSeqRows = pRow.ChildBands[0].Rows.GroupBy(a => a.GetValue("GROUP_SEQ")); //foreach (var groupRow in groupSeqRows) //{ // var ce2Rows = groupRow.Where(a => a.GetValue("CHEM_CODE") == "C030" || a.GetValue("CHEM_CODE") == "C053" // || a.GetValue("CHEM_CODE") == "C060"); // var cePRows = groupRow.Where(a => a.GetValue("CHEM_CODE") == "C031"); // if (ce2Rows.Count() > 0 && cePRows.Count() > 0 && ce2Rows.Where(a => a.GetValue("ELE_CODE") != "").Count() == 0 // && cePRows.Where(a => a.GetValue("ELE_CODE") != "").Count() == 0) // { // MessageUtil.ShowWarning("成分索引:" + pRow.GetValue("CIC") + "包含两种碳当量元素,必须维护限制元素!"); // pRow.Activate(); // return; // } //} //var cRows = pRow.ChildBands[0].Rows.Where(a => (a.GetValue("CHEM_CODE") == "C030" || a.GetValue("CHEM_CODE") == "C053" // || a.GetValue("CHEM_CODE") == "C060") || a.GetValue("CHEM_CODE") == "C031"); //if (cRows.Count() > 1 && cRows.Where(a => a.GetValue("ELE_CODE") != "").Count() == 0) //{ //} } // 验证成分项目是否重复 //var pRows = ultraGrid1.Rows; //foreach (var row in pRows) //{ // var chkRowsC = row.ChildBands[0].Rows.Where(a => a.GetValue("CHC") == "True"); // if (chkRowsC.Count() == 0) continue; // var groupRowsC = row.ChildBands[0].Rows.Where(a => a.GetValue("CHC") == "True" || a.GetValue("VALIDFLAG") != "").GroupBy( // a => a.GetValue("CHEM_CODE")).Select(a => a.Key).ToList(); // //验证保存的索引码是否重复 // var pRows2 = pRows.Where(a => a.GetValue("CIC") != row.GetValue("CIC") && a.GetValue("GRADECODE") == row.GetValue("GRADECODE")); // foreach (var row2 in pRows2) // { // var chkRowsC2 = row2.ChildBands[0].Rows.Where(a => a.GetValue("CHC") == "True"); // if (chkRowsC2.Count() == 0) continue; // var groupRowsC2 = row2.ChildBands[0].Rows.Where(a => a.GetValue("CHC") == "True" || a.GetValue("VALIDFLAG") != "").GroupBy( // a => a.GetValue("CHEM_CODE")).Select(a => a.Key).ToList(); // if (groupRowsC2.Count() == groupRowsC.Count()) // { // bool isSame = true; // foreach (var groupRowC in groupRowsC) // { // if (!groupRowsC2.Contains(groupRowC)) // { // isSame = false; // } // } // if (isSame) // { // MessageUtil.ShowWarning("成分索引码:" + row.GetValue("CIC") + "与" + row2.GetValue("CIC") + "中的成分项目重复!"); // return; // } // } // } // // 验证是否与数据库中的重复 // CoreClientParam ccp = new CoreClientParam(); // ccp.ServerName = "com.steering.pss.qcm.CoreChemStandard"; // ccp.MethodName = "getChemByGrade"; // ccp.ServerParams = new object[] { groupRowsC, stdCode, row.GetValue("GRADECODE"), row.GetValue("CIC"), "保存" }; // ccp = ob.ExecuteSortResultByQueryToDataTable(ccp, CoreInvokeType.Internal); // if (ccp.ReturnObject.ToString2() != "") // { // MessageUtil.ShowWarning(ccp.ReturnObject.ToString2()); // return; // } //} } ArrayList baseData = new ArrayList(); ArrayList childData = new ArrayList(); for (int i = 0; i < ultraGrid1.Rows.Count; i++) { DataRow cicRow = null; UltraGridRow ugr = ultraGrid1.Rows[i]; //主表操作 if (Convert.ToBoolean(ugr.Cells["CHC"].Value)) { if (ugr.GetValue("VALIDFLAG") != "") { cicRow = GetMscCicByCic(ugr.GetValue("CIC")); } if (comBaseStdRow != null && comBaseStdRow["ACCEPT_BID"].ToString() == "0" && cicRow != null) { string[] units = ClsBaseInfo.GetUnitByUserName(cicRow["CREATE_NAME"].ToString(), ob, "002001007", "002001001", "002023005"); /*if (units[0] != UserInfo.GetDeptid() && UserInfo.GetUserID() != "admin") { MessageUtil.ShowWarning("该记录只有[" + units[1] + "]才能操作!"); ugr.Activate(); return; }*/ } StdCicObject com = GetBaseData(ugr, cicRow); if (com == null) { MessageBox.Show(errMessage, "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } _cic = com.Cic; baseData.Add(JSONFormat.Format(com)); } //从表操作 if (ugr.HasChild()) { if (ugr.Cells["VALIDFLAG"].Value.ToString().Equals("") && !Convert.ToBoolean(ugr.Cells["CHC"].Value)) { MessageBox.Show("请选择主记录", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } for (int j = 0; j < ugr.ChildBands[0].Rows.Count; j++) { UltraGridRow ugrc = ugr.ChildBands[0].Rows[j]; if (Convert.ToBoolean(ugrc.Cells["CHC"].Value)) { if (ugr.GetValue("VALIDFLAG") != "") { cicRow = GetMscCicByCic(ugr.GetValue("CIC")); } if (comBaseStdRow != null && comBaseStdRow["ACCEPT_BID"].ToString() == "0" && cicRow != null) { string[] units = ClsBaseInfo.GetUnitByUserName(cicRow["CREATE_NAME"].ToString(), ob, "002001007", "002001001", "002023005"); /*if (units[0] != UserInfo.GetDeptid() && UserInfo.GetUserID() != "admin") { MessageUtil.ShowWarning("该记录只有[" + units[1] + "]才能操作!"); ugrc.Activate(); return; }*/ } //验证是否被计划使用 //if (CustomInfo == "2") //{ // string plnMsg = FrmStandardN.CheckPlnCic(ugr.GetValue("CIC"), ob); // if (plnMsg != "") // { // MessageUtil.ShowWarning(plnMsg); // ugrc.Activate(); // return; // } //} StdChemObject comc = GetChildData(ugrc, cicRow); if (comc == null) { MessageBox.Show(errMessage, "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } _cic = comc.Cic; _isEx = true; childData.Add(JSONFormat.Format(comc)); } } } } if (MessageBox.Show("是否保存选择记录?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return; } if (baseData.Count > 0 || childData.Count > 0) { int count = ServerHelper.SetData("com.steering.pss.qcm.CoreChemStandard.saveCoreChemStandard", new Object[] { baseData, childData, style }, this.ob); if (count > 0) { MessageBox.Show("保存成功", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); DoQuery(); } } } /// /// 删除或者恢复 /// /// private void DoDeleteOrResume(Boolean flag) { try { ultraGrid1.UpdateData(); } catch (Exception) { MessageBox.Show("数据不合法,请重新输入!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (GetGridSelectCount() == 0) { MessageBox.Show("请选择记录", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } DataRow comBaseStdRow = null; if (CustomInfo == "2") { comBaseStdRow = GetComBaseStdRowByPk(stdCode); /*if (comBaseStdRow["ACCEPT_BID"].ToString() == "1" && comBaseStdRow["UNIT_CODE"].ToString() != UserInfo.GetDeptid() && UserInfo.GetUserID() != "admin") { MessageUtil.ShowWarning("该记录只有[" + comBaseStdRow["UNIT_DESC"].ToString() + "]的成员才能" + (flag ? "作废" : "恢复") + "!"); return; }*/ if (!flag) { //限制同一钢种下的成分数 var groupRows = ultraGrid1.Rows.Where(a => a.GetValue("CHC") == "True" && a.GetValue("VALIDFLAG") == "无效").GroupBy( a => new { gradeCode = a.GetValue("GRADECODE"), gradeName = a.GetValue("GRADENAME") }).Select( a => new { gradeCode = a.Key.gradeCode, gradeName = a.Key.gradeName, cnt = a.Count() }); foreach (var groupRow in groupRows) { int cnt = FrmStandarNSub.GetSameGradeCnt(groupRow.gradeCode, stdCode, ob); if (cnt + groupRow.cnt > 9) { MessageUtil.ShowWarning("钢种:" + groupRow.gradeName + " 已存在" + cnt + "条成分内控," + "恢复成分内控" + groupRow.cnt + "条,总数大于9条,无法恢复!"); return; } } // 验证成分项目是否重复 var pRows = ultraGrid1.Rows; foreach (var row in pRows) { var chkRowsC = row.ChildBands[0].Rows.Where(a => a.GetValue("CHC") == "True"); if (chkRowsC.Count() == 0) continue; var groupRowsC = row.ChildBands[0].Rows.Where(a => a.GetValue("CHC") == "True" || a.GetValue("VALIDFLAG") != "无效").GroupBy( a => a.GetValue("CHEM_CODE")).Select(a => a.Key).ToList(); //验证保存的索引码是否重复 var pRows2 = pRows.Where(a => a.GetValue("CIC") != row.GetValue("CIC") && a.GetValue("GRADECODE") == row.GetValue("GRADECODE")); foreach (var row2 in pRows2) { var chkRowsC2 = row2.ChildBands[0].Rows.Where(a => a.GetValue("CHC") == "True"); if (chkRowsC2.Count() == 0) continue; var groupRowsC2 = row2.ChildBands[0].Rows.Where(a => a.GetValue("CHC") == "True" || a.GetValue("VALIDFLAG") != "无效").GroupBy( a => a.GetValue("CHEM_CODE")).Select(a => a.Key).ToList(); if (groupRowsC2.Count() == groupRowsC.Count()) { bool isSame = true; foreach (var groupRowC in groupRowsC) { if (!groupRowsC2.Contains(groupRowC)) { isSame = false; } } if (isSame) { MessageUtil.ShowWarning("恢复后的成分索引码:" + row.GetValue("CIC") + "与" + row2.GetValue("CIC") + "中的成分项目重复,无法恢复!"); return; } } } // 验证是否与数据库中的重复 CoreClientParam ccp = new CoreClientParam(); ccp.ServerName = "com.steering.pss.qcm.CoreChemStandard"; ccp.MethodName = "getChemByGrade"; ccp.ServerParams = new object[] { groupRowsC, stdCode, row.GetValue("GRADECODE"), row.GetValue("CIC"), "恢复" }; ccp = ob.ExecuteSortResultByQueryToDataTable(ccp, CoreInvokeType.Internal); if (ccp.ReturnObject.ToString2() != "") { MessageUtil.ShowWarning(ccp.ReturnObject.ToString2()); return; } } } } ArrayList baseList = new ArrayList(); ArrayList childList = new ArrayList(); foreach (UltraGridRow ugr in ultraGrid1.Rows) { if (Convert.ToBoolean(ugr.Cells["CHC"].Value.ToString())) { if (CheckAuthority(ugr) == false) { MessageUtil.ShowWarning(errMessage); return; } DataRow rowCic = null; if (ugr.GetValue("VALIDFLAG") != "") { rowCic = GetMscCicByCic(ugr.GetValue("CIC")); } if (comBaseStdRow != null && comBaseStdRow["ACCEPT_BID"].ToString() == "0" && rowCic != null) { string[] units = ClsBaseInfo.GetUnitByUserName(rowCic["CREATE_NAME"].ToString(), ob, "002001007", "002001001", "002023005"); /*if (units[0] != UserInfo.GetDeptid() && UserInfo.GetUserID() != "admin") { MessageUtil.ShowWarning("该记录只有[" + units[1] + "]才能操作!"); ugr.Activate(); return; }*/ } //验证是否被计划使用 //if (CustomInfo == "2") //{ // string plnMsg = FrmStandardN.CheckPlnCic(ugr.GetValue("CIC"), ob); // if (plnMsg != "") // { // MessageUtil.ShowWarning(plnMsg); // ugr.Activate(); // return; // } //} if (CheckDataParent(ugr, rowCic, flag) == false) { return; } if (CheckRows(ugr) && flag) { MessageBox.Show("无效记录不能作废!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (ugr.Cells["VALIDFLAG"].Value.ToString().Equals("提交审核") || ugr.Cells["VALIDFLAG"].Value.ToString().Equals("已审核")) { MessageBox.Show("提交审核或已审核记录不能作废!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (!CheckRows(ugr) && !flag) { MessageBox.Show("有效记录不能恢复!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } StdCicObject com = new StdCicObject(); com.Cic = ugr.Cells["CIC"].Value.ToString(); com.DeleteName = UserInfo.GetUserName(); baseList.Add(JSONFormat.Format(com)); if (flag && ugr.HasChild()) { if (MessageBox.Show("所对应子记录都将作废!", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return; } foreach (UltraGridRow ugrC in ugr.ChildBands[0].Rows) { StdChemObject comC = new StdChemObject(); comC.Cic = ugrC.Cells["CIC"].Value.ToString(); comC.IndexSeq = ugrC.Cells["INDEX_SEQ"].Value.ToString(); comC.DeleteName = UserInfo.GetUserName(); childList.Add(JSONFormat.Format(comC)); } } _cic = ugr.Cells["CIC"].Value.ToString(); } //如果主表行拥有子项 if (ugr.HasChild()) { foreach (UltraGridRow ugrC in ugr.ChildBands[0].Rows) { //如果子项被勾选 if (Convert.ToBoolean(ugrC.Cells["CHC"].Value.ToString())) { DataRow rowCic = null; if (ugr.GetValue("VALIDFLAG") != "") { rowCic = GetMscCicByCic(ugr.GetValue("CIC")); } if (comBaseStdRow != null && comBaseStdRow["ACCEPT_BID"].ToString() == "0" && rowCic != null) { string[] units = ClsBaseInfo.GetUnitByUserName(rowCic["CREATE_NAME"].ToString(), ob, "002001007", "002001001", "002023005"); /*if (units[0] != UserInfo.GetDeptid() && UserInfo.GetUserID() != "admin") { MessageUtil.ShowWarning("该记录只有[" + units[1] + "]才能操作!"); ugrC.Activate(); return; }*/ } //验证是否被计划使用 //if (CustomInfo == "2") //{ // string plnMsg = FrmStandardN.CheckPlnCic(ugr.GetValue("CIC"), ob); // if (plnMsg != "") // { // MessageUtil.ShowWarning(plnMsg); // ugrC.Activate(); // return; // } //} if (CheckAuthority(ugrC) == false) { MessageUtil.ShowWarning(errMessage); return; } if (!flag && CheckRows(ugrC.ParentRow) && !Convert.ToBoolean(ugrC.ParentRow.Cells["CHC"].Value)) { MessageBox.Show("请选择主记录", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (CheckRows(ugrC) && flag) { MessageBox.Show("无效记录不能作废", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (!CheckRows(ugrC) && !flag) { MessageBox.Show("有效记录不能恢复", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (flag) { if (ugr.Cells["VALIDFLAG"].Value.ToString() != "" && ugrC.ParentRow.Cells["VALIDFLAG"].Value.ToString() != "录入状态" && ugrC.ParentRow.Cells["VALIDFLAG"].Value.ToString() != "无效") { MessageUtil.ShowWarning("主记录为提交审核或已审核状态时,无法作废"); return; } } StdChemObject comC = new StdChemObject(); comC.Cic = ugrC.Cells["CIC"].Value.ToString(); comC.IndexSeq = ugrC.Cells["INDEX_SEQ"].Value.ToString(); comC.DeleteName = UserInfo.GetUserName(); childList.Add(JSONFormat.Format(comC)); _cic = ugr.Cells["CIC"].Value.ToString(); _isEx = true; } } } } if (MessageBox.Show("是否" + (flag ? "作废" : "恢复") + "选择记录", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return; } if (baseList.Count > 0 || childList.Count > 0) { int count = ServerHelper.SetData("com.steering.pss.qcm.CoreChemStandard.deleteOrResume", new Object[] { baseList, childList, flag }, this.ob); if (count > 0) { DoQuery(); MessageBox.Show((flag ? "作废" : "恢复") + "成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Question); } } } /// /// 行记录是否有效 /// /// /// private bool CheckRows(UltraGridRow ugr) { if (ugr.Cells["VALIDFLAG"].Value.ToString().Equals("无效")) return true; else return false; } private void ultraGrid1_AfterRowInsert(object sender, RowEventArgs e) { string style = ""; if (CustomInfo == "1") style = "G"; if (CustomInfo == "2") style = "N"; if (CustomInfo == "3") style = "K"; if (CustomInfo == "4") style = "S"; UltraGridRow ugr = ultraGrid1.DisplayLayout.ActiveRow; if (!ugr.HasParent()) //主表自动填充主键(成分索引号) { string sic = ""; int temp = 0; for (int i = 0; i < ultraGrid1.Rows.Count - 1; i++) { string str = ultraGrid1.Rows[i].Cells["CIC"].Value.ToString().Substring(4, 6); if (Convert.ToInt32(str) > temp) temp = Convert.ToInt32(str); } sic = "CIC" + style + string.Format("{0:000000}", temp + 1); ugr.Cells["CIC"].Value = sic; //ugr.Cells["COUNT"].Value = "0"; } else { ugr.Cells["ISCHECK"].Value = true; ugr.Cells["ISJUDGE"].Value = true; ugr.Cells["ISQUOTE"].Value = true; } //增加行如果没有勾选则不可编辑 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; if (ugr.Cells[i].Column.Key.Equals("CHKNK")) ugr.Cells["CHKNK"].Value = "选择"; } } e.Row.Update(); } /// /// 单元格值变化事件 /// /// /// public void ultraGrid1_CellChange(object sender, CellEventArgs e) { if (e.Cell.Column.Key.Equals("STDMIN") || e.Cell.Column.Key.Equals("STDMAX") || e.Cell.Column.Key.Equals("STDMIN") || e.Cell.Column.Key.Equals("ELE_MIN") || e.Cell.Column.Key.Equals("ELE_MAX") || e.Cell.Column.Key.Equals("SIZE_MIN2") || e.Cell.Column.Key.Equals("SIZE_MIN") || e.Cell.Column.Key.Equals("SIZE_MAX2") || e.Cell.Column.Key.Equals("SIZE_MAX")) return; ultraGrid1.UpdateData(); UltraGridRow ugr = ultraGrid1.ActiveRow; if (e.Cell.Column.Key.Equals("CHEM_CODE")) /// 成分下拉框操作 { ugr.Cells["CHEM_NAME"].Value = ugr.Cells["CHEM_CODE"].Text; string chemCode = ugr.Cells["CHEM_CODE"].Value.ToString(); DataRow[] dr = ((DataTable)ultras[2].DataSource).Select("CHEM_CODE ='" + chemCode + "'"); if (dr.Length > 0) { ugr.Cells["XH"].Value = Convert.ToInt32(dr[0][0].ToString().Substring(1)); ugr.Cells["CHEM_TYPE"].Value = dr[0][2]; ugr.Cells["CHEM_FORMULA"].Value = dr[0][3]; } else { ugr.Cells["CHEM_NAME"].Value = ""; ugr.Cells["CHEM_TYPE"].Value = ""; ugr.Cells["CHEM_FORMULA"].Value = ""; } } if (e.Cell.Column.Key.Equals("")) //接箍操作 { ugr.Cells["SPEC_JG_DESC"].Value = ugr.Cells["SPEC_JG"].Text; } if (e.Cell.Column.Key.Equals("MSC"))//冶金规范码 { string msc = ugr.Cells["MSC"].Value.ToString(); DataRow[] dr = ((DataTable)ultras[10].DataSource).Select("MSC='" + msc + "'"); if (dr.Length > 0) { ugr.Cells["PSC"].Value = dr[0][2]; ugr.Cells["PSC_DESC"].Value = dr[0][3]; ugr.Cells["PRODUCNAME"].Value = dr[0][4]; ugr.Cells["STD_NAME_B"].Value = dr[0][5]; ugr.Cells["STEELNAME"].Value = dr[0][6]; ugr.Cells["STD_STYLE_DESC"].Value = dr[0][7]; ugr.Cells["STDSTYLE"].Value = dr[0][8]; } } if (e.Cell.Column.Key.Equals("SIZE_CODE2")) //限制规格描述一 { ugr.Cells["SIZE_NAME2"].Value = ugr.Cells["SIZE_CODE2"].Text; string code2 = ugr.Cells["SIZE_CODE2"].Value.ToString(); string code = ugr.Cells["SIZE_CODE"].Value.ToString(); if (!code2.Equals("") && !code.Equals("") && code.Equals(code2)) { MessageBox.Show("请重新选择限制规格<一>:限制规格", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); ugr.Cells["SIZE_NAME2"].Value = ""; ugr.Cells["SIZE_CODE2"].Value = ""; return; } if (ugr.Cells["SIZE_CODE2"].Value.ToString() == "") { ugr.Cells["SIZE_MIN_SIGN2"].Value = ""; ugr.Cells["SIZE_MIN2"].Value = ""; ugr.Cells["SIZE_MAX_SIGN2"].Value = ""; ugr.Cells["SIZE_MAX2"].Value = ""; } } if (e.Cell.Column.Key.Equals("SIZE_CODE")) //限制规格描述二 { ugr.Cells["SIZE_NAME"].Value = ugr.Cells["SIZE_CODE"].Text; string code2 = ugr.Cells["SIZE_CODE2"].Value.ToString(); string code = ugr.Cells["SIZE_CODE"].Value.ToString(); if (!code2.Equals("") && !code.Equals("") && code.Equals(code2)) { MessageBox.Show("请重新选择限制规格<二>:限制规格", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); ugr.Cells["SIZE_NAME"].Value = ""; ugr.Cells["SIZE_CODE"].Value = ""; return; } if (ugr.Cells["SIZE_CODE"].Value.ToString() == "") { ugr.Cells["SIZE_MIN_SIGN"].Value = ""; ugr.Cells["SIZE_MIN"].Value = ""; ugr.Cells["SIZE_MAX_SIGN"].Value = ""; ugr.Cells["SIZE_MAX"].Value = ""; } } if (e.Cell.Column.Key.Equals("ELE_CODE")) //限制元素描述 { ugr.Cells["ELE_NAME"].Value = ugr.Cells["ELE_CODE"].Text; if (ugr.Cells["ELE_CODE"].Value.ToString() == "") { ugr.Cells["ELE_MIN_SIGN"].Value = ""; ugr.Cells["ELE_MIN"].Value = ""; ugr.Cells["ELE_MAX_SIGN"].Value = ""; ugr.Cells["ELE_MAX"].Value = ""; ugr.Update(); } } if (e.Cell.Column.Key.Equals("REP_CODE")) //替代元素描述 { ugr.Cells["REP_NAME"].Value = ugr.Cells["REP_CODE"].Text; if (ugr.Cells["REP_CODE"].Value.ToString() == "") { ugr.Cells["REP_MIN_SIGN"].Value = ""; ugr.Cells["REP_MIN"].Value = ""; ugr.Cells["REP_MAX_SIGN"].Value = ""; ugr.Cells["REP_MAX"].Value = ""; ugr.Cells["REP_VAL"].Value = ""; } } if (e.Cell.Column.Key.Equals("CHC")) // { Activation activation = Activation.ActivateOnly; if (Convert.ToBoolean(e.Cell.Value)) { activation = Activation.AllowEdit; //isSelect += 1; } //else //isSelect -= 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; } } } if (e.Cell.Column.Key.Equals("GRADECODE")) //钢种下拉框操作 { ugr.Cells["GRADENAME"].Value = ugr.Cells["GRADECODE"].Text; } if (e.Cell.Column.Key.Equals("PROCESS_CODE")) //工序下拉框选择 { ugr.Cells["PROCESS_DESC"].Value = ugr.Cells["PROCESS_CODE"].Text; } if (e.Cell.Column.Key.Equals("ISCHECK")) //是否检验 { if (!Convert.ToBoolean(e.Cell.Value.ToString())) { ugr.Cells["ISJUDGE"].Value = false; //ugr.Cells["ISQUOTE"].Value = false; } } if (e.Cell.Column.Key.Equals("ISJUDGE")) { if (Convert.ToBoolean(ugr.Cells["ISJUDGE"].Value.ToString())) { ugr.Cells["ISCHECK"].Value = true; } } if (e.Cell.Column.Key.Equals("STD_CODE_NK")) //内控标准选择 { string stdCode = ugr.Cells["STD_CODE_NK"].Value.ToString(); ugr.Cells["STD_NAME_NK"].Value = ugr.Cells["STD_CODE_NK"].Text; DataRow[] dr = ((DataTable)ultras[7].DataSource).Select("STD_CODE='" + stdCode + "'"); if (dr.Length > 0) { ugr.Cells["STDSTYLE"].Value = dr[0][2]; } } ultraGrid1.ActiveRow.Update(); ultraGrid1.UpdateData(); } /// /// 从表数据 /// /// UltraGridRow /// private StdChemObject GetChildData(UltraGridRow ugr, DataRow rowCic) { if (CheckAuthority(ugr) == false) return null; if (rowCic != null && (rowCic["VALIDFLAG"].ToString() == "2" || rowCic["VALIDFLAG"].ToString() == "3")) { errMessage = "主记录为提交审核或已审核状态时,无法修改"; return null; } string cic = ugr.Cells["CIC"].Value.ToString().Trim(); string indexSeq = ugr.Cells["INDEX_SEQ"].Value.ToString().Trim(); string chemName = ugr.Cells["CHEM_NAME"].Value.ToString().Trim(); if (chemName.Equals("")) { errMessage = "请选择化学元素描述"; return null; } string chemCode = ugr.Cells["CHEM_CODE"].Value.ToString().Trim(); string wholeBacklog = ugr.Cells["CHEM_TYPE"].Value.ToString().Trim(); if (wholeBacklog.Equals("单一元素")) wholeBacklog = "A"; else wholeBacklog = "B"; string chemFormula = ugr.Cells["CHEM_FORMULA"].Value.ToString().Trim(); string isCheck = ugr.Cells["ISCHECK"].Value.ToString().Trim(); if (Convert.ToBoolean(isCheck)) { isCheck = "1"; } else isCheck = "0"; string isjudge = ugr.Cells["ISJUDGE"].Value.ToString().Trim(); if (Convert.ToBoolean(isjudge)) { isjudge = "1"; } else isjudge = "0"; string isquote = ugr.Cells["ISQUOTE"].Value.ToString().Trim(); if (Convert.ToBoolean(isquote)) { isquote = "1"; } else isquote = "0"; string complexType = ugr.Cells["COMPLEX_TYPE"].Value.ToString().Trim(); if (Convert.ToBoolean(complexType)) { complexType = "1"; } else { complexType = "0"; } string stdminSign = ugr.Cells["STDMIN_SIGN"].Value.ToString().Trim(); string stdMin = ugr.Cells["STDMIN"].Value.ToString().Trim(); string stdmaxSign = ugr.Cells["STDMAX_SIGN"].Value.ToString().Trim(); string stdMax = ugr.Cells["STDMAX"].Value.ToString().Trim().Trim(); if (!stdminSign.Equals("")) { if (stdMin.Equals("")) { errMessage = "请输入标准范围下限值"; return null; } if (complexType.Equals("0")) { if (!StringUtil.IsNumber(stdMin)) { errMessage = "标准范围下限值请输入数字"; return null; } } else { if (!QcmBaseCommon.CheckElement(stdMin, this.ob)) { errMessage = "标准范围下限值输入公式不合法,请重新输入"; return null; } } } else { if (!stdMin.Equals("")) { errMessage = "请选择标准范围下限符号"; return null; } } if (stdminSign.Equals("=") && !stdmaxSign.Equals("")) { errMessage = "标准范围下限符号为'=',不能选择上限符号"; return null; } if (isjudge.Equals("1") && stdminSign.Equals("") && stdmaxSign.Equals("")) { errMessage = "请选择标准范围下限符号或者上限符号"; return null; } if (!stdmaxSign.Equals("")) { if (stdMax.Equals("")) { errMessage = "请输入标准范围上限值"; return null; } if (complexType.Equals("0")) { if (!StringUtil.IsNumber(stdMax)) { errMessage = "标准范围上限值请输入数字"; return null; } } else { if (!QcmBaseCommon.CheckElement(stdMin, this.ob)) { errMessage = "标准范围上限值输入公式不合法,请重新输入"; } } } else { if (!stdMax.Equals("")) { errMessage = "请选择标准范围上限符号"; return null; } } if (complexType.Equals("0") && !stdMin.Equals("") && !stdMax.Equals("")) //&& double.Parse(stdMin) > double.Parse(stdMax) { int i = QcmBaseInfo.CheckStdData(stdminSign, stdmaxSign, stdMin, stdMax); if (i == 0) { errMessage = "输入的数据不完整"; return null; } if (i == 1) { errMessage = "标准范围下限值与上限值相等,上下限符号请选择<=和>="; return null; } if (i == 2) { errMessage = "标准范围下限值不能大于上限值"; return null; } } string stdTarget = ugr.Cells["STDTARGET"].Value.ToString().Trim(); string modelCode = ugr.Cells["MODEL_CODE"].Value.ToString().Trim(); string modelDesc = ugr.Cells["MODEL_DESC"].Value.ToString().Trim(); string stdMemo = ugr.Cells["STDMEMO"].Value.ToString().Trim(); string ele_code = ugr.Cells["ELE_CODE"].Value.ToString().Trim(); string ele_name = ugr.Cells["ELE_NAME"].Value.ToString().Trim(); string ele_min_sign = ugr.Cells["ELE_MIN_SIGN"].Value.ToString().Trim(); string ele_min = ugr.Cells["ELE_MIN"].Value.ToString().Trim(); string ele_max_sign = ugr.Cells["ELE_MAX_SIGN"].Value.ToString().Trim(); string ele_max = ugr.Cells["ELE_MAX"].Value.ToString().Trim(); string repcode = ugr.Cells["REP_CODE"].Value.ToString().Trim(); string repname = ugr.Cells["REP_NAME"].Value.ToString().Trim(); string repminsign = ugr.Cells["REP_MIN_SIGN"].Value.ToString().Trim(); string repmin = ugr.Cells["REP_MIN"].Value.ToString().Trim(); string repmaxsign = ugr.Cells["REP_MAX_SIGN"].Value.ToString().Trim(); string repmax = ugr.Cells["REP_MAX"].Value.ToString().Trim(); string repval = ugr.Cells["REP_VAL"].Value.ToString().Trim(); string size_code2 = ugr.Cells["SIZE_CODE2"].Value.ToString().Trim(); string size_name2 = ugr.Cells["SIZE_NAME2"].Value.ToString().Trim(); string size_min_sign2 = ugr.Cells["SIZE_MIN_SIGN2"].Value.ToString().Trim(); string size_min2 = ugr.Cells["SIZE_MIN2"].Value.ToString().Trim(); string size_max_sign2 = ugr.Cells["SIZE_MAX_SIGN2"].Value.ToString().Trim(); string size_max2 = ugr.Cells["SIZE_MAX2"].Value.ToString().Trim(); string size_code = ugr.Cells["SIZE_CODE"].Value.ToString().Trim(); string size_name = ugr.Cells["SIZE_NAME"].Value.ToString().Trim(); string size_min_sign = ugr.Cells["SIZE_MIN_SIGN"].Value.ToString().Trim(); string size_min = ugr.Cells["SIZE_MIN"].Value.ToString().Trim(); string size_max_sign = ugr.Cells["SIZE_MAX_SIGN"].Value.ToString().Trim(); string size_max = ugr.Cells["SIZE_MAX"].Value.ToString().Trim(); string specJG = ugr.Cells["SPEC_JG"].Value.ToString().Trim(); string specJGDesc = ugr.Cells["SPEC_JG_DESC"].Value.ToString().Trim(); if (ele_min_sign.Equals("=") && !ele_max_sign.Equals("")) { errMessage = "限制元素下限符号为'=',不能选择上限符号"; return null; } if (size_min_sign2.Equals("=") && !size_max_sign2.Equals("")) { errMessage = "限制规格(一)下限符号为'=',不能选择上限符号"; return null; } if (size_min_sign.Equals("=") && !size_max_sign.Equals("")) { errMessage = "限制规格(二)下限符号为'=',不能选择上限符号"; return null; } if (repminsign.Equals("=") && !repmaxsign.Equals("")) { errMessage = "替代元素下限符号为'=',不能选择上限符号"; return null; } if (!ele_name.Equals("")) { if (ele_name.Equals(chemName)) { errMessage = "化学元素描述不能与限制元素描述相同"; return null; } if (ele_min_sign.Equals("") && ele_max_sign.Equals("")) { errMessage = "请选择限制元素上限符号或者下限符号"; return null; } if (!ele_min_sign.Equals("") && ele_min.Equals("")) { errMessage = "请输入限制元素下限值"; return null; } if (ele_min_sign.Equals("") && !ele_min.Equals("")) { errMessage = "请选择限制元素下限符号"; return null; } if (!ele_max_sign.Equals("") && ele_max.Equals("")) { errMessage = "请输入限制元素上限值"; return null; } if (ele_max_sign.Equals("") && !ele_max.Equals("")) { errMessage = "请选择限制元素上限符号"; return null; } if (!ele_max.Equals("") && !StringUtil.IsNumber(ele_max)) { errMessage = "限制元素上限值请输入数字"; return null; } if (!ele_min.Equals("") && !StringUtil.IsNumber(ele_min)) { errMessage = "限制元素下限值请输入数字"; return null; } if (!ele_max_sign.Equals("") && !ele_min_sign.Equals("")) //&& Convert.ToInt32(ele_min) > Convert.ToInt32(ele_max) { int i = QcmBaseInfo.CheckStdData(ele_min_sign, ele_max_sign, ele_min, ele_max); if (i == 0) { errMessage = "输入的数据不完整"; return null; } if (i == 1) { errMessage = "限制元素下限值与上限值相等,上下限符号请选择<=和>="; return null; } if (i == 2) { errMessage = "限制元素下限值不能大于上限值"; return null; } } } else { if (!ele_max_sign.Equals("") || !ele_min_sign.Equals("") || !ele_min.Equals("") || !ele_max.Equals("")) { errMessage = "请选择限制元素描述"; return null; } } //-------------------新增的7个字段----------------------------------------- if (!repname.Equals("")) { if (repname.Equals(chemName)) { errMessage = "化学元素描述不能与替代元素描述相同"; return null; } if (repminsign.Equals("") && repmaxsign.Equals("")) { errMessage = "请选择替代元素上限符号或者下限符号"; return null; } if (!repminsign.Equals("") && repmin.Equals("")) { errMessage = "请输入替代元素下限值"; return null; } if (repminsign.Equals("") && !repmin.Equals("")) { errMessage = "请选择替代元素下限符号"; return null; } if (!repmaxsign.Equals("") && repmax.Equals("")) { errMessage = "请输入替代元素上限值"; return null; } if (repmaxsign.Equals("") && !repmax.Equals("")) { errMessage = "请选择替代元素上限符号"; return null; } if (!repmax.Equals("") && !StringUtil.IsNumber(repmax)) { errMessage = "替代元素上限值请输入数字"; return null; } if (!repmin.Equals("") && !StringUtil.IsNumber(repmin)) { errMessage = "替代元素下限值请输入数字"; return null; } if (!repmaxsign.Equals("") && !repminsign.Equals("")) //&& Convert.ToInt32(repmin) > Convert.ToInt32(repmax) { int i = QcmBaseInfo.CheckStdData(repminsign, repmaxsign, repmin, repmax); if (i == 0) { errMessage = "输入的数据不完整"; return null; } if (i == 1) { errMessage = "替代元素下限值与上限值相等,上下限符号请选择<=和>="; return null; } if (i == 2) { errMessage = "替代元素下限值不能大于上限值"; return null; } } } else { if (!repmaxsign.Equals("") || !repminsign.Equals("") || !repmin.Equals("") || !repmax.Equals("")) { errMessage = "请选择替代元素描述"; return null; } } //----------------新增的7个字段处理结束------------- if (!specJGDesc.Equals("") && !specJGDesc.Equals("-1")) { if (!size_name.Equals("") || !size_name2.Equals("")) { errMessage = "存在接箍描述,不能选择限制规格(一)或者(二)"; return null; } } if (!size_name.Equals("") || !size_name2.Equals("")) { if (!specJGDesc.Equals("") && !specJGDesc.Equals("-1")) { errMessage = "存在限制规格(一)或者限制规格(二),不能选择接箍描述"; return null; } } if (!size_name2.Equals("")) { if (size_min_sign2.Equals("") && size_max_sign2.Equals("")) { errMessage = "请选择限制规格(一)下限符号或者上限符号"; return null; } if (!size_min_sign2.Equals("") && size_min2.Equals("")) { errMessage = "请输入限制规格(一)下限值"; return null; } if (size_min_sign2.Equals("") && !size_min2.Equals("")) { errMessage = "请选择限制规格(一)下限符号"; return null; } if (!size_max_sign2.Equals("") && size_max2.Equals("")) { errMessage = "请输入限制规格(一)下限值"; return null; } if (size_max_sign2.Equals("") && !size_max2.Equals("")) { errMessage = "请选择限制规格(一)下限符号"; return null; } if (!size_max2.Equals("") && !StringUtil.IsNumber(size_max2)) { errMessage = "限制规格(一)上限值请输入数字"; return null; } if (!size_min2.Equals("") && !StringUtil.IsNumber(size_min2)) { errMessage = "限制规格(一)下限值请输入数字"; return null; } if (!size_max2.Equals("") && !size_min2.Equals("")) //&& Convert.ToDouble(size_min2) > Convert.ToDouble(size_max2) { int i = QcmBaseInfo.CheckStdData(size_min_sign2, size_max_sign2, size_min2, size_max2); if (i == 0) { errMessage = "输入的数据不完整"; return null; } if (i == 1) { errMessage = "限制规格(一)下限值与上限值相等,上下限符号请选择<=和>="; return null; } if (i == 2) { errMessage = "限制规格(一)下限值不能大于上限值"; return null; } } } else { if (!size_min_sign2.Equals("") || !size_max2.Equals("") || !size_max2.Equals("") || !size_min2.Equals("")) { errMessage = "请选择限制规格(一)描述"; return null; } } if (!size_name.Equals("")) { if (size_min_sign.Equals("") && size_max_sign.Equals("")) { errMessage = "请选择限制规格(二)下限符号或者上限符号"; return null; } if (!size_min_sign.Equals("") && size_min.Equals("")) { errMessage = "请输入限制规格(二)下限值"; return null; } if (size_min_sign.Equals("") && !size_min.Equals("")) { errMessage = "请选择限制规格(二)下限符号"; return null; } if (!size_max_sign.Equals("") && size_max.Equals("")) { errMessage = "请输入限制规格(二)下限值"; return null; } if (size_max_sign.Equals("") && !size_max.Equals("")) { errMessage = "请选择限制规格(二)下限符号"; return null; } if (!size_max.Equals("") && !StringUtil.IsNumber(size_max)) { errMessage = "限制规格(二)上限值请输入数字"; return null; } if (!size_min.Equals("") && !StringUtil.IsNumber(size_min)) { errMessage = "限制规格(二)下限值请输入数字"; return null; } if (!size_max.Equals("") && !size_min.Equals("")) //&& Convert.ToDouble(size_min) > Convert.ToDouble(size_max) { int i = QcmBaseInfo.CheckStdData(size_min_sign, size_max_sign, size_min, size_max); if (i == 0) { errMessage = "输入的数据不完整"; return null; } if (i == 1) { errMessage = "限制规格(二)下限值与上限值相等,上下限符号请选择<=和>="; return null; } if (i == 2) { errMessage = "限制规格(二)下限值不能大于上限值"; return null; } } } else { if (!size_min_sign.Equals("") || !size_max.Equals("") || !size_max.Equals("") || !size_min.Equals("")) { errMessage = "请选择限制规格(二)描述"; return null; } } if (!size_name.Equals("") && !size_name2.Equals("") && size_name.Equals(size_name2)) { errMessage = "限制规格(二)描述不能与限制规格(一)描述相同"; return null; } string createName = UserInfo.GetUserName(); string updateName = UserInfo.GetUserName(); string createTime = ugr.Cells["CREATE_TIME"].Value.ToString().Trim(); string validflag = ugr.Cells["VALIDFLAG"].Value.ToString().Trim(); //if (validflag.Equals("无效")) //{ // errMessage = "无效记录不能保存"; // return null; //} StdChemObject com = new StdChemObject(); com.Cic = cic; com.IndexSeq = indexSeq; com.ChemCode = chemCode; com.ChemName = chemName; com.ChemType = wholeBacklog; com.ChemFormula = chemFormula; com.IsCheck = isCheck; com.Isjudge = isjudge; com.IsQuote = isquote; com.ComplexType = complexType; com.StdMinSign = stdminSign; if (stdMin.TryParseDecimal()) { if (stdMin.StartsWith(".")) stdMin = "0" + stdMin; } com.StdMin = stdMin; com.StdMaxSign = stdmaxSign; if (stdMax.TryParseDecimal()) { if (stdMax.StartsWith(".")) stdMax = "0" + stdMax; } com.StdMax = stdMax; com.StdTarget = stdTarget; com.ModelCode = modelCode; com.ModelDesc = modelDesc; com.StdMemo = stdMemo; com.EleCode = ele_code; com.EleName = ele_name; com.EleMinSign = ele_min_sign; if (ele_min.TryParseDecimal()) { if (ele_min.StartsWith(".")) ele_min = "0" + ele_min; } com.EleMin = ele_min; com.EleMaxSign = ele_max_sign; if (ele_max.TryParseDecimal()) { if (ele_max.StartsWith(".")) ele_max = "0" + ele_max; } com.EleMax = ele_max; com.SizeCode2 = size_code2; com.SizeName2 = size_name2; com.SizeMinSign2 = size_min_sign2; com.SizeMin2 = size_min2; com.SizeMaxSign2 = size_max_sign2; com.SizeMax2 = size_max2; com.SizeCode = size_code; com.SizeName = size_name; com.SizeMinSign = size_min_sign; if (size_min.TryParseDecimal()) { if (size_min.StartsWith(".")) size_min = "0" + size_min; } com.SizeMin = size_min; com.SizeMaxSign = size_max_sign; if (size_max.TryParseDecimal()) { if (size_max.StartsWith(".")) size_max = "0" + size_max; } com.SizeMax = size_max; com.SpecJg = specJG; com.SpecJgDesc = specJGDesc; com.CreateName = createName; com.UpdateName = updateName; com.CreateTime = createTime; com.Validflag = ugr.Cells["VALIDFLAG"].Value.ToString(); com.RepMaxSign = repmaxsign; com.RepMin = repmin; com.RepMinSign = repminsign; com.RepMax = repmax; com.RepName = repname; com.RepCode = repcode; com.RepVal = repval; return com; } private DataTable GetMscTabByMsc(string msc) { DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreFrmProPSCMSC2.getComMscByMsc", new object[] { msc }, ob); return dt; } private string GetMscByCic(string cic) { DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreChemStandard.getMscCicByCic", new object[] { cic }, ob); if (dt.Rows.Count > 0) { return dt.Rows[0]["MSC"].ToString(); } else { return ""; } } /// /// 通过主键查询成分 /// /// /// private DataRow GetMscCicByCic(string cic) { DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreChemStandard.getMscCicByCic", new object[] { cic }, ob); if (dt.Rows.Count == 0) { return null; } else { return dt.Rows[0]; } } private bool CheckAuthority(UltraGridRow row) { if (CustomInfo == "1") { string mscOld; if (row.GetValue("VALIDFLAG") != "") { mscOld = GetMscByCic(row.GetValue("CIC")); } else { mscOld = row.HasParent() ? row.ParentRow.GetValue("MSC") : row.GetValue("MSC"); } DataTable dtMsc = GetMscTabByMsc(mscOld); //if (dtMsc.Rows[0]["UNIT_CODE"].ToString() != UserInfo.GetDeptid() && UserInfo.GetUserID() != "admin") //{ // errMessage = "该条记录对应的冶金规范是[" + dtMsc.Rows[0]["UNIT_DESC"].ToString() + "]科室维护的,您没有权限!"; // row.Activate(); // return false; //} } return true; } /// /// 主项数据 /// /// UltraGridRow /// private StdCicObject GetBaseData(UltraGridRow ugr, DataRow cicRow) { StdCicObject com = new StdCicObject(); com.Cic = ugr.Cells["CIC"].Value.ToString().Trim(); com.Psc = ugr.Cells["PSC"].Value.ToString().Trim(); com.Msc = ugr.Cells["MSC"].Value.ToString(); if (CustomInfo == "1" && com.Msc.Equals("")) { errMessage = "请选择冶金规范码"; return null; } if (CheckAuthority(ugr) == false) return null; com.StdsStyle = ugr.Cells["STDSTYLE"].Value.ToString().Trim(); if (com.StdsStyle.Equals("订货标准")) com.StdsStyle = "G"; else if (com.StdsStyle.Equals("协议标准")) com.StdsStyle = "X"; else if (com.StdsStyle.Equals("Alpha")) com.StdsStyle = "K"; else if (com.StdsStyle.Equals("内控")) com.StdsStyle = "N"; else if (com.StdsStyle.Equals("试验标准")) com.StdsStyle = "S"; else com.StdsStyle = "P"; com.StdCodeNk = ugr.Cells["STD_CODE_NK"].Value.ToString().Trim(); com.StdNameNk = ugr.Cells["STD_NAME_NK"].Value.ToString().Trim(); if (CustomInfo != "1" && com.StdNameNk.Equals("")) { errMessage = "请选择标准名称"; return null; } com.ProcessCode = ugr.Cells["PROCESS_CODE"].Value.ToString().Trim(); com.ProcessDesc = ugr.Cells["PROCESS_DESC"].Value.ToString().Trim(); com.GradeCode = ugr.Cells["GRADECODE"].Value.ToString().Trim(); com.GradeName = ugr.Cells["GRADENAME"].Value.ToString().Trim(); com.StdCode = ugr.Cells["STD_CODE"].Value.ToString().Trim(); com.StdName = ugr.Cells["STD_CODE"].Text; com.CreateName = UserInfo.GetUserName(); com.CreateTime = ugr.Cells["CREATE_TIME"].Value.ToString().Trim(); com.UpdateName = UserInfo.GetUserName(); com.Memo = ugr.Cells["MEMO"].Value.ToString(); com.Validflag = ugr.Cells["VALIDFLAG"].Value.ToString().Trim(); com.ModelCode = ugr.Cells["MODEL_CODE"].Value.ToString(); com.ModelDesc = ugr.Cells["MODEL_DESC"].Value.ToString(); com.ProducHead = ugr.GetValue("PRODUC_HEAD"); com.CodeJg = codeJg == "DefaultValue" ? "" : codeJg; com.SteelcodeNk = ugr.GetValue("STEELCODE_NK"); com.SteelnameNk = ugr.GetValue("STEELNAME_NK"); com.ModelCodeNk = ugr.GetValue("MODEL_CODE_NK"); com.ModelNameNk = ugr.GetValue("MODEL_DESC_NK"); com.ProduccodeNk = ugr.GetValue("PRODUCCODE_NK"); com.ProducnameNk = ugr.GetValue("PRODUCNAME_NK"); com.SmeltingCnt = ugr.GetValue("SMELTING_CNT"); com.ProductCnt = ugr.GetValue("PRODUCT_CNT"); com.MinD = ugr.GetValue("MIN_D"); com.MaxD = ugr.GetValue("MAX_D"); com.MinH = ugr.GetValue("MIN_H"); com.MaxH = ugr.GetValue("MAX_H"); com.MinDSign = ugr.GetValue("MIN_D_SIGN"); com.MaxDSign = ugr.GetValue("MAX_D_SIGN"); com.MinHSign = ugr.GetValue("MIN_H_SIGN"); com.MaxHSign = ugr.GetValue("MAX_H_SIGN"); com.Rate = ugr.GetValue("RATE"); //if (CustomInfo == "2" && ugr.GetValue("PRODUCCODE_NK") == "") //{ // errMessage = "请选择品名!"; // return null; //} if (CustomInfo == "1" && com.Msc.EndsWith("000")) { if (com.SmeltingCnt == "") { errMessage = "请输入熔炼成分套数!"; ugr.SetCellActive("SMELTING_CNT"); return null; } if (com.ProductCnt == "") { errMessage = "请输入成品成分套数!"; ugr.SetCellActive("PRODUCT_CNT"); return null; } if (com.Rate == "") { errMessage = "请选择成品取样频率!"; ugr.SetCellActive("RATE"); return null; } } if (CustomInfo == "2") { if (com.GradeCode == "") { errMessage = "请选择钢种!"; ugr.SetCellActive("GRADENAME"); return null; } else if (com.GradeCode.Split(';').Length >= 2) { errMessage = "成分内控只能维护一个适用钢种!"; ugr.SetCellActive("GRADENAME"); return null; } if (com.MinDSign != "" && com.MinD == "") { errMessage = "请输入外径下限值!"; ugr.SetCellActive("MIN_D"); return null; } else if (com.MinDSign == "" && com.MinD != "") { errMessage = "请选择外径下限符号!"; ugr.SetCellActive("MIN_D_SIGN"); return null; } else if (com.MaxDSign != "" && com.MaxD == "") { errMessage = "请输入外径上限值!"; ugr.SetCellActive("MAX_D"); return null; } else if (com.MaxDSign == "" && com.MaxD != "") { errMessage = "请选择外径上限符号!"; ugr.SetCellActive("MAX_D_SIGN"); return null; } else if (com.MinHSign != "" && com.MinH == "") { errMessage = "请输入壁厚下限值!"; ugr.SetCellActive("MIN_H"); return null; } else if (com.MinHSign == "" && com.MinH != "") { errMessage = "请选择壁厚下限符号!"; ugr.SetCellActive("MIN_H_SIGN"); return null; } else if (com.MaxHSign != "" && com.MaxH == "") { errMessage = "请输入壁厚上限值!"; ugr.SetCellActive("MAX_H"); return null; } else if (com.MaxHSign == "" && com.MaxH != "") { errMessage = "请选择壁厚上限符号!"; ugr.SetCellActive("MAX_H_SIGN"); return null; } else if (com.MinDSign == "=" && com.MaxDSign != "") { errMessage = "外径下限符号为等号时,不能存在外径上限符号和外径上限值!"; ugr.SetCellActive("MAX_D_SIGN"); return null; } else if (com.MinHSign == "=" && com.MaxHSign != "") { errMessage = "壁厚下限符号为等号时,不能存在壁厚上限符号和壁厚上限值!"; ugr.SetCellActive("MAX_H_SIGN"); return null; } else if (com.MinD != "" && com.MaxD != "" && decimal.Parse(com.MinD) >= decimal.Parse(com.MaxD)) { errMessage = "外径下限值不能大于等于外径上限值!"; ugr.SetCellActive("MIN_D"); return null; } else if (com.MinH != "" && com.MaxH != "" && decimal.Parse(com.MinH) >= decimal.Parse(com.MaxH)) { errMessage = "壁厚下限值不能大于等于壁厚上限值!"; ugr.SetCellActive("MIN_H"); return null; } } //if (com.Validflag.Equals("无效")) //{ // errMessage = "无效记录不能保存"; // return null; //} //界面上简单的验证了下 当这个界面打开很久以后 可能有些记录的状态发生了变化 会不准确 不过不影响 //因为在Update SQL语句里面加了限制条件(这两个状态的都无法修改!)。 if (cicRow != null && (cicRow["VALIDFLAG"].ToString() == "2" || cicRow["VALIDFLAG"].ToString() == "3")) { errMessage = "提交审核或已审核的记录不能修改"; return null; } return com; } private bool CheckDataParent(UltraGridRow ugr, DataRow rowCic, bool flag) { if (!flag) { if (CustomInfo == "2") { if (rowCic["GRADECODE"].ToString() == "") { MessageUtil.ShowWarning("请选择钢种并保存后,再恢复记录!"); return false; } else if (rowCic["GRADECODE"].ToString().Split(';').Length >= 2) { MessageUtil.ShowWarning("成分内控只能维护一个适用钢种,请保留一个适用钢种并保存后,再恢复记录!"); return false; } } } return true; } FrmChemStandard _frmChemStandard = null; /// /// 扣型选择 /// /// /// private void ultraGrid1_ClickCellButton(object sender, CellEventArgs e) { if (e.Cell.Column.Key.Equals("MODEL_DESC") && Convert.ToBoolean(ultraGrid1.DisplayLayout.ActiveRow.Cells["CHC"].Value)) { UltraGridRow row = this.ultraGrid1.DisplayLayout.ActiveRow; FrmModel frms = new FrmModel(); frms.Desc = row.Cells["MODEL_DESC"].Value.ToString(); frms.FrmOb = this.ob; frms.ShowDialog(); row.Cells["MODEL_CODE"].Value = frms.Code; row.Cells["MODEL_DESC"].Value = frms.Desc; } if (e.Cell.Column.Key.ToUpper().Equals("COUNT") && e.Cell.Row.Cells["CHC"].Value.ToString() == "True") { UltraGridRow ugr = ultraGrid1.ActiveRow; List list = new List(); FrmChemPopup fcp = new FrmChemPopup(); if (ugr.ChildBands[0].Rows.Count > 0) { for (int i = 0; i < ugr.ChildBands[0].Rows.Count; i++) { list.Add(ugr.ChildBands[0].Rows[i].Cells["CHEM_CODE"].Value.ToString()); } } fcp.Ob = this.ob; fcp.ChenList = list; fcp.ShowDialog(); } if (e.Cell.Column.Key.Equals("CHKNK")) { UltraGridRow ugr = ultraGrid1.ActiveRow; _frmChemStandard = new FrmChemStandard(); _frmChemStandard.PopupLoad("3", ob); _frmChemStandard.UltraPanel1.Visible = false; _frmChemStandard.ultraToolbarsManager1.Visible = true; _frmChemStandard.Msc = msc; _frmChemStandard.CodeJg = ""; _frmChemStandard.DoQuery1(); if (_frmChemStandard.ShowDialog() == System.Windows.Forms.DialogResult.OK) { DataRow CurRow, NewRow; for (int i = 0; i < _frmChemStandard.dataTable1.Rows.Count; i++) { CurRow = _frmChemStandard.dataTable1.Rows[i]; NewRow = dataTable1.NewRow(); if (!_frmChemStandard.Ids.Contains(CurRow["CIC"].ToString2())) { continue; } for (int j = 0; j < _frmChemStandard.dataTable1.Columns.Count; j++) { try { if (dataTable1.Columns.Contains(_frmChemStandard.dataTable1.Columns[j].ColumnName)) { if (_frmChemStandard.dataTable1.Columns[j].ColumnName == "CIC") { NewRow[_frmChemStandard.dataTable1.Columns[j].ColumnName] = ultraGrid1.ActiveRow.GetValue("CIC"); } else { NewRow[_frmChemStandard.dataTable1.Columns[j].ColumnName] = CurRow[j]; } } } catch { } } dataTable1.Rows.Add(NewRow); } ultraGrid1.UpdateData(); ultraGrid1.ActiveRow.ExpandAll(); } } } /// /// 编辑区 产品规范描述 /// /// /// private void ChcPsc_CheckedChanged(object sender, EventArgs e) { if (ultraCheckMSC.Checked) ultraTextMSC.Enabled = true; else ultraTextMSC.Enabled = false; } private void ultraCheckStd_CheckedChanged(object sender, EventArgs e) { if (ultraCheckStd.Checked) ultraTextStd.Enabled = true; else ultraTextStd.Enabled = false; } private void ultraGrid1_CellDataError(object sender, CellDataErrorEventArgs e) { e.RaiseErrorEvent = false; e.RestoreOriginalValue = true; e.StayInEditMode = true; MessageBox.Show("数据不合法,请重新输入!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); } private void ultraGrid1_InitializeRow(object sender, InitializeRowEventArgs e) { if (isPasting) { e.Row.SetValue("CHC", "True"); } } /// /// 2015-07-15 PDY /// private void InnerChange() { ultraGrid1.DisplayLayout.Bands[1].Columns["UnboundColumn2"].Header.Caption = "内控标准"; ultraGrid1.DisplayLayout.Bands[0].Columns["PROCESS_CODE"].CellActivation = Activation.ActivateOnly; ultraGrid1.DisplayLayout.Bands[0].Columns["STD_CODE_NK"].CellActivation = Activation.ActivateOnly; ultraGrid1.DisplayLayout.Bands[0].Columns["MODEL_DESC"].Hidden = true; } private void ultraTextEditor1_EditorButtonClick(object sender, EditorButtonEventArgs e) { if (ultraGrid1.ActiveCell.Column.Key == "PROCESS_DESC") { string processCodes = ultraGrid1.ActiveRow.GetValue("PROCESS_CODE"); ChoiceProcessPopup choiceProcessPopup = new ChoiceProcessPopup(processCodes, this.ob); if (choiceProcessPopup.ShowDialog() == System.Windows.Forms.DialogResult.OK) { DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.ComStandard.getProcessByStdCode", new object[] { this.stdCode }, ob); string stdProcessCodes = dt.Rows[0]["PROCESS_CODE"].ToString(); string[] processCodesAry = choiceProcessPopup.ProcessCodes.Split(','); for (int i = 0; i < processCodesAry.Length; i++) { if (!stdProcessCodes.Contains(processCodesAry[i].Trim())) { DataTable dtBaseProcess = ServerHelper.GetData("com.steering.pss.qcm.ComStandard.getProcessDescByCode", new object[] { processCodesAry[i].Trim() }, ob); string processDesc = dtBaseProcess.Rows[0]["PROCESS_DESC"].ToString(); MessageUtil.ShowWarning("该标准下不包含工序" + processDesc + ", 不能选择!"); return; } } ultraGrid1.ActiveRow.SetValue("PROCESS_CODE", choiceProcessPopup.ProcessCodes); ultraGrid1.ActiveRow.SetValue("PROCESS_DESC", choiceProcessPopup.ProcessDescs); } } else if (ultraGrid1.ActiveCell.Column.Key == "STEELNAME_NK") { FrmRepSteel frmSteel = new FrmRepSteel(); frmSteel.Text = "钢级选择"; frmSteel.Ob1 = this.ob; frmSteel.Code = ultraGrid1.ActiveRow.GetValue("STEELCODE_NK"); if (frmSteel.ShowDialog() == System.Windows.Forms.DialogResult.OK) { ultraGrid1.ActiveRow.SetValue("STEELCODE_NK", frmSteel.Code); ultraGrid1.ActiveRow.SetValue("STEELNAME_NK", frmSteel.Desc); } } else if (ultraGrid1.ActiveCell.Column.Key == "MODEL_DESC_NK") { FrmModel frmModel = new FrmModel(); frmModel.FrmOb = this.ob; frmModel.Code = ultraGrid1.ActiveRow.GetValue("MODEL_CODE_NK"); frmModel.Desc = ultraGrid1.ActiveCell.Value.ToString(); if (frmModel.ShowDialog() == System.Windows.Forms.DialogResult.OK) { ultraGrid1.ActiveRow.SetValue("MODEL_CODE_NK", frmModel.Code); ultraGrid1.ActiveRow.SetValue("MODEL_DESC_NK", frmModel.Desc); } } else if (ultraGrid1.ActiveCell.Column.Key == "PRODUCNAME_NK") { PopupProductName popupProductName = new PopupProductName( ultraGrid1.ActiveRow.GetValue("PRODUCCODE_NK"), ob); if (popupProductName.ShowDialog() == System.Windows.Forms.DialogResult.OK) { ultraGrid1.ActiveRow.SetValue("PRODUCCODE_NK", popupProductName.ProductCodes); ultraGrid1.ActiveRow.SetValue("PRODUCNAME_NK", popupProductName.ProductNames); } } else if (ultraGrid1.ActiveCell.Column.Key == "GRADENAME") { string gradeCodes = ultraGrid1.ActiveRow.GetValue("GRADENAME"); FrmGradeChoice frmGradeChoice = new FrmGradeChoice(gradeCodes, ob); if (frmGradeChoice.ShowDialog() == System.Windows.Forms.DialogResult.OK) { ultraGrid1.ActiveRow.SetValue("GRADECODE", frmGradeChoice.GradeCodes); ultraGrid1.ActiveRow.SetValue("GRADENAME", frmGradeChoice.GradeNames); } } } private void ultraGrid1_AfterSelectChange(object sender, AfterSelectChangeEventArgs e) { foreach (Infragistics.Win.UltraWinGrid.UltraGridRow ugr in this.ultraGrid1.Selected.Rows) { ugr.Cells["CHC"].Value = true; Activation activation = Activation.ActivateOnly; if (Convert.ToBoolean(ugr.Cells["CHC"].Value)) { activation = Activation.AllowEdit; //isSelect += 1; } //else //isSelect -= 1; CellsCollection cells = ugr.Cells; for (int i = 0; i < cells.Count; i++) { if (!cells[i].Column.Key.Equals("CHC")) { ugr.Cells[i].Activation = activation; } } } } private void ultraToolbarsManager1_ToolClick(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e) { switch (e.Tool.Key) { case "查询": DoQuery1(); break; case "确认选择": Choice(); break; } } private DataRow[] rows; public DataRow[] Rows { get { return rows; } set { rows = value; } } List ids; public List Ids { get { return ids; } set { ids = value; } } private void Choice() { ultraGrid1.UpdateData(); int count = ultraGrid1.Rows.Where(a => Convert.ToBoolean(a.GetValue("CHC"))).Count(); if (count > 1) { MessageUtil.ShowTips("请选择一条数据!"); return; } foreach (UltraGridRow ugr in ultraGrid1.Rows.Where(a => Convert.ToBoolean(a.GetValue("CHC")))) { //从表操作 if (ugr.HasChild()) { Ids = ugr.ChildBands[0].Rows.Select(p => p.GetValue("CIC")).ToList(); Rows = dataTable1.Select("CIC IN ('" + string.Join("','", Ids) + "')"); } } this.DialogResult = System.Windows.Forms.DialogResult.OK; } } }