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