using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using Core.Mes.Client.Comm.Server;
using Infragistics.Win.UltraWinGrid;
using Infragistics.Win;
using System.Drawing;
using System.Collections;
using Infragistics.Win.UltraWinEditors;
using CoreFS.CA06;
using System.Text.RegularExpressions;
using Infragistics.Win.UltraWinDataSource;
namespace Core.StlMes.Client.ZGMil
{
///
///
///
/// Author TJG 2015-03-27
class PipeManageClass
{
///
/// 单号自增
///
/// 原单号
/// 单号前缀
/// 流水号
/// 返回值
public static string NextNumber(string BaseNumber, string prefix, string digit)
{
string NewNumber = "";//新值
int InNumber = 1;//进位
int PlaceValue;//位值
char[] No = BaseNumber.ToCharArray();
for (int i = BaseNumber.Length - 1; i >= 0; i--)
{
if (No[i] == '9' && InNumber == 1)
{
InNumber = 1;
NewNumber = "0" + NewNumber;
}
else
if (InNumber == 1 && No[i] >= '0' && No[i] < '9')
{
PlaceValue = Int32.Parse(No[i].ToString());
PlaceValue = (InNumber + PlaceValue);
InNumber = 0;
NewNumber = PlaceValue.ToString() + NewNumber;
}
else
{
InNumber = 0;
NewNumber = No[i] + NewNumber;
}
}
if (BaseNumber == NewNumber)
NewNumber = prefix + DateTime.Now.ToString("yyMMdd") + digit;
return NewNumber;
}
///
/// 绑定下拉框
///
///
///
///
///
///
public static void InitComboEditor(UltraComboEditor uce, string methodId, string valueMember, OpeBase ob, bool isEmpty)
{
DataTable dt = ServerHelper.GetData(methodId, null, ob);
if (dt != null && dt.Rows.Count > 0)
{
if (isEmpty)
{
Object[] obj = new Object[] { "", "" };
DataRow dr = dt.NewRow();
dr.ItemArray = obj;
dt.Rows.InsertAt(dr, 0);
}
uce.DataSource = dt;
uce.ValueMember = valueMember;
SetComboItemHeight(uce);
}
}
///
/// 绑定下拉框
///
///
///
///
///
///
public static void InitComboEditor2(UltraComboEditor uce, string methodId, string valueMember, string deptid, OpeBase ob, bool isEmpty)
{
DataTable dt = ServerHelper.GetData(methodId, new object[] { deptid }, ob);
if (dt != null && dt.Rows.Count > 0)
{
if (isEmpty)
{
Object[] obj = new Object[] { "", "" };
DataRow dr = dt.NewRow();
dr.ItemArray = obj;
dt.Rows.InsertAt(dr, 0);
}
uce.DataSource = dt;
uce.ValueMember = valueMember;
SetComboItemHeight(uce);
}
}
///
/// 绑定下拉框
///
///
///
///
///
///
public static void InitComboEditor1(UltraComboEditor uce, string methodId, string valueMember,string valueText, OpeBase ob, bool isEmpty)
{
DataTable dt = ServerHelper.GetData(methodId, null, ob);
if (dt != null && dt.Rows.Count > 0)
{
if (isEmpty)
{
Object[] obj = new Object[] { "", "" };
DataRow dr = dt.NewRow();
dr.ItemArray = obj;
dt.Rows.InsertAt(dr, 0);
}
uce.DataSource = dt;
uce.ValueMember = valueMember;
uce.DisplayMember = valueText;
SetComboItemHeight(uce);
}
}
///
/// 绑定下拉框
///
///
///
///
///
///
public static void InitComboEditor2(UltraComboEditor uce, string methodId,ArrayList arrlist, string valueMember, OpeBase ob, bool isEmpty)
{
DataTable dt = ServerHelper.GetData(methodId, new object[] { arrlist }, ob);
if (dt != null && dt.Rows.Count > 0)
{
if (isEmpty)
{
Object[] obj = new Object[] { "", "" };
DataRow dr = dt.NewRow();
dr.ItemArray = obj;
dt.Rows.InsertAt(dr, 0);
}
uce.DataSource = dt;
uce.ValueMember = valueMember;
SetComboItemHeight(uce);
}
}
///
/// 绑定下拉框
///
///
///
///
///
///
public static void InitComboEditor(UltraComboEditor uce,DataTable dt,string valueMember, bool isEmpty)
{
if (dt != null && dt.Rows.Count > 0)
{
if (isEmpty)
{
Object[] obj = new Object[] { "", "" };
DataRow dr = dt.NewRow();
dr.ItemArray = obj;
dt.Rows.InsertAt(dr, 0);
}
uce.DataSource = dt;
uce.ValueMember = valueMember;
SetComboItemHeight(uce);
}
}
///
/// 将下拉框绑定到GRID列
///
/// 下拉框(已经初始化完成)
/// 列名
/// 空间集合(每次只需填入this.Controls)
/// GRID
/// GRID的第几层结构
public static void BindColumn(UltraComboEditor uce, string ColumnName, System.Windows.Forms.Control.ControlCollection con, UltraGrid ug, int i)
{
con.Add(uce);
uce.Visible = false;
ug.DisplayLayout.Bands[i].Columns[ColumnName].EditorComponent = uce;
ug.DisplayLayout.Bands[i].Columns[ColumnName].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
uce.DropDownListWidth = -1;
SetComboItemHeight(uce);
}
///
/// 查询当天是否有入库单号
///
/// 快速索引码,参数数组
/// 界面OB对象
///
public static DataTable getInList(ArrayList sortCode, OpeBase ob)
{
return ServerHelper.GetData("com.steering.pss.ydm.pipemanage.PipeManageClassInfo.queryInList", new object[] { sortCode }, ob);
}
///
/// 获取产线信息
///
/// 快速索引码,参数数组
/// 界面OB对象
///
public static DataTable getComPlineInfo(string sortCode, OpeBase ob)
{
return ServerHelper.GetData("com.steering.pss.ydm.pipemanage.PipeManageClassInfo.queryPline", new object[] { sortCode }, ob);
}
///
/// 获取扣型信息
///
/// 快速索引码,参数数组
/// 界面OB对象
///
public static DataTable getComModelInfo(string strCode,OpeBase ob)
{
return ServerHelper.GetData("com.steering.pss.ydm.pipemanage.PipeManageClassInfo.queryModel", new object[] { strCode }, ob);
}
///
/// 获取物料信息
///
/// 快速索引码,参数数组
/// 界面OB对象
///
public static DataTable getComMaterialInfo(ArrayList sortCode, OpeBase ob)
{
return ServerHelper.GetData("com.steering.pss.ydm.pipemanage.PipeManageClassInfo.queryMaterial", new object[] { sortCode }, ob);
}
///
/// 获取指定的仓库号信息
///
/// 快速索引码,参数数组
/// 界面OB对象
///
public static DataTable getComBaseInfo(ArrayList sortCode, OpeBase ob)
{
return ServerHelper.GetData("com.steering.pss.ydm.pipemanage.PipeManageClassInfo.queryStorage", new object[] { sortCode }, ob);
}
///
/// 绑定指定的原仓库号
///
/// 快速索引码,参数数组
/// 需填充的控件
/// 界面OB对象
public static void BindComBaseInfo(ArrayList sortCode, UltraComboEditor cmb, OpeBase ob)
{
DataTable table = getComBaseInfo(sortCode, ob);
cmb.DataSource = table;
cmb.DisplayMember = "STORAGE_NAME";
cmb.ValueMember = "STORAGE_NO";
SetComboItemHeight(cmb);
}
///
/// 获取指定的料位号信息
///
/// 快速索引码,参数数组
/// 界面OB对象
///
public static DataTable getLocationInfo(ArrayList sortCode, OpeBase ob)
{
return ServerHelper.GetData("com.steering.pss.ydm.pipemanage.PipeManageClassInfo.queryLocation", new object[] { sortCode }, ob);
}
///
/// 绑定指定的目标仓库号
///
/// 快速索引码,参数数组
/// 需填充的控件
/// 界面OB对象
public static void BindLocationInfo(ArrayList sortCode, UltraComboEditor cmb, OpeBase ob)
{
DataTable table = getLocationInfo(sortCode, ob);
cmb.DataSource = table;
cmb.ValueMember = "LOCATION_NO";
SetComboItemHeight(cmb);
}
///
/// 获取作业类型信息
///
/// 快速索引码,参数数组
/// 界面OB对象
///
public static DataTable getComTypeInfo(string sortCode, OpeBase ob)
{
return ServerHelper.GetData("com.steering.mes.signature.PipeManageClassInfo.queryType", new object[] { sortCode }, ob);
}
///
/// 设置UltraComboEditor中的中文和非中文统一高度。
///
///
public static void SetComboItemHeight(UltraComboEditor cmb)
{
cmb.Update();
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;
}
}
}
///
/// 校验字符串是否只包含字母与数字和/
///
/// 需要校验的字符串
/// true表示符合要求,false表示不符合要求
public static bool IsOnlyLetterAndDigit(string toVerified)
{
Regex rx = new Regex(@"^[a-zA-Z0-9-/]*$");
return rx.IsMatch(toVerified.Trim(), 0);
}
///
/// 过滤
///
/// ultraGrid
/// true 显示,false 隐藏
public static void SetUltraGridRowFilter(ref UltraGrid myGrid1, bool bAllowFilter)
{
try
{
if (bAllowFilter)
{
if (myGrid1.DisplayLayout.Override.FilterUIType != FilterUIType.FilterRow)
myGrid1.DisplayLayout.Override.FilterUIType = FilterUIType.FilterRow;
for (int i = 0; i < myGrid1.DisplayLayout.Bands.Count; i++)
{
if (myGrid1.DisplayLayout.Bands[i].CardView) continue;
for (int j = 0; j < myGrid1.DisplayLayout.Bands[i].Columns.Count; j++)
{
try
{
if (!myGrid1.DisplayLayout.Bands[i].Columns[j].Hidden &&
myGrid1.DisplayLayout.Bands[i].Columns[j].RowLayoutColumnInfo.LabelPosition != LabelPosition.LabelOnly)
myGrid1.DisplayLayout.Bands[i].Columns[j].AllowRowFiltering = Infragistics.Win.DefaultableBoolean.True;
}
catch { }
}
}
}
else
{
if (myGrid1.DisplayLayout.Override.FilterUIType != FilterUIType.HeaderIcons)
myGrid1.DisplayLayout.Override.FilterUIType = FilterUIType.HeaderIcons;
for (int i = 0; i < myGrid1.DisplayLayout.Bands.Count; i++)
{
if (myGrid1.DisplayLayout.Bands[i].CardView) continue;
try
{
myGrid1.DisplayLayout.Bands[i].ColumnFilters.ClearAllFilters();
}
catch { }
for (int j = 0; j < myGrid1.DisplayLayout.Bands[i].Columns.Count; j++)
{
try
{
myGrid1.DisplayLayout.Bands[i].Columns[j].AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False;
}
catch { }
}
}
}
}
catch { }
}
///
/// 求缴库支数最后一支重量
///
/// 支数
/// 重量
public static string SetQualityAverage(string conut, string weight)
{
double Lastcount =0;//最后一支重量
double dbcount= Convert.ToDouble(conut);
double dbweight= Convert.ToDouble(weight);
string avg = (dbweight / dbcount).ToString("f3");//平均值
double all = Convert.ToDouble(avg) * dbcount;
Lastcount = Convert.ToDouble(avg) + dbweight - all;
return Lastcount.ToString();
}
///
/// 根据DataSet设定条件进行过滤
///
///
///
///
public static DataSet RowFilterDataSet(DataSet dsVal, string RowWhere)
{
if (dsVal == null) return null;
DataSet ds = dsVal;
ds.Tables[0].DefaultView.RowFilter = RowWhere;
DataSet dsnew = new DataSet();
dsnew.Tables.Add(ds.Tables[0].DefaultView.ToTable());
return dsnew;
}
///
/// 根据DataTable设定条件进行过滤
///
///
///
///
public static DataTable RowFilterDataTable(DataTable dt, string RowWhere)
{
if (dt == null) return null;
DataTable dtVal = dt;
dtVal.DefaultView.RowFilter = RowWhere;
DataTable dtNew = new DataTable();
dtNew = dtVal.DefaultView.ToTable();
return dtNew;
}
///
/// 通过科室查找对应的部门
///
/// 科室ID
///
/// 部门ID
public static string GetDepartIdBySectionId(string sectionId, OpeBase ob)
{
DataTable dt = ServerHelper.GetData("com.steering.mes.signature.PipeManageClassInfo.getDeptBySection", new object[] { sectionId }, ob);
if (dt.Rows.Count > 0)
{
return dt.Rows[0]["DEPARTID"].ToString();
}
else
{
return "";
}
}
///
/// 通过科室查找对应的部门
///
/// 科室ID
///
/// 部门名称
public static string GetDepartBySectionId(string sectionId, OpeBase ob)
{
DataTable dt = ServerHelper.GetData("com.steering.mes.signature.PipeManageClassInfo.getDeptBySection", new object[] { sectionId }, ob);
if (dt.Rows.Count > 0)
{
return dt.Rows[0]["DEPARTNAME"].ToString();
}
else
{
return "";
}
}
}
}