using System; using System.Collections.Generic; using System.Collections; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using CoreFS.CA06; using Infragistics.Win.UltraWinGrid; using Core.StlMes.Client.LgCommon; namespace Core.StlMes.Client.LgIntegrationQuery { public partial class frmStationconMateriel : frmStyleBase { public bool isSave = false; //改变未保存 public string pos_name = ""; //改变前的的岗位名 public ArrayList beforeCposid = new ArrayList(); //改变前岗位 public ArrayList beforeMcode = new ArrayList(); //改变前的物料编码 public ArrayList beforeMtype = new ArrayList(); //改变前的物料类型 public ArrayList beforeMname = new ArrayList(); //改变前的物料类型 public ArrayList afterMcode = new ArrayList(); //改变后的物料物料编码 public frmStationconMateriel() { InitializeComponent(); } private void frmStationconMateriel_Load(object sender, EventArgs e) { QueryData(); SetColumnMode3(ultraGrid1); SetColumnMode3(ultraGrid2); SetColumnMode(ultraGrid2); } private void QueryData() { dataTable1.Clear(); GetDataSource(getMaterType()); ultraGrid1.DisplayLayout.Bands[0].Columns["ERPITEMCODE"].Header.VisiblePosition = 1; GetStationconMateriel(); SetExistMaintenanceColor(); } // 设置下拉列表物料类型 /// /// 设置下拉列表物料类型 /// /// private void SetColumnMode3( Infragistics.Win.UltraWinGrid.UltraGrid ultGrid ) { DataTable dt = new DataTable(); dt.TableName = "WLLX"; DataColumn dc = new DataColumn("BCBM", Type.GetType("System.String")); dt.Columns.Add(dc); dc = new DataColumn("BCNA", Type.GetType("System.String")); dt.Columns.Add(dc); DataRow dr = dt.NewRow(); dr["BCBM"] = "HJ"; dr["BCNA"] = "合金"; dt.Rows.Add(dr); dr = dt.NewRow(); dr["BCBM"] = "FL"; dr["BCNA"] = "辅料"; dt.Rows.Add(dr); dr = dt.NewRow(); dr["BCBM"] = "WS"; dr["BCNA"] = "喂线"; dt.Rows.Add(dr); dr = dt.NewRow(); dr["BCBM"] = "BH"; dr["BCNA"] = "保护渣"; dt.Rows.Add(dr); dr = dt.NewRow(); dr["BCBM"] = "GT"; dr["BCNA"] = "钢铁料"; dt.Rows.Add(dr); ClsControlPack.SetGridDropDownList("MATERIELTYPE", "Table1", "物料类型名称", 90, ultGrid, dt, "BCBM", "BCNA"); } // 设置下拉列表岗位信息 /// /// 设置下拉列表岗位信息 /// /// private void SetColumnMode(Infragistics.Win.UltraWinGrid.UltraGrid ultGrid) { DataTable dt = new DataTable(); dt.TableName = "WLLX"; DataColumn dc = new DataColumn("BCBM", Type.GetType("System.String")); dt.Columns.Add(dc); dc = new DataColumn("BCNA", Type.GetType("System.String")); dt.Columns.Add(dc); DataRow dr = dt.NewRow(); dr["BCBM"] = "HMP"; dr["BCNA"] = "铁水预处理"; dt.Rows.Add(dr); dr = dt.NewRow(); dr["BCBM"] = "BOF"; dr["BCNA"] = "转炉"; dt.Rows.Add(dr); dr = dt.NewRow(); dr["BCBM"] = "CAS"; dr["BCNA"] = "吹氩站"; dt.Rows.Add(dr); dr = dt.NewRow(); dr["BCBM"] = "LFS"; dr["BCNA"] = "精炼炉"; dt.Rows.Add(dr); dr = dt.NewRow(); dr["BCBM"] = "RHS"; dr["BCNA"] = "RH炉"; dt.Rows.Add(dr); dr = dt.NewRow(); dr["BCBM"] = "CCM"; dr["BCNA"] = "连铸机"; dt.Rows.Add(dr); ClsControlPack.SetGridDropDownList("CRAFTPOSID", "Table1", "岗位", 130, ultGrid, dt, "BCBM", "BCNA"); } // 保存物料信息 /// /// 保存物料信息 /// private void SaveData() { try { if (ultraGrid1.Rows.Count == 0) { MessageBox.Show("没有可选的物料!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); return; } ArrayList listCposid = new ArrayList(); //岗位 ArrayList listMcode = new ArrayList(); //物料编码 ArrayList listMtype = new ArrayList(); //物料类型 ArrayList listMname = new ArrayList(); //物料名称 string flag="0"; string strCraftPosID = ""; bool blValue = false; if (ultraGrid1.Rows.Count > 0) { if (rdbHmp.Checked) strCraftPosID = "HMP"; if (rdbBOF.Checked) strCraftPosID = "BOF"; if (rdbCAS.Checked) strCraftPosID = "CAS"; if (rdbLFS.Checked) strCraftPosID = "LFS"; if (rdbRHS.Checked) strCraftPosID = "RHS"; if (rdbVDS.Checked) strCraftPosID = "VDS"; if (rdbCCM.Checked) strCraftPosID = "CCM"; ultraGrid1.UpdateData(); for (int i = 0; i < ultraGrid1.Rows.Count; i++) { if (Convert.ToBoolean(ultraGrid1.Rows[i].Cells["Flag"].Value) == true) { listCposid.Add(strCraftPosID); listMcode.Add(ultraGrid1.Rows[i].Cells["MATERIELCODE"].Value.ToString().Trim()); listMtype.Add(ultraGrid1.Rows[i].Cells["MATERIELTYPE"].Value.ToString().Trim()); listMname.Add(ultraGrid1.Rows[i].Cells["MATERIELNAME"].Value.ToString().Trim()); blValue = true; } } if (blValue == false) { listCposid = beforeCposid; listMcode = beforeMcode; listMtype = beforeMtype; listMname = beforeMname; flag = "1"; //MessageBox.Show("没有为岗位选择物料!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); //return; } //定义一个ArrayList集合存储变量[参数]值 string strErr = ""; ArrayList sArgs = new ArrayList(); sArgs.Add(listCposid); sArgs.Add(listMcode); sArgs.Add(listMtype); sArgs.Add(listMname); sArgs.Add(getMaterType()); sArgs.Add(flag); ClsDataAccessPack.DoProcedure("frmMater_AddToPos.select", sArgs, out strErr, ob); if (strErr == "") { QueryData(); MessageBox.Show("岗位物料配置保存成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); } else { MessageBox.Show("岗位物料配置保存失败!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); } } } catch (System.Exception ex) { Console.WriteLine(ex.ToString()); } } // 获取物料 /// /// 获取物料 /// /// private void GetDataSource(string strMType) { try { string strErr = ""; //定义一个ArrayList集合存储变量[参数]值 ArrayList arry = new ArrayList(); arry.Add("frmStoresProject.select"); arry.Add(strMType); CommonClientToServer cctos = new CommonClientToServer(); cctos.ob = this.ob; DataSet ds = cctos.ExecuteQueryFunctions("Core.LgMes.Server.Common.ComDBQuery", "doSimpleQuery", arry, out strErr); if (strErr == "" && ds != null) { int i; for (i = 0; i < ds.Tables[0].Rows.Count; i++) { DataRow dr = dataTable1.NewRow(); dr["Flag"] = false; dr["MaterielCode"] = ds.Tables[0].Rows[i]["MaterielCode"].ToString(); dr["MaterielName"] = ds.Tables[0].Rows[i]["MaterielName"].ToString(); dr["MaterielforShort"] = ds.Tables[0].Rows[i]["MaterielforShort"].ToString(); dr["MaterielType"] = ds.Tables[0].Rows[i]["MaterielType"].ToString(); dr["MaterielUnits"] = ds.Tables[0].Rows[i]["MaterielUnits"].ToString(); dr["JmType"] = ds.Tables[0].Rows[i]["JmType"].ToString(); //dr["ERPITEMCODE"] = dw.Rows[i]["ERPITEMCODE"]; dataTable1.Rows.Add(dr); } } } catch { } // PublicMethod.RefreshAndAutoSize(ultraGrid1); } // 获取岗位对应物料 /// /// 获取岗位对应物料 /// private void GetStationconMateriel() { try { string strErr = ""; string strCPosid = ""; string strMType = ""; dataSet2.Tables[0].Clear(); //定义一个ArrayList集合存储变量[参数]值 ArrayList arry = new ArrayList(); arry.Add("frmStationconMateriel.select"); arry.Add(getPosType()); arry.Add(getMaterType()); CommonClientToServer cctos = new CommonClientToServer(); cctos.ob = this.ob; DataSet ds = cctos.ExecuteQueryFunctions("Core.LgMes.Server.Common.ComDBQuery", "doSimpleQuery", arry, out strErr); if (strErr == "" && ds != null) { int i; for (i = 0; i < ds.Tables[0].Rows.Count; i++) { DataRow dr = dataSet2.Tables[0].NewRow(); dr["CRAFTPOSID"] = ds.Tables[0].Rows[i]["CRAFTPOSID"].ToString(); dr["MATERIELCODE"] = ds.Tables[0].Rows[i]["MATERIELCODE"].ToString(); dr["MATERIELTYPE"] = ds.Tables[0].Rows[i]["MATERIELTYPE"].ToString(); dr["MATERIELNAME"] = ds.Tables[0].Rows[i]["MATERIELNAME"].ToString(); dataSet2.Tables[0].Rows.Add(dr); } } } catch { } } // 删除岗位对应物料 /// /// 删除岗位对应物料 /// private void DeleteMaintenance() { try { string strCraftposID = ""; string strMaterielCode = ""; string strErr = ""; if (ultraGrid2.ActiveRow != null) { strCraftposID = ultraGrid2.ActiveRow.Cells["CraftposID"].Value.ToString(); strMaterielCode = ultraGrid2.ActiveRow.Cells["MaterielCode"].Value.ToString(); //定义一个ArrayList集合存储变量[参数]值 ArrayList arry = new ArrayList(); arry.Add("frmSMateriel_DelPInfo.select"); arry.Add(strCraftposID); arry.Add(strMaterielCode); CommonClientToServer cctos = new CommonClientToServer(); cctos.ob = this.ob; string info = cctos.NoQueryFunctions("Core.LgMes.Server.Common.ComDBSave", "doSimpleSave", arry, out strErr); if (strErr == "" && info == "") { MessageBox.Show("删除成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); GetStationconMateriel(); } else { MessageBox.Show("删除失败,请重新操作!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); } } else MessageBox.Show("请在右边岗位与物料对应列表选择要删除的记录!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); } catch { } } // 标识已经配置的物料 /// /// 标识已经配置的物料 /// private void SetExistMaintenanceColor() { try { //for (int j = 0; j < ultraGrid1.Rows.Count; j++) //{ // // ultraGrid1.DisplayLayout.Rows[j].CellAppearance.ForeColor = Color.Black; // // ultraGrid1.DisplayLayout.Rows[j].Cells["Flag"].Value = "FALSE"; // // ultraGrid1.DisplayLayout.Rows[j].Cells["Flag"].Column.CellActivation = Infragistics.Win.UltraWinGrid.Activation.AllowEdit; //} beforeCposid.Clear(); beforeMcode.Clear(); beforeMtype.Clear(); beforeMname.Clear(); afterMcode.Clear(); foreach (DataRow dr in dataSet2.Tables[0].Rows) { for (int i = 0; i < ultraGrid1.Rows.Count; i++) { if (dr["MATERIELCODE"].ToString() == ultraGrid1.Rows[i].Cells["MATERIELCODE"].Value.ToString()) { beforeCposid.Add(getPosType()); beforeMcode.Add(ultraGrid1.Rows[i].Cells["MATERIELCODE"].Value.ToString()); beforeMtype.Add(ultraGrid1.Rows[i].Cells["MATERIELTYPE"].Value.ToString()); beforeMname.Add(ultraGrid1.Rows[i].Cells["MATERIELNAME"].Value.ToString()); afterMcode.Add(ultraGrid1.Rows[i].Cells["MATERIELCODE"].Value.ToString()); ultraGrid1.DisplayLayout.Rows[i].Cells["Flag"].Value = "TRUE"; // ultraGrid1.DisplayLayout.Rows[i].Cells["Flag"].Activation = Infragistics.Win.UltraWinGrid.Activation.NoEdit; ultraGrid1.DisplayLayout.Rows[i].CellAppearance.ForeColor = Color.Red; } } } } catch { } } // 获得物料类型 /// /// 获得物料类型 /// private string getMaterType() { string type = ""; if (this.radHJ.Checked == true) { type = radHJ.Tag.ToString(); } else if (this.radFL.Checked == true) { type = radFL.Tag.ToString(); } else if (this.radWS.Checked == true) { type = radWS.Tag.ToString(); } else if (this.radBHZ.Checked == true) { type = radBHZ.Tag.ToString(); } else if (this.radGT.Checked == true) { type = radGT.Tag.ToString(); } else if (this.radAllType.Checked == true) { type = ""; } return type; } // 获得岗位类型 /// /// 获得岗位类型 /// private string getPosType() { string type = ""; if (this.rdbHmp.Checked == true) { type = rdbHmp.Tag.ToString(); } else if (this.rdbBOF.Checked == true) { type = rdbBOF.Tag.ToString(); } else if (this.rdbCAS.Checked == true) { type = rdbCAS.Tag.ToString(); } else if (this.rdbLFS.Checked == true) { type = rdbLFS.Tag.ToString(); } else if (this.rdbRHS.Checked == true) { type = rdbRHS.Tag.ToString(); } else if (this.rdbVDS.Checked == true) { type = rdbVDS.Tag.ToString(); } else if (this.rdbCCM.Checked == true) { type = rdbCCM.Tag.ToString(); } return type; } // 比较两个ArrayList是否值相等 /// /// 比较两个ArrayList是否值相等 /// /// 值型一维数组1 /// 值型一维数组2 /// 比较结果,相等则true,否则false public static bool IsEquals(ArrayList array1, ArrayList array2) { //比较类型是否一样 if (!Object.ReferenceEquals(array1.GetType(), array2.GetType())) { return false; } //比较长度是否一样 if (array1.Count != array2.Count) { return false; } //比较成员是否对应相等 for (int i = 0; i < array1.Count; i++) { string v1 = array1[i].ToString().Trim(); string v2 = array2[i].ToString().Trim(); if (v1 != v2) { return false; } } return true; } private void radMater_CheckedChanged(object sender, EventArgs e) { try { //if (((RadioButton)sender).Checked == false) //{ // pos_name = ((RadioButton)sender).Tag.ToString(); //} if (((RadioButton)sender).Checked) { //if (!IsEquals(beforeMcode, afterMcode)) //{ // isSave = true; // if (MessageBox.Show("岗位物料配置已修改,还未保存!\n保存点击【是】,放弃点击【否】", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) // { // SaveData(); // } // isSave = false; ; //} QueryData(); } } catch { } } public override void ToolBar_Click(object sender, string ToolbarKey) { switch (ToolbarKey) { //case "Add": // SaveData(); // break; //case "Delete": // if ((MessageBox.Show("确认要删除所选记录!", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Asterisk)) == DialogResult.Yes) // { // DeleteMaintenance(); // } // break; case "Query": try { //if (!IsEquals(beforeMcode, afterMcode)) //{ // if (MessageBox.Show("岗位物料配置已修改,还未保存!\n保存点击【是】,放弃点击【否】", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) // { // SaveData(); // } //} QueryData(); } catch { } break; case "Save": SaveData(); break; case "Exit": this.Close(); break; default: break; } } private void rdbHmp_CheckedChanged(object sender, EventArgs e) { try { if (!((RadioButton)sender).Checked) { //if (!IsEquals(beforeMcode, afterMcode)) //{ // if (MessageBox.Show("岗位物料配置已修改,还未保存!\n保存点击【是】,放弃点击【否】", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) // { // SaveData(); // } //} QueryData(); } } catch { } } private void ultraGrid1_AfterCellActivate(object sender, EventArgs e) { //if (ultraGrid1.ActiveRow != null) //{ // if (ultraGrid1.ActiveRow.CellAppearance.ForeColor == Color.Red) // { // MessageBox.Show("所选岗位已经存在该物料,物料不能重复", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); // return; // } // foreach (DataRow dr in dataSet2.Tables[0].Rows) // { // if (dr["MATERIELCODE"].ToString() == ultraGrid1.ActiveRow.Cells["MATERIELCODE"].Value.ToString()) // { // MessageBox.Show("所选岗位已经存在该物料,物料不能重复", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); // return; // } // } //} } private void ultraGrid1_AfterCellUpdate(object sender, CellEventArgs e) { try { if (ultraGrid1.Rows.Count == 0) return; else { ultraGrid1.UpdateData(); if (Convert.ToBoolean(ultraGrid1.ActiveRow.Cells["Flag"].Value) == true) { if (!afterMcode.Contains(ultraGrid1.ActiveRow.Cells["MATERIELCODE"].Value.ToString())) { afterMcode.Add(ultraGrid1.ActiveRow.Cells["MATERIELCODE"].Value.ToString()); } ultraGrid1.ActiveRow.CellAppearance.ForeColor = Color.Red; } else { if (afterMcode.Contains(ultraGrid1.ActiveRow.Cells["MATERIELCODE"].Value.ToString())) { afterMcode.Remove(ultraGrid1.ActiveRow.Cells["MATERIELCODE"].Value.ToString()); } ultraGrid1.ActiveRow.CellAppearance.ForeColor = Color.Black; } } } catch { } } private void frmStationconMateriel_FormClosing(object sender, FormClosingEventArgs e) { try { //if (!IsEquals(beforeMcode, afterMcode)) //{ // if (MessageBox.Show("岗位物料配置已修改,还未保存!\n保存点击【是】,放弃点击【否】", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) // { // SaveData(); // } //} } catch { } } } }