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.

168 lines
5.5 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.Windows.Forms;
using System.Data;
using ICSharpCode.Core;
using Mesnac.Controls.Base;
using Mesnac.Action.Base;
using Mesnac.Codd.Session;
using Mesnac.Action.ChemicalWeighing.Entity;
namespace Mesnac.Action.ChemicalWeighing.Station
{
/// <summary>
/// 删除计划业务
/// </summary>
public class DeleteAction : ChemicalWeighingAction, IAction
{
#region 事件定义
/// <summary>
/// 删除工位事件定义
/// </summary>
public static event EventHandler OnDeleteStation;
#endregion
#region 字段定义
private RuntimeParameter _runtime;
private DbMCControl _clientGridControl = null;
#endregion
#region IAction接口实现
public void Run(RuntimeParameter runtime)
{
base.RunIni(runtime);
this._runtime = runtime;
ICSharpCode.Core.LoggingService<DeleteAction>.Debug("工位管理—删除工位业务...");
DbMCControl clientGridControl = this.GetDbMCControlByKey(Mesnac.Basic.DataSourceFactory.MCDbType.Local, "xl_station").FirstOrDefault();
if (clientGridControl == null || !(clientGridControl.BaseControl is DataGridView))
{
ICSharpCode.Core.LoggingService<RefreshAction>.Error("{工位管理—删除工位}缺少工位管理控件...");
return;
}
this._clientGridControl = clientGridControl;
this.DoWork();
}
#endregion
#region 方法定义
/// <summary>
/// 删除计划
/// </summary>
protected void DoWork()
{
this._runtime.BaseControl.MCEnabled = false;
try
{
DataGridView clientGridView = this._clientGridControl.BaseControl as DataGridView;
#region 1 变量定义
string selectStationID = null;
string Recipe_ID = null;
string selectStationName=string.Empty;
xl_station xlstation = null;
#endregion
#region 2 判断是否选择了要删除的工位
if (clientGridView.SelectedRows.Count != 1)
{
MessageBox.Show("请选择一条要删除的工位!", Mesnac.Basic.LanguageHelper.Caption, MessageBoxButtons.OK, MessageBoxIcon.Information);
this._runtime.IsReturn = true;
return;
}
#endregion
#region 3 判断该配方是否可进行删除如果配方正在RT_Plan表中查不允许删除
Recipe_ID = clientGridView.SelectedRows[0].Cells["ID"].Value as string;
if (StationHelper.PlanExistsRecipeID(selectStationID))
{
MessageBox.Show("该工位正在计划列表中,不能进行删除!", Mesnac.Basic.LanguageHelper.Caption, MessageBoxButtons.OK, MessageBoxIcon.Information);
this._runtime.IsReturn = true;
return;
}
#endregion
selectStationID = clientGridView.SelectedRows[0].Cells["ID"].Value as string;
selectStationName = clientGridView.SelectedRows[0].Cells["StationName"].Value as string;
//删除工位前询问
string msg1 = StringParser.Parse(ResourceService.GetString("Mesnac_Action_ChemicalWeighing_Station_DeleteAction_msg1")); //确认删除当前工位(工位名:{0})吗?
msg1 = String.Format(msg1, selectStationName);
DialogResult result = MessageBox.Show(msg1, Mesnac.Basic.LanguageHelper.Caption, MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if (result == DialogResult.Yes)
{
#region 4 获取工位实体
xlstation = StationHelper.GetStation(selectStationID);
#endregion
#region 5 执行删除操作
if (xlstation != null)
{
#region 5.1 删除工位信息
StationHelper.DeleteStation(selectStationID);
#endregion
#region 5.2 删除工位详细信息
StationHelper.DeleteStationSub(selectStationID);
#endregion
#region 5.3 触发事件
if (OnDeleteStation != null)
{
OnDeleteStation(this._runtime.BaseControl.MCRoot, System.EventArgs.Empty);
}
#endregion
MessageBox.Show("工位删除成功!");
}
#endregion
}
}
catch (Exception ex)
{
ICSharpCode.Core.LoggingService<InsertAction>.Error("删除计划异常:" + ex.Message, ex);
#region 记录操作日志
base.DBLog(ex.Message);
#endregion
MessageBox.Show(ex.Message, Mesnac.Basic.LanguageHelper.WarnCaption, MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
finally
{
this._runtime.BaseControl.MCEnabled = true;
}
}
#endregion
}
}