using JinYuan.Helper; using JinYuan.Models; using JinYuan.VirtualDataLibrary; using PLCCommunication; using System; using System.Windows.Forms; namespace LargeSquareOne { public partial class FrmAlarmLog : Form { public FrmAlarmLog() { InitializeComponent(); } private string CurrentTime { get { return DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); } } /// /// 通用的添加系统日志 /// /// /// public void AddLog(bool isError, string info) { if (dgv_Log.InvokeRequired) { this.dgv_Log.Invoke(new Action(AddLog), isError, info); } else { int rowCount = this.dgv_Log.Rows.Add(); this.dgv_Log.Rows[rowCount].Cells[0].Value = CurrentTime; this.dgv_Log.Rows[rowCount].Cells[1].Value = isError ? "错误" : "信息"; this.dgv_Log.Rows[rowCount].Cells[2].Value = info; // 设置最新行为活动行 (当前行) this.dgv_Log.CurrentCell = this.dgv_Log.Rows[this.dgv_Log.Rows.Count - 1].Cells[0]; } var model = new SysLog() { InsertTime = CurrentTime, LogType = "系统日志", Note = info, AlarmType = isError ? "错误" : "信息", Operater = CommonMethods.currentAdmin.LoginName }; //存储到数据库 var b = CommonMethods.db.AddReturnBool(model); if (!b) { LoggerHelp.WriteError($"数据库记录失败. 表:SysLog,内容:{model.ToJsonString()}"); } } /// /// 通用的添加操作日志 /// /// /// public void AddOPLog(bool isError, string info) { if (this.dgv_OPLog.InvokeRequired) { this.dgv_OPLog.Invoke(new Action(AddLog), isError, info); } else { int rowCount = this.dgv_OPLog.Rows.Add(); this.dgv_OPLog.Rows[rowCount].Cells[0].Value = CurrentTime; this.dgv_OPLog.Rows[rowCount].Cells[1].Value = isError ? "错误" : "信息"; this.dgv_OPLog.Rows[rowCount].Cells[2].Value = info; // 设置最新行为活动行 (当前行) this.dgv_OPLog.CurrentCell = this.dgv_OPLog.Rows[this.dgv_OPLog.Rows.Count - 1].Cells[0]; } //存储到数据库 CommonMethods.db.AddReturnBool(new SysLog() { InsertTime = CurrentTime, LogType = "操作日志", Note = info, AlarmType = isError ? "错误" : "信息", Operater = CommonMethods.currentAdmin.LoginName }); } /// /// 通用的添加报警信息 /// /// sh /// public void AddAlarm(SysLog sysLog) { if (this.dgv_Alarm.InvokeRequired) { this.dgv_Alarm.Invoke(new Action(AddAlarm), sysLog); } else { int rowCount = this.dgv_Alarm.Rows.Add(); this.dgv_Alarm.Rows[rowCount].Cells[0].Value = sysLog.InsertTime; this.dgv_Alarm.Rows[rowCount].Cells[1].Value = sysLog.AlarmType; this.dgv_Alarm.Rows[rowCount].Cells[2].Value = sysLog.Note; // 设置最新行为活动行 (当前行) this.dgv_Alarm.CurrentCell = this.dgv_Alarm.Rows[this.dgv_Alarm.Rows.Count - 1].Cells[0]; } //存储到数据库 CommonMethods.db.AddReturnBool(sysLog); } /// /// 通用的添加并显示报警信息 /// /// sh /// public void ShowAlarm(string info) { if (this.dgv_Alarm.InvokeRequired) { this.dgv_Alarm.Invoke(new Action(ShowAlarm), info); } else { int rowCount = this.dgv_Alarm.Rows.Add(); this.dgv_Alarm.Rows[rowCount].Cells[0].Value = CurrentTime; this.dgv_Alarm.Rows[rowCount].Cells[1].Value = "停机报警"; this.dgv_Alarm.Rows[rowCount].Cells[2].Value = info; // 设置最新行为活动行 (当前行) this.dgv_Alarm.CurrentCell = this.dgv_Alarm.Rows[this.dgv_Alarm.Rows.Count - 1].Cells[0]; //dgv清理 if (this.dgv_Alarm.RowCount > 300) { //this.dgv_Alarm.Rows.RemoveAt(0); this.dgv_Alarm.Rows.Clear(); GC.Collect(); } } } private void dgv_Log_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e) { DataGridViewHelper.DgvRowPostPaint((DataGridView)sender, e); } #region 减少闪烁 protected override CreateParams CreateParams { get { CreateParams parss = base.CreateParams; parss.ExStyle |= 0x02000000; return parss; } } #endregion } }