using System; using System.Collections.Generic; using System.Data; using System.Drawing; using System.Linq; using System.Windows.Forms; using Core.Mes.Client.Comm.Control; using Core.Mes.Client.Comm.Format; using Core.Mes.Client.Comm.Server; using Core.Mes.Client.Comm.Tool; using Core.StlMes.Client.Mcp.Control.Base; using Core.StlMes.Client.Mcp.Control.Common; using Core.StlMes.Client.Mcp.Control.Entity; using CoreFS.CA06; using Infragistics.Win; using Infragistics.Win.UltraWinEditors; using Infragistics.Win.UltraWinGrid; using System.Collections; namespace Core.StlMes.Client.Mcp.Treatment.Report { public partial class FrmHttControlLog : FrmBase { private string date = ""; private string departm = ""; private int flag = 0; //分析时间错误 private int flag1 = 0; //分析相差时间 private string station = ""; //工序点 private string ProcessCode = ""; private HttControlShiftEntity httControlShiftEntity; private string plineCode; private UltraComboEditor ucePline = new UltraComboEditor(); //产线名称 public FrmHttControlLog() { InitializeComponent(); } private void FrmHttControlLog_Load(object sender, EventArgs e) { departm = UserInfo.GetDepartment(); //plineCode = YdmBaseClass.GetPCode(departm, this.ob);//获取 用户 对应的产线 if (UserInfo.GetUserOrder().Equals("3")) cmbDate.Value = DateTime.Parse(DateTime.Now.AddDays(0.5d).ToString("yyyy-MM-dd")); else cmbDate.Value = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd")); EntityHelper.ShowGridCaption(ultraGrid1.DisplayLayout.Bands[0]); EntityHelper.ShowGridCaption(ultraGrid2.DisplayLayout.Bands[0]); //EntityHelper.ShowGridCaption(ultraGrid3.DisplayLayout.Bands[0]); //EntityHelper.ShowGridCaption(ultraGrid4.DisplayLayout.Bands[0]); splitContainer1.SplitterDistance = splitContainer1.Size.Height / 2; } protected override void OnLoad(EventArgs e) { base.OnLoad(e); ultraGrid1.DisplayLayout.Bands[0].Override.HeaderClickAction = HeaderClickAction.Select; //ultraGrid4.DisplayLayout.Bands[0].Override.HeaderClickAction = HeaderClickAction.Select; //ultraGrid3.DisplayLayout.Bands[0].Override.HeaderClickAction = HeaderClickAction.Select; ultraGrid2.DisplayLayout.Bands[0].Override.HeaderClickAction = HeaderClickAction.Select; ProcessCode = this.CustomInfo.ToString2(); if (ProcessCode == "") ProcessCode = "F"; var plineCodes = comm.InitDropPlinePower(ProcessCode, comPlineCode, ValidDataPurviewIds, ob); if (plineCodes.Length > 0) comPlineCode.SelectedIndex = 0; //egpGroupBox.Expanded = false; //egpGroupBox1.Expanded = false; var dt2 = ServerHelper.GetData("com.steering.mes.mcp.collarMaterial.ComBaseInfo.getBaseInfo", new object[] { "600701" }, ob); if (dt2.Rows.Count > 0) { MinTime.MaxValue = dt2.Rows[0]["BASENAME"].ToString(); } MinTime.Value = "15"; var list = new ValueList(); var list2 = new ValueList(); string FailCode = ""; if (ProcessCode == "F") { list.ValueListItems.Add("000000", "所有"); list.ValueListItems.Add("600202", "高温炉"); list.ValueListItems.Add("600203", "淬火"); list.ValueListItems.Add("600204", "低温炉"); list.ValueListItems.Add("600205", "定径"); list.ValueListItems.Add("600206", "热矫"); list.ValueListItems.Add("600207", "冷矫"); list.ValueListItems.Add("600208", "表面检验"); list.ValueListItems.Add("600209", "探伤"); list2.ValueListItems.Add("000000", "所有"); list2.ValueListItems.Add("600202", "高温炉"); list2.ValueListItems.Add("600203", "淬火"); list2.ValueListItems.Add("600204", "低温炉"); list2.ValueListItems.Add("600205", "定径"); list2.ValueListItems.Add("600206", "热矫"); list2.ValueListItems.Add("600207", "冷矫"); list2.ValueListItems.Add("600208", "表面检验"); list2.ValueListItems.Add("600209", "探伤"); FailCode = "6006"; ultraSTATION2.Visible = false; } else { list.ValueListItems.Add("000000", "所有"); list.ValueListItems.Add("701302", "探伤"); list.ValueListItems.Add("701303", "切管"); list.ValueListItems.Add("701304", "车丝"); list.ValueListItems.Add("701306", "拧接"); list.ValueListItems.Add("701307", "通径"); list.ValueListItems.Add("701308", "水压"); list.ValueListItems.Add("701309", "倒棱"); list.ValueListItems.Add("701310", "测量点"); list2.ValueListItems.Add("000000", "所有"); list2.ValueListItems.Add("701302", "探伤"); list2.ValueListItems.Add("701303", "切管"); list2.ValueListItems.Add("701304", "车丝"); list2.ValueListItems.Add("701306", "拧接"); list2.ValueListItems.Add("701307", "通径"); list2.ValueListItems.Add("701308", "水压"); list2.ValueListItems.Add("701309", "倒棱"); list2.ValueListItems.Add("701310", "测量点"); FailCode = "7025"; ultraSTATION1.Visible = false; } //ultraGrid3.DisplayLayout.Bands[0].Columns["StationCode"].ValueList = list; //ultraGrid4.DisplayLayout.Bands[0].Columns["StationCode"].ValueList = list2; var list1 = new ValueList(); var list3 = new ValueList(); var dt = TubeRoll.GetComBaseInfo(FailCode, ob); foreach (DataRow row in dt.Rows) { list1.ValueListItems.Add(row["BASECODE"].ToString(), row["BASENAME"].ToString()); list3.ValueListItems.Add(row["BASECODE"].ToString(), row["BASENAME"].ToString()); } //ultraGrid3.DisplayLayout.Bands[0].Columns["StopType"].ValueList = list3; ultraGrid1.DisplayLayout.Bands[0].Columns["StopType"].ValueList = list1; } /// /// 重写基类方法 /// /// /// public override void ToolBar_Click(object sender, string ToolbarKey) { switch (ToolbarKey) { case "Query": doQuery(); break; case "Add": doAdd(); break; case "Update": doUpdate(); break; case "Delete": doDelete(); break; case "Confirm": doConfirm(); break; case "UpConfirm": UpConfirm(); break; case "Audit": doAudit(); break; case "UpAudit": UpAudit(); break; case "OneKeyProces": //DoOneKeyProces(); break; case "Statistical": DoStatistical(); break; case "OneKeyUpdate": DoOneKeyUpdate(); break; case "Production": DoProduction(); break; case "Export": GridHelper.ulGridToExcel(ultraGrid1, "镦拔扩调度日志"); break; case "Close": Close(); break; } } /// /// 生产记录 /// private void DoProduction() { var pro = new FrmProductionDetails(cmbDate.Value.ToString("yyyyMMdd"), plineCode, ob); pro.MaximumSize = new Size(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height); pro.Text = "生产详细"; pro.ShowDialog(); } /// /// 查询统计数据 /// private void DoStatistical() { var row = ultraGrid1.ActiveRow; if (row == null) { MessageUtil.ShowTips("无数据!"); return; } var fsta = new FrmStatistical(plineCode, ob); fsta.AutoSize = true; fsta.MaximumSize = new Size(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height); fsta.Text = "统计查询"; fsta.ShowDialog(); } /// /// 查询 /// private void doQuery() { //egpGroupBox.Expanded = false; //egpGroupBox1.Expanded = false; httControlLogDetailEntityBindingSource.DataSource = new List(); httControlLogDetailEntityBindingSource1.DataSource = new List(); if (ProcessCode == "F") { station = ultraSTATION1.Value.ToString(); } if (ProcessCode == "G") { station = ultraSTATION2.Value.ToString(); } List ShiftEntity = EntityHelper.GetData( "com.steering.mes.mcp.Report.FrmHttControlLog.doQueryShiftInfo", new object[] { plineCode, UserInfo.GetUserOrder() }, ob); if ((ShiftEntity == null) || (ShiftEntity.Count != 1)) { httControlShiftEntity = null; // MessageBox.Show("未维护该班次的上班时间"); // return; } else { httControlShiftEntity = ShiftEntity[0]; } httControlLogEntityBindingSource1.Clear(); ultraGrid2.DisplayLayout.Bands[0].Summaries["SumProductTime"].DisplayFormat = ""; //前一天 var LastDate = ""; date = cmbDate.Value.ToString("yyyyMMdd"); LastDate = cmbDate.Value.AddDays(-1).ToString("yyyyMMdd"); List listEntity = EntityHelper.GetData("com.steering.mes.mcp.Report.FrmHttControlLog.doQueryPlan", new object[] { date, "", UserInfo.GetUserOrder(), UserInfo.GetUserGroup(), plineCode, station }, ob); httControlLogEntityBindingSource.DataSource = listEntity; HeatTreatment.comm.RefreshAndAutoSize(ultraGrid1, new[] { "LogsBeg", "LogsEnd", "Memo" }); if (httControlShiftEntity != null) { List listEntity1 = EntityHelper.GetData( "com.steering.mes.mcp.Report.FrmHttControlLog.doQueryPlan", new object[] { UserInfo.GetUserOrder() == "3" ? LastDate : date, "", httControlShiftEntity.LastBc, UserInfo.GetUserGroup(), plineCode, station }, ob); httControlLogEntityBindingSource1.DataSource = listEntity1; ultraGrid2.DisplayLayout.Bands[0].Summaries["SumProductTime"].DisplayFormat = listEntity1.Sum( p => { var time = 0; int.TryParse(p.ProductTime, out time); return time; }).ToString2(); } HeatTreatment.comm.RefreshAndAutoSize(ultraGrid2, new[] { "LogsBeg", "LogsEnd", "Memo" }); ultraGrid1.DisplayLayout.Bands[0].Summaries["SumProductTime"].DisplayFormat = listEntity.Sum( p => { var time = 0; int.TryParse(p.ProductTime, out time); return time; }).ToString2(); } /// /// 一键修改 /// private void DoOneKeyUpdate() { ultraGrid1.UpdateData(); try { if (MinTime.Text == "") return; if (MessageUtil.ShowYesNoAndQuestion("是否一键修改处理?") == DialogResult.No) return; var list = httControlLogEntityBindingSource.DataSource as List; list = list.Where(p => { var min = 0; int.TryParse(p.TimeDiff.ToString2().Replace("min", "").Trim(), out min); return (min != 0) && (min < int.Parse(MinTime.Text)) && (min > 0 - int.Parse(MinTime.Text)); }).ToList(); list.ForEach(p => { var min = 0; int.TryParse(p.TimeDiff.ToString2().Replace("min", "").Trim(), out min); p.LogsBeg = DateTime.Parse(p.LogsBeg).AddMinutes(0 - min).ToString("yyyyMMddHHmm"); } ); var ccp = new CoreClientParam(); ccp.ServerName = "com.steering.mes.mcp.Report.FrmHttControlLog"; ccp.MethodName = "oneKeyUpdateMilControlLog"; ccp.ServerParams = new object[] { list.Select(JSONFormat.Format).ToList() }; ccp = ExecuteNonQuery(ccp, CoreInvokeType.Internal); if (ccp.ReturnCode != -1) { MessageUtil.ShowTips(ccp.ReturnInfo); if (ccp.ReturnInfo.Equals("一键处理成功!")) doQuery(); } } catch (Exception ex) { MessageUtil.ShowTips("开始时间或结束时间不能为空!"); } } /// /// 新增 /// private void doAdd() { var StartTime = DateTime.Now.ToString("yyyyMMddHHmm"); var time = "0"; if (ultraGrid1.ActiveRow != null) { ultraGrid1.UpdateData(); var Lastentity = ultraGrid1.ActiveRow.ListObject as HttControlLogEntity; StartTime = Lastentity.LogsBeg; time = Lastentity.TimeDiff.ToString2().Replace("min", "").Trim(); if ((time == "") || (time == "0") || (int.Parse(time) < 0)) { StartTime = Lastentity.LogsEnd; time = "0"; } if (Lastentity.ConfirmFlag.Equals("已审核")) { MessageUtil.ShowTips("已审核的停机记录不能增加!"); return; } } if (ProcessCode == "F") { station = ultraSTATION1.Value.ToString(); } if (ProcessCode == "G") { station = ultraSTATION2.Value.ToString(); } var ccp = new CoreClientParam(); ccp.ServerName = "com.steering.mes.mcp.Report.FrmHttControlLog"; ccp.MethodName = "addMilControlLog"; ccp.ServerParams = new object[] { StartTime, time, UserInfo.GetUserName(), UserInfo.GetUserOrder(), UserInfo.GetUserGroup(), cmbDate.Value.ToString("yyyy-MM-dd"), plineCode, station }; ccp = ExecuteNonQuery(ccp, CoreInvokeType.Internal); if (ccp.ReturnCode != -1) { MessageUtil.ShowTips(ccp.ReturnInfo); if (ccp.ReturnInfo.Equals("新增成功!")) doQuery(); } } /// /// 修改 /// private void doUpdate() { ultraGrid1.UpdateData(); //ultraGrid3.UpdateData(); try { var list = httControlLogEntityBindingSource.DataSource as List; var list1 = httControlLogDetailEntityBindingSource.DataSource as List; if (list == null) { MessageUtil.ShowTips("请选择要修改的数据!"); return; } if (list1 == null) list1 = new List(); list = list.Where(p => p.Chk).Select(p => p.Clone()).ToList(); list1 = list1.Where(p => p.Chk).Select(p => p.Clone()).ToList(); if (!list.Any()) { MessageUtil.ShowTips("请选择要修改的数据!"); return; } if (list.Any(p => p.ConfirmFlag != "未确认")) { MessageUtil.ShowTips("请选择未确认的数据!"); return; } if (MessageUtil.ShowYesNoAndQuestion("是否修改?") == DialogResult.No) return; for (var i = 0; i < list.Count; i++) { DateTime dtStart, dtEnd; if (DateTime.TryParse(list[i].LogsBeg, out dtStart)) list[i].LogsBeg = dtStart.ToString("yyyyMMddHHmm"); if (DateTime.TryParse(list[i].LogsEnd, out dtEnd)) list[i].LogsEnd = dtEnd.ToString("yyyyMMddHHmm"); } for (var i = 0; i < list1.Count; i++) { list1[i].ControlSeq = i + 1; DateTime dtStart, dtEnd; if (DateTime.TryParse(list1[i].LogsBeg, out dtStart)) list1[i].LogsBeg = dtStart.ToString("yyyyMMddHHmm"); if (DateTime.TryParse(list1[i].LogsEnd, out dtEnd)) list1[i].LogsEnd = dtEnd.ToString("yyyyMMddHHmm"); } var ccp = new CoreClientParam(); ccp.ServerName = "com.steering.mes.mcp.Report.FrmHttControlLog"; ccp.MethodName = "updateMilControlLog"; ccp.ServerParams = new object[] { list.Select(JSONFormat.Format).ToList(), list1.Any() ? list1.Select(JSONFormat.Format).ToList() : new List() }; ccp = ExecuteNonQuery(ccp, CoreInvokeType.Internal); if (ccp.ReturnCode != -1) { MessageUtil.ShowTips(ccp.ReturnInfo); if (ccp.ReturnInfo.Equals("修改成功!")) doQuery(); } } catch (Exception ex) { MessageUtil.ShowTips(ex.Message); } } /// /// 删除 /// private void doDelete() { ultraGrid1.UpdateData(); var list = httControlLogEntityBindingSource.DataSource as List; if (list == null) { MessageUtil.ShowTips("请选择要删除的停机数据!"); return; } list = list.Where(p => p.Chk).ToList(); if (!list.Any()) { MessageUtil.ShowTips("请选择要删除的停机数据!"); return; } if (list.Any(p => p.ProType != "停机")) { MessageUtil.ShowTips("请选择停机数据!"); return; } if (list.Any(p => p.ConfirmFlag != "未确认")) { MessageUtil.ShowTips("请选择未确认的停机数据!"); return; } if (MessageUtil.ShowYesNoAndQuestion("是否删除?") == DialogResult.No) return; var ccp = new CoreClientParam(); ccp.ServerName = "com.steering.mes.mcp.Report.FrmHttControlLog"; ccp.MethodName = "deleteMilControlLog"; ccp.ServerParams = new object[] { list.Select(p => p.ControlId).ToList() }; ccp = ExecuteNonQuery(ccp, CoreInvokeType.Internal); if (ccp.ReturnCode != -1) { MessageUtil.ShowTips(ccp.ReturnInfo); if (ccp.ReturnInfo.Equals("删除成功!")) doQuery(); } } /// /// 确认 /// private void doConfirm() { ultraGrid1.UpdateData(); //var list = // httControlLogEntityBindingSource.DataSource as List; //if (list == null) //{ // MessageUtil.ShowTips("请选择要确认的数据!"); // return; //} //if (!list.Any()) //{ // MessageUtil.ShowTips("请选择要确认的数据!"); // return; //} ArrayList pram = new ArrayList(); //IQueryable checkMagRows = this.ultraGrid1.Rows.AsQueryable().Where(" CHK = 'True'"); if (this.ultraGrid1.Rows.Count() == 0) { MessageUtil.ShowTips("请选择要确认的数据!"); return; } foreach (UltraGridRow uRow in this.ultraGrid1.Rows) { HttControlLogEntity stlControlLogEntity = (HttControlLogEntity)uRow.ListObject; stlControlLogEntity.ConfirmName = this.UserInfo.GetUserName(); if (stlControlLogEntity.ProType.Equals("停机")) { if (stlControlLogEntity.StopType.Equals("") || stlControlLogEntity.StopSmall.Equals("") || stlControlLogEntity.StopReason.Equals("")) { MessageUtil.ShowTips("停机原因不能为空!"); return; } } string matZcTity = JSONFormat.Format(stlControlLogEntity); pram.Add(matZcTity); } var ccp = new CoreClientParam(); ccp.ServerName = "com.steering.mes.mcp.Report.FrmHttControlLog"; ccp.MethodName = "confirmMilControlLog"; ccp.ServerParams = new object[] { pram, UserInfo.GetUserName(), date, plineCode, UserInfo.GetUserOrder(),"1" }; ccp = ExecuteNonQuery(ccp, CoreInvokeType.Internal); if (ccp.ReturnCode != -1) { MessageUtil.ShowTips(ccp.ReturnInfo); if (ccp.ReturnInfo.Equals("确认成功!")) doQuery(); } } /// /// 取消确认 /// private void UpConfirm() { ultraGrid1.UpdateData(); ArrayList pram = new ArrayList(); IQueryable checkMagRows = this.ultraGrid1.Rows.AsQueryable().Where(" CHK = 'True'"); if (checkMagRows.Count() == 0) { MessageUtil.ShowTips("请选择要取消确认的数据!"); return; } foreach (UltraGridRow uRow in checkMagRows) { HttControlLogEntity stlControlLogEntity = (HttControlLogEntity)uRow.ListObject; stlControlLogEntity.ConfirmName = this.UserInfo.GetUserName(); string matZcTity = JSONFormat.Format(stlControlLogEntity); pram.Add(matZcTity); } var ccp = new CoreClientParam(); ccp.ServerName = "com.steering.mes.mcp.Report.FrmHttControlLog"; ccp.MethodName = "upConfirmMilControlLog"; ccp.ServerParams = new object[] { pram, "0" }; ccp = ExecuteNonQuery(ccp, CoreInvokeType.Internal); if (ccp.ReturnCode != -1) { MessageUtil.ShowTips(ccp.ReturnInfo); if (ccp.ReturnInfo.Equals("取消确认成功!")) doQuery(); } } /// /// 审核 /// private void doAudit() { ultraGrid1.UpdateData(); ArrayList pram = new ArrayList(); //IQueryable checkMagRows = this.ultraGrid1.Rows.AsQueryable().Where(" CHK = 'True'"); if (this.ultraGrid1.Rows.Count() == 0) { MessageUtil.ShowTips("请选择要审核的数据!"); return; } foreach (UltraGridRow uRow in this.ultraGrid1.Rows) { HttControlLogEntity stlControlLogEntity = (HttControlLogEntity)uRow.ListObject; stlControlLogEntity.ConfirmName = this.UserInfo.GetUserName(); string matZcTity = JSONFormat.Format(stlControlLogEntity); pram.Add(matZcTity); } var ccp = new CoreClientParam(); ccp.ServerName = "com.steering.mes.mcp.Report.FrmHttControlLog"; ccp.MethodName = "confirmMilControlLog"; ccp.ServerParams = new object[] { pram, UserInfo.GetUserName(), date, plineCode, UserInfo.GetUserOrder(),"2" }; ccp = ExecuteNonQuery(ccp, CoreInvokeType.Internal); if (ccp.ReturnCode != -1) { MessageUtil.ShowTips(ccp.ReturnInfo); if (ccp.ReturnInfo.Equals("审核成功!")) doQuery(); } } /// /// 取消审核 /// private void UpAudit() { ultraGrid1.UpdateData(); ArrayList pram = new ArrayList(); IQueryable checkMagRows = this.ultraGrid1.Rows.AsQueryable().Where(" CHK = 'True'"); if (checkMagRows.Count() == 0) { MessageUtil.ShowTips("请选择要取消审核的数据!"); return; } foreach (UltraGridRow uRow in checkMagRows) { HttControlLogEntity stlControlLogEntity = (HttControlLogEntity)uRow.ListObject; stlControlLogEntity.ConfirmName = this.UserInfo.GetUserName(); string matZcTity = JSONFormat.Format(stlControlLogEntity); pram.Add(matZcTity); } var ccp = new CoreClientParam(); ccp.ServerName = "com.steering.mes.mcp.Report.FrmHttControlLog"; ccp.MethodName = "upConfirmMilControlLog"; ccp.ServerParams = new object[] { pram, "1" }; ccp = ExecuteNonQuery(ccp, CoreInvokeType.Internal); if (ccp.ReturnCode != -1) { MessageUtil.ShowTips(ccp.ReturnInfo); if (ccp.ReturnInfo.Equals("取消审核成功!")) doQuery(); } } private void chkDate_CheckedChanged(object sender, EventArgs e) { if (chkDate.Checked) cmbDate.Enabled = true; else cmbDate.Enabled = false; } private void ultraGrid1_CellDataError(object sender, CellDataErrorEventArgs e) { e.RaiseErrorEvent = false; MessageUtil.ShowTips("您输入的时间格式不正确!"); } private void ultraGrid1_InitializeRow(object sender, InitializeRowEventArgs e) { try { var entity = e.Row.ListObject as HttControlLogEntity; if (entity == null) return; if (entity.ConfirmFlag == "未确认") { e.Row.Cells["LogsBeg"].Appearance.BackColor = Color.FromArgb(255, 255, 192); e.Row.Cells["LogsBeg"].Activation = Activation.AllowEdit; e.Row.Cells["LogsBeg"].IgnoreRowColActivation = true; e.Row.Cells["LogsEnd"].Appearance.BackColor = Color.FromArgb(255, 255, 192); e.Row.Cells["LogsEnd"].Activation = Activation.AllowEdit; e.Row.Cells["LogsEnd"].IgnoreRowColActivation = true; e.Row.Cells["Memo"].Appearance.BackColor = Color.FromArgb(255, 255, 192); e.Row.Cells["Memo"].Activation = Activation.AllowEdit; e.Row.Cells["Memo"].IgnoreRowColActivation = true; } if (entity.ProType == "停机") e.Row.Cells["ProType"].Appearance.BackColor = Color.Pink; DateTime dtBegin, dtEnd; if (DateTime.TryParse(entity.LogsBeg, out dtBegin) && DateTime.TryParse(entity.LogsEnd, out dtEnd)) if (dtBegin > dtEnd) e.Row.Cells["LogsEnd"].Appearance.BackColor = Color.Red; else e.Row.Cells["LogsEnd"].Appearance.ResetBackColor(); if ((e.Row.Index == 0) && httControlShiftEntity != null) { string logsBeg = httControlShiftEntity.ShiftBeg.Insert(2, ":"); logsBeg = (entity.ProBc == "3" ? DateTime.ParseExact(date, "yyyyMMdd", System.Globalization.CultureInfo.CurrentCulture).AddDays(-1).ToString("yyyy-MM-dd") : DateTime.ParseExact(date, "yyyyMMdd", System.Globalization.CultureInfo.CurrentCulture).ToString("yyyy-MM-dd")) + " " + logsBeg; DateTime dtLastEnd; if ((httControlShiftEntity.ShiftBeg != null) && DateTime.TryParse(entity.LogsBeg, out dtBegin) && DateTime.TryParse(logsBeg, out dtLastEnd) && DateTime.TryParse(entity.LogsBeg, out dtBegin)) { var diff = DateDiff(dtBegin, dtLastEnd); if (diff > 0) e.Row.Cells["TimeDiff"].Appearance.BackColor = Color.Red; else e.Row.Cells["TimeDiff"].Appearance.ResetBackColor(); entity.TimeDiff = diff + " min"; } } if ((e.Row.Index > 0) && (entity.ProductTime != "") && (entity.ProductTime != "0" || entity.ProType == "正常")) for (var i = e.Row.Index - 1; i >= 0; i--) { var Lastentity = ultraGrid1.Rows[i].ListObject as HttControlLogEntity; if ((Lastentity.ProductTime == "") || (Lastentity.ProductTime == "0" && Lastentity.ProType != "正常")) { } else { DateTime dtLastEnd; if ((Lastentity != null) && DateTime.TryParse(Lastentity.LogsEnd, out dtLastEnd) && DateTime.TryParse(entity.LogsBeg, out dtBegin)) { var diff = DateDiff(dtBegin, dtLastEnd); if (diff > 0) e.Row.Cells["TimeDiff"].Appearance.BackColor = Color.Red; else e.Row.Cells["TimeDiff"].Appearance.ResetBackColor(); entity.TimeDiff = diff + " min"; } break; } if (i == 0 && httControlShiftEntity != null) { string logsBeg = httControlShiftEntity.ShiftBeg.Insert(2, ":"); logsBeg = (entity.ProBc == "3" ? DateTime.ParseExact(date, "yyyyMMdd", System.Globalization.CultureInfo.CurrentCulture).AddDays(-1).ToString("yyyy-MM-dd") : DateTime.ParseExact(date, "yyyyMMdd", System.Globalization.CultureInfo.CurrentCulture).ToString("yyyy-MM-dd")) + " " + logsBeg; DateTime dtLastEnd; if ((httControlShiftEntity.ShiftBeg != null) && DateTime.TryParse(entity.LogsBeg, out dtBegin) && DateTime.TryParse(logsBeg, out dtLastEnd) && DateTime.TryParse(entity.LogsBeg, out dtBegin)) { var diff = DateDiff(dtBegin, dtLastEnd); if (diff > 0) e.Row.Cells["TimeDiff"].Appearance.BackColor = Color.Red; else e.Row.Cells["TimeDiff"].Appearance.ResetBackColor(); entity.TimeDiff = diff + " min"; } } } //var entity = e.Row.ListObject as HttControlLogDetailEntity; if (entity == null) return; var list1 = new ValueList(); var dt = TubeRoll.GetComBaseInfo(entity.StopType, ob); foreach (DataRow row in dt.Rows) list1.ValueListItems.Add(row["BASECODE"].ToString(), row["BASENAME"].ToString()); e.Row.Cells["StopSmall"].ValueList = list1; var list2 = new ValueList(); var dt2 = TubeRoll.GetComBaseInfo(entity.StopSmall, ob); foreach (DataRow row in dt2.Rows) list2.ValueListItems.Add(row["BASECODE"].ToString(), row["BASENAME"].ToString()); e.Row.Cells["StopReason"].ValueList = list2; ultraGrid1.Refresh(); } catch (Exception) { } } private void ultraGrid1_CellChange_1(object sender, CellEventArgs e) { try { if (((e.Cell.Column.Key == "LogsEnd") || (e.Cell.Column.Key == "LogsBeg")) && e.Cell.Text.Contains("_")) { return; } ultraGrid1.UpdateData(); if (ultraGrid1.ActiveRow == null) return; var entity = ultraGrid1.ActiveRow.ListObject as HttControlLogEntity; if (entity == null) return; if (e.Cell.Column.Key != "Chk") entity.Chk = true; if ((e.Cell.Column.Key == "LogsEnd") || (e.Cell.Column.Key == "LogsBeg")) { DateTime dtBegin, dtEnd; if (DateTime.TryParse(entity.LogsBeg, out dtBegin) && DateTime.TryParse(entity.LogsEnd, out dtEnd)) if (dtBegin > dtEnd) ultraGrid1.ActiveRow.Cells["LogsEnd"].Appearance.BackColor = Color.Red; else ultraGrid1.ActiveRow.Cells["LogsEnd"].Appearance.ResetBackColor(); if ((entity.ProductTime == "") || (entity.ProductTime == "0")) return; if ((ultraGrid1.ActiveRow.Index == 0) && httControlShiftEntity != null) { string logsBeg = httControlShiftEntity.ShiftBeg.Insert(2, ":"); logsBeg = (entity.ProBc == "3" ? DateTime.ParseExact(date, "yyyyMMdd", System.Globalization.CultureInfo.CurrentCulture).AddDays(-1).ToString("yyyy-MM-dd") : DateTime.ParseExact(date, "yyyyMMdd", System.Globalization.CultureInfo.CurrentCulture).ToString("yyyy-MM-dd")) + " " + logsBeg; DateTime dtLastEnd; if ((httControlShiftEntity.ShiftBeg != null) && DateTime.TryParse(entity.LogsBeg, out dtBegin) && DateTime.TryParse(logsBeg, out dtLastEnd) && DateTime.TryParse(entity.LogsBeg, out dtBegin)) { var diff = DateDiff(dtBegin, dtLastEnd); if (diff > 0) ultraGrid1.ActiveRow.Cells["TimeDiff"].Appearance.BackColor = Color.Red; else ultraGrid1.ActiveRow.Cells["TimeDiff"].Appearance.ResetBackColor(); entity.TimeDiff = diff + " min"; } } if ((ultraGrid1.ActiveRow.Index > 0)) for (var i = ultraGrid1.ActiveRow.Index - 1; i >= 0; i--) { var Lastentity = ultraGrid1.Rows[i].ListObject as HttControlLogEntity; if ((Lastentity.ProductTime == "") || (Lastentity.ProductTime == "0")) { } else { DateTime dtLastEnd; if ((Lastentity != null) && DateTime.TryParse(Lastentity.LogsEnd, out dtLastEnd) && DateTime.TryParse(entity.LogsBeg, out dtBegin)) { var diff = DateDiff(dtBegin, dtLastEnd); if (diff > 0) ultraGrid1.ActiveRow.Cells["TimeDiff"].Appearance.BackColor = Color.Red; else ultraGrid1.ActiveRow.Cells["TimeDiff"].Appearance.ResetBackColor(); entity.TimeDiff = diff + " min"; } break; } } if ((ultraGrid1.ActiveRow.Index < ultraGrid1.Rows.Count - 1)) for (var j = ultraGrid1.ActiveRow.Index + 1; j < ultraGrid1.Rows.Count - 1; j++) { var Nextentity = ultraGrid1.Rows[j].ListObject as HttControlLogEntity; if ((Nextentity.ProductTime == "") || (Nextentity.ProductTime == "0")) { } else { DateTime dtNextBeg; if ((Nextentity != null) && DateTime.TryParse(Nextentity.LogsBeg, out dtNextBeg) && DateTime.TryParse(entity.LogsEnd, out dtEnd)) { var diff = DateDiff(dtNextBeg, dtEnd); if (diff > 0) ultraGrid1.Rows[ultraGrid1.ActiveRow.Index + 1].Cells["TimeDiff"].Appearance .BackColor = Color.Red; else ultraGrid1.Rows[ultraGrid1.ActiveRow.Index + 1].Cells["TimeDiff"].Appearance .ResetBackColor(); Nextentity.TimeDiff = diff + " min"; } break; } } var details = httControlLogDetailEntityBindingSource.DataSource as List; if ((details != null) && (details.Count == 1)) { details[0].LogsBeg = entity.LogsBeg; details[0].LogsEnd = entity.LogsEnd; //ultraGrid3.Refresh(); } var listEntity1 = httControlLogEntityBindingSource.DataSource as List; ultraGrid1.DisplayLayout.Bands[0].Summaries["SumProductTime"].DisplayFormat = listEntity1.Sum( p => { var time = 0; int.TryParse(p.ProductTime, out time); return time; }).ToString2(); } if ((e.Cell.Column.Key == "Memo")) return; if (e.Cell.Column.Key == "StopType") { var list1 = new ValueList(); var dt = TubeRoll.GetComBaseInfo(e.Cell.Value.ToString(), ob); foreach (DataRow row in dt.Rows) list1.ValueListItems.Add(row["BASECODE"].ToString(), row["BASENAME"].ToString()); e.Cell.Row.Cells["StopSmall"].ValueList = list1; e.Cell.Row.Cells["StopSmall"].Value = ""; e.Cell.Row.Cells["StopReason"].Value = ""; } if (e.Cell.Column.Key == "StopSmall") { var list2 = new ValueList(); var dt2 = TubeRoll.GetComBaseInfo(e.Cell.Value.ToString(), ob); foreach (DataRow row in dt2.Rows) list2.ValueListItems.Add(row["BASECODE"].ToString(), row["BASENAME"].ToString()); e.Cell.Row.Cells["StopReason"].ValueList = list2; e.Cell.Row.Cells["StopReason"].Value = ""; } } catch (Exception) { } finally { ultraGrid1.Refresh(); } } private void ultraGrid1_AfterRowActivate(object sender, EventArgs e) { if (ultraGrid1.ActiveRow == null) return; var entity = ultraGrid1.ActiveRow.ListObject as HttControlLogEntity; if (entity == null) return; if (entity.ProType == "停机") { //egpGroupBox.Expanded = true; var lists = EntityHelper.GetData( "com.steering.mes.mcp.Report.FrmHttControlLog.doQueryDetail", new object[] { entity.ControlId }, ob); lists.ForEach(p => p.Chk = true); httControlLogDetailEntityBindingSource.DataSource = lists; //ultraGrid3.DisplayLayout.Override.AllowAddNew = AllowAddNew.TemplateOnBottom; } else { //egpGroupBox.Expanded = false; httControlLogDetailEntityBindingSource.DataSource = new List(); //ultraGrid3.DisplayLayout.Override.AllowAddNew = AllowAddNew.No; } } private double DateDiff(DateTime DateTime1, DateTime DateTime2) { double dateDiff = 0; try { var ts1 = new TimeSpan(DateTime1.Ticks); var ts2 = new TimeSpan(DateTime2.Ticks); var ts = ts1.Subtract(ts2); dateDiff = ts.TotalMinutes; } catch { } return dateDiff; } private void ultraGrid3_CellChange(object sender, CellEventArgs e) { try { if (ultraGrid1.ActiveRow != null) ultraGrid1.ActiveRow.Cells["Chk"].Value = true; if (((e.Cell.Column.Key == "LogsEnd") || (e.Cell.Column.Key == "LogsBeg")) && e.Cell.Text.Contains("_")) { return; } if ((e.Cell.Column.Key == "Memo")) return; //ultraGrid3.UpdateData(); if (e.Cell.Column.Key == "StopType") { var list1 = new ValueList(); var dt = TubeRoll.GetComBaseInfo(e.Cell.Value.ToString(), ob); foreach (DataRow row in dt.Rows) list1.ValueListItems.Add(row["BASECODE"].ToString(), row["BASENAME"].ToString()); e.Cell.Row.Cells["StopSmall"].ValueList = list1; e.Cell.Row.Cells["StopSmall"].Value = ""; e.Cell.Row.Cells["StopReason"].Value = ""; } if (e.Cell.Column.Key == "StopSmall") { var list2 = new ValueList(); var dt2 = TubeRoll.GetComBaseInfo(e.Cell.Value.ToString(), ob); foreach (DataRow row in dt2.Rows) list2.ValueListItems.Add(row["BASECODE"].ToString(), row["BASENAME"].ToString()); e.Cell.Row.Cells["StopReason"].ValueList = list2; e.Cell.Row.Cells["StopReason"].Value = ""; } } catch (Exception) { } } private void comPlineCode_ValueChanged(object sender, EventArgs e) { plineCode = comPlineCode.SelectedItem.DataValue.ToString(); doQuery(); } private void ultraGrid3_AfterRowInsert(object sender, RowEventArgs e) { e.Row.Cells["Chk"].Value = true; e.Row.Cells["ControlId"].Value = ultraGrid1.ActiveRow.Cells["ControlId"].Value; } private void ultraGrid3_InitializeRow(object sender, InitializeRowEventArgs e) { var entity = e.Row.ListObject as HttControlLogDetailEntity; if (entity == null) return; var list1 = new ValueList(); var dt = TubeRoll.GetComBaseInfo(entity.StopType, ob); foreach (DataRow row in dt.Rows) list1.ValueListItems.Add(row["BASECODE"].ToString(), row["BASENAME"].ToString()); e.Row.Cells["StopSmall"].ValueList = list1; var list2 = new ValueList(); var dt2 = TubeRoll.GetComBaseInfo(entity.StopSmall, ob); foreach (DataRow row in dt2.Rows) list2.ValueListItems.Add(row["BASECODE"].ToString(), row["BASENAME"].ToString()); e.Row.Cells["StopReason"].ValueList = list2; } private void ultraGrid2_AfterRowActivate(object sender, EventArgs e) { if (ultraGrid2.ActiveRow == null) return; var entity = ultraGrid2.ActiveRow.ListObject as HttControlLogEntity; if (entity == null) return; if (entity.ProType == "停机") { //egpGroupBox1.Expanded = true; var lists = EntityHelper.GetData( "com.steering.mes.mcp.Report.FrmHttControlLog.doQueryDetail", new object[] { entity.ControlId }, ob); lists.ForEach(p => p.Chk = true); httControlLogDetailEntityBindingSource1.DataSource = lists; } else { //egpGroupBox1.Expanded = false; httControlLogDetailEntityBindingSource1.DataSource = new List(); } } private void ultraGrid2_InitializeRow(object sender, InitializeRowEventArgs e) { try { var entity = e.Row.ListObject as HttControlLogEntity; if (entity == null) return; if (entity.ProType == "停机") e.Row.Cells["ProType"].Appearance.BackColor = Color.Pink; DateTime dtBegin, dtEnd; if (DateTime.TryParse(entity.LogsBeg, out dtBegin) && DateTime.TryParse(entity.LogsEnd, out dtEnd)) if (dtBegin > dtEnd) e.Row.Cells["LogsEnd"].Appearance.BackColor = Color.Red; else e.Row.Cells["LogsEnd"].Appearance.ResetBackColor(); ultraGrid2.Refresh(); } catch (Exception) { } } private void cmbTextDefault_EditorButtonClick(object sender, EditorButtonEventArgs e) { var TextEdit = new TextEdit { data = ultraGrid1.ActiveCell.Text }; TextEdit.ShowDialog(); if (TextEdit.DialogResult == DialogResult.OK) { ultraGrid1.ActiveCell.Value = TextEdit.data; ultraGrid1.UpdateData(); //if (ultraGrid1.ActiveRow != null) // ultraGrid1.ActiveRow.Cells["Chk"].Value = true; } } private void cmsCopy_ItemClicked(object sender, ToolStripItemClickedEventArgs e) { UltraGrid ug = (sender as ContextMenuStrip).SourceControl as UltraGrid; if (ug == null || ug.ActiveCell == null) { return; } if (e.ClickedItem.Name == "tsmCopy") { Clipboard.SetText(ug.ActiveCell.Text); } else { if (ug.ActiveCell.Activation == Activation.AllowEdit && ultraGrid1.ActiveRow != null && ultraGrid1.ActiveRow.Cells["ConfirmFlag"].Value.ToString() == "未确认") { string text = Clipboard.GetText(); try { ug.ActiveCell.Value = text; } catch (Exception) { } } } } } }