using System; using System.Linq; using System.Windows.Forms; using Mesnac.Action.Base; using Mesnac.Action.ChemicalWeighing.LjMaterial; namespace Mesnac.Action.ChemicalWeighing.LjPressure { public class UpAction:ChemicalWeighingAction, IAction { private RuntimeParameter _runtime; public static event EventHandler OnHandler; public void Run(RuntimeParameter runtime) { base.RunIni(runtime); //必须调用 this._runtime = runtime; DbMCControl materialGridControl = this.GetDbMCControlByKey(Mesnac.Basic.DataSourceFactory.MCDbType.Local, "pressureSetting") .FirstOrDefault(); //获取物料数据控件 if (MessageBox.Show("确定上传压力参数到数据库?","提示",MessageBoxButtons.OKCancel,MessageBoxIcon.Information) == DialogResult.OK) { DoWord(); }; } private void DoWord() { LoadingHelper.ShowLoadingScreen(); var i = LjHelp.WatchDog; if (i == 0) { LoadingHelper.CloseForm(); MessageBox.Show("PLC通讯失败"); ICSharpCode.Core.LoggingService.Warn("PLC通讯失败"); return; } var pressureSettingViews = PressurePLC.UpdateFromPlc(); foreach (var v in pressureSettingViews) { string sql = $"update PressureSetting set LowLimit={v.LowLimit},HighLimit={v.HighLimit} where Id={v.Id}"; DBHelp.ExecuteNonQuery(sql); } LoadingHelper.CloseForm(); if (OnHandler != null) { OnHandler(this._runtime.BaseControl.MCRoot, System.EventArgs.Empty); } } } }