using System; using System.Collections; using System.Collections.Generic; using System.Data; using System.Linq; using System.Text; using System.Text.RegularExpressions; using Infragistics.Win; using Infragistics.Win.UltraWinEditors; using Infragistics.Win.UltraWinGrid; using Core.Mes.Client.Comm.Server; using CoreFS.CA06; namespace Core.StlMes.Client.Mcp.Mch { public class comm { /// /// 绑定combobox /// /// 控件名 /// 数据源ds /// 值 /// 显示名 /// 筛选条件 /// 是否新增 /// 新增itemName public static void FilComboboxAdd(UltraComboEditor cmbx, DataTable dt, string strVal, string strName, string filCondition, Boolean tips, String addItemName, String addItemValue) { if (dt.Columns.Count > 1) { DataView dvw = dt.DefaultView; //dvw.RowFilter = filCondition; ArrayList aryTmp = new ArrayList(); if (tips == true) { aryTmp.Add(new ValueListItem(addItemValue, addItemName)); } for (int i = 0; i < dvw.Count; i++) { aryTmp.Add(new ValueListItem(dvw[i][strVal].ToString(), dvw[i][strName].ToString())); } cmbx.DataSource = aryTmp; cmbx.DisplayMember = "DisplayText"; cmbx.ValueMember = "DataValue"; } } /// /// 激活输入当前值行数据 /// /// ultragrid /// 列名 /// 列值 public static string doActiveSelRow(UltraGrid ug, string strColumn, string strKey) { try { if (strKey != "") { foreach (UltraGridRow row in ug.Rows) { if (row.Cells[strColumn].Text.ToString() == strKey) { row.Activated = true; if (row.ChildBands != null) row.Expanded = true; } } } return ""; } catch (Exception ex) { return ex.ToString(); } } /// /// 获取产线 /// /// /// public static string[] GetPlineCode(string[] arr1,OpeBase ob) { string[] arr = null; DataTable dt = ServerHelper.GetData("com.steering.mes.mcp.Vrp.FrmComm.getPlineCode", new Object[] { arr1 }, ob); if (dt != null && dt.Rows.Count > 0) { arr = new string[dt.Rows.Count]; for (int i = 0; i < dt.Rows.Count; i++) { arr[i] = dt.Rows[i][0].ToString(); } return arr; } else { return new string[1] { "" }; } } /// /// 获取产线 ,加销售 /// /// /// /// public static string[] GetPlineCode2(string[] arr1, OpeBase ob) { string[] arr = null; DataTable dt = ServerHelper.GetData("com.steering.mes.mcp.Vrp.FrmComm.getPlineCode", new Object[] { arr1 }, ob); if (dt != null && dt.Rows.Count > 0) { arr = new string[dt.Rows.Count +2]; for (int i = 0; i < dt.Rows.Count; i++) { arr[i] = dt.Rows[i][0].ToString(); } arr[dt.Rows.Count ] = "100101"; arr[dt.Rows.Count + 1] = "100102"; return arr; } else { return new string[1] { "" }; } } /// /// 获取产线 /// /// /// public static string[] GetPlineCode(string[] arr1,string ProcessCode, string custominfo, OpeBase ob) { if (ob==null || string.IsNullOrEmpty(ob.MainUrl)) return new string[]{}; string[] arr = null; DataTable dt = ServerHelper.GetData("com.steering.mes.mcp.Vrp.FrmComm.getPlineCode", new Object[] { arr1, ProcessCode }, ob); arr = new string[dt.Rows.Count]; if (custominfo != null && !custominfo.Equals("")) { string[] custominfos = custominfo.Split(','); for (int i = 0; i < custominfos.Length; i++) { arr[i] = custominfos[i].ToString(); } return arr; } else if(dt != null && dt.Rows.Count > 0) { DataRow[] filteredRows = dt.Select($"PLINE_CODE NOT IN ('C109','C108')"); DataTable filteredDt = filteredRows.CopyToDataTable(); for (int i = 0; i < filteredDt.Rows.Count; i++) { arr[i] = filteredDt.Rows[i][0].ToString(); } return arr; } else { return new string[1] { "" }; } } /// /// 获取产线 /// /// /// public static void GetPlineCode(string ProcessCode, UltraComboEditor ugc, OpeBase ob) { if (ob == null || string.IsNullOrEmpty(ob.MainUrl)) return; string[] arr = null; DataTable dt = ServerHelper.GetData("com.steering.mes.mcp.Vrp.FrmComm.getPlineCode", new Object[] { ProcessCode }, ob); if (dt != null && dt.Rows.Count > 0) { ugc.DataSource = dt; ugc.ValueMember = "PLINE_CODE"; ugc.DisplayMember = "PLINE_NAME"; } } public static string[] InitDropPlinePower(string processCode, UltraComboEditor ugc, string[] validDataPurviewIds,string custominfo ,OpeBase ob) { DataTable dt = ServerHelper.GetData("com.steering.mes.mcp.Vrp.FrmComm.getPlineCode", new object[] { validDataPurviewIds,processCode }, ob); if (dt != null && dt.Rows.Count > 0) { ugc.DataSource = dt; ugc.ValueMember = "PLINE_CODE"; ugc.DisplayMember = "PLINE_NAME"; string[] plineArr = new string[dt.Rows.Count]; if (custominfo != null && !custominfo.Equals("")) { string[] custominfos = custominfo.Split(','); for (int i = 0; i< custominfos.Length; i++) { plineArr[i] = custominfos[i].ToString(); } } else { //string dplineCode = ; DataRow[] filteredRows = dt.Select($"PLINE_CODE NOT IN ('C109','C108')"); DataTable filteredDt = filteredRows.CopyToDataTable(); for (int i = 0; i < filteredDt.Rows.Count; i++) { plineArr[i] = filteredDt.Rows[i]["PLINE_CODE"].ToString(); } } return plineArr; } else { return null; } } public static string[] InitDroCheckStation(string processCode, UltraComboEditor ugc, string[] validDataPurviewIds, OpeBase ob) { DataTable dt = ServerHelper.GetData("com.steering.mes.mcp.Vrp.FrmComm.getCheckStation", new object[] { validDataPurviewIds, processCode }, ob); if (dt != null && dt.Rows.Count > 0) { ugc.DataSource = dt; ugc.ValueMember = "BASECODE"; ugc.DisplayMember = "BASENAME"; string[] plineArr = new string[dt.Rows.Count]; for (int i = 0; i < dt.Rows.Count; i++) { plineArr[i] = dt.Rows[i]["BASECODE"].ToString(); } return plineArr; } else { return null; } } public static string[] InitDropPlineCodePower(string processCode, UltraComboEditor ugc, string[] validDataPurviewIds, OpeBase ob) { DataTable dt = ServerHelper.GetData("com.steering.mes.mcp.Vrp.FrmComm.getPlineCodeName", new object[] { validDataPurviewIds, processCode }, ob); if (dt != null && dt.Rows.Count > 0) { ugc.DataSource = dt; ugc.ValueMember = "PLINE_CODE"; ugc.DisplayMember = "PLINE_NAME"; string[] plineArr = new string[dt.Rows.Count]; for (int i = 0; i < dt.Rows.Count; i++) { plineArr[i] = dt.Rows[i]["PLINE_CODE"].ToString(); } return plineArr; } else { return null; } } /// /// 刷新Grid数据并根据数据调整Grid列宽 /// /// 需要处理的Grid public static void RefreshAndAutoSize(Infragistics.Win.UltraWinGrid.UltraGrid ultraGrid, string[] unSizeColumns = null) { try { ultraGrid.DataBind(); ultraGrid.UpdateData(); ultraGrid.Refresh(); foreach (Infragistics.Win.UltraWinGrid.UltraGridBand band in ultraGrid.DisplayLayout.Bands) { foreach (Infragistics.Win.UltraWinGrid.UltraGridColumn column in band.Columns) { if (unSizeColumns == null || !unSizeColumns.Contains(column.Key)) column.PerformAutoResize(Infragistics.Win.UltraWinGrid.PerformAutoSizeType.AllRowsInBand, true); } } ultraGrid.Refresh(); } catch { } } /// /// UltraGrid可读(非主从结构) /// /// UltraGrid /// 可编辑列 public static void setOtherColumnReadOnly(UltraGrid ugr, string[] keys, int BandInt = 0) { if (keys == null || keys.Length == 0) { foreach (UltraGridColumn ugc in ugr.DisplayLayout.Bands[BandInt].Columns) { ugc.CellActivation = Activation.ActivateOnly; } } else { keys.ToArray(); foreach (UltraGridColumn ugc in ugr.DisplayLayout.Bands[BandInt].Columns) { if (!keys.Contains(ugc.Key)) { ugc.CellActivation = Activation.ActivateOnly; } } } } } }