using System; using System.Collections.Generic; using System.Text; using System.Drawing; using System.Windows.Forms; using Infragistics.Win.UltraWinGrid; using System.Data; using CoreFS.CA06; using System.Collections; using Core.Mes.Client.Common; namespace Core.LgMes.Client.LgResMgt { class StaticFunction { CoreFS.CA06.OpeBase ob=null; public static DataSet FrmDataSet = new DataSet(); public static Point GetChildWindowLocation(Size ChildWindowSize) { int width = Cursor.Position.X + ChildWindowSize.Width - Screen.PrimaryScreen.Bounds.Width; int height = Cursor.Position.Y + ChildWindowSize.Height - Screen.PrimaryScreen.Bounds.Height + 30; width = (width > 0) ? (Cursor.Position.X - width) : Cursor.Position.X; // X坐标 height = (height > 0) ? (Cursor.Position.Y - height + 10) : (Cursor.Position.Y + 10); // Y坐标 return new Point(width, height); } public static bool IsDouble(string AValue) { try { Convert.ToDouble(AValue); return true; } catch { return false; } } public static void CheckNumValidate(string szVal) { try { Convert.ToDecimal(szVal); } catch (Exception ex) { MessageBox.Show(ex.Message, "提示"); } } public static bool CheckNumIsValidated(string szVal) { try { if (szVal != "") Convert.ToDecimal(szVal); return true; } catch (Exception ex) { MessageBox.Show(ex.Message, "提示"); return false; } } /// /// 设置Grid 的编辑性 /// /// public static void SetRowEdit(Infragistics.Win.UltraWinGrid.UltraGridBase Grid) { foreach (Infragistics.Win.UltraWinGrid.UltraGridRow row in Grid.Rows) { row.Activation = Infragistics.Win.UltraWinGrid.Activation.NoEdit; } } /// /// 设置Grid的Cell的DropDownList绑定下拉的形式 /// /// 要设置的列 /// 要设置的表名 /// 列头的中文 /// 列宽 /// 要设置的Grid /// 下拉绑定的表 /// 值对应的字段名 /// 显示对应的字段名 public static void SetGridDropDownList(string MasterColumnName, string TableName, string caption, int ColumnWidth, Infragistics.Win.UltraWinGrid.UltraGridBase Grid, System.Data.DataTable DropTable, string ValueMember, string DisplayMember) { try { Grid.DisplayLayout.Bands[TableName].Columns[MasterColumnName].Hidden = false; Grid.DisplayLayout.Bands[TableName].Columns[MasterColumnName].Header.Caption = caption; Grid.DisplayLayout.Bands[TableName].Columns[MasterColumnName].Header.Appearance.TextHAlign = Infragistics.Win.HAlign.Center; Grid.DisplayLayout.Bands[TableName].Columns[MasterColumnName].Width = ColumnWidth; Grid.DisplayLayout.Bands[TableName].Columns[MasterColumnName].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList; Infragistics.Win.UltraWinGrid.UltraDropDown ultraCombo = new Infragistics.Win.UltraWinGrid.UltraDropDown(); Grid.FindForm().Controls.Add(ultraCombo); ultraCombo.DisplayMember = DisplayMember; ultraCombo.ValueMember = ValueMember; ultraCombo.Visible = false; ultraCombo.DataSource = DropTable.DefaultView; ultraCombo.Width = ColumnWidth; foreach (System.Data.DataColumn col in DropTable.Columns) { if (col.ColumnName != DisplayMember) { ultraCombo.DisplayLayout.Bands[0].Columns[col.ColumnName].Hidden = true; } else { ultraCombo.DisplayLayout.Bands[0].Columns[col.ColumnName].Band.ColHeadersVisible = false; ultraCombo.DisplayLayout.Bands[0].Columns[col.ColumnName].Width = ultraCombo.Width; } } Grid.DisplayLayout.Bands[TableName].Columns[MasterColumnName].ValueList = ultraCombo; Grid.DisplayLayout.Bands[TableName].Columns[MasterColumnName].CellAppearance.TextHAlign = Infragistics.Win.HAlign.Left; Grid.DisplayLayout.Bands[TableName].Columns[MasterColumnName].CellAppearance.TextVAlign = Infragistics.Win.VAlign.Middle; } catch (System.Exception ex) { Console.WriteLine(ex.ToString()); } } /// /// 设置Grid的Cell的DropDownList绑定下拉的形式 /// /// 要设置的列 /// 要设置的表名 /// 列头的中文 /// 列宽 /// 要设置的Grid /// 下拉绑定的表 /// 值对应的字段名 /// 显示对应的字段名 public static void SetGridDropDown(string MasterColumnName, string TableName, string caption, int ColumnWidth, Infragistics.Win.UltraWinGrid.UltraGridBase Grid, System.Data.DataTable DropTable, string ValueMember, string DisplayMember) { try { Grid.DisplayLayout.Bands[TableName].Columns[MasterColumnName].Hidden = false; Grid.DisplayLayout.Bands[TableName].Columns[MasterColumnName].Header.Caption = caption; Grid.DisplayLayout.Bands[TableName].Columns[MasterColumnName].Header.Appearance.TextHAlign = Infragistics.Win.HAlign.Center; Grid.DisplayLayout.Bands[TableName].Columns[MasterColumnName].Width = ColumnWidth; Grid.DisplayLayout.Bands[TableName].Columns[MasterColumnName].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDown; Infragistics.Win.UltraWinGrid.UltraDropDown ultraCombo = new Infragistics.Win.UltraWinGrid.UltraDropDown(); Grid.FindForm().Controls.Add(ultraCombo); ultraCombo.DisplayMember = DisplayMember; ultraCombo.ValueMember = ValueMember; ultraCombo.Visible = false; ultraCombo.DataSource = DropTable.DefaultView; ultraCombo.Width = ColumnWidth; foreach (System.Data.DataColumn col in DropTable.Columns) { if (col.ColumnName != DisplayMember) { ultraCombo.DisplayLayout.Bands[0].Columns[col.ColumnName].Hidden = true; } else { ultraCombo.DisplayLayout.Bands[0].Columns[col.ColumnName].Band.ColHeadersVisible = false; ultraCombo.DisplayLayout.Bands[0].Columns[col.ColumnName].Width = ultraCombo.Width; } } Grid.DisplayLayout.Bands[TableName].Columns[MasterColumnName].ValueList = ultraCombo; Grid.DisplayLayout.Bands[TableName].Columns[MasterColumnName].CellAppearance.TextHAlign = Infragistics.Win.HAlign.Left; Grid.DisplayLayout.Bands[TableName].Columns[MasterColumnName].CellAppearance.TextVAlign = Infragistics.Win.VAlign.Middle; } catch (System.Exception ex) { Console.WriteLine(ex.ToString()); } } /// /// 新增数据 /// /// public static void Add(Infragistics.Win.UltraWinGrid.UltraGridBase Grid) { try { Grid.UpdateData(); UltraGridRow ur = Grid.DisplayLayout.Bands[0].AddNew(); ur.Activation = Infragistics.Win.UltraWinGrid.Activation.AllowEdit; } catch { } } /// /// 查询数据 /// public static void Query(string szTableName) { string szOut = ""; object obj = null; //hengxing RemotingHelp.ExecuteMethod(par, out szOut); if (szOut == "" && obj != null) { DataTable dt = ((DataSet)obj).Tables[0]; dt.TableName = szTableName; if (FrmDataSet.Tables.Contains(szTableName)) FrmDataSet.Tables[szTableName].Clear(); FrmDataSet.Merge(dt); } } /// /// 修改数据 /// /// public static void Update(Infragistics.Win.UltraWinGrid.UltraGridBase Grid) { if (Grid.ActiveRow == null) { MessageBox.Show("请确认你要修改的记录行", "提示", System.Windows.Forms.MessageBoxButtons.OK); return; } SetRowEdit(Grid); Grid.ActiveRow.Activation = Activation.AllowEdit; } /// /// 删除数据 /// /// public static void Delete(Infragistics.Win.UltraWinGrid.UltraGrid Grid) { if (Grid.Selected.Rows.Count > 0) { System.Windows.Forms.DialogResult t = MessageBox.Show("你确认要删除选择行?", "提示", System.Windows.Forms.MessageBoxButtons.YesNo); if (t == System.Windows.Forms.DialogResult.Yes) { Grid.DeleteSelectedRows(false); } Grid.UpdateData(); return; } else if (Grid.DisplayLayout.ActiveRow != null) { System.Windows.Forms.DialogResult t = MessageBox.Show("你确认要删除选择行?", "提示", System.Windows.Forms.MessageBoxButtons.YesNo); if (t == System.Windows.Forms.DialogResult.Yes) { Grid.DisplayLayout.ActiveRow.Delete(false); } Grid.UpdateData(); return; } else { MessageBox.Show("请确认你要删除的行", "提示", System.Windows.Forms.MessageBoxButtons.OK); } } /// /// 取消当前操作 /// /// public static void Cancel(Infragistics.Win.UltraWinGrid.UltraGrid Grid, string szTableName) { if (Grid.DisplayLayout.ActiveRow != null && Grid.DisplayLayout.ActiveRow.IsAddRow) { System.Windows.Forms.DialogResult t = MessageBox.Show("已有数据改变,确认取消?", "提示", System.Windows.Forms.MessageBoxButtons.YesNo); if (t == System.Windows.Forms.DialogResult.Yes) { Grid.DisplayLayout.ActiveRow.Delete(false); FrmDataSet.Tables[szTableName].RejectChanges(); SetRowEdit(Grid); return; } else { return; } } Grid.UpdateData(); if (FrmDataSet.GetChanges() != null) { System.Windows.Forms.DialogResult t = MessageBox.Show("已有数据改变,确认取消?", "提示", System.Windows.Forms.MessageBoxButtons.YesNo); if (t == System.Windows.Forms.DialogResult.Yes) { FrmDataSet.RejectChanges(); SetRowEdit(Grid); if (Grid.ActiveCell != null) { Grid.ActiveCell.Activated = false; } } } } /// /// 检查是否正常交班 /// /// public static bool CheckIsChangeClass(string szGW, string szBC, DateTime currTime) { try { string szOut = "", szWhere = "", szClass = "", strError = ""; szClass = GetPrevClass(szBC); #region "取交接班标志" szWhere = " where StationCode='" + szGW + "' and ShiftCode='" + szClass + "' and to_char(ESDATE,'yyyy-MM-dd')='" + currTime.ToString("yyyy-MM-dd") + "' and ABNORMITYFLAG = '0'"; DataSet ds = null;//hengxing (DataSet)Core.Mes.ClientFrameWork.ClientCommon._RemotingHelp.ExecuteMethod("lgResMgt", "Core.LgMes.Server.LgResMgt.LfsCollect", "GetChangeClassInfo", new object[] { szWhere }, out strError); //szWhere = " where GWCode='" + szGW + "' and BCCode='" + szClass + "' and to_char(JJBDateTime,'yyyy-MM-dd')='" + DateTime.Now.ToString("yyyy-MM-dd") + "' and YCJJBFLAG='0'"; //CallingMessage par = new CallingMessage(); //par.ServerName = "lgResMgt"; //par.AssemblyName = "Core.LgMes.Server.LgResMgt"; //par.ClassName = "Core.LgMes.Server.LgResMgt.HopperConfigure"; //par.MethodName = "GetChangeClassInfo"; //par.args = new object[] { szWhere }; //object obj = RemotingHelp.ExecuteMethod(par, out szOut); if (szOut == "" && 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; } } #endregion } catch { } return false; } /// /// 获取当前班次的上一个班次 /// /// private static string GetPrevClass(string szBC) { int n = 0, k = 0; string szClass = ""; try { n = Convert.ToInt32(szBC.Substring(0, 1)); k = Convert.ToInt32(szBC.Substring(1, 1)); switch (n) { case 1: n = 3; break; case 2: n = 1; break; case 3: n = 2; break; default: break; } switch (k) { case 1: k = 4; break; case 2: k = 1; break; case 3: k = 2; break; case 4: k = 3; break; default: break; } szClass = n.ToString() + k.ToString(); } catch { } return szClass; } /// /// 检查是否异常交班 /// /// public static bool CheckIsExceptionClass(string szGW, string szBC, DateTime currTime) { try { string szOut = "", szWhere = "", strError = ""; #region "取交接班标志" szWhere = " where StationCode='" + szGW + "' and ShiftCode='" + szBC + "' and to_char(ESDATE,'yyyy-MM-dd')='" + currTime.ToString("yyyy-MM-dd") + "' and ABNORMITYFLAG = '1'"; DataSet ds = null;//hengxing (DataSet)Core.Mes.ClientFrameWork.ClientCommon._RemotingHelp.ExecuteMethod("lgResMgt", "Core.LgMes.Server.LgResMgt.LfsCollect", "GetChangeClassInfo", new object[] { szWhere }, out strError); //szWhere = " where GWCode='" + szGW + "' and BCCode='" + szBC + "' and to_char(JJBDateTime,'yyyy-MM-dd')='" + DateTime.Now.ToString("yyyy-MM-dd") + "' and YCJJBFLAG='1'"; //CallingMessage par = new CallingMessage(); //par.ServerName = "lgResMgt"; //par.AssemblyName = "Core.LgMes.Server.LgResMgt"; //par.ClassName = "Core.LgMes.Server.LgResMgt.HopperConfigure"; //par.MethodName = "GetChangeClassInfo"; //par.args = new object[] { szWhere }; //object obj = RemotingHelp.ExecuteMethod(par, out szOut); if (szOut == "" && ds.Tables.Count > 0) { if (ds.Tables[0].Rows.Count > 0) { return true; } else { return false; } } #endregion } catch { } return false; } /// /// 取当前班次 /// public static string GetClassCode() { #region "取班次编码" string szOut = "", m_szCurrClass = ""; m_szCurrClass = null;//hengxing ((string)ClientCommon._RemotingHelp.ExecuteMethod("lgResMgt", "Core.LgMes.Server.LgResMgt.Iron", "BanCiBanBie", null, out szOut)).Trim().ToString(); if (m_szCurrClass.Length > 1) m_szCurrClass = m_szCurrClass.Substring(0, 1); return (m_szCurrClass); #endregion } /// /// 获取项目数据 /// /// 项目类型 private static DataTable GetJJBXMData( string strXMType, string strGWCode) { try { //string szWhere = " Where XMType = '" + strXMType + "' and GWCode = '" + strGWCode + "' ", strError = ""; //CallingMessage par = new CallingMessage(); //par.ServerName = "lgResMgt"; //par.AssemblyName = "Core.LgMes.Server.LgResMgt"; //par.ClassName = "Core.LgMes.Server.LgResMgt.HopperConfigure"; //par.MethodName = "GetHCXMData"; //par.args = new object[] { szWhere }; //object obj = RemotingHelp.ExecuteMethod(par, out strError); string strError = ""; 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.Tables.Count > 0) { DataTable dt = ds.Tables[0]; return dt; } else { return null; } }//end try catch { //WriteLog("Core.LgMes.Server.LgResMgt.HopperConfigure" + exp.Message); return null; } } private static void AddQG_DT_JJBXMDetail(string strJJBID, string strXMCode, string strXMSJType, string strXMValue) { try { string strError = ""; //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 { //WriteLog("Core.LgMes.Server.LgResMgt.HopperConfigure" + exp.Message); } } /// /// 确认交班数据 /// public static void SetChangeClassInfo( string szBC, string szGW, string szJBR, DateTime currTime) { return; try { //if (CheckIsExceptionClass(RemotingHelp, szGW, szBC)) // return; string strJJBID = szGW + currTime.ToString("yyyyMMddHHmm"), strError = ""; //hengxing ClientCommon._RemotingHelp.ExecuteMethod("lgResMgt", "Core.LgMes.Server.LgResMgt.LfsCollect", "Add_DT_JJBMain", new object[] { strJJBID, szGW, szBC, currTime.ToString("yyyy-MM-dd HH:mm:ss"), szJBR, "1", "", "1" }, out strError); if (strError != "") { MessageBox.Show(strError); } //获取设备运行状态项目数据 DataTable SBYXDt = GetJJBXMData("设备运行", szGW); //获取耗材消耗项目数据 DataTable HCXHDt = GetJJBXMData("耗材消耗", szGW); //新增交接班详表数据 //耗材消耗 for (int i = 0; i < HCXHDt.Rows.Count; i++) { AddQG_DT_JJBXMDetail( strJJBID, HCXHDt.Rows[i]["ITEMCODE"].ToString(), "1", "0"); } //交接班设备运行 for (int i = 0; i < SBYXDt.Rows.Count; i++) { AddQG_DT_JJBXMDetail( strJJBID, SBYXDt.Rows[i]["ITEMCODE"].ToString(), "0", "1"); } }//end try catch (System.Exception exp) { string str = exp.Message; } finally { } } public static int caculateTime(DateTime startTime, DateTime endTime) { int lStayDuration = 0; TimeSpan odtSpan; if (endTime > startTime) { odtSpan = endTime - startTime; lStayDuration = Convert.ToInt32(System.Math.Round(odtSpan.TotalMinutes)); } else if (startTime != endTime) { if (startTime > DateTime.Now) lStayDuration = 0; else { odtSpan = DateTime.Now - startTime; lStayDuration = Convert.ToInt32(System.Math.Round(odtSpan.TotalMinutes)); } } return lStayDuration; } /// /// 检查是否为当天的记录 /// /// /// /// /// public static bool CheckIsTodayNote( string szTableName, string szWhere) { try { string szOut = "";//, szWhere = ""; #region "在数据库里面查找炉号是否为当天生成的炉号记录" //szWhere = " where to_char(czsj, 'yyyy-MM-dd') = to_char(sysdate, 'yyyy-MM-dd') and HEATNO='"+szHEATNO+"'"; //hengxing //CallingMessage par = new CallingMessage(); //par.ServerName = "lgResMgt"; //par.AssemblyName = "Core.LgMes.Server.LgResMgt"; //par.ClassName = "Core.LgMes.Server.LgResMgt.SendCommand"; //par.MethodName = "QueryStove"; //par.args = new object[] { szTableName, szWhere }; object obj = null;// RemotingHelp.ExecuteMethod(par, out szOut); if (szOut == "" && obj != null) { DataTable dt = ((DataSet)obj).Tables[0]; if (dt.Rows.Count > 0) { return true; } else { return false; } } #endregion } catch { } return false; } /// /// 检查是否有修改权限 /// /// /// /// /// public static bool CheckIsPurview() { try { string szOut = "";//, szWhere = ""; #region "" CoreFS.CA06.FrmBase frmb = new FrmBase(); string szWhere = " and a.loginid='" + frmb.UserInfo.GetUserID() + "'"; //hengxing //CallingMessage par = new CallingMessage(); //par.ServerName = "lgResMgt"; //par.AssemblyName = "Core.LgMes.Server.LgResMgt"; //par.ClassName = "Core.LgMes.Server.LgResMgt.SendCommand"; //par.MethodName = "QueryUpdatePurview"; //par.args = new object[] { szWhere }; object obj = null;// RemotingHelp.ExecuteMethod(par, out szOut); if (szOut == "" && obj != null) { DataTable dt = ((DataSet)obj).Tables[0]; if (dt.Rows.Count > 0 && dt.Rows[0]["UPDATEFLAG"].ToString() == "1") { return true; } else { return false; } } #endregion } catch { } return false; } /// /// 保存实绩修改日志 /// /// 炉号 /// 岗位 /// 处理次数 /// 操作员 /// 字段 /// 修改之前的值 /// 修改之后的值 public static bool SaveUpdateLog(string strHeatNo, string strStationCode, string strDisposalTime, Hashtable _UpdateColumnName, Hashtable _UpdateBefore, Hashtable _UpdateAfter,OpeBase ob) { ArrayList alColumnName = new ArrayList(); //保存字段名 ArrayList alColumnCaption = new ArrayList(); //保存字段中文名 ArrayList alUpdateBefore = new ArrayList(); //保存字段修改之前的值 ArrayList alUpdateAfter = new ArrayList(); //保存字段修改之后的值 foreach (DictionaryEntry deColumnName in _UpdateColumnName) { alColumnName.Add(deColumnName.Key); alColumnCaption.Add(deColumnName.Value); if (_UpdateBefore.Contains(deColumnName.Key)) alUpdateBefore.Add(_UpdateBefore[deColumnName.Key]); if (_UpdateAfter.Contains(deColumnName.Key)) alUpdateAfter.Add(_UpdateAfter[deColumnName.Key]); } string strSqlID = "SaveUpdateLog.Update"; object[] sArgs = new object[8]; sArgs[0] = strHeatNo; //熔炼号 sArgs[1] = strStationCode; //岗位 sArgs[2] = strDisposalTime; //处理次数 FrmBase frmb = new FrmBase(); sArgs[3] = frmb.UserInfo.GetUserName(); //操作员 sArgs[4] = alColumnName; //保存字段名 sArgs[5] = alColumnCaption; //保存字段中文名 sArgs[6] = alUpdateBefore; //保存字段修改之前的值 sArgs[7] = alUpdateAfter; //保存字段修改之后的值 string strError = ""; try { CommonClientToServer ccTs = new CommonClientToServer(); ccTs.ob = ob; string strRCode = ccTs.ExecuteProcedureFunctions("Core.LgMes.Server.Common.ComDBProcedure", "ExecProcWithCollParam", strSqlID, sArgs, out strError); //hengxing Core.Mes.ClientFrameWork.ClientCommon._RemotingHelp.ExecuteMethod("lgResMgt", // "Core.LgMes.Server.LgResMgt.Bof", // "SaveUpdateLog", new object[] { sArgs }, out strError); if (strError != "") { MessageBox.Show("实绩修改日志保存不成功!\n" + strError, "错误!", MessageBoxButtons.OK, MessageBoxIcon.Error); return false; } else return true; } catch (System.Exception exp) { MessageBox.Show("实绩修改日志保存不成功!\n" + exp.ToString(), "错误!", MessageBoxButtons.OK, MessageBoxIcon.Error); return false; } } /// /// 获取铁水化学成分检验号 /// /// 上道工序主键 /// public static string GetMolirnSource(string strMolirnSource,OpeBase ob) { string strErr = ""; string strCheckNo = ""; string strSqlID = ""; bool blHmp = false; ArrayList arry = new ArrayList(); switch (strMolirnSource.Substring(0, 1)) { case "M": strSqlID = "GetMisMMolirnSource.select"; break; case "Z": strSqlID = "GetMisZMolirnSource.select"; break; case "D": case "B": strSqlID = "GetHmpMolirnSource.select"; blHmp = true; break; default: break; } if (strSqlID != "") { arry.Add(strSqlID); arry.Add(strMolirnSource); if (blHmp == true) arry.Add(strMolirnSource); CommonClientToServer cctos = new CommonClientToServer(); cctos.ob = ob; DataSet ds = cctos.ExecuteQueryFunctions("Core.LgMes.Server.Common.ComDBQuery", "doSimpleQuery", arry, out strErr); if (strErr == "" && ds != null) { if (ds.Tables[0].Rows.Count > 0) strCheckNo = ds.Tables[0].Rows[0][0].ToString(); } } return strCheckNo; } } }