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;
}
}
}
}
}
}