using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Infragistics.Win.UltraWinEditors;
using Infragistics.Win.UltraWinGrid;
using CoreFS.CA06;
using System.Data;
using Core.Mes.Client.Comm.Server;
namespace Core.StlMes.Client.SaleOrder
{
class OrderSpecialInfoTool
{
///
/// 初始化上限符号
///
/// 下拉框
public static void NitializeSignMax(UltraComboEditor uce)
{
DataTable dt = new DataTable();
dt.Columns.Add("STDMAX_SIGN");
DataRow dr1 = dt.NewRow();
dr1["STDMAX_SIGN"] = "";
DataRow dr2 = dt.NewRow();
dr2["STDMAX_SIGN"] = "<";
DataRow dr3 = dt.NewRow();
dr3["STDMAX_SIGN"] = "<=";
dt.Rows.Add(dr1);
dt.Rows.Add(dr2);
dt.Rows.Add(dr3);
uce.DataSource = dt;
uce.DisplayMember = "STDMAX_SIGN";
}
///
/// 初始化下限符号
///
/// 下拉框
public static void NitializeSignMin(UltraComboEditor uce)
{
DataTable dt = new DataTable();
dt.Columns.Add("STDMIN_SIGN");
DataRow dr1 = dt.NewRow();
dr1["STDMIN_SIGN"] = "";
DataRow dr2 = dt.NewRow();
dr2["STDMIN_SIGN"] = ">";
DataRow dr3 = dt.NewRow();
dr3["STDMIN_SIGN"] = ">=";
DataRow dr4 = dt.NewRow();
dr4["STDMIN_SIGN"] = "=";
dt.Rows.Add(dr1);
dt.Rows.Add(dr2);
dt.Rows.Add(dr3);
dt.Rows.Add(dr4);
uce.DataSource = dt;
uce.DisplayMember = "STDMIN_SIGN";
}
///
/// 列绑定下拉框
///
/// 下拉框
/// 列名
/// 行
public static void BindColumn(UltraComboEditor uce, string column, UltraGridBand ugb)
{
ugb.Columns[column].EditorComponent = uce;
ugb.Columns[column].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
}
///
///化学元素
///
/// 下拉框
/// 空行
///
public static void NitializeChemicalElement(UltraComboEditor uce, Boolean isNull, OpeBase ob)
{
NitializeDropDownBox(uce, "com.steering.pss.qcm.ComBaseQuery.getCombaseChem", "CHEM_NAME", "CHEM_CODE", isNull, ob);
}
///
///加工标准工序点
///
/// 下拉框
/// 空行
///
public static void NitializeStationCode(UltraComboEditor uce, Boolean isNull, OpeBase ob)
{
NitializeDropDownBox(uce, "com.steering.pss.sale.order.CoreOrderSpecialInfo.queryStationCode", "STATION_DESC", "STATION_CODE", isNull, ob);
}
///
///公差项
///
/// 下拉框
/// 空行
///
public static void NitializeTolerance(UltraComboEditor uce, Boolean isNull, OpeBase ob)
{
NitializeDropDownBox(uce, "com.steering.pss.qcm.ComBaseQuery.geComBaseInfo4040", "BASENAME", "BASECODE", isNull, ob);
}
///
///探伤检验项
///
/// 下拉框
/// 空行
///
public static void NitializeDetectionPhy(UltraComboEditor uce, Boolean isNull, OpeBase ob)
{
NitializeDropDownBox(uce, "com.steering.pss.qcm.ComBaseQuery.getComBasePhyD", "PHY_NAME", "PHY_CODE", isNull, ob);
}
///
///探伤级别
///
/// 下拉框
/// 空行
///
public static void NitializeDetectionLV(UltraComboEditor uce, Boolean isNull, OpeBase ob)
{
NitializeDropDownBox(uce, "com.steering.pss.qcm.ComBaseQuery.geComBaseInfo4022", "BASENAME", "BASECODE", isNull, ob);
}
///
///探伤标准
///
/// 下拉框
/// 空行
///
public static void NitializeDetectionStandard(UltraComboEditor uce, Boolean isNull, OpeBase ob)
{
NitializeDropDownBox(uce, "com.steering.pss.qcm.ComBaseQuery.geComBaseInfo4021", "BASENAME", "BASECODE", isNull, ob);
}
///
///探伤位置
///
/// 下拉框
/// 空行
///
public static void NitializeDetectionPosition(UltraComboEditor uce, Boolean isNull, OpeBase ob)
{
NitializeDropDownBox(uce, "com.steering.pss.qcm.ComBaseQuery.geComBaseInfo4020", "BASENAME", "BASECODE", isNull, ob);
}
///
/// 附加要求项目
///
/// 下拉框
/// 空行
///
public static void NitializeAskIime(UltraComboEditor uce, Boolean isNull, OpeBase ob)
{
NitializeDropDownBox(uce, "com.steering.pss.qcm.ComBaseQuery.getAskItem", "ASK_ITEM_DESC", "ASK_ITEM_NO", isNull, ob);
}
///
/// 理化检验项大类
///
/// 下拉框
/// 空行
///
public static void NitializePhyMax(UltraComboEditor uce, Boolean isNull, OpeBase ob)
{
NitializeDropDownBox(uce, "com.steering.pss.qcm.ComBaseQuery.geComBasePhyRStd", "PHY_TYPE", "PHY_CODE", isNull, ob);
}
///
/// 初始化下拉框
///
/// 下拉框
/// 方法名
/// 显示值
/// 隐藏值
/// 是否增加空行
/// OB对象
public static void NitializeDropDownBox(UltraComboEditor uce, string methodID, string showValue, string hiddenValue, Boolean isNull, OpeBase ob)
{
DataTable dt = ServerHelper.GetData(methodID, new Object[] { }, ob);
if (dt != null && dt.Rows.Count > 0 && isNull)
{
DataRow dr = dt.NewRow();
for (int i = 0; i < dt.Columns.Count; i++)
{
dr[i] = "";
}
dt.Rows.InsertAt(dr, 0);
}
uce.DataSource = dt;
uce.DisplayMember = showValue;
uce.ValueMember = hiddenValue;
//ClsBaseInfo.SetComboItemHeight(uce);
}
///
/// 初始下拉框
///
public static void InitDropList(UltraComboEditor uce, DataTable dt, string showValue, Boolean isNull)
{
if (dt != null && dt.Rows.Count > 0)
{
DataTable dtNext = new DataTable();
dtNext.Columns.Add("ID");
dtNext.Columns.Add("NAME");
if (isNull)
{
DataRow dr = dtNext.NewRow();
dr["ID"] = "";
dr["NAME"] = "";
dtNext.Rows.Add(dr);
}
for (int i = 0; i < dt.Rows.Count; i++)
{
DataRow dr = dtNext.NewRow();
string str = "";
for (int j = 0; j < dt.Columns.Count; j++)
{
if (dt.Columns[j].Caption.Equals(showValue))
dr["NAME"] = dt.Rows[i][j].ToString();
else
{
str = str + "@" + dt.Rows[i][j].ToString();
}
}
dr["ID"] = str.Substring(1);
dtNext.Rows.Add(dr);
}
uce.DataSource = dtNext;
uce.DisplayMember = "NAME";
uce.ValueMember = "ID";
}
}
///
/// ultragrid不可编辑
///
///
public static void SetUltraGridNoEdit(UltraGrid ug)
{
for (int i = 0; i < ug.Rows.Count; i++)
{
UltraGridRow ugr = ug.Rows[i];
for (int j = 0; j < ugr.Cells.Count; j++)
{
if (!ugr.Cells[j].Column.Key.Equals("CHC"))
{
ugr.Cells[j].Activation = Activation.ActivateOnly;
}
}
}
}
///
/// 选中行指定列可编辑
///
///
///
public static void setCanEdit(Infragistics.Win.UltraWinGrid.CellEventArgs e)
{
if (e.Cell.Column.Key.Equals("CHC"))
{
Activation activation = Activation.ActivateOnly;
if (Convert.ToBoolean(e.Cell.Value))
{
activation = Activation.AllowEdit;
}
CellsCollection cells = e.Cell.Row.Cells;
for (int i = 0; i < cells.Count; i++)
{
if (!cells[i].Column.Key.Equals("CHC"))
{
e.Cell.Row.Cells[i].Activation = activation;
}
}
}
}
public static void SetInsertRowUnEdit(UltraGrid ug, RowEventArgs e)
{
ug.UpdateData();
//增加行如果没有勾选则不可编辑
if (!Convert.ToBoolean(e.Row.Cells["CHC"].Value))
{
for (int i = 0; i < e.Row.Cells.Count; i++)
{
if (!e.Row.Cells[i].Column.Key.Equals("CHC"))
e.Row.Cells[i].Activation = Activation.ActivateOnly;
}
}
}
///
/// 比较两个相同列的Datable里的数据是否完全相同
///
///
///
///
public static bool CompareTablesCommon(DataTable dtA, DataTable dtB)
{
if (dtA.Rows.Count != dtB.Rows.Count)
{
return false;
}
for (int i = 0; i < dtA.Rows.Count; i++)
{
for (int j = 0; j < dtB.Rows.Count; j++)
{
if (!dtA.Rows[i][j].Equals(dtB.Rows[i][j]))
{
return false;
}
}
}
return true;
}
///
/// 获取UltraGrid所有字段组成的字符串
///
///
///
public static string GetUltraGridData(UltraGrid ug,string[] strArray)
{
string content = "";
if (ug.Rows.Count == 0)
{
return content;
}
for (int i = 0; i < ug.Rows.Count; i++)
{
if (ug.Rows[i].GetValue("CHC") == "False" && ug.Rows[i].GetValue("VALIDFLAG") == "") continue;
if (content != "")
{
content += "\r\n ";
}
for (int k = 0; k < strArray.Length; k++)
{
string columnKey = strArray[k];
for (int j = 0; j < ug.Rows[i].Cells.Count; j++)
{
if (ug.Rows[i].Cells[j].Column.Key.Equals(columnKey))
{
if (ug.Rows[i].Cells[j].Text.Trim() == "") break;
content += ug.Rows[i].Cells[j].Text + "; ";
break;
}
}
}
}
return content;
}
///
/// 验证数据是否完全相同
///
///
///
///
///
///
///
///
private bool CheckIsCommon(string checkValue, DataTable dtA,DataTable dtB, OpeBase ob, DataTable[] standDt, string msc)
{
dtA.PrimaryKey = new DataColumn[] { dtA.Columns["USE_CODE"] };
DataRow dr = dtA.Rows.Find(checkValue);
if (dr != null)
{
return true;
}
dtB.PrimaryKey = new DataColumn[] { dtB.Columns["CUST_ALPHA_NO"] };
dr = dtB.Rows.Find(checkValue);
if (dr != null)
{
DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderSpecialInfo..checkAlphaNoPass", new Object[] { checkValue }, ob);
if (dt != null && dt.Rows.Count > 0)
{
return true;
}
}
DataTable dtChem = standDt[0];
dtChem.Columns.Remove("CUST_ALPHA_NO");
dtChem.Columns.Remove("INDEX_SEQ");
DataTable dtPhy = standDt[1];
dtPhy.Columns.Remove("INDEX_SEQ");
DataTable dtSpec = standDt[2];
DataTable dtDete = standDt[3];
DataTable dtWater = standDt[4];
dtWater.Columns.Remove("CUST_ALPHA_NO");
dtWater.Columns.Remove("INDEX_SEQ");
foreach (DataRow drs in dtA.Rows)
{
string compareValue = drs["USE_CODE"].ToString();
DataTable dt1 = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderSpecialInfo.queryMscCic", new Object[] { msc, compareValue, "a" }, ob);
if (!OrderSpecialInfoTool.CompareTablesCommon(dt1, dtChem))
{
continue;
}
DataTable dt2 = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderSpecialInfo.queryMscPic", new Object[] { msc, compareValue, "a" }, ob);
if (!OrderSpecialInfoTool.CompareTablesCommon(dt2, dtPhy))
{
continue;
}
DataTable dt3 = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderSpecialInfo.queryMscSic", new Object[] { msc, compareValue, "a" }, ob);
if (!OrderSpecialInfoTool.CompareTablesCommon(dt3, dtSpec))
{
continue;
}
DataTable dt4 = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderSpecialInfo.queryMscDic", new Object[] { msc, compareValue, "a" }, ob);
if (!OrderSpecialInfoTool.CompareTablesCommon(dt4, dtDete))
{
continue;
}
DataTable dt5 = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderSpecialInfo.queryMscWic", new Object[] { msc, compareValue, "a" }, ob);
if (!OrderSpecialInfoTool.CompareTablesCommon(dt5, dtWater))
{
continue;
}
else
{
return true;
}
}
foreach (DataRow drs in dtB.Rows)
{
string compareValue = drs["CUST_ALPHA_NO"].ToString();
DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderSpecialInfo..checkAlphaNoPass", new Object[] { compareValue }, ob);
if (dt == null)
{
continue;
}
DataTable dt1 = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderSpecialInfo.queryMscCic", new Object[] { msc, compareValue, "b" }, ob);
if (!OrderSpecialInfoTool.CompareTablesCommon(dt1, dtChem))
{
continue;
}
DataTable dt2 = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderSpecialInfo.queryMscPic", new Object[] { msc, compareValue, "b" }, ob);
if (!OrderSpecialInfoTool.CompareTablesCommon(dt2, dtPhy))
{
continue;
}
DataTable dt3 = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderSpecialInfo.queryMscSic", new Object[] { msc, compareValue, "b" }, ob);
if (!OrderSpecialInfoTool.CompareTablesCommon(dt3, dtSpec))
{
continue;
}
DataTable dt4 = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderSpecialInfo.queryMscDic", new Object[] { msc, compareValue, "b" }, ob);
if (!OrderSpecialInfoTool.CompareTablesCommon(dt4, dtDete))
{
continue;
}
DataTable dt5 = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderSpecialInfo.queryMscWic", new Object[] { msc, compareValue, "b" }, ob);
if (!OrderSpecialInfoTool.CompareTablesCommon(dt5, dtWater))
{
continue;
}
else
{
return true;
}
}
return true;
}
}
}