using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Data; using ICSharpCode.Core; using Mesnac.Action.Base; using Mesnac.Codd.Session; namespace Mesnac.Action.ChemicalWeighing.Barrel { /// /// 导入报警参数业务 /// public class ImportAction: ChemicalWeighingAction, IAction { #region 事件定义 /// /// 新增物料事件定义 /// public static event EventHandler OnInsertBarrel; #endregion private RuntimeParameter _runtime; private string caption = StringParser.Parse(ResourceService.GetString("Mesnac_Dialog_Caption")); //提示 public void Run(RuntimeParameter runtime) { string msg = "确定要导入料桶吗?";// StringParser.Parse(ResourceService.GetString("Mesnac_Action_ChemicalWeighing_Alarm_PmtAlarm_ImportAction_msg")); //导入操作会覆盖当前所有报警信息!是否继续? if (MessageBox.Show(msg, caption, MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.Yes) { return; } base.RunIni(runtime); //必须要调用的 this._runtime = runtime; ICSharpCode.Core.LoggingService.Debug("料桶参数-导入..."); DbHelper dbHelper = Mesnac.Basic.DataSourceFactory.Instance.GetDbHelper(Mesnac.Basic.DataSourceFactory.MCDbType.Local); if (dbHelper == null) { ICSharpCode.Core.LoggingService.Error("获取本地数据连接失败..."); return; } OpenFileDialog ofd = new OpenFileDialog(); ofd.Filter = "xls files(*.xls)|*.xls"; ofd.AddExtension = true; DialogResult result = ofd.ShowDialog(); if (result == DialogResult.OK) { try { string fileName = ofd.FileName; if (!String.IsNullOrEmpty(fileName)) { DataSet ds = Mesnac.Basic.DataToFileHandler.Instance.FromExcel(fileName); //判断导入Excel表格式的合法性 if (!ds.Tables[0].Columns.Contains("BarrelName") || !ds.Tables[0].Columns.Contains("BarCode") ) { string msg4 = StringParser.Parse(ResourceService.GetString("Mesnac_Action_ChemicalWeighing_Alarm_PmtAlarm_ImportAction_msg4")); //导入的Excel表格式不正确!请检查后重试! MessageBox.Show(msg4); return; } //string del = "truncate table Pmt_Alarm"; //dbHelper.ClearParameter(); //dbHelper.CommandType = CommandType.Text; //dbHelper.CommandText = del; //dbHelper.ExecuteNonQuery(); //truncate table PmtAlarm if (ds != null && ds.Tables.Count > 0) { string sqlstr = @"insert into Hw_Barrel(BarrelName, BarCode)VALUES(@BarrelName, @BarCode)"; foreach (DataRow row in ds.Tables[0].Rows) { dbHelper.ClearParameter(); dbHelper.CommandType = CommandType.Text; dbHelper.CommandText = sqlstr; dbHelper.AddParameter("@BarrelName", row["BarrelName"]); dbHelper.AddParameter("@BarCode", row["BarCode"]); dbHelper.ExecuteNonQuery(); } string msg1 = StringParser.Parse(ResourceService.GetString("Mesnac_Action_ChemicalWeighing_Alarm_PmtAlarm_ImportAction_msg1")); //从Excel导入报警参数数据完毕! ICSharpCode.Core.LoggingService.Info(msg1); #region 记录操作日志 base.DBLog(msg1); #endregion MessageBox.Show(msg1, Mesnac.Basic.LanguageHelper.Caption, MessageBoxButtons.OK, MessageBoxIcon.Information); } else { string msg2 = StringParser.Parse(ResourceService.GetString("Mesnac_Action_ChemicalWeighing_Alarm_PmtAlarm_ImportAction_msg2")); //从Excel中导入报警参数数据失败:Excel中没有数据! ICSharpCode.Core.LoggingService.Warn(msg2); #region 记录操作日志 base.DBLog(msg2); #endregion MessageBox.Show(String.Format(msg2), Mesnac.Basic.LanguageHelper.WarnCaption, MessageBoxButtons.OK, MessageBoxIcon.Warning); } } } catch (Exception ex) { string msg3 = StringParser.Parse(ResourceService.GetString("Mesnac_Action_ChemicalWeighing_Alarm_PmtAlarm_ImportAction_msg3")); //从Excel导入报警参数数据失败:{0}! msg3 = String.Format(msg3, ex.Message); ICSharpCode.Core.LoggingService.Error(msg3); #region 记录操作日志 base.DBLog(msg3); #endregion MessageBox.Show(msg3, Mesnac.Basic.LanguageHelper.WarnCaption, MessageBoxButtons.OK, MessageBoxIcon.Warning); } #region 触发事件 if (OnInsertBarrel != null) { OnInsertBarrel(this._runtime.BaseControl.MCRoot, System.EventArgs.Empty); } #endregion //刷新DataGridView数据 //DbMCControl dgPmtAlarmInfo = this.GetDbMCControlByKey(Mesnac.Basic.DataSourceFactory.MCDbType.Local, "Hw_Barrel").FirstOrDefault(); //if (dgPmtAlarmInfo == null || !(dgPmtAlarmInfo.BaseControl is DataGridView)) //{ // ICSharpCode.Core.LoggingService.Warn("料桶导入-导入-缺少料桶参数DataGridView控件..."); // runtime.IsReturn = false; // return; //} //DataTable table = dbHelper.GetDataTableBySql(dgPmtAlarmInfo.BaseControl.ActionDataSource); //dgPmtAlarmInfo.BaseControl.BindDataSource = null; //dgPmtAlarmInfo.BaseControl.BindDataSource = table; } } } }