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