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.

97 lines
4.1 KiB
C#

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.Qingquan.SynchroData
{
#region 网络同步日罐设置
/// <summary>
/// 网络同步日罐设置(禁止使用这种方式更新日罐物料参数)
/// </summary>
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
}