using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using CoreFS.CA06; namespace Core.LgMes.Client.LgResMgt { public partial class frmCcmMgt : Core.Mes.Client.Common.frmStyleBase { string strError = null; // string strBC = null; DataSet ccmXX = new DataSet(); string v_GWBM = ""; string strNumId = ""; public frmCcmMgt(string aaa) { InitializeComponent(); v_GWBM = aaa; } /// /// 写日志信息到日志文件 /// /// private void WriteLog(string str) { //string strDate = System.DateTime.Now.Year.ToString() + System.DateTime.Now.Month.ToString() + System.DateTime.Now.Day.ToString(); //System.IO.TextWriter tw = new System.IO.StreamWriter(System.Environment.CurrentDirectory + "\\log\\log_" + strDate + ".log", true); //tw.WriteLine(str); //tw.Close(); } private void FrmMisManage_Load(object sender, EventArgs e) { ultraDataSource1.Rows.Add(new object[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0 }); ultraDataSource2.Rows.Add(new object[] { "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" }); //初始化页面,绑定设备运行项目和耗材消耗项目 BindingData(); //交接班人员 txtName.Text = this.UserInfo.GetUserName(); ulcmeState.SelectedIndex = 1; //自动获取当前班次信息 BandingShift(); GetJJBInfo(); } /// /// 判断是否交接班 /// private bool JudgeESState(DateTime currTime) { string szWhere = ""; string strShift = ulcmeShift1.Value.ToString() + ulcmeShift2.Value.ToString(); szWhere = " where StationCode='" + v_GWBM + "' and ShiftCode='" + strShift + "' and to_char(ESDATE,'yyyy-MM-dd')='" + currTime.ToString("yyyy-MM-dd") + "'"; DataSet ds = null;//hengxing (DataSet)Core.Mes.ClientFrameWork.ClientCommon._RemotingHelp.ExecuteMethod("lgResMgt", "Core.LgMes.Server.LgResMgt.LfsCollect", "GetChangeClassInfo", new object[] { szWhere }, out strError); if (strError == "" && ds.Tables.Count > 0) { DataTable dt = ds.Tables[0]; if (dt.Rows.Count > 0 && dt.Rows[0]["AFFIRMFLAG"].ToString() == "1") { return true; } else { return false; } } else { return false; } } /// /// 判断交接班项目信息是否存在 /// /// 交接班序号 /// 项目编码 /// 数据类型 /// 返回True信息存在,否则不存在 private bool GetDetailInfo(string strNumID, string strItemCode, string strItemDataType) { string strError = ""; DataSet ds = null;//hengxing (DataSet)Core.Mes.ClientFrameWork.ClientCommon._RemotingHelp.ExecuteMethod("lgResMgt", // "Core.LgMes.Server.LgResMgt.LfsCollect", // "GetDetailInfo", // new object[] { strNumId,strItemCode,strItemDataType }, out strError); if (strError == "" && ds != null) { if (ds.Tables[0].Rows.Count == 0) return false; else return true; } else return true; } /// /// 自动获取当前班次信息 班别班次从存储过程中取。。。暂不知道存储过程名,后面再加 /// private void BandingShift() { try { #region 班别班次从存储过程中取。 string strError = ""; string strBC = "";//hengxing (string)Core.Mes.ClientFrameWork.ClientCommon._RemotingHelp.ExecuteMethod("lgResMgt", "Core.LgMes.Server.LgResMgt.LfsCollect", "GetClassInfo", new object[] { }, out strError); if (strBC.Trim().Length == 2) { ulcmeShift1.Value = strBC.Substring(0, 1); ulcmeShift2.Value = strBC.Substring(1, 1); } #endregion }//end try catch (System.Exception exp) { MessageBox.Show(exp.Message); } finally { } } /// /// 绑定设备运行项目和耗材项目 /// private void BindingData() { //获取设备运行状态项目数据 GetEsItemData1("设备运行", v_GWBM); //获取耗材消耗项目数据 GetEsItemData2("耗材消耗", v_GWBM); //绑定设备运行状态项目数据 if (ccmXX.Tables["YXZT"] != null && ccmXX.Tables["YXZT"].Rows.Count > 0) { for (int i = 0; i < ccmXX.Tables["YXZT"].Rows.Count; i++) { this.ulgridEquipment.DisplayLayout.Bands[0].Columns[i].Header.Caption = ccmXX.Tables["YXZT"].Rows[i]["ITEMNAME"].ToString(); this.ulgridEquipment.DisplayLayout.Bands[0].Columns[i].Tag = ccmXX.Tables["YXZT"].Rows[i]["ITEMCODE"].ToString(); this.ulgridEquipment.DisplayLayout.Rows[0].Cells[i].Value = true; } } if (ccmXX.Tables["HCXH"] != null && ccmXX.Tables["HCXH"].Rows.Count > 0) { //绑定耗材消耗项目数据 for (int i = 0; i < ccmXX.Tables["HCXH"].Rows.Count; i++) { this.ulgridConsume.DisplayLayout.Bands[0].Columns[i].Header.Caption = ccmXX.Tables["HCXH"].Rows[i]["ITEMNAME"].ToString(); this.ulgridConsume.DisplayLayout.Bands[0].Columns[i].Tag = ccmXX.Tables["HCXH"].Rows[i]["ITEMCODE"].ToString(); } } } /// /// 获取项目数据 设备运行状态 /// /// 项目类型 /// 岗位编码 /// private void GetEsItemData1(string strXMType, string strGWCode) { try { string szWhere = " Where ITEMTYPE = '" + strXMType + "' and STATIONCODE = '" + strGWCode + "' "; DataSet ds = null;//hengxing (DataSet)Core.Mes.ClientFrameWork.ClientCommon._RemotingHelp.ExecuteMethod("lgResMgt", "Core.LgMes.Server.LgResMgt.LfsCollect", "GetHCXMData", new object[] { szWhere }, out strError); if (strError == "" && ds != null) { DataTable dt = ds.Tables[0]; dt.TableName = "YXZT"; if (ccmXX.Tables.Contains("YXZT")) { ccmXX.Tables["YXZT"].Clear(); } ccmXX.Merge(dt); } }//end try catch (System.Exception exp) { MessageBox.Show(exp.Message); } finally { } } /// /// 获取项目数据 耗材消耗 /// /// 项目类型 /// 岗位编码 /// private void GetEsItemData2(string strXMType, string strGWCode) { try { string szWhere = " Where ITEMTYPE = '" + strXMType + "' and STATIONCODE = '" + strGWCode + "' "; DataSet ds = null;//hengxing (DataSet)Core.Mes.ClientFrameWork.ClientCommon._RemotingHelp.ExecuteMethod("lgResMgt", "Core.LgMes.Server.LgResMgt.LfsCollect", "GetHCXMData", new object[] { szWhere }, out strError); if (strError == "" && ds != null) { DataTable dt = ds.Tables[0]; dt.TableName = "HCXH"; if (ccmXX.Tables.Contains("HCXH")) { ccmXX.Tables["HCXH"].Clear(); } ccmXX.Merge(dt); } }//end try catch (System.Exception exp) { MessageBox.Show(exp.Message); } finally { } } /// /// 获取交接班信息 /// private void GetJJBInfo() { string strError = ""; string strStationCode=""; strStationCode = v_GWBM; //岗位编码 DataSet ds = null;//hengxing (DataSet)Core.Mes.ClientFrameWork.ClientCommon._RemotingHelp.ExecuteMethod("lgResMgt", // "Core.LgMes.Server.LgResMgt.LfsCollect", "GetJJBInfo", new object[] { strStationCode }, out strError); if (strError == "" && ds != null) { foreach (DataRow dr in ds.Tables[0].Rows) { if (dr["itemdatatype"].ToString() == "0") //设备运行数据 { for (int i = 0; i < ulgridEquipment.DisplayLayout.Bands[0].Columns.Count; i++) { if (ulgridEquipment.DisplayLayout.Bands[0].Columns[i].Tag != null && ulgridEquipment.DisplayLayout.Bands[0].Columns[i].Tag.ToString() == dr["itemcode"].ToString()) { ulgridEquipment.DisplayLayout.Rows[0].Cells[i].Value = Convert.ToBoolean(Convert.ToInt16(dr["itemvalue"])); break; } } } else if (dr["itemdatatype"].ToString() == "1") //耗材消耗 { for (int i = 0; i < ulgridConsume.DisplayLayout.Bands[0].Columns.Count; i++) { if (ulgridConsume.DisplayLayout.Bands[0].Columns[i].Tag != null && ulgridConsume.DisplayLayout.Bands[0].Columns[i].Tag.ToString() == dr["itemcode"].ToString()) { ulgridConsume.DisplayLayout.Rows[0].Cells[i].Value = dr["itemvalue"].ToString(); break; } } } strNumId = dr["numid"].ToString(); ulcmeState.SelectedIndex = Convert.ToInt16(dr["affirmflag"]); txtName.Text = dr["esname"].ToString(); txtMemo.Text = dr["esmemo"].ToString(); dtpkDate.Value =Convert.ToDateTime(dr["esdate"]); if (!string.IsNullOrEmpty(dr["shiftcode"].ToString())) { ulcmeShift1.Value = dr["shiftcode"].ToString().Substring(0, 1); ulcmeShift2.Value = dr["shiftcode"].ToString().Substring(1, 1); } } } } private void btnOk_Click(object sender, EventArgs e) { if (ulcmeShift1.Text.Length == 0 || ulcmeShift2.Text.Length == 0) { MessageBox.Show("请选择班别班次!"); return; } string strBC = ulcmeShift1.Value.ToString() + ulcmeShift2.Value.ToString(); DateTime currTime = DateTime.Now;//hengxing (DateTime)ClientCommon._RemotingHelp.ExecuteMethod("lgResMgt", "Core.LgMes.Server.LgResMgt.LfsCollect", "GetSystemTime", new object[] { }, out strError); if (strError == "") { dtpkDate.Value = currTime; } try { DialogResult result; result = MessageBox.Show(this, "您确认要交接班吗?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1); if (result == DialogResult.Yes) { //判断是否交接班 if (!StaticFunction.CheckIsChangeClass(currTime)) { MessageBox.Show("提示:现在暂时不能交班,请等到交班时间再进行交接班!"); return; } // if (ulcmeState.Text == "否") { MessageBox.Show("提示:必须确认交接班状态!"); return; } //交接班序号 string strJJBID = v_GWBM + System.DateTime.Now.ToString("yyyyMMddHHmm"); //判断耗材消耗是否全部录入 for (int i = 0; i < ulgridConsume.DisplayLayout.Rows[0].Cells.Count; i++) { if (ulgridConsume.DisplayLayout.Bands[0].Columns[i].Tag!=null) { if (ulgridConsume.DisplayLayout.Rows[0].Cells[i].Value.ToString() == "") { MessageBox.Show("耗材消耗输入不完全,请重新输入!"); return; } } } bool ESFlag = JudgeESState(currTime); if (ESFlag == true) UpdateMainInfo(strNumId); //更机新交接班主表数据 else AddESMainData(strJJBID); //新增交接班主表数据 //新增交接班详表数据 //耗材消耗 for (int i = 0; i < ulgridConsume.DisplayLayout.Rows[0].Cells.Count; i++) { if (ulgridConsume.DisplayLayout.Bands[0].Columns[i].Tag!=null) { if (string.IsNullOrEmpty(strNumId)) { if (GetDetailInfo(strJJBID, ulgridConsume.DisplayLayout.Bands[0].Columns[i].Tag.ToString(), "1") == false) AddESDetailData(strJJBID, ulgridConsume.DisplayLayout.Bands[0].Columns[i].Tag.ToString(), "1", ulgridConsume.DisplayLayout.Rows[0].Cells[i].Value.ToString()); } else if (GetDetailInfo(strNumId, ulgridConsume.DisplayLayout.Bands[0].Columns[i].Tag.ToString(), "1") == false) AddESDetailData(strNumId, ulgridConsume.DisplayLayout.Bands[0].Columns[i].Tag.ToString(), "1", ulgridConsume.DisplayLayout.Rows[0].Cells[i].Value.ToString()); else UpdateDetailInfo(strNumId, ulgridConsume.DisplayLayout.Bands[0].Columns[i].Tag.ToString(), "1", ulgridConsume.DisplayLayout.Rows[0].Cells[i].Value.ToString()); } } //交接班运行 for (int i = 0; i < ulgridEquipment.DisplayLayout.Rows[0].Cells.Count; i++) { if (ulgridEquipment.DisplayLayout.Bands[0].Columns[i].Tag !=null) { if (string.IsNullOrEmpty(strNumId)) { if (GetDetailInfo(strJJBID, ulgridEquipment.DisplayLayout.Bands[0].Columns[i].Tag.ToString(), "0") == false) AddESDetailData(strJJBID, ulgridEquipment.DisplayLayout.Bands[0].Columns[i].Tag.ToString(), "0", ulgridEquipment.DisplayLayout.Rows[0].Cells[i].Value.ToString());// == "True" ? "1" : "0"); } else { if (GetDetailInfo(strNumId, ulgridEquipment.DisplayLayout.Bands[0].Columns[i].Tag.ToString(), "0") == false) AddESDetailData(strNumId, ulgridEquipment.DisplayLayout.Bands[0].Columns[i].Tag.ToString(), "0", ulgridEquipment.DisplayLayout.Rows[0].Cells[i].Value.ToString());// == "True" ? "1" : "0"); else UpdateDetailInfo(strNumId, ulgridEquipment.DisplayLayout.Bands[0].Columns[i].Tag.ToString(), "0", ulgridEquipment.DisplayLayout.Rows[0].Cells[i].Value.ToString());//() == "True" ? "1" : "0"); } } } GetJJBInfo(); } }//end try catch (System.Exception exp) { MessageBox.Show(exp.Message); } finally { } } /// /// 新增交接班主表数据 /// public void AddESMainData(string strJJBID) { try { //班次编码 string strBC = ulcmeShift1.Value.ToString() + ulcmeShift2.Value.ToString(); //hengxing ClientCommon._RemotingHelp.ExecuteMethod("lgResMgt", "Core.LgMes.Server.LgResMgt.LfsCollect", "Add_DT_JJBMain", new object[] { strJJBID, v_GWBM, strBC, dtpkDate.Value.ToString("yyyy-MM-dd HH:mm:ss"), txtName.Text.Trim(), ulcmeState.Value, txtMemo.Text.Trim(),"0"}, out strError); if (strError != "") { MessageBox.Show(strError); } }//end try catch (System.Exception exp) { WriteLog("Hnst.QG.Client.ESManage.ESManage" + exp.Message); } finally { } } /// /// 修改交接班主表信息 /// /// 交接班序号 /// public void UpdateMainInfo(string strNumID) { try { //班次编码 string strBC = ulcmeShift1.Value.ToString() + ulcmeShift2.Value.ToString(); //hengxing ClientCommon._RemotingHelp.ExecuteMethod("lgResMgt", // "Core.LgMes.Server.LgResMgt.LfsCollect", // "UpdateMainInfo", new object[] { strNumId, v_GWBM, strBC, dtpkDate.Value.ToString("yyyy-MM-dd HH:mm:ss"), txtName.Text.Trim(), ulcmeState.Value, txtMemo.Text.Trim(), "0" }, out strError); if (strError != "") { MessageBox.Show(strError); } } catch (System.Exception exp) { WriteLog("Hnst.QG.Client.ESManage.ESManage" + exp.Message); } finally { } } /// /// 保存交接班配置项目数据表 /// /// /// /// /// public void AddESDetailData(string strJJBID, string strXMCode, string strXMSJType, string strXMValue) { try { //hengxing Core.Mes.ClientFrameWork.ClientCommon._RemotingHelp.ExecuteMethod("lgResMgt", "Core.LgMes.Server.LgResMgt.LfsCollect", "AddQG_DT_JJBXMDetail", new object[] { strJJBID, strXMCode, strXMSJType, strXMValue }, out strError); if (strError != "") { MessageBox.Show(strError); } }//end try catch (System.Exception exp) { MessageBox.Show(exp.Message); } finally { } } /// /// 更新交接班项目信息 /// /// /// /// /// public void UpdateDetailInfo(string strNumID, string strItemCode, string strItemDataType, string strItemValue) { try { //hengxing Core.Mes.ClientFrameWork.ClientCommon._RemotingHelp.ExecuteMethod("lgResMgt", "Core.LgMes.Server.LgResMgt.LfsCollect", "UpdateDetailInfo", new object[] { strNumID,strItemCode,strItemDataType,strItemValue}, out strError); if (strError != "") { MessageBox.Show(strError); } }//end try catch (System.Exception exp) { MessageBox.Show(exp.Message); } finally { } } public void GridKeyDown(int RowId, Infragistics.Win.UltraWinGrid.UltraGrid GRID) { switch (RowId) { case 38: GRID.PerformAction(Infragistics.Win.UltraWinGrid.UltraGridAction.ExitEditMode); GRID.PerformAction(Infragistics.Win.UltraWinGrid.UltraGridAction.AboveCell); GRID.PerformAction(Infragistics.Win.UltraWinGrid.UltraGridAction.EnterEditMode); break; case 37: GRID.PerformAction(Infragistics.Win.UltraWinGrid.UltraGridAction.ExitEditMode); GRID.PerformAction(Infragistics.Win.UltraWinGrid.UltraGridAction.PrevCellByTab); GRID.PerformAction(Infragistics.Win.UltraWinGrid.UltraGridAction.EnterEditMode); break; case 39: GRID.PerformAction(Infragistics.Win.UltraWinGrid.UltraGridAction.ExitEditMode); GRID.PerformAction(Infragistics.Win.UltraWinGrid.UltraGridAction.NextCellByTab); GRID.PerformAction(Infragistics.Win.UltraWinGrid.UltraGridAction.EnterEditMode); break; case 40: GRID.PerformAction(Infragistics.Win.UltraWinGrid.UltraGridAction.ExitEditMode); GRID.PerformAction(Infragistics.Win.UltraWinGrid.UltraGridAction.BelowCell); GRID.PerformAction(Infragistics.Win.UltraWinGrid.UltraGridAction.EnterEditMode); break; case 13://回车 GRID.PerformAction(Infragistics.Win.UltraWinGrid.UltraGridAction.ExitEditMode); GRID.PerformAction(Infragistics.Win.UltraWinGrid.UltraGridAction.NextCellByTab); GRID.PerformAction(Infragistics.Win.UltraWinGrid.UltraGridAction.EnterEditMode); break; } } class StaticFunction { public static bool CheckIsChangeClass(DateTime currTime) { string datetime = currTime.ToString("HH:mm:ss"); string Z1 = "07:45:00", Z2 = "08:15:00", Z3 = "15:45:00", Z4 = "16:15:00", Z5 = "23:45:00", Z6 = "00:15:00", Z7 = "00:00:00", Z8 = "23:59:59"; if ((string.Compare(datetime, Z1) >= 0 && string.Compare(datetime, Z2) < 0) || (string.Compare(datetime, Z3) >= 0 && string.Compare(datetime, Z4) < 0) || ((string.Compare(datetime, Z5) >= 0 && string.Compare(datetime, Z8) < 0) || (string.Compare(datetime, Z7) >= 0 && string.Compare(datetime, Z6)<0))) { return true; } return false; } } private void ulgridEquipment_KeyDown(object sender, KeyEventArgs e) { GridKeyDown(e.KeyValue, ulgridEquipment); } private void ulgridConsume_KeyDown(object sender, KeyEventArgs e) { GridKeyDown(e.KeyValue, ulgridConsume); } public static void CheckNumValidate(string szVal) { try { Convert.ToDecimal(szVal); } catch (Exception ex) { MessageBox.Show(ex.Message, "提示"); } } private void ultraGroupBox2_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyChar == (char)13) { Control c = GetNextControl(this.ActiveControl, true); bool ok = SelectNextControl(this.ActiveControl, true, true, true, true); if (ok && c != null) { if (c is System.Windows.Forms.TextBox) { ((System.Windows.Forms.TextBox)c).SelectAll(); } } } } private void ulgridEquipment_InitializeLayout(object sender, Infragistics.Win.UltraWinGrid.InitializeLayoutEventArgs e) { } private void ulgridConsume_CellChange(object sender, Infragistics.Win.UltraWinGrid.CellEventArgs e) { if (ulgridConsume.ActiveCell.Text != "") CheckNumValidate(ulgridConsume.ActiveCell.Text); } } }