using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Data; using Mesnac.Action.Base; using Mesnac.Codd.Session; using System.Reflection; using Mesnac.Controls.Base; namespace Mesnac.Action.ChemicalWeighing.Product.PptPlan { /// /// 当班计划窗体初始化业务 /// public class InitFormAction : ChemicalWeighingAction,IAction { #region 字段定义 public static bool IsFirstRun = true; //是否首次运行 private RuntimeParameter _runtime; //private DbMCControl _planDateControl = null; //计划日期 //private DbMCControl _pptShiftControl = null; //班次 private DbMCControl _clientGridControl = null; //本地计划控件 #endregion public void Run(RuntimeParameter runtime) { base.RunIni(runtime); #region 首次执行,进行事件订阅 if (IsFirstRun) { IsFirstRun = false; ICSharpCode.Core.LoggingService.Debug("当班计划-窗体初始化业务..."); } #endregion PlanHelper.IsInit = false; //先设置是否已初始化标记为False #region 初始化 #region 获取界面控件 string source = string.Empty; //DbMCControl planDateControl = this.GetDbMCControlByKey(Mesnac.Basic.DataSourceFactory.MCDbType.Local, "[RT_plan].[Plan_Date]").FirstOrDefault(); //DbMCControl pptShiftControl = this.GetDbMCControlByKey(Mesnac.Basic.DataSourceFactory.MCDbType.Local, "Pmt_Shiftime").FirstOrDefault(); DbMCControl clientGridControl = this.GetDbMCControlByKey(Mesnac.Basic.DataSourceFactory.MCDbType.Local, "RT_plan").FirstOrDefault(); //获取本机台计划网格控件 //if (planDateControl == null) //{ // ICSharpCode.Core.LoggingService.Error("{当班计划-窗体加载} 缺少日期选择控件..."); // return; //} //if (pptShiftControl == null) //{ // ICSharpCode.Core.LoggingService.Error("{当班计划-窗体加载} 缺少班次组合框控件..."); // return; //} if (clientGridControl == null) { ICSharpCode.Core.LoggingService.Error("{当班计划-窗体加载} 缺少计划列表网格控件..."); return; } this._runtime = runtime; //this._planDateControl = planDateControl; //this._pptShiftControl = pptShiftControl; this._clientGridControl = clientGridControl; #endregion #region 初始化操作 DataGridView clientGrid = (clientGridControl.BaseControl as DataGridView); this.InitGridViewEvent(clientGrid); //this.InitPlanExecuteType(); this.InitData(); #endregion #endregion PlanHelper.IsInit = true; //初始化完毕后,再设置是否已初始化标记为True } #region 方法定义 #region 网格事件处理方法 /// /// 初始化网格样式 /// /// DataGridView网格控件对象 private void InitGridViewEvent(DataGridView dgv) { if (dgv != null) { PlanHelper.SetDataGridViewStyle(dgv); //设置网格样式 //双击时取消选择行(取消高亮显示) dgv.CellDoubleClick += delegate(object sender, DataGridViewCellEventArgs e) { if (dgv.Rows != null && dgv.Rows.Count > 0) { foreach (DataGridViewRow row in dgv.Rows) { row.Selected = false; } } }; dgv.VisibleChanged += delegate(object sender, EventArgs e) { PlanHelper.SetBackColor(dgv); }; //PlanHelper.SetBackColor(dgv); ContextMenuStrip cms = new ContextMenuStrip(); cms.Items.Add("称量明细"); dgv.ContextMenuStrip = cms; cms.Click += Cms_Click; } } private void Cms_Click(object sender, EventArgs e) { //ShowMsg("11111"); //MessageBox.Show("11111"); } #endregion #region 初始化界面控件数据 /// /// 初始化界面控件数据 /// private void InitData() { #region 取消事件绑定 //List valueChangedList = null; //List cacheValueChangedList = new List(); //PropertyInfo pi1 = this._planDateControl.BaseControl.GetType().GetProperty("ValueChangedList"); //if (pi1 != null) //{ // valueChangedList = pi1.GetValue(this._planDateControl.BaseControl) as List; // cacheValueChangedList.AddRange(valueChangedList); // valueChangedList.Clear(); //} //List selectedChanged = null; //List cacheSelectedChanged = new List(); //PropertyInfo pi2 = this._pptShiftControl.BaseControl.GetType().GetProperty("SelectedChanged"); //if (pi2 != null) //{ // selectedChanged = pi2.GetValue(this._pptShiftControl.BaseControl) as List; // cacheSelectedChanged.AddRange(selectedChanged); // selectedChanged.Clear(); //} #endregion //DataTable shiftTable = ProductHelper.GetShiftData(); //this._pptShiftControl.BaseControl.BindDataSource = shiftTable; if (PlanHelper.PlanLog != null) { //如果记录了上次执行计划的时间和班次,则把日期和班次设置为上次的值 //this._planDateControl.BaseControl.MCValue = PlanHelper.PlanLog.LastDate; //this._pptShiftControl.BaseControl.MCValue = PlanHelper.PlanLog.LastShiftID; //this._planDateControl.BaseControl.MCValue = DateTime.Now.Date; //this._pptShiftControl.BaseControl.MCValue = PlanHelper.PlanLog.LastShiftID; #region 重新绑定事件 //if (pi1 != null && valueChangedList != null) //{ // valueChangedList.AddRange(cacheValueChangedList); //} //if (pi2 != null && selectedChanged != null) //{ // selectedChanged.AddRange(cacheSelectedChanged); //} #endregion } } #endregion #endregion } }