using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data;
using Mesnac.Action.Base;
using Mesnac.Codd.Session;
namespace Mesnac.Action.ChemicalWeighing.Alarm.PmtAlarm
{
///
/// 报警参数窗体初始化
///
public class InitFormAction : ChemicalWeighingAction, IAction
{
private RuntimeParameter _runtime;
public void Run(RuntimeParameter runtime)
{
base.RunIni(runtime); //必须要调用的
this._runtime = runtime;
ICSharpCode.Core.LoggingService.Debug("报警参数-窗体初始化...");
//通用调用刷新计划事件订阅
ModifyAction.OnModifyRefresh -= Process_Event;
ModifyAction.OnModifyRefresh += Process_Event;
RefreshAction.OnRefresh -= Process_Event;
RefreshAction.OnRefresh += Process_Event;
DbMCControl clientGridControl = this.GetDbMCControlByKey(Mesnac.Basic.DataSourceFactory.MCDbType.Local, "Pmt_Alarm").FirstOrDefault();
//DbMCControl ctlAlarmPLC = base.GetDbMCControlByKey(Mesnac.Basic.DataSourceFactory.MCDbType.Local, "[Pmt_Alarm].[Alarm_PLC]").FirstOrDefault();
//if (ctlAlarmPLC == null || !(ctlAlarmPLC.BaseControl is ComboBox))
//{
// ICSharpCode.Core.LoggingService.Warn("报警参数-窗体初始化-界面中缺少报警PLC组合框控件...");
// return;
//}
//DataTable dt = new DataTable();
//dt.Columns.Add("ItemName", typeof(string));
//dt.Columns.Add("ItemValue", typeof(string));
//DataRow dr = dt.NewRow();
//dr["ItemName"] = Mesnac.Basic.LanguageHelper.PleaseSelect;
//dr["ItemValue"] = Mesnac.Basic.LanguageHelper.PleaseSelect;
//dt.Rows.Add(dr);
//foreach (string plc in Mesnac.Equips.Factory.Instance.AllEquips.Keys)
//{
// dr = dt.NewRow();
// dr["ItemName"] = plc;
// dr["ItemValue"] = plc;
// dt.Rows.Add(dr);
//}
//ctlAlarmPLC.BaseControl.BindDataSource = dt;
//DbMCControl clientGridControl = this.GetDbMCControlByKey(Mesnac.Basic.DataSourceFactory.MCDbType.Local, "Pmt_Alarm").FirstOrDefault();
if (clientGridControl == null || !(clientGridControl.BaseControl is DataGridView))
{
ICSharpCode.Core.LoggingService.Error("{预警管理—初始化}缺少警管理控件...");
return;
}
DataGridView alarmGridView = clientGridControl.BaseControl as DataGridView;
DataTable table = AlarmHelper.GetPmtAlarmInfoTable();
lock (String.Empty)
{
//本地计划
if (clientGridControl != null && clientGridControl.BaseControl != null)
{
clientGridControl.BaseControl.BindDataSource = null;
clientGridControl.BaseControl.BindDataSource = table;
}
else
{
ICSharpCode.Core.LoggingService.Warn("预警管理初始化失败:本地计划控件为Null...");
}
}
}
#region 事件处理方法
private void Process_Event(object sender, EventArgs e)
{
if (sender is RuntimeParameter)
{
this.Run(sender as RuntimeParameter);
}
else
{
this.Run(this._runtime);
}
}
#endregion
}
}