using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Text; using Core.Mes.Client.Comm.Server; using CoreFS.CA06; using Infragistics.Win; using Infragistics.Win.UltraWinEditors; using Infragistics.Win.UltraWinGrid; using System.Text.RegularExpressions; namespace Core.StlMes.Client.PlnSaleOrd.工序排产 { public class PlanHelper { /// /// 初始化编辑区产线 /// /// 工序 /// UltraGrid /// 窗体 public static void InitEditPline(string processCode, string plineCode, UltraGrid ug, FrmBase from) { DataTable dt1 = ServerHelper.GetData("com.steering.pss.plnsaleord.processOrder.base.BaseHelper.initPline", new object[] { processCode, "", plineCode }, from.ob); UltraComboEditor uce = new UltraComboEditor(); from.Controls.Add(uce); uce.Visible = false; uce.DropDownListWidth = -1; uce.DropDownStyle = DropDownStyle.DropDownList; uce.DataSource = dt1; uce.DisplayMember = "PLINE_NAME"; uce.ValueMember = "PLINE_CODE"; ug.DisplayLayout.Bands[0].Columns["PlineCode"].EditorComponent = uce; ug.DisplayLayout.Bands[0].Columns["PlineCode"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList; } public static Dictionary GetPlineUcb(string sortCode, string processCode, FrmBase frm) { Dictionary ucbDicton = new Dictionary(); DataTable dtGroup = ServerHelper.GetData("com.steering.pss.plnsaleord.processOrder.base.BaseHelper.initGroup", new object[] { sortCode }, frm.ob); if (dtGroup != null && dtGroup.Rows.Count > 0) { foreach (DataRow dr in dtGroup.Rows) { string key = dr["BASECODE"].ToString(); if (!ucbDicton.ContainsKey(key)) { DataTable dt = ServerHelper.GetData("com.steering.pss.plnsaleord.processOrder.base.BaseHelper.initPline", new object[] { processCode, key, "" }, frm.ob); UltraComboEditor uce = new UltraComboEditor(); frm.Controls.Add(uce); uce.Visible = false; uce.DropDownListWidth = -1; uce.DropDownStyle = DropDownStyle.DropDownList; uce.DataSource = dt; uce.DisplayMember = "PLINE_NAME"; uce.ValueMember = "PLINE_CODE"; ucbDicton.Add(key, uce); } } } return ucbDicton; } /// /// 初始化计划分组 /// /// 检索码 /// ultraGrid /// 窗体 /// 字段名称 /// public static void InitEditGroup(string sortCode, UltraGrid ug, FrmBase from, string code) { DataTable dt1 = ServerHelper.GetData("com.steering.pss.plnsaleord.processOrder.base.BaseHelper.initGroup", new object[] { sortCode }, from.ob); UltraComboEditor uce = new UltraComboEditor(); from.Controls.Add(uce); uce.Visible = false; uce.DropDownListWidth = -1; uce.DropDownStyle = DropDownStyle.DropDownList; uce.DataSource = dt1; uce.DisplayMember = "BASENAME"; uce.ValueMember = "BASECODE"; ug.DisplayLayout.Bands[0].Columns[code].EditorComponent = uce; ug.DisplayLayout.Bands[0].Columns[code].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList; } /// /// 初始化下拉框计划分组 /// /// /// /// public static void InitDropGroup(string sortCode, UltraComboEditor uce,OpeBase ob) { DataTable dt1 = ServerHelper.GetData("com.steering.pss.plnsaleord.processOrder.base.BaseHelper.initGroup", new object[] { sortCode }, ob); uce.DataSource = dt1; uce.DisplayMember = "BASENAME"; uce.ValueMember = "BASECODE"; } /// /// 设置UltraComboEditor中的中文和非中文统一高度。 /// /// public static void SetComboItemHeight(UltraComboEditor cmb) { foreach (ValueListItem item in cmb.Items) { if (Regex.IsMatch(item.DisplayText, @"[\u4e00-\u9fa5]+")) { item.Appearance.FontData.SizeInPoints = 9.0F; } else { item.Appearance.FontData.SizeInPoints = 10.5F; } } } /// /// 初始化检修类型(排产用) /// public static void InitRepairType(UltraGrid ug, FrmBase from) { UltraComboEditor uce = new UltraComboEditor(); from.Controls.Add(uce); uce.Visible = false; uce.DropDownListWidth = -1; uce.DropDownStyle = DropDownStyle.DropDownList; DataTable dt = new DataTable(); dt.Columns.Add("RepairType"); DataRow dr1 = dt.NewRow(); dr1["RepairType"] = "检修"; dt.Rows.Add(dr1); DataRow dr2 = dt.NewRow(); dr2["RepairType"] = "停机"; dt.Rows.Add(dr2); uce.DataSource = dt; uce.DisplayMember = "RepairType"; uce.ValueMember = "RepairType"; ug.DisplayLayout.Bands[0].Columns["RepairType"].EditorComponent = uce; ug.DisplayLayout.Bands[0].Columns["RepairType"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList; } /// /// 控制行是否可编辑(排产专用) /// /// public static void ControlCellEdit(UltraGridRow row) { foreach (UltraGridCell cell in row.Cells) { //选择 允许操作 if (cell.Column.Key.Equals("CHC")) { cell.Activation = Activation.AllowEdit; } else { //带颜色与特殊字段 if (cell.Column.CellAppearance.BackColor == System.Drawing.Color.FromArgb(255, 255, 128) || cell.Column.Key.Equals("RepairType") || cell.Column.Key.Equals("PlanUsetime") || cell.Column.Key.Equals("PlanTimeB")) { //如果选中  if (row.Cells["CHC"].Value.ToString() == "True") { if ((row.Cells["ExeStatus"].Value.ToString().Equals("生产中") || row.Cells["ExeStatus"].Value.ToString().Equals("计划")) && cell.Column.Key.Equals("PlanTimeB") && row.Index == 0) { cell.Activation = Activation.AllowEdit; cell.Appearance.BackColor = System.Drawing.Color.FromArgb(255, 255, 128); } else { if (cell.Row.Cells["IsRepairPln"].Text.Equals("是")) { if (cell.Column.Key.Equals("PlanTimeB")) { cell.Activation = Activation.ActivateOnly; } else { if (cell.Column.Key.Equals("RepairType") && cell.Value.ToString().Equals("承揽")) { cell.Activation = Activation.ActivateOnly; } else { cell.Activation = Activation.AllowEdit; } } } else { if (cell.Column.Key.Equals("RepairType") || cell.Column.Key.Equals("PlanUsetime") || cell.Column.Key.Equals("PlanTimeB")) { cell.Activation = Activation.ActivateOnly; } else { cell.Activation = Activation.AllowEdit; } } } } else { //没选中 cell.Activation = Activation.ActivateOnly; } } else { cell.Activation = Activation.ActivateOnly; } } } } public static string[] SetData(string methodId, object[] param, OpeBase ob) { CoreClientParam ccp = new CoreClientParam(); ccp.ServerName = methodId.Substring(0, methodId.LastIndexOf(".")); ccp.MethodName = methodId.Substring(methodId.LastIndexOf(".") + 1); ccp.ServerParams = param; ccp = ob.ExecuteNonQuery(ccp, CoreInvokeType.Internal); if (ccp.ReturnCode == -1) { return null; } else { string[] strArray = new string[2]; strArray[0] = ccp.ReturnObject.ToString(); strArray[1] = ccp.ReturnInfo; return strArray; } } /// /// 初始化产线 /// /// 工序 /// 同一分组的产线 /// 下拉框 /// public static void InitDropPline(string processCode, string plineCode, UltraComboEditor ugc, OpeBase ob) { DataTable dt = ServerHelper.GetData("com.steering.pss.plnsaleord.processOrder.base.BaseHelper.initPline", new object[] { processCode, "", plineCode }, 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, OpeBase ob) { DataTable dt = ServerHelper.GetData("com.steering.pss.plnsaleord.processOrder.base.BaseHelper.initPlinePower", new object[] { processCode, validDataPurviewIds }, 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