using System; using System.Collections.Generic; using System.Linq; using System.Text; using Mesnac.Action.Base; using System.Windows.Forms; using Mesnac.Codd.Session; using System.Data; using Mesnac.Action.Feeding.BasicInfo; namespace Mesnac.Action.Feeding.SynchroData { /// /// 从网络下载本机台的所有配方及相关物料数据 /// public class RecipeDataSynchronous : FeedingAction, IAction { public void Run(RuntimeParameter runtime) { base.RunIni(runtime); if (runtime.Sender is Control) { (runtime.Sender as Control).Enabled = false; } try { if (base.NetType == NetTypes.Local) { ICSharpCode.Core.LoggingService.Error("此系统版本为单机版,不能进行数据同步..."); base.ShowMsg(Language(32)); runtime.IsReturn = true; return; } //if (!PlanCommon.PingIpOrDomainName(base.GetConfigValue("ServerIP", "127.0.0.1"))) if (!PlanCommon.IsCanConnectServer()) { //网络不通 base.ShowMsg(Language(33), Language(1), MessageBoxButtons.OK, MessageBoxIcon.Information); runtime.IsReturn = true; return; } if (MessageBox.Show(Language(40), Language(1), MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.Yes) { DbHelper serverHelper = base.NewDbHelper(Mesnac.Basic.DataSourceFactory.MCDbType.Server); if (serverHelper == null) { //连接服务器数据库失败 MessageBox.Show(Language(33), Language(1), MessageBoxButtons.OK, MessageBoxIcon.Information); runtime.IsReturn = true; return; } //查询本机台的所有配方(正用、且审批通过的配方) serverHelper.CommandType = System.Data.CommandType.Text; serverHelper.CommandText = "select Mater_Code,Edt_Code from pmt_recipe where Equip_Code = @EquipCode and Recipe_State=1 and Audit_flag = 1"; serverHelper.AddParameter("@EquipCode", base.CurrEquipCode); DataTable recipeServerTable = serverHelper.ToDataTable(); if (recipeServerTable != null && recipeServerTable.Rows.Count > 0) { NetRecipe netRecipe = new NetRecipe(); foreach (DataRow row in recipeServerTable.Rows) { string materCode = String.Empty; string edtCode = String.Empty; object objMaterCode = row["Mater_Code"]; object objEdtCode = row["Edt_Code"]; if (objMaterCode != null && objMaterCode != System.DBNull.Value) { materCode = objMaterCode.ToString(); } if (objEdtCode != null && objEdtCode != System.DBNull.Value) { edtCode = objEdtCode.ToString(); } netRecipe.DownloadRecipe(base.CurrEquipCode, materCode.Trim(), edtCode.Trim()); } } MessageBox.Show(Language(41), Language(1), MessageBoxButtons.OK, MessageBoxIcon.Information); } } catch (Exception ex) { ICSharpCode.Core.LoggingService.Error("从网络现在所有配方数据失败:" + ex.Message, ex); MessageBox.Show(Language(295), Language(1), MessageBoxButtons.OK, MessageBoxIcon.Information); runtime.IsReturn = true; } finally { if (runtime.Sender is Control) { (runtime.Sender as Control).Enabled = true; } } } } }