You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

198 lines
7.1 KiB
C#

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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
{
/// <summary>
/// 当班计划窗体初始化业务
/// </summary>
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<InitFormAction>.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<InitFormAction>.Error("{当班计划-窗体加载} 缺少日期选择控件...");
// return;
//}
//if (pptShiftControl == null)
//{
// ICSharpCode.Core.LoggingService<InitFormAction>.Error("{当班计划-窗体加载} 缺少班次组合框控件...");
// return;
//}
if (clientGridControl == null)
{
ICSharpCode.Core.LoggingService<InitFormAction>.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 网格事件处理方法
/// <summary>
/// 初始化网格样式
/// </summary>
/// <param name="dgv">DataGridView网格控件对象</param>
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 初始化界面控件数据
/// <summary>
/// 初始化界面控件数据
/// </summary>
private void InitData()
{
#region 取消事件绑定
//List<DesignAction> valueChangedList = null;
//List<DesignAction> cacheValueChangedList = new List<DesignAction>();
//PropertyInfo pi1 = this._planDateControl.BaseControl.GetType().GetProperty("ValueChangedList");
//if (pi1 != null)
//{
// valueChangedList = pi1.GetValue(this._planDateControl.BaseControl) as List<DesignAction>;
// cacheValueChangedList.AddRange(valueChangedList);
// valueChangedList.Clear();
//}
//List<DesignAction> selectedChanged = null;
//List<DesignAction> cacheSelectedChanged = new List<DesignAction>();
//PropertyInfo pi2 = this._pptShiftControl.BaseControl.GetType().GetProperty("SelectedChanged");
//if (pi2 != null)
//{
// selectedChanged = pi2.GetValue(this._pptShiftControl.BaseControl) as List<DesignAction>;
// 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
}
}