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.Drawing; using System.Linq; using System.Text.RegularExpressions; using System.Windows.Forms; namespace Core.StlMes.Client.Qcm { /// /// 水压标准 /// public partial class FrmWaterPressureStand : FrmBase { public FrmWaterPressureStand() { InitializeComponent(); ExceptionHelper.RegistException(); this.IsLoadUserView = true; } public void PopupLoad(string customInfo, OpeBase ob) { this.CustomInfo = customInfo; this.ob = ob; FrmWaterPressureStand_Load(null, null); } private bool isPasting = false; //提示信息 private string errMessage = ""; //用于 定位 private string _wic = ""; //展开 private bool _isEx = false; //public int isSelect = 0; private UltraComboEditor uce = new UltraComboEditor(); //用户冶金规范管理界面调用。 此处为查询条件。 public string WIC = ""; private string msc = ""; public string Msc { get { return msc; } set { msc = value; } } 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 processCode = ""; public string ProcessCode { get { return processCode; } set { processCode = 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 psc = ""; public string Psc { get { return psc; } set { psc = value; } } private string ordLnPk = ""; public string OrdLnPk { get { return ordLnPk; } set { ordLnPk = value; } } public override void ToolBar_Click(object sender, string ToolbarKey) { switch (ToolbarKey) { case "Query": this.DoQuery(); break; case "Delete": DoUpdateOrResume(true); break; case "Resume": DoUpdateOrResume(false); break; case "Copy": Copy(); break; case "Paste": isPasting = true; try { Paste(); } finally { isPasting = false; } break; case "Save": DoSave(); break; case "Refresh": BandToUltraGrid(); break; case "Close": this.Close(); break; } } /// /// 复制 /// private void Copy() { if (ultraGrid1.ActiveRow == null) { MessageUtil.ShowWarning("请选择记录后,再进行操作!"); return; } ultraGrid1.UpdateData(); DataTable copyTab = dataTable2.Copy(); DataTable copyTab2 = dataTable1.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("Wic", 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("Wic"); if (copyTabs == null) { MessageUtil.ShowWarning("没有数据,请复制后再进行操作!"); return; } DataTable copyTab = copyTabs[0]; DataTable copyTab2 = copyTabs[1]; if (copyTab == null || copyTab.Rows.Count == 0) { MessageUtil.ShowWarning("没有数据,请复制后再进行操作!"); return; } dataTable2.BeginInit(); string wic = ""; UltraGridRow rowParent; if (ultraGrid1.ActiveRow.HasParent()) { //if (ultraGrid1.ActiveRow.ParentRow.ChildBands[0].Rows.Count > 0) //{ // MessageUtil.ShowWarning("该记录下存在子记录,不能进行粘贴操作!"); // return; //} wic = ultraGrid1.ActiveRow.ParentRow.GetValue("WIC"); rowParent = ultraGrid1.ActiveRow.ParentRow; } else { //if (ultraGrid1.ActiveRow.ChildBands[0].Rows.Count > 0) //{ // MessageUtil.ShowWarning("该记录下存在子记录,不能进行粘贴操作!"); // return; //} wic = ultraGrid1.GetActiveRowValue("WIC"); rowParent = ultraGrid1.ActiveRow; } List notCopyColumns = new List(); notCopyColumns.AddRange("CHC", "CREATE_TIME", "CREATE_NAME", "UPDATE_TIME", "UPDATE_NAME", "DELETE_TIME", "DELETE_NAME", "VALIDFLAG", "WIC", "MSC", "STD_CODE_NK", "STD_NAME_NK", "PSC_DESC", "PSC", "STD_NAME", "PRODUCNAME", "STEELNAME", "STDSTYLE", "PROCESS_DESC", "STD_STYLE_DESC", "PRODUCCODE_NK", "PRODUCNAME_NK", "PROCESS_CDOE", "PROCESS_DESC", "STEELCODE_NK", "STEELNAME_NK"); if (copyTab2.Rows.Count > 0) { DataRow drParent = ((DataRowView)rowParent.ListObject).Row; foreach (DataColumn column in dataTable1.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 = dataTable2.NewRow(); foreach (DataColumn column in dataTable2.Columns) { string columnName = column.ColumnName; if (notCopyColumns.Contains(columnName) == true) continue; if (!copyTab.Columns.Contains(columnName)) continue; tempRow[columnName] = row[columnName]; } tempRow["WIC"] = wic; dataTable2.Rows.Add(tempRow); } dataTable2.EndInit(); if (copyTab.Rows.Count > 0 && ultraGrid1.ActiveRow != null) { ultraGrid1.ActiveRow.ExpandAll(); } ultraGrid1.UpdateData(); } private void FrmWaterPressureStand_Load(object sender, EventArgs e) { BandToUltraGrid(); HideColumn(); } /// /// 根据参数隐藏不同的列 /// 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; this.ultraGrid1.DisplayLayout.Bands[0].Columns["STEELNAME_NK"].Hidden = true; this.ultraGrid1.DisplayLayout.Bands[0].Columns["MODEL_DESC_NK"].Hidden = true; this.ultraGrid1.DisplayLayout.Bands[0].Columns["PRODUCCODE_NK"].Hidden = true; this.ultraGrid1.DisplayLayout.Bands[0].Columns["PRODUCNAME_NK"].Hidden = true; } if (CustomInfo == "2") { ultraGrid1.DisplayLayout.Bands[0].Columns["MSC"].Hidden = true; ultraGrid1.DisplayLayout.Bands[0].Columns["PSC_DESC"].Hidden = true; ultraGrid1.DisplayLayout.Bands[0].Columns["PRODUCNAME"].Hidden = true; ultraGrid1.DisplayLayout.Bands[0].Columns["STD_NAME"].Hidden = true; ultraGrid1.DisplayLayout.Bands[0].Columns["STEELNAME"].Hidden = true; ultraGrid1.DisplayLayout.Bands[0].Columns["STEELCODE"].Hidden = true; ultraGrid1.DisplayLayout.Bands[0].Columns["STD_STYLE_DESC"].Hidden = true; ultraGrid1.DisplayLayout.Bands[0].Columns["STD_CODE_NK"].Header.Caption = "内控管理编号"; ultraCheckPscDesc.Visible = false; ultraTextPscDesc.Visible = false; InnerChange(); } if (CustomInfo == "3") { ultraGrid1.DisplayLayout.Bands[0].Columns["MSC"].Hidden = true; ultraGrid1.DisplayLayout.Bands[0].Columns["PSC_DESC"].Hidden = true; ultraGrid1.DisplayLayout.Bands[0].Columns["PRODUCNAME"].Hidden = true; ultraGrid1.DisplayLayout.Bands[0].Columns["STD_NAME"].Hidden = true; ultraGrid1.DisplayLayout.Bands[0].Columns["STEELCODE"].Hidden = true; ultraGrid1.DisplayLayout.Bands[0].Columns["STEELNAME"].Hidden = true; ultraGrid1.DisplayLayout.Bands[0].Columns["STD_STYLE_DESC"].Hidden = true; ultraCheckPscDesc.Visible = false; ultraTextPscDesc.Visible = false; ultraGrid1.DisplayLayout.Bands[0].Columns["PROCESS_DESC"].Hidden = true; this.ultraGrid1.DisplayLayout.Bands[0].Columns["STEELNAME_NK"].Hidden = true; this.ultraGrid1.DisplayLayout.Bands[0].Columns["MODEL_DESC_NK"].Hidden = true; this.ultraGrid1.DisplayLayout.Bands[0].Columns["PRODUCCODE_NK"].Hidden = true; this.ultraGrid1.DisplayLayout.Bands[0].Columns["PRODUCNAME_NK"].Hidden = true; } } /// /// 查询 /// private void DoQuery() { //查询交付标准或者内控标准 string style = "G"; if (CustomInfo == "2") style = "N"; if (CustomInfo == "3") style = "K"; ArrayList QueryConditon = GetQueryConditon(); //查询主表数据 DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreWaterStand.getCoreWaterStand", new Object[] { QueryConditon, style, msc, codeJg, produccodeNk, steelcodeNk, processCode, modelCode }, this.ob); dataTable2.Clear(); GridHelper.CopyDataToDatatable(ref dt, ref this.dataTable1, true); //从表查询 string valid = "1"; if (ultraCheckValid.Checked) valid = "0"; DataTable dt1 = ServerHelper.GetData("com.steering.pss.qcm.CoreWaterStand.getCoreWaterStandC", new Object[] { valid, stdCode, style, msc, codeJg, produccodeNk, steelcodeNk, processCode, modelCode }, this.ob); dt1 = QcmBaseCommon.FilterTable(dt, dt1, "WIC"); GridHelper.CopyDataToDatatable(ref dt1, ref this.dataTable2, true); QcmBaseCommon.SetUltraGridNoEdit(ultraGrid1); this.ultraGrid1.DisplayLayout.Bands[1].Columns["Ratio"].CellActivation = Activation.ActivateOnly; //自适应 UltraGridColumn[] col = new UltraGridColumn[] { this.ultraGrid1.DisplayLayout.Bands[0].Columns["MEMO"], this.ultraGrid1.DisplayLayout.Bands[0].Columns["MIN_D"], this.ultraGrid1.DisplayLayout.Bands[0].Columns["MAX_D"],this.ultraGrid1.DisplayLayout.Bands[0].Columns["MIN_H"],this.ultraGrid1.DisplayLayout.Bands[0].Columns["MAX_H"] ,this.ultraGrid1.DisplayLayout.Bands[0].Columns["MODEL_DESC"]}; GridHelper.RefreshAndAutoSizeExceptRows(ultraGrid1, col); WriteTxtToGrid(); //isSelect = 0; //展开或者定位 UltraGridRow[] rows1 = GridHelper.GetRowsWithKey(ultraGrid1, new string[] { "WIC" }, new string[] { _wic }); if (rows1.Length > 0) { rows1[0].Activate(); if (_isEx) rows1[0].ExpandAll(); } foreach (UltraGridRow ugr in ultraGrid1.Rows) { ugr.Cells["CHKNK"].Value = "选择"; } _isEx = false; _wic = ""; ultraGrid1.UpdateData(); dataTable1.AcceptChanges(); dataTable2.AcceptChanges(); //清空复制数据 //_copyedRows.Clear(); } public void QueryPurchaseAgreement(string stdCodeNk) { dataTable2.Clear(); dataTable1.Clear(); DataTable dtP = ServerHelper.GetData("com.steering.pss.qcm.CoreWaterStand.getPurchaseAgreementWic", new object[] { stdCodeNk }, ob); GridHelper.CopyDataToDatatable(ref dtP, ref this.dataTable1, true); DataTable dtC = ServerHelper.GetData("com.steering.pss.qcm.CoreWaterStand.getPurchaseAgreementWater", new object[] { stdCodeNk }, ob); GridHelper.CopyDataToDatatable(ref dtC, ref this.dataTable2, true); QcmBaseCommon.SetGridColor(ultraGrid1, "VALIDFLAG", "无效"); QcmBaseCommon.SetUltraGridNoEdit(ultraGrid1); } private void WriteTxtToGrid() { foreach (UltraGridRow row in ultraGrid1.Rows) { foreach (UltraGridRow row2 in row.ChildBands[0].Rows) { row2.Cells["RatioMng"].Value = "维护"; } } } 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() { ultraGrid1.UpdateData(); 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 (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; } } ArrayList baseList = new ArrayList(); ArrayList childList = new ArrayList(); for (int i = 0; i < ultraGrid1.Rows.Count; i++) { UltraGridRow ugr = ultraGrid1.Rows[i]; DataRow rowWic = null; //主表行 if (Convert.ToBoolean(ugr.Cells["CHC"].Value)) { if (ugr.GetValue("VALIDFLAG") != "") { rowWic = GetMscWicByWic(ugr.GetValue("WIC")); } if (comBaseStdRow != null && comBaseStdRow["ACCEPT_BID"].ToString() == "0" && rowWic != null) { string[] units = ClsBaseInfo.GetUnitByUserName(rowWic["CREATE_NAME"].ToString(), ob, "002001007", "002001001", "002023005"); if (units[0] != UserInfo.GetDeptid() && UserInfo.GetUserID() != "admin") { MessageUtil.ShowWarning("该记录只有[" + units[1] + "]才能操作!"); ugr.Activate(); return; } } PressWaterObject comM = GetBaseData(ugr, rowWic); if (comM == null) { MessageBox.Show(errMessage, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } baseList.Add(JSONFormat.Format(comM)); _wic = comM.Wic.ToString(); } //从表行 if (ugr.HasChild()) { if (ugr.Cells["VALIDFLAG"].Value.ToString().Equals("") && !Convert.ToBoolean(ugr.Cells["CHC"].Value)) { MessageBox.Show("请选择主记录", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } for (int j = 0; j < ugr.ChildBands[0].Rows.Count; j++) { UltraGridRow ugrChild = ugr.ChildBands[0].Rows[j]; if (Convert.ToBoolean(ugrChild.Cells["CHC"].Value)) { if (ugr.GetValue("VALIDFLAG") != "") { rowWic = GetMscWicByWic(ugr.GetValue("WIC")); } if (comBaseStdRow != null && comBaseStdRow["ACCEPT_BID"].ToString() == "0" && rowWic != null) { string[] units = ClsBaseInfo.GetUnitByUserName(rowWic["CREATE_NAME"].ToString(), ob, "002001007", "002001001", "002023005"); if (units[0] != UserInfo.GetDeptid() && UserInfo.GetUserID() != "admin") { MessageUtil.ShowWarning("该记录只有[" + units[1] + "]才能操作!"); ugrChild.Activate(); return; } } PressWaterCObject comMC = GetChildData(ugrChild, rowWic); if (comMC == null) { if (errMessage == "") return; MessageBox.Show(errMessage, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } childList.Add(JSONFormat.Format(comMC)); _wic = comMC.Wic; _isEx = true; } } } } if (MessageBox.Show("是否保存选择记录?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return; } if (baseList.Count > 0 || childList.Count > 0) { int count = ServerHelper.SetData("com.steering.pss.qcm.CoreWaterStand.saveCoreWaterStand", new object[] { baseList, childList, style }, this.ob); if (count > 0) { MessageBox.Show("保存成功", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); DoQuery(); } } } /// /// 作废或者恢复 /// /// private void DoUpdateOrResume(bool flag) { ultraGrid1.UpdateData(); if (GetGridSelectCount() == 0) { MessageBox.Show("请选择记录!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); 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; } } ultraGrid1.UpdateData(); ArrayList baseList = new ArrayList(); ArrayList childList = new ArrayList(); for (int i = 0; i < ultraGrid1.Rows.Count; i++) { UltraGridRow ugr = ultraGrid1.Rows[i]; if (Convert.ToBoolean(ugr.Cells["CHC"].Value)) { DataRow rowWic = null; if (ugr.GetValue("VALIDFLAG") != "") { rowWic = GetMscWicByWic(ugr.GetValue("WIC")); } if (comBaseStdRow != null && comBaseStdRow["ACCEPT_BID"].ToString() == "0" && rowWic != null) { string[] units = ClsBaseInfo.GetUnitByUserName(rowWic["CREATE_NAME"].ToString(), ob, "002001007", "002001001", "002023005"); if (units[0] != UserInfo.GetDeptid() && UserInfo.GetUserID() != "admin") { MessageUtil.ShowWarning("该记录只有[" + units[1] + "]才能操作!"); ugr.Activate(); return; } } if (CheckAuthority(ugr) == false) { MessageUtil.ShowWarning(errMessage); } PressWaterObject comM = new PressWaterObject(); comM.DeleteName = UserInfo.GetUserName(); comM.Wic = ugr.Cells["WIC"].Value.ToString(); if (ugr.Cells["VALIDFLAG"].Value.Equals("无效") && flag) { MessageBox.Show("无效记录不能作废", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } if (flag && (ugr.Cells["VALIDFLAG"].Value.Equals("提交审核") || ugr.Cells["VALIDFLAG"].Value.Equals("已审核"))) { MessageBox.Show("提交审核或已审核记录不能作废!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } if (ugr.Cells["VALIDFLAG"].Value.Equals("有效") && (!flag)) { MessageBox.Show("有效记录不能恢复", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } if (ugr.HasChild() && flag) { //子记录全部删除 if (MessageBox.Show("对应子记录将全部作废!", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return; } foreach (UltraGridRow ugrc in ugr.ChildBands[0].Rows) { PressWaterCObject comMC = new PressWaterCObject(); comMC.DeleteName = UserInfo.GetUserName(); comMC.Wic = ugrc.Cells["WIC"].Value.ToString(); comMC.Xh = ugrc.Cells["XH"].Value.ToString(); childList.Add(JSONFormat.Format(comMC)); } } baseList.Add(JSONFormat.Format(comM)); _wic = comM.Wic.ToString(); } if (ugr.HasChild()) { 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)) { DataRow rowWic = null; if (ugr.GetValue("VALIDFLAG") != "") { rowWic = GetMscWicByWic(ugr.GetValue("WIC")); } if (comBaseStdRow != null && comBaseStdRow["ACCEPT_BID"].ToString() == "0" && rowWic != null) { string[] units = ClsBaseInfo.GetUnitByUserName(rowWic["CREATE_NAME"].ToString(), ob, "002001007", "002001001", "002023005"); if (units[0] != UserInfo.GetDeptid() && UserInfo.GetUserID() != "admin") { MessageUtil.ShowWarning( "该记录只有[" + units[1] + "]才能操作!"); ugrc.Activate(); return; } } if (CheckAuthority(ugrc) == false) { MessageUtil.ShowWarning(errMessage); } if (!flag && ugrc.ParentRow.Cells["VALIDFLAG"].Value.Equals("无效") && !Convert.ToBoolean(ugrc.ParentRow.Cells["CHC"].Value)) { MessageBox.Show("请选择主记录", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } PressWaterCObject comMC = new PressWaterCObject(); comMC.DeleteName = UserInfo.GetUserName(); comMC.Wic = ugrc.Cells["WIC"].Value.ToString(); comMC.Xh = ugrc.Cells["XH"].Value.ToString(); if (ugrc.Cells["VALIDFLAG"].Value.Equals("无效") && flag) { MessageBox.Show("无效记录不能作废", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } if (ugrc.Cells["VALIDFLAG"].Value.Equals("有效") && !flag) { MessageBox.Show("有效记录不能恢复", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } if (flag) { if (ugrc.ParentRow.Cells["VALIDFLAG"].Value.ToString() != "录入状态" && ugrc.ParentRow.Cells["VALIDFLAG"].Value.ToString() != "无效" && ugr.Cells["VALIDFLAG"].Value.ToString() != "") { MessageUtil.ShowWarning("主记录为提交审核或已审核状态时,无法作废"); return; } } childList.Add(JSONFormat.Format(comMC)); _wic = comMC.Wic; _isEx = true; } } } } if (flag) { if (MessageBox.Show("作废选中记录,您是否继续?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return; } } else { if (MessageBox.Show("恢复选中记录,您是否继续?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return; } } if (baseList.Count > 0 || childList.Count > 0) { int count = ServerHelper.SetData("com.steering.pss.qcm.CoreWaterStand.deleteOrResume", new Object[] { baseList, childList, flag }, this.ob); if (count > 0) { DoQuery(); if (flag) MessageBox.Show("作废成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); else MessageBox.Show("恢复成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); } } } /// /// 新增行 /// /// /// private void ultraGrid1_AfterRowInsert(object sender, Infragistics.Win.UltraWinGrid.RowEventArgs e) { UltraGridRow ugr = ultraGrid1.DisplayLayout.ActiveRow; string style = "G"; if (CustomInfo == "2") style = "N"; if (CustomInfo == "3") style = "K"; if (!ugr.HasParent()) //主表自动填充主键(水压索引号) { string wic = ""; int temp = 0; for (int i = 0; i < ultraGrid1.Rows.Count - 1; i++) { string str = ultraGrid1.Rows[i].Cells["WIC"].Value.ToString().Substring(4, 6); if (Convert.ToInt32(str) > temp) temp = Convert.ToInt32(str); } wic = "WIC" + style + string.Format("{0:000000}", temp + 1); ugr.Cells["WIC"].Value = wic; } //从表自动填充序号 if (ugr.HasParent()) { int index = 0; string wic = ugr.Cells["WIC"].Value.ToString(); foreach (UltraGridRow ug in ultraGrid1.Rows) { if (ug.Cells["WIC"].Value.ToString().Equals(wic)) { for (int i = 0; i < ug.ChildBands[0].Rows.Count - 1; i++) { int indexSeq = Convert.ToInt32(ug.ChildBands[0].Rows[i].Cells["XH"].Value.ToString()); if (indexSeq > index) index = indexSeq; } } } ugr.Cells["XH"].Value = index + 1; ugr.Cells["GET_MAXVALUE"].Value = true; ugr.Cells["GET_MINVALUE"].Value = false; } //增加行如果没有勾选则不可编辑 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) { ultraGrid1.UpdateData(); UltraGridRow ugr = ultraGrid1.DisplayLayout.ActiveRow; if (e.Cell.Column.Key.Equals("SPEC_JG_DESC")) //接箍下拉框操作 { ugr.Cells["SPEC_JG"].Value = ugr.Cells["SPEC_JG_DESC"].Value.ToString(); } if (e.Cell.Column.Key.Equals("PSC_DESC")) //产品规范 { string psc = ugr.Cells["PSC_DESC"].Value.ToString(); string[] str = psc.Split(','); ugr.Cells["PSC"].Value = str[0]; ugr.Cells["PRODUCNAME"].Value = str[1]; ugr.Cells["STDSTYLE"].Value = str[2]; ugr.Cells["STD_NAME"].Value = str[3]; ugr.Cells["STEELNAME"].Value = str[4]; ugr.Cells["STD_STYLE_DESC"].Value = str[5]; } if (e.Cell.Column.Key.Equals("PROCESS_DESC")) //工序 { ugr.Cells["PROCESS_CDOE"].Value = ugr.Cells["PROCESS_DESC"].Value.ToString(); } //标准内控 if (e.Cell.Column.Key.Equals("STD_CODE_NK")) //标准下拉框选择 { ugr.Cells["STD_NAME_NK"].Value = ugr.Cells["STD_CODE_NK"].Text; DataRow[] dr = ((DataTable)uce.DataSource).Select("STD_CODE='" + ugr.Cells["STD_CODE_NK"].Value + "'"); if (dr.Length > 0) ugr.Cells["STDSTYLE"].Value = dr[0][2]; } if (e.Cell.Column.Key.Equals("GET_MAXVALUE")) { if (Convert.ToBoolean(e.Cell.Value)) { e.Cell.Row.Cells["GET_MINVALUE"].Value = false; } } if (e.Cell.Column.Key.Equals("GET_MINVALUE")) { if (Convert.ToBoolean(e.Cell.Value)) { e.Cell.Row.Cells["GET_MAXVALUE"].Value = false; } } if (e.Cell.Column.Key.Equals("MSC")) //冶金规范码 { string msc = ugr.Cells["MSC"].Value.ToString(); string[] str = msc.Split('@'); ugr.Cells["PSC"].Value = str[1]; ugr.Cells["PSC_DESC"].Value = str[2]; ugr.Cells["PRODUCNAME"].Value = str[3]; ugr.Cells["STDSTYLE"].Value = str[7]; ugr.Cells["STD_NAME"].Value = str[4]; ugr.Cells["STEELNAME"].Value = str[5]; ugr.Cells["STD_STYLE_DESC"].Value = str[6]; ugr.Cells["STEELCODE"].Value = str[8]; ugr.Cells["STD_CODE"].Value = str[9]; } if (e.Cell.Column.Key.Equals("FORMULA")) { string formula = ugr.Cells["FORMULA"].Value.ToString(); if (formula != "") { if (formula[formula.Length - 1] == 'f') FindRatio(e); } if (!formula.Contains("f")) ugr.Cells["Ratio"].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 == "PRESSURE_Y" || e.Cell.Column.Key == "PRESSURE") { e.Cell.Row.Cells["FORMULA"].Value = ""; e.Cell.Row.Cells["Ratio"].Value = ""; e.Cell.Row.Cells["ROUND_RULE"].Value = ""; e.Cell.Row.Cells["SRC_VALUE"].Value = ""; } else if (e.Cell.Column.Key == "SRC_VALUE" || e.Cell.Column.Key == "ROUND_RULE") { double value = e.Cell.Row.GetValue("SRC_VALUE") == "" ? 0 : double.Parse(e.Cell.Row.GetValue("SRC_VALUE")); if (value != 0) { string roundRule = e.Cell.Row.GetValue("ROUND_RULE"); CoreClientParam ccp = new CoreClientParam(); ccp.ServerName = "com.steering.pss.qcm.CoreWaterStand"; ccp.MethodName = "waterRound"; ccp.ServerParams = new object[] { value, roundRule }; ccp = ob.ExecuteQuery(ccp, CoreInvokeType.Internal); double[] values = (double[])ccp.ReturnObject; double mpa = values[0]; double psi = values[1]; e.Cell.Row.SetValue("PRESSURE", mpa.ToString()); e.Cell.Row.SetValue("PRESSURE_BAR", (mpa * 10).ToString()); // 1bar=0.1MPa e.Cell.Row.SetValue("PRESSURE_Y", psi.ToString()); e.Cell.Row.Cells["FORMULA"].Value = ""; } } else if (e.Cell.Column.Key == "FORMULA") { e.Cell.Row.SetValue("PRESSURE", ""); e.Cell.Row.SetValue("PRESSURE_Y", ""); e.Cell.Row.SetValue("SRC_VALUE", ""); } //if (e.Cell.Column.Key == "PRESSURE_Y") //{ // if (e.Cell.Value.ToString() != "") // { // //英制压力转公制压力系数为0.00689476 // e.Cell.Row.Cells["PRESSURE"].Value = Math.Round(double.Parse(e.Cell.Value.ToString()) * 0.00689476, 2); // } // else // { // e.Cell.Row.Cells["PRESSURE"].Value = 0; // } //} //else if (e.Cell.Column.Key == "PRESSURE") //{ // if (e.Cell.Value.ToString() != "") // { // if (double.Parse(e.Cell.Value.ToString()) > 6894.76) // { // MessageUtil.ShowWarning("公制压力上限为68900"); // e.Cell.Row.Cells["PRESSURE"].Value = 6894.76; // } // //公制压力转英制压力系数为14.5 // e.Cell.Row.Cells["PRESSURE_Y"].Value = Math.Round(double.Parse(e.Cell.Value.ToString()) / 0.00689476, 2); // } // else // { // e.Cell.Row.Cells["PRESSURE_Y"].Value = 0; // } //} ultraGrid1.UpdateData(); } /// /// 查询条件 /// /// private ArrayList GetQueryConditon() { ArrayList list = new ArrayList(); string stdName = ""; if (ultraCheckStd.Checked) stdName = ultraTextStd.Text.Trim(); list.Add(stdName); string pscDesc = ""; if (CustomInfo == "1") { if (ultraCheckPscDesc.Checked) { pscDesc = ultraTextPscDesc.Text.Trim(); } } list.Add(pscDesc); string valid = "1"; if (ultraCheckValid.Checked) valid = "0"; list.Add(valid); list.AddRange(stdCode); list.Add(WIC); return list; } private DataTable GetMscTabByMsc(string msc) { DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreFrmProPSCMSC2.getComMscByMsc", new object[] { msc }, ob); return dt; } private string GetMscByWic(string wic) { DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreWaterStand.getComWicByWic", new object[] { wic }, ob); if (dt.Rows.Count > 0) { return dt.Rows[0]["MSC"].ToString(); } return ""; } /// /// 通过主键查询水压主表 /// /// /// private DataRow GetMscWicByWic(string wic) { DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreWaterStand.getComWicByWic", new object[] { wic }, 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 = GetMscByWic(row.GetValue("WIC")); } 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; } /// /// 主表数据 /// /// 行 /// private PressWaterObject GetBaseData(UltraGridRow ugr, DataRow rowWic) { PressWaterObject com = new PressWaterObject(); com.Msc = ugr.Cells["MSC"].Text.Trim(); if (CustomInfo == "1" && com.Msc == "") { errMessage = "请选择冶金规范码"; return null; } if (CheckAuthority(ugr) == false) return null; com.Wic = ugr.Cells["WIC"].Value.ToString().Trim(); com.Psc = ugr.Cells["PSC"].Value.ToString().Trim(); //if (CustomInfo=="1"&&com.Psc.Equals("")) //{ // errMessage = "请选择产品规范描述"; // return null; //} string stdstyle = ugr.Cells["STDSTYLE"].Value.ToString().Trim(); if (stdstyle.Equals("订货标准")) com.Stdstyle = "G"; else if (stdstyle.Equals("协议标准")) com.Stdstyle = "X"; else if (stdstyle.Equals("Alpha")) com.Stdstyle = "K"; else if (stdstyle.Equals("内控")) com.Stdstyle = "N"; else if (stdstyle.Equals("试验标准")) com.Stdstyle = "S"; else com.Stdstyle = "P"; com.ProcessCdoe = ugr.Cells["PROCESS_CDOE"].Value.ToString().Trim(); com.ProcessDesc = ugr.Cells["PROCESS_DESC"].Text.ToString().Trim(); 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.MinD = ugr.Cells["MIN_D"].Value.ToString().Trim(); com.MaxD = ugr.Cells["MAX_D"].Value.ToString().Trim(); com.MinH = ugr.Cells["MIN_H"].Value.ToString().Trim(); com.MaxH = ugr.Cells["MAX_H"].Value.ToString().Trim(); com.SpecJg = ugr.Cells["SPEC_JG"].Value.ToString().Trim(); com.SpecJgDesc = ugr.Cells["SPEC_JG_DESC"].Text.ToString().Trim(); if (!com.MinD.Equals("") && !com.MaxD.Equals("") && Convert.ToDouble(com.MinD) > Convert.ToDouble(com.MaxD)) { errMessage = "外径最小值大于最大值,请重新输入"; return null; } if (!com.MinH.Equals("") && !com.MaxH.Equals("") && Convert.ToDouble(com.MinH) > Convert.ToDouble(com.MaxH)) { errMessage = "壁厚最小值大于最大值,请重新输入"; return null; } if (!com.SpecJg.Equals("") && (!com.MinD.Equals("") || !com.MaxD.Equals("") || !com.MinH.Equals("") || !com.MaxH.Equals(""))) { errMessage = "接箍规格描述与外径壁厚不能同时存在"; return null; } com.ModelCode = ugr.Cells["MODEL_CODE"].Value.ToString().Trim(); com.ModelDesc = ugr.Cells["MODEL_DESC"].Text.ToString().Trim(); com.CreateName = UserInfo.GetUserName(); com.CreateTime = ugr.Cells["CREATE_TIME"].Value.ToString().Trim(); com.UpdateName = UserInfo.GetUserName(); com.Validflag = ugr.Cells["VALIDFLAG"].Value.ToString().Trim(); 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.ModelDescNk = ugr.GetValue("MODEL_DESC_NK"); com.ProduccodeNk = ugr.GetValue("PRODUCCODE_NK"); com.ProducnameNk = ugr.GetValue("PRODUCNAME_NK"); com.Memo = ugr.GetValue("MEMO"); if (rowWic != null && (rowWic["VALIDFLAG"].ToString() == "2" || rowWic["VALIDFLAG"].ToString() == "3")) { errMessage = "提交审核或已审核记录不能保存!"; return null; } //if (CustomInfo == "2" && com.ProduccodeNk == "") //{ // errMessage = "请选择品名!"; // return null; //} return com; } /// /// 从表数据 /// /// /// private PressWaterCObject GetChildData(UltraGridRow ugr, DataRow rowWic) { if (CheckAuthority(ugr) == false) return null; if (rowWic != null && (rowWic["VALIDFLAG"].ToString() == "2" || rowWic["VALIDFLAG"].ToString() == "3")) { errMessage = "主记录为提交审核或已审核状态时,无法修改"; return null; } if (CheckFormula() == false) { errMessage = ""; return null; } PressWaterCObject com = new PressWaterCObject(); com.Wic = ugr.Cells["WIC"].Value.ToString().Trim(); com.Xh = ugr.Cells["XH"].Value.ToString().Trim(); com.PressureY = ugr.Cells["pressure_y"].Value.ToString().Trim(); com.Pressure = ugr.Cells["pressure"].Value.ToString().Trim(); com.Formula = ugr.Cells["formula"].Text.Trim(); com.RoundRule = ugr.GetValue("ROUND_RULE"); com.OutputStyle = ugr.GetValue("OUTPUT_STYLE"); com.ZbsOutputStyle = ugr.GetValue("ZBS_OUTPUT_STYLE"); com.PressureBar = ugr.Cells["PRESSURE_BAR"].Value.ToString().Trim(); if (com.RoundRule == "") { errMessage = "请选择圆整规则"; return null; } if (com.PressureY == "" && com.Pressure == "" && com.Formula == "") { errMessage = "请输入试验压力或者试验压力公式"; return null; } if (com.OutputStyle == "") { errMessage = "请选择工艺文件输出方式"; return null; } if (com.ZbsOutputStyle == "") { errMessage = "请选择质保书输出方式"; return null; } string formula = com.Formula.Replace("f", "1").Replace("YS", "1").Replace("TS", "1").Replace("D", "2").Replace("t", "1"); if (!com.Formula.Equals("") && formula.CompileFormula() == null) { errMessage = "公式不合法,请重新输入"; return null; } com.SaveTime = ugr.Cells["save_time"].Value.ToString().Trim(); if (com.SaveTime.Equals("")) { errMessage = "请输入保压时间"; return null; } com.Maxval = ugr.Cells["GET_MAXVALUE"].Value.ToString().Trim(); com.Minval = ugr.Cells["GET_MINVALUE"].Value.ToString().Trim(); if ((com.Pressure != "" || com.PressureY != "") && com.Formula != "") { if (com.Maxval == "" && com.Minval == "") { errMessage = "请选择取大值或取小值"; return null; } } if (Convert.ToBoolean(com.Maxval)) com.Maxval = "1"; else com.Maxval = "0"; if (Convert.ToBoolean(com.Minval)) com.Minval = "1"; else com.Minval = "0"; //if ((com.Pressure != "" || com.PressureY != "") && com.Formula == "") //{ // com.Maxval = "0"; // com.Minval = "0"; //} //if ((com.Pressure == "" && com.PressureY == "") && com.Formula != "") //{ // com.Maxval = "0"; // com.Minval = "0"; //} com.CreateName = UserInfo.GetUserName(); com.CreateTime = ugr.Cells["create_time"].Value.ToString().Trim(); com.UpdateName = UserInfo.GetUserName(); com.Validflag = ugr.Cells["validflag"].Value.ToString().Trim(); com.Memo = ugr.Cells["memo"].Value.ToString(); //if (com.Formula.Contains("f")) //{ // //if (ugr.Cells["Ratio"].Value == null) // //{ // // errMessage = "找不到符合要求的水压系数,请先维护!"; // // return null; // //} // com.Formula = com.Formula.Replace("f", ugr.Cells["Ratio"].Value.ToString()); //} return com; } public void PopupRefresh() { if (CustomInfo == "1") { UltraComboEditor UceMsc = new UltraComboEditor(); this.Controls.Add(UceMsc); UceMsc.Visible = false; DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.ComBaseQuery.getMsc", new Object[] { msc }, ob); QcmBaseCommon.InitDropList(UceMsc, dt, "MSC", false); ClsBaseInfo.SetComboItemHeight(UceMsc); ultraGrid1.DisplayLayout.Bands[0].Columns["MSC"].EditorComponent = UceMsc; ultraGrid1.DisplayLayout.Bands[0].Columns["MSC"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList; } } /// /// 新增下拉框,并绑定下拉框到ultraGrid1的列 /// private void BandToUltraGrid() { UltraComboEditor ultraComPsc = new UltraComboEditor(); UltraComboEditor ultraComProcess = new UltraComboEditor(); UltraComboEditor ultraComJG = new UltraComboEditor(); UltraComboEditor cmbProBigType = new UltraComboEditor(); UltraComboEditor cmbRound = new UltraComboEditor(); UltraComboEditor cmbOutput = new UltraComboEditor(); UltraComboEditor cmbZbsOutput = new UltraComboEditor(); this.Controls.Add(ultraComPsc); this.Controls.Add(ultraComProcess); this.Controls.Add(ultraComJG); this.Controls.Add(cmbProBigType); this.Controls.Add(cmbRound); this.Controls.Add(cmbOutput); this.Controls.Add(cmbZbsOutput); ultraComPsc.Visible = false; ultraComProcess.Visible = false; ultraComJG.Visible = false; cmbProBigType.Visible = false; cmbRound.Visible = false; cmbOutput.Visible = false; cmbZbsOutput.Visible = false; //绑定数据源 产品规范描述 QcmBaseCommon.InitDropUltraComEditor(ultraComPsc, "com.steering.pss.qcm.ComBaseQuery.getPsc", "PSC_DESC", this.ob, false); //工序 //内控标准 this.Controls.Add(uce); uce.Visible = false; UltraGridBand ugb = ultraGrid1.DisplayLayout.Bands[0]; if (this.CustomInfo == "2") { QcmBaseQuery.NitializeInnerStandard(uce, false, this.ob); QcmBaseQuery.BindColumn(uce, "STD_CODE_NK", ugb); } if (this.CustomInfo == "3") { QcmBaseQuery.NitializeAlphaStandard(uce, false, this.ob); QcmBaseQuery.BindColumn(uce, "STD_CODE_NK", ugb); } //结箍 QcmBaseCommon.InitDropUltraComEditor(ultraComJG, "com.steering.pss.qcm.ComBaseQuery.getComMSCJG", "SPEC_JG_DESC", this.ob, true); //如果是交付标准则绑定产品规范描述,否则绑定内控标准名称 if (CustomInfo == "1") { ugb.Columns["PSC_DESC"].EditorComponent = ultraComPsc; ugb.Columns["PSC_DESC"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList; } else { ugb.Columns["STD_CODE_NK"].EditorComponent = uce; ugb.Columns["STD_CODE_NK"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList; } //结箍 ugb.Columns["SPEC_JG_DESC"].EditorComponent = ultraComJG; ugb.Columns["SPEC_JG_DESC"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList; //不可编辑 if (CustomInfo == "1") { UltraComboEditor UceMsc = new UltraComboEditor(); this.Controls.Add(UceMsc); UceMsc.Visible = false; DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.ComBaseQuery.getMsc", new Object[] { msc }, ob); QcmBaseCommon.InitDropList(UceMsc, dt, "MSC", false); ClsBaseInfo.SetComboItemHeight(UceMsc); ultraGrid1.DisplayLayout.Bands[0].Columns["MSC"].EditorComponent = UceMsc; ultraGrid1.DisplayLayout.Bands[0].Columns["MSC"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList; } UltraComboEditor cmbWtr = new UltraComboEditor(); cmbWtr.DropDownListWidth = -1; this.Controls.Add(cmbWtr); cmbWtr.Visible = false; ClsBaseInfo.FillWtrExpress(cmbWtr, ob, true); ultraGrid1.DisplayLayout.Bands[1].Columns["FORMULA"].EditorComponent = cmbWtr; ultraGrid1.DisplayLayout.Bands[1].Columns["FORMULA"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList; QcmBaseQuery.NitializeProductBigType(cmbProBigType, false, ob); QcmBaseQuery.BindColumn(cmbProBigType, "PRODUC_HEAD", ugb); ClsBaseInfo.SetComboItemHeight(cmbProBigType); //圆整规则 UltraComboEditor cmbRoundRule = new UltraComboEditor(); cmbRoundRule.DropDownListWidth = -1; cmbRoundRule.Visible = false; this.Controls.Add(cmbRoundRule); ClsBaseInfo.FillComBaseInfo(cmbRoundRule, "4094", ob, false); ultraGrid1.DisplayLayout.Bands[1].Columns["ROUND_RULE"].EditorComponent = cmbRoundRule; ultraGrid1.DisplayLayout.Bands[1].Columns["ROUND_RULE"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList; //工艺文件压力值输出方式 cmbOutput.DropDownListWidth = -1; ClsBaseInfo.FillComBaseInfo(cmbOutput, "4107", ob, false); ((DataTable)cmbOutput.DataSource).DefaultView.Sort = "BASECODE ASC"; ultraGrid1.DisplayLayout.Bands[1].Columns["OUTPUT_STYLE"].EditorComponent = cmbOutput; ultraGrid1.DisplayLayout.Bands[1].Columns["OUTPUT_STYLE"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList; //质保书压力值输出方式 cmbOutput.DropDownListWidth = -1; ClsBaseInfo.FillComBaseInfo(cmbZbsOutput, "4109", ob, false); ((DataTable)cmbZbsOutput.DataSource).DefaultView.Sort = "BASECODE ASC"; ultraGrid1.DisplayLayout.Bands[1].Columns["ZBS_OUTPUT_STYLE"].EditorComponent = cmbZbsOutput; ultraGrid1.DisplayLayout.Bands[1].Columns["ZBS_OUTPUT_STYLE"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList; } /// /// 无效则行变颜色 /// /// /// 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; } if (isPasting) { e.Row.SetValue("CHC", "True"); } } FrmWaterPressureStand _frmWaterPressureStand = null; private void ultraGrid1_ClickCellButton(object sender, CellEventArgs e) { ultraGrid1.UpdateData(); if (e.Cell.Column.Key.Equals("CHKNK")) { UltraGridRow ugr = ultraGrid1.ActiveRow; _frmWaterPressureStand = new FrmWaterPressureStand(); _frmWaterPressureStand.PopupLoad("3", ob); _frmWaterPressureStand.UltraPanel1.Visible = false; _frmWaterPressureStand.ultraToolbarsManager1.Visible = true; _frmWaterPressureStand.Msc = msc; _frmWaterPressureStand.CodeJg = ""; _frmWaterPressureStand.DoQuery1(); if (_frmWaterPressureStand.ShowDialog() == System.Windows.Forms.DialogResult.OK) { DataRow CurRow, NewRow; for (int i = 0; i < _frmWaterPressureStand.dataTable2.Rows.Count; i++) { CurRow = _frmWaterPressureStand.dataTable2.Rows[i]; NewRow = dataTable2.NewRow(); if (!_frmWaterPressureStand.Ids.Contains(CurRow["WIC"].ToString2())) { continue; } for (int j = 0; j < _frmWaterPressureStand.dataTable2.Columns.Count; j++) { try { if (dataTable2.Columns.Contains(_frmWaterPressureStand.dataTable2.Columns[j].ColumnName)) { if (_frmWaterPressureStand.dataTable2.Columns[j].ColumnName == "WIC") { NewRow[_frmWaterPressureStand.dataTable2.Columns[j].ColumnName] = ultraGrid1.ActiveRow.GetValue("WIC"); } else { NewRow[_frmWaterPressureStand.dataTable2.Columns[j].ColumnName] = CurRow[j]; } } } catch { } } dataTable2.Rows.Add(NewRow); } ultraGrid1.UpdateData(); ultraGrid1.ActiveRow.ExpandAll(); } } if (e.Cell.Row.Cells["CHC"].Value.ToString() != "True") return; 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.FrmOb = this.ob; frms.Desc = row.Cells["MODEL_DESC"].Value.ToString(); frms.ShowDialog(); row.Cells["MODEL_CODE"].Value = frms.Code; row.Cells["MODEL_DESC"].Value = frms.Desc; } if (e.Cell.Column.Key == "RatioMng") { UltraGridRow row = ultraGrid1.ActiveRow.HasParent() ? ultraGrid1.ActiveRow.ParentRow : ultraGrid1.ActiveRow; string stdCode = row.Cells["STD_CODE"].Value.ToString(); string stdName = row.Cells["STD_NAME"].Value.ToString(); string steelCode = row.Cells["STEELCODE"].Value.ToString(); string stdStyleCode = row.Cells["STD_STYLE_DESC"].Value.ToString(); string stdCodeNk = row.Cells["STD_CODE_NK"].Value.ToString(); if (psc != "") { DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreProductManage.getBasePscByPk", new object[] { psc }, ob); stdCode = dt.Rows[0]["STD_CODE"].ToString(); stdName = dt.Rows[0]["STD_NAME"].ToString(); steelCode = dt.Rows[0]["STD_CODE"].ToString(); stdStyleCode = dt.Rows[0]["STD_STYLE_DESC"].ToString(); } FrmWaterRatioPopup ratio = new FrmWaterRatioPopup(stdCode, stdName, steelCode, stdStyleCode, ordLnPk, stdCodeNk, ob); ratio.ShowDialog(); } } private void ultraGrid1_AfterExitEditMode(object sender, EventArgs e) { ultraGrid1.UpdateData(); if (this.CustomInfo == "1") { CheckFormula(); } } private bool? CheckFormula() { UltraGrid ug = ultraGrid1; UltraGridCell ugc = ug.ActiveCell; if (ugc == null) return null; if (ugc.Column.Key.Equals("FORMULA") && ugc.Row.Cells["CHC"].Value.ToString().ToUpper() == "TRUE") { //MessageBox.Show(ugc.Value.ToString()); //if (TestFormula(ugc.Text) == -1 && !ugc.Value.ToString().Equals("")) //{ // MessageBox.Show("输入的试验压力公式不合法", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); // return false; //} if (!ugc.Text.ToString().Contains("f")) return null; UltraGridRow ugr = ugc.Row.ParentRow; string stdname = ugr.Cells["STD_NAME"].Value.ToString(); string steelcode = ugr.Cells["STEELCODE"].Value.ToString(); string min_d = ugr.Cells["MIN_D"].Value.ToString(); string max_d = ugr.Cells["MAX_D"].Value.ToString(); if (min_d == "") min_d = "0"; if (max_d == "") max_d = "99999"; DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreWaterStand.getWaterRatio", new Object[] { min_d, max_d, stdname, steelcode }, this.ob); if (dt != null && dt.Rows.Count > 0) { DataTable newdt = new DataTable(); newdt.Columns.Add("Ratio"); for (int i = 0; i < dt.Rows.Count; i++) { if (dt.Rows[i][0].ToString() != "") { DataRow dr = newdt.NewRow(); dr["Ratio"] = dt.Rows[i][0]; newdt.Rows.Add(dr); } if (dt.Rows[i][1].ToString() != "") { DataRow dr1 = newdt.NewRow(); dr1["Ratio"] = dt.Rows[i][1]; newdt.Rows.Add(dr1); } } UltraComboEditor uce = new UltraComboEditor(); uce.DataSource = newdt; uce.DisplayMember = "Ratio"; uce.ValueMember = "Ratio"; this.Controls.Add(uce); uce.Visible = false; ultraGrid1.DisplayLayout.Bands[1].Columns["Ratio"].EditorComponent = uce; ultraGrid1.DisplayLayout.Bands[1].Columns["Ratio"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList; ultraGrid1.DisplayLayout.Bands[1].Columns["Ratio"].CellActivation = Activation.AllowEdit; ugc.Row.Cells["Ratio"].Value = dt.Rows[0][0]; } else { MessageBox.Show("找不到符合条件的水压系数,请先维护!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); return false; } } else { ultraGrid1.DisplayLayout.Bands[1].Columns["Ratio"].EditorComponent = null; ultraGrid1.DisplayLayout.Bands[1].Columns["Ratio"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.Edit; ultraGrid1.DisplayLayout.Bands[1].Columns["Ratio"].CellActivation = Activation.ActivateOnly; } ultraGrid1.UpdateData(); return true; } private void FindRatio(CellEventArgs e) { UltraGridRow ugr = e.Cell.Row.ParentRow; string stdname = ugr.Cells["STD_NAME"].Value.ToString(); string steelcode = ugr.Cells["STEELCODE"].Value.ToString(); string min_d = ugr.Cells["MIN_D"].Value.ToString(); string max_d = ugr.Cells["MAX_D"].Value.ToString(); if (min_d == "") min_d = "0"; if (max_d == "") max_d = "99999"; DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreWaterStand.getWaterRatio", new Object[] { min_d, max_d, stdname, steelcode }, this.ob); if (dt != null && dt.Rows.Count > 0) { DataTable newdt = new DataTable(); newdt.Columns.Add("Ratio"); for (int i = 0; i < dt.Rows.Count; i++) { if (dt.Rows[i][0].ToString() != "") { DataRow dr = newdt.NewRow(); dr["Ratio"] = dt.Rows[i][0]; newdt.Rows.Add(dr); } if (dt.Rows[i][1].ToString() != "") { DataRow dr1 = newdt.NewRow(); dr1["Ratio"] = dt.Rows[i][1]; newdt.Rows.Add(dr1); } } UltraComboEditor uce = new UltraComboEditor(); uce.DataSource = newdt; uce.DisplayMember = "Ratio"; uce.ValueMember = "Ratio"; this.Controls.Add(uce); uce.Visible = false; ultraGrid1.DisplayLayout.Bands[1].Columns["Ratio"].EditorComponent = uce; // ultraGrid1.DisplayLayout.Bands[1].Columns["Ratio"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList; e.Cell.Row.Cells["Ratio"].Value = dt.Rows[0][0]; } } private int TestFormula(string str) { if (str == "") return -1; string formula = str.Replace("YS", "A"); formula = formula.Replace("(", "("); formula = formula.Replace(")", ")"); //if (!formula.Contains("A")) // return -1; int left = 0; int right = 0; for (int i = 0; i < formula.Length; i++) { if (formula[i] == '(') left += 1; if (formula[i] == ')') right += 1; } if (left != right) { return -1; } string reg = @"^(\(*[ftAD0-9]+(.[ftAD0-9]+)*\)*(\+|-|/|\*))+[ftAD0-9]+(.[ftAD0-9]+)*\)*$"; // f t A D 数字的加减乘除但不能防止其重复出现 if (!Regex.IsMatch(formula, reg)) return -1; char[] ch = { '*', ' ', '(', ')', '/', 'D' }; string[] str_for = formula.Split(ch, StringSplitOptions.RemoveEmptyEntries); List list = new List(); for (int i = 0; i < str_for.Length; i++) { if (!list.Contains(str_for[i])) list.Add(str_for[i]); } if (list.Count < str_for.Length) return -1; return 0; } private void ultraGrid1_ClickCell(object sender, ClickCellEventArgs e) { } /// /// 2015-07-15 PDY /// private void InnerChange() { ultraGrid1.DisplayLayout.Bands[0].Columns["PROCESS_DESC"].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 ultraTextEditor3_EditorButtonClick(object sender, EditorButtonEventArgs e) { if (ultraGrid1.ActiveCell.Column.Key == "PROCESS_DESC") { string processCodes = ultraGrid1.ActiveRow.GetValue("PROCESS_CDOE"); 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_CDOE", choiceProcessPopup.ProcessCodes); ultraGrid1.ActiveRow.SetValue("PROCESS_DESC", choiceProcessPopup.ProcessDescs); } } else if (ultraGrid1.ActiveCell.Column.Key == "STEELNAME_NK") { FrmRepSteel frmSteel = new FrmRepSteel(); 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 frmMode = new FrmModel(); frmMode.FrmOb = this.ob; frmMode.Code = ultraGrid1.ActiveRow.GetValue("MODEL_CODE_NK"); frmMode.Desc = ultraGrid1.ActiveRow.GetValue("MODEL_DESC_NK"); if (frmMode.ShowDialog() == System.Windows.Forms.DialogResult.OK) { ultraGrid1.ActiveRow.SetValue("MODEL_CODE_NK", frmMode.Code); ultraGrid1.ActiveRow.SetValue("MODEL_DESC_NK", frmMode.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); } } } 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 DoQuery1() { //查询主表数据 DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreWaterStand.getComWaterNK", new Object[] { msc }, this.ob); dataTable2.Clear(); GridHelper.CopyDataToDatatable(ref dt, ref this.dataTable1, true); //从表查询 DataTable dt1 = ServerHelper.GetData("com.steering.pss.qcm.CoreWaterStand.getComWaterNKC", new Object[] { msc }, this.ob); dt1 = QcmBaseCommon.FilterTable(dt, dt1, "WIC"); GridHelper.CopyDataToDatatable(ref dt1, ref this.dataTable2, true); QcmBaseCommon.SetUltraGridNoEdit(ultraGrid1); this.ultraGrid1.DisplayLayout.Bands[1].Columns["Ratio"].CellActivation = Activation.ActivateOnly; //自适应 UltraGridColumn[] col = new UltraGridColumn[] { this.ultraGrid1.DisplayLayout.Bands[0].Columns["MEMO"], this.ultraGrid1.DisplayLayout.Bands[0].Columns["MIN_D"], this.ultraGrid1.DisplayLayout.Bands[0].Columns["MAX_D"],this.ultraGrid1.DisplayLayout.Bands[0].Columns["MIN_H"],this.ultraGrid1.DisplayLayout.Bands[0].Columns["MAX_H"] ,this.ultraGrid1.DisplayLayout.Bands[0].Columns["MODEL_DESC"]}; GridHelper.RefreshAndAutoSizeExceptRows(ultraGrid1, col); WriteTxtToGrid(); //isSelect = 0; //展开或者定位 UltraGridRow[] rows1 = GridHelper.GetRowsWithKey(ultraGrid1, new string[] { "WIC" }, new string[] { _wic }); if (rows1.Length > 0) { rows1[0].Activate(); if (_isEx) rows1[0].ExpandAll(); } _isEx = false; _wic = ""; ultraGrid1.UpdateData(); dataTable1.AcceptChanges(); dataTable2.AcceptChanges(); } 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("WIC")).ToList(); Rows = dataTable2.Select("WIC IN ('" + string.Join("','", Ids) + "')"); } } this.DialogResult = System.Windows.Forms.DialogResult.OK; } } }