using System; using System.Collections.Generic; using System.Linq; using System.Text; using Mesnac.Action.Base; using System.Windows.Forms; using Mesnac.Basic; using Mesnac.Codd.Session; using System.Data; namespace Mesnac.Action.Feeding.SynchroData { #region 网络同步日罐设置 /// /// 网络同步日罐设置(禁止使用这种方式更新日罐物料参数) /// public class SytJarSynchronous : FeedingAction, IAction { public void Run(RuntimeParameter runtime) { base.RunIni(runtime); if (base.NetType == NetTypes.Local) { base.LogError("{从网络同步日罐设置} 此系统版本为单机版,不能进行数据同步..."); ShowMsg(base.Language(32)); runtime.IsReturn = true; return; } if (!PlanCommon.IsCanConnectServer()) { //连接网络数据库失败... ShowMsg(base.Language(33)); runtime.IsReturn = true; return; } //您确定要执行此操作吗? if (MessageBox.Show(Language(40), Language(1), MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { runtime.IsReturn = true; //终止执行 return; } DatabaseAction action = new DatabaseAction(); ///////本地、服务器连接信息 DataSourceItem Sdsi = action.GetDataSourceItem(Mesnac.Basic.DataSourceFactory.MCDbType.Server); DataSourceItem Ldsi = action.GetDataSourceItem(Mesnac.Basic.DataSourceFactory.MCDbType.Local); //////测试服务器数据库连接 DbHelper dbHelper; dbHelper = action.NewDbHelper(Mesnac.Basic.DataSourceFactory.MCDbType.Server); if (dbHelper == null) { action.LogError("连接服务器数据库失败..."); ShowMsg(base.Language(33)); return; } /////本地数据库 DbHelper dbHelperlocal; dbHelperlocal = action.NewDbHelper(Mesnac.Basic.DataSourceFactory.MCDbType.Local); if (dbHelperlocal == null) { action.LogError("连接本地数据库失败..."); ShowMsg(base.Language(34)); return; } string ServerStr = string.Empty; if (Sdsi.Server != Ldsi.Server) { ServerStr = "[" + Sdsi.Server + "]."; } ///////获取服务器信息 StringBuilder serversqlstr = new StringBuilder(""); serversqlstr.Append(@"select a.Ware_num as JarNum, a.Jar_type as jartype,b.Mater_name as materialname, JarUsed = case Mater_Used when 1 then '使用' else '未用' end from Pmt_wm a left join Pmt_material b on a.Mater_code=b.Mater_code "); serversqlstr.AppendFormat(" where Equip_code='{0}' ", base.CurrEquipCode); dbHelper.CommandText = serversqlstr.ToString(); DataTable dt = dbHelper.ToDataTable(); //StringBuilder loacdsqlstr = new StringBuilder("truncate table sytjar; "); StringBuilder loacdsqlstr = new StringBuilder(""); for (int i = 0; i < dt.Rows.Count; i++) { loacdsqlstr.AppendFormat("insert into sytjar(JarSerial,JarType,MaterialName,JarUsed) values ({0},'{1}','{2}','{3}') ", dt.Rows[i]["JarNum"].ToString(), dt.Rows[i]["jartype"].ToString(), dt.Rows[i]["materialname"].ToString(), dt.Rows[i]["JarUsed"].ToString()); } dbHelperlocal.ClearParameter(); dbHelperlocal.CommandType = CommandType.Text; dbHelperlocal.CommandText = loacdsqlstr.ToString(); dbHelperlocal.ExecuteNonQuery(); //从网络库中下载日罐物料参数表中用到的物料数据 MaterialSynchronous.DownLoadMaterialBySytJar(dbHelperlocal, dbHelper, base.CurrEquipCode); ShowMsg(base.Language(20)); } } #endregion }