liulb@mesnac.com 1 year ago
parent c491d0af76
commit d7d9d8bf1f

@ -2052,7 +2052,7 @@ namespace Mesnac.Action.ChemicalWeighing
public DataKeyValue solvent_Total = new DataKeyValue("DB110.DBW24");
public DataKeyValue solvent_startScale = new DataKeyValue("DB110.DBW26");
public DataKeyValue solvent_stopScale = new DataKeyValue("DB110.DBW28");
#region DosStep 写入区
public DataKeyValue solvent_DosStep0_MatCode_1 = new DataKeyValue("DB110.DBW30");
public DataKeyValue solvent_DosStep0_Set_1 = new DataKeyValue("DB110.DBW32");
@ -2375,116 +2375,139 @@ namespace Mesnac.Action.ChemicalWeighing
public DataKeyValue solvent_SaveData2_RActTol_1 = new DataKeyValue("DB110.DBW660");
public DataKeyValue solvent_SaveData2_RRate_1 = new DataKeyValue("DB110.DBW662");
public DataKeyValue solvent_SaveData2_RPureWeight_1 = new DataKeyValue("DB110.DBW664");
public DataKeyValue solvent_SaveData3_RMatCode1 = new DataKeyValue("DB110.DBW666");
public DataKeyValue solvent_SaveData3_RActWeight_1 = new DataKeyValue("DB110.DBW668");
public DataKeyValue solvent_SaveData3_RActTol_1 = new DataKeyValue("DB110.DBW670");
public DataKeyValue solvent_SaveData3_RRate_1 = new DataKeyValue("DB110.DBW672");
public DataKeyValue solvent_SaveData3_RPureWeight_1 = new DataKeyValue("DB110.DBW674");
public DataKeyValue solvent_SaveData4_RMatCode1 = new DataKeyValue("DB110.DBW676");
public DataKeyValue solvent_SaveData4_RActWeight_1 = new DataKeyValue("DB110.DBW678");
public DataKeyValue solvent_SaveData4_RActTol_1 = new DataKeyValue("DB110.DBW680");
public DataKeyValue solvent_SaveData4_RRate_1 = new DataKeyValue("DB110.DBW682");
public DataKeyValue solvent_SaveData4_RPureWeight_1 = new DataKeyValue("DB110.DBW684");
public DataKeyValue solvent_SaveData5_RMatCode1 = new DataKeyValue("DB110.DBW686");
public DataKeyValue solvent_SaveData5_RActWeight_1 = new DataKeyValue("DB110.DBW688");
public DataKeyValue solvent_SaveData5_RActTol_1 = new DataKeyValue("DB110.DBW690");
public DataKeyValue solvent_SaveData5_RRate_1 = new DataKeyValue("DB110.DBW692");
public DataKeyValue solvent_SaveData5_RPureWeight_1 = new DataKeyValue("DB110.DBW694");
public DataKeyValue solvent_SaveData6_RMatCode1 = new DataKeyValue("DB110.DBW696");
public DataKeyValue solvent_SaveData6_RActWeight_1 = new DataKeyValue("DB110.DBW698");
public DataKeyValue solvent_SaveData6_RActTol_1 = new DataKeyValue("DB110.DBW700");
public DataKeyValue solvent_SaveData6_RRate_1 = new DataKeyValue("DB110.DBW702");
public DataKeyValue solvent_SaveData6_RPureWeight_1 = new DataKeyValue("DB110.DBW704");
public DataKeyValue solvent_SaveData7_RMatCode1 = new DataKeyValue("DB110.DBW706");
public DataKeyValue solvent_SaveData7_RActWeight_1 = new DataKeyValue("DB110.DBW708");
public DataKeyValue solvent_SaveData7_RActTol_1 = new DataKeyValue("DB110.DBW710");
public DataKeyValue solvent_SaveData7_RRate_1 = new DataKeyValue("DB110.DBW712");
public DataKeyValue solvent_SaveData7_RPureWeight_1 = new DataKeyValue("DB110.DBW714");
public DataKeyValue solvent_SaveData8_RMatCode1 = new DataKeyValue("DB110.DBW716");
public DataKeyValue solvent_SaveData8_RActWeight_1 = new DataKeyValue("DB110.DBW718");
public DataKeyValue solvent_SaveData8_RActTol_1 = new DataKeyValue("DB110.DBW720");
public DataKeyValue solvent_SaveData8_RRate_1 = new DataKeyValue("DB110.DBW722");
public DataKeyValue solvent_SaveData8_RPureWeight_1 = new DataKeyValue("DB110.DBW724");
public DataKeyValue solvent_SaveData9_RMatCode1 = new DataKeyValue("DB110.DBW726");
public DataKeyValue solvent_SaveData9_RActWeight_1 = new DataKeyValue("DB110.DBW728");
public DataKeyValue solvent_SaveData9_RActTol_1 = new DataKeyValue("DB110.DBW730");
public DataKeyValue solvent_SaveData9_RRate_1 = new DataKeyValue("DB110.DBW732");
public DataKeyValue solvent_SaveData9_RPureWeight_1 = new DataKeyValue("DB110.DBW734");
public DataKeyValue solvent_SaveData10_RMatCode1 = new DataKeyValue("DB110.DBW736");
public DataKeyValue solvent_SaveData10_RActWeight_1 = new DataKeyValue("DB110.DBW738");
public DataKeyValue solvent_SaveData10_RActTol_1 = new DataKeyValue("DB110.DBW740");
public DataKeyValue solvent_SaveData10_RRate_1 = new DataKeyValue("DB110.DBW742");
public DataKeyValue solvent_SaveData10_RPureWeight_1 = new DataKeyValue("DB110.DBW744");
public DataKeyValue solvent_SaveData11_RMatCode1 = new DataKeyValue("DB110.DBW746");
public DataKeyValue solvent_SaveData11_RActWeight_1 = new DataKeyValue("DB110.DBW748");
public DataKeyValue solvent_SaveData11_RActTol_1 = new DataKeyValue("DB110.DBW750");
public DataKeyValue solvent_SaveData11_RRate_1 = new DataKeyValue("DB110.DBW752");
public DataKeyValue solvent_SaveData11_RPureWeight_1 = new DataKeyValue("DB110.DBW754");
public DataKeyValue solvent_SaveData12_RMatCode1 = new DataKeyValue("DB110.DBW756");
public DataKeyValue solvent_SaveData12_RActWeight_1 = new DataKeyValue("DB110.DBW758");
public DataKeyValue solvent_SaveData12_RActTol_1 = new DataKeyValue("DB110.DBW760");
public DataKeyValue solvent_SaveData12_RRate_1 = new DataKeyValue("DB110.DBW762");
public DataKeyValue solvent_SaveData12_RPureWeight_1 = new DataKeyValue("DB110.DBW764");
public DataKeyValue solvent_SaveData13_RMatCode1 = new DataKeyValue("DB110.DBW766");
public DataKeyValue solvent_SaveData13_RActWeight_1 = new DataKeyValue("DB110.DBW768");
public DataKeyValue solvent_SaveData13_RActTol_1 = new DataKeyValue("DB110.DBW770");
public DataKeyValue solvent_SaveData13_RRate_1 = new DataKeyValue("DB110.DBW772");
public DataKeyValue solvent_SaveData13_RPureWeight_1 = new DataKeyValue("DB110.DBW774");
public DataKeyValue solvent_SaveData14_RMatCode1 = new DataKeyValue("DB110.DBW776");
public DataKeyValue solvent_SaveData14_RActWeight_1 = new DataKeyValue("DB110.DBW778");
public DataKeyValue solvent_SaveData14_RActTol_1 = new DataKeyValue("DB110.DBW780");
public DataKeyValue solvent_SaveData14_RRate_1 = new DataKeyValue("DB110.DBW782");
public DataKeyValue solvent_SaveData14_RPureWeight_1 = new DataKeyValue("DB110.DBW784");
public DataKeyValue solvent_SaveData15_RMatCode1 = new DataKeyValue("DB110.DBW786");
public DataKeyValue solvent_SaveData15_RActWeight_1 = new DataKeyValue("DB110.DBW788");
public DataKeyValue solvent_SaveData15_RActTol_1 = new DataKeyValue("DB110.DBW790");
public DataKeyValue solvent_SaveData15_RRate_1 = new DataKeyValue("DB110.DBW792");
public DataKeyValue solvent_SaveData15_RPureWeight_1 = new DataKeyValue("DB110.DBW794");
public DataKeyValue solvent_SaveData16_RMatCode1 = new DataKeyValue("DB110.DBW796");
public DataKeyValue solvent_SaveData16_RActWeight_1 = new DataKeyValue("DB110.DBW798");
public DataKeyValue solvent_SaveData16_RActTol_1 = new DataKeyValue("DB110.DBW800");
public DataKeyValue solvent_SaveData16_RRate_1 = new DataKeyValue("DB110.DBW802");
public DataKeyValue solvent_SaveData16_RPureWeight_1 = new DataKeyValue("DB110.DBW804");
public DataKeyValue solvent_SaveData17_RMatCode1 = new DataKeyValue("DB110.DBW806");
public DataKeyValue solvent_SaveData17_RActWeight_1 = new DataKeyValue("DB110.DBW808");
public DataKeyValue solvent_SaveData17_RActTol_1 = new DataKeyValue("DB110.DBW810");
public DataKeyValue solvent_SaveData17_RRate_1 = new DataKeyValue("DB110.DBW812");
public DataKeyValue solvent_SaveData17_RPureWeight_1 = new DataKeyValue("DB110.DBW814");
public DataKeyValue solvent_SaveData18_RMatCode1 = new DataKeyValue("DB110.DBW816");
public DataKeyValue solvent_SaveData18_RActWeight_1 = new DataKeyValue("DB110.DBW818");
public DataKeyValue solvent_SaveData18_RActTol_1 = new DataKeyValue("DB110.DBW820");
public DataKeyValue solvent_SaveData18_RRate_1 = new DataKeyValue("DB110.DBW822");
public DataKeyValue solvent_SaveData18_RPureWeight_1 = new DataKeyValue("DB110.DBW824");
public DataKeyValue solvent_SaveData19_RMatCode1 = new DataKeyValue("DB110.DBW826");
public DataKeyValue solvent_SaveData19_RActWeight_1 = new DataKeyValue("DB110.DBW828");
public DataKeyValue solvent_SaveData19_RActTol_1 = new DataKeyValue("DB110.DBW830");
public DataKeyValue solvent_SaveData19_RRate_1 = new DataKeyValue("DB110.DBW832");
public DataKeyValue solvent_SaveData19_RPureWeight_1 = new DataKeyValue("DB110.DBW834");
public DataKeyValue solvent_SaveData20_RMatCode1 = new DataKeyValue("DB110.DBW836");
public DataKeyValue solvent_SaveData20_RActWeight_1 = new DataKeyValue("DB110.DBW838");
public DataKeyValue solvent_SaveData20_RActTol_1 = new DataKeyValue("DB110.DBW840");
public DataKeyValue solvent_SaveData20_RRate_1 = new DataKeyValue("DB110.DBW842");
public DataKeyValue solvent_SaveData20_RPureWeight_1 = new DataKeyValue("DB110.DBW844");
public DataKeyValue solvent_SaveData21_RMatCode1 = new DataKeyValue("DB110.DBW846");
public DataKeyValue solvent_SaveData21_RActWeight_1 = new DataKeyValue("DB110.DBW848");
public DataKeyValue solvent_SaveData21_RActTol_1 = new DataKeyValue("DB110.DBW850");
public DataKeyValue solvent_SaveData21_RRate_1 = new DataKeyValue("DB110.DBW852");
public DataKeyValue solvent_SaveData21_RPureWeight_1 = new DataKeyValue("DB110.DBW854");
public DataKeyValue solvent_SaveData22_RMatCode1 = new DataKeyValue("DB110.DBW856");
public DataKeyValue solvent_SaveData22_RActWeight_1 = new DataKeyValue("DB110.DBW858");
public DataKeyValue solvent_SaveData22_RActTol_1 = new DataKeyValue("DB110.DBW860");
public DataKeyValue solvent_SaveData22_RRate_1 = new DataKeyValue("DB110.DBW862");
public DataKeyValue solvent_SaveData22_RPureWeight_1 = new DataKeyValue("DB110.DBW864");
public DataKeyValue solvent_SaveData23_RMatCode1 = new DataKeyValue("DB110.DBW866");
public DataKeyValue solvent_SaveData23_RActWeight_1 = new DataKeyValue("DB110.DBW868");
public DataKeyValue solvent_SaveData23_RActTol_1 = new DataKeyValue("DB110.DBW870");
public DataKeyValue solvent_SaveData23_RRate_1 = new DataKeyValue("DB110.DBW872");
public DataKeyValue solvent_SaveData23_RPureWeight_1 = new DataKeyValue("DB110.DBW874");
public DataKeyValue solvent_SaveData24_RMatCode1 = new DataKeyValue("DB110.DBW876");
public DataKeyValue solvent_SaveData24_RActWeight_1 = new DataKeyValue("DB110.DBW878");
public DataKeyValue solvent_SaveData24_RActTol_1 = new DataKeyValue("DB110.DBW880");
public DataKeyValue solvent_SaveData24_RRate_1 = new DataKeyValue("DB110.DBW882");
public DataKeyValue solvent_SaveData24_RPureWeight_1 = new DataKeyValue("DB110.DBW884");
public DataKeyValue solvent_SaveData25_RMatCode1 = new DataKeyValue("DB110.DBW886");
public DataKeyValue solvent_SaveData25_RActWeight_1 = new DataKeyValue("DB110.DBW888");
public DataKeyValue solvent_SaveData25_RActTol_1 = new DataKeyValue("DB110.DBW890");
@ -2866,6 +2889,7 @@ namespace Mesnac.Action.ChemicalWeighing
public DataKeyValue solvent_SaveData100_RRate_1 = new DataKeyValue("DB110.DBW1642");
public DataKeyValue solvent_SaveData100_RPureWeight_1 = new DataKeyValue("DB110.DBW1644");
#endregion
#region Station
@ -2940,6 +2964,7 @@ namespace Mesnac.Action.ChemicalWeighing
public DataKeyValue solvent_status05 = new DataKeyValue("DB110.DBW1770");//禁止操作
#endregion
public DataKeyValue solvent_SystemRuning = new DataKeyValue("DB110.DBW1780");////1为有配方其他没有
public DataKeyValue solvent_Configweight1 = new DataKeyValue("DB110.DBW1782");//人工确认
#endregion
#region 普力通上位机-溶剂-2号地磅
@ -3849,7 +3874,7 @@ namespace Mesnac.Action.ChemicalWeighing
public DataKeyValue solvent2_status05 = new DataKeyValue("DB111.DBW1770");//禁止操作
#endregion
public DataKeyValue solvent2_SystemRuning = new DataKeyValue("DB111.DBW1780");////1为有配方其他没有
public DataKeyValue solvent_Configweight2 = new DataKeyValue("DB111.DBW1782");//人工确认
#endregion
}
}

@ -0,0 +1,43 @@
using HslCommunication.Profinet.Siemens;
using System;
namespace Mesnac.Action.ChemicalWeighing
{
public class PlcConnect
{
private static readonly Lazy<SiemensS7Net> lazy = new Lazy<SiemensS7Net>(() => new PlcConnect().SiemensS7NetConnection());
public static SiemensS7Net Instance => lazy.Value;
private PlcConnect()
{
}
public SiemensS7Net SiemensS7NetConnection()
{
SiemensPLCS siemensPLCS = SiemensPLCS.S1500;
SiemensS7Net s7 = new SiemensS7Net(siemensPLCS);
//配料IP
s7.IpAddress = "192.168.10.130";
s7.Port = 102;
var su = s7.ConnectServer();
if (!su.IsSuccess)
{
s7.IpAddress = "192.168.10.130";
s7.Port = 102;
var su1 = s7.ConnectServer();
if (!su1.IsSuccess)
{
return new SiemensS7Net(siemensPLCS);
}
}
return s7;
}
}
}

@ -0,0 +1,259 @@
using Mesnac.Action.ChemicalWeighing.DBHelper;
using Mesnac.Action.ChemicalWeighing.Entity;
using Mesnac.Action.ChemicalWeighing.Entity.PptPlan;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Mesnac.Action.ChemicalWeighing
{
public class SolventPlanHelper
{
#region 根据计划号获取下发计划任务——地磅
/// <summary>
/// 根据计划号获取下发计划任务
/// </summary>
/// <param name="planId"></param>
/// <param name="recipeId"></param>
/// <returns></returns>
/// <exception cref="Exception"></exception>
public static List<MetagePlan> GetPlan()
{
try
{
string strSql = @"select w.Weight_Id MID, p.Dosing_Id,p.Plan_Id,p.Plan_Serial,p.Recipe_ID,p.Recipe_Name,p.Version,p.Plan_Num,p.Real_Num,p.Shift_Id,p.Shift_Class,p.Plan_State,p.Plan_StateText,p.Plan_TotalWeight,p.Plan_TotalError,r.Total_Weight,r.Total_Error,m.ID as MaterialID,m.Material_name,b.Bin_Serial as Station,b.Bin_Name as StationName,w.Set_Weight,w.Set_Error,p.IsRetransmission,p.Retransmission_Num,w.IsRate,w.TheoryRate,p.Exec_Num
from RT_plan p left join Pmt_recipe r on p.Recipe_ID=r.ID
left join Pmt_weigh w on r.ID=w.Recipe_ID
left join Pmt_material m on w.Material_ID=m.ID
left join Pmt_Bin b on m.ID=b.Material_ID where p.Weighbridge='1' and p.Plan_State=3 ";
IFreeSql fsql = FreeHelper.Instance;
List<MetagePlan> list = fsql.Select<MetagePlan>().WithSql(strSql).ToList();
var planList = list.OrderBy(d => d.MID);
return list;
}
catch (Exception ex)
{
Console.WriteLine($"获取下发计划失败:{ex.Message}");
return null;
}
}
#endregion
#region 根据计划号获取下发计划任务——地磅2
/// <summary>
/// 根据计划号获取下发计划任务
/// </summary>
/// <param name="planId"></param>
/// <param name="recipeId"></param>
/// <returns></returns>
/// <exception cref="Exception"></exception>
public static List<MetagePlan> GetPlan2()
{
try
{
string strSql = @"select w.Weight_Id MID, p.Dosing_Id,p.Plan_Id,p.Plan_Serial,p.Recipe_ID,p.Recipe_Name,p.Version,p.Plan_Num,p.Real_Num,p.Shift_Id,p.Shift_Class,p.Plan_State,p.Plan_StateText,p.Plan_TotalWeight,p.Plan_TotalError,r.Total_Weight,r.Total_Error,m.ID as MaterialID,m.Material_name,b.Bin_Serial as Station,b.Bin_Name as StationName,w.Set_Weight,w.Set_Error,p.IsRetransmission,p.Retransmission_Num,w.IsRate,w.TheoryRate,p.Exec_Num
from RT_plan p left join Pmt_recipe r on p.Recipe_ID=r.ID
left join Pmt_weigh w on r.ID=w.Recipe_ID
left join Pmt_material m on w.Material_ID=m.ID
left join Pmt_Bin b on m.ID=b.Material_ID where p.Weighbridge='2' and p.Plan_State=3 ";
IFreeSql fsql = FreeHelper.Instance;
List<MetagePlan> list = fsql.Select<MetagePlan>().WithSql(strSql).ToList();
var planList = list.OrderBy(d => d.MID);
return list;
}
catch (Exception ex)
{
Console.WriteLine($"获取下发计划失败:{ex.Message}");
return null;
}
}
#endregion
#region 获取LR_plan
/// <summary>
/// 获取RT_Plan
/// </summary>
/// <param name="planID">计划号</param>
/// <returns>返回符合条件List<LR_weigh></returns>
public static Hw_plan GetRtPlan(string planID, int realNum)
{
IFreeSql fsql = FreeHelper.Instance;
string strSql = "SELECT * FROM Hw_plan where Plan_Id = @Plan_Id and Real_Num=@Real_Num";
Hw_plan entity = fsql.Select<Hw_plan>().Where(d => d.Plan_Id == planID&& d.Real_Num== realNum).ToOne();
return entity;
}
#endregion
#region 更新计划完成数
/// <summary>
/// 更新计划完成数UpdateRealNum
/// </summary>
/// <param name="planID">计划编号</param>
/// <param name="realNum">完成数</param>
public static bool UpdatePlan(string planID, int realNum, int state, decimal totalWeight, decimal totalError)
{
try
{
IFreeSql fsql = FreeHelper.Instance;
int result = fsql.Update<RT_plan>().Set(a => new RT_plan
{
Real_Num = realNum,
Plan_State = state,
Plan_StateText = StateToShow(state),
End_Date = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
Plan_TotalWeight = totalWeight,
Plan_TotalError = totalError,
Exec_Num = 0,
IF_FLAG = 1
}).Where(a => a.Plan_Id == planID).ExecuteAffrows();
if (result < 1)
{
return false;
}
else
{
return true;
}
}
catch (Exception ex)
{
Console.WriteLine("更新计划完成数异常:" + ex.Message);
return false;
}
}
#endregion
#region 更新计划完成数
/// <summary>
/// 更新计划完成数UpdateRealNum
/// </summary>
/// <param name="planID">计划编号</param>
/// <param name="realNum">完成数</param>
public static bool UpdateRealNum(string planID, int realNum, decimal totalWeight, decimal totalError)
{
try
{
IFreeSql fsql = FreeHelper.Instance;
int result = fsql.Update<RT_plan>().Set(a => new RT_plan
{
Real_Num = realNum,
Plan_TotalWeight = totalWeight,
Plan_TotalError = totalError,
Exec_Num = 1
}).Where(a => a.Plan_Id == planID).ExecuteAffrows();
if (result < 1)
{
return false;
}
else
{
return true;
}
}
catch (Exception ex)
{
Console.WriteLine("更新计划完成数异常:" + ex.Message, ex);
return false;
}
}
#endregion
public static bool SaveToSolvenDB(Hw_plan plan, Hw_weigh weigh)
{
try
{
IFreeSql fsql = FreeHelper.Instance;
fsql.Transaction(() =>
{
var affrows = fsql.Insert<Hw_plan>(plan).ExecuteAffrows();
//判断是否插入成功
if (affrows < 1)
throw new Exception("溶剂存盘计划详细数据失败!"); //抛出异常,回滚事务,事务退出
affrows = fsql.Insert<Hw_weigh>(weigh).ExecuteAffrows();
if (affrows < 1)
throw new Exception("溶剂存盘物料详细数据失败!");//抛出异常,回滚事务,事务退出
});
return true;
}
catch (Exception ex)
{
Console.WriteLine($"保存盘物料计划数据失败!异常原因:{ex.Message}");
return false;
}
}
public static bool SaveToSolvenDB2(Hw_plan plan, Hw_weigh weigh)
{
try
{
IFreeSql fsql = FreeHelper.Instance;
var affrows = fsql.Insert<Hw_weigh>(weigh).ExecuteAffrows();
if (affrows < 1)
{
return false;
}
else
{
return true;
}
}
catch (Exception ex)
{
Console.WriteLine($"保存物料详细数据失败!异常原因:{ex.Message}");
return false;
}
}
#region 将计划运行状态转换为文字进行显示
/// <summary>
/// 将计划运行状态转换为文字进行显示
/// </summary>
/// <param name="stateNum">计划状态代码</param>
/// <returns>显示的文字信息</returns>
public static string StateToShow(int stateNum)
{
string reStr = null;
if (stateNum == 3)
{
reStr = "正在运行";
}
else if (stateNum == 4)
{
reStr = "已下传";
}
else if (stateNum == 5)
{
reStr = "未启动";
}
else if (stateNum == 7)
{
reStr = "已终止";
}
else if (stateNum == 8)
{
reStr = "已完成";
}
return reStr;
}
#endregion
}
}

@ -0,0 +1,90 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Mesnac.Action.ChemicalWeighing.Entity.Report
{
public class Hw_SolventErrorPreventionReport
{
/// <summary>
/// Desc:
/// Default:
/// Nullable:False
/// </summary>
public int ID { get; set; }
/// <summary>
/// Desc:计划Id
/// Default:
/// Nullable:True
/// </summary>
public string PlanId { get; set; }
/// <summary>
/// Desc:批次
/// Default:
/// Nullable:True
/// </summary>
public string Batch { get; set; }
/// <summary>
/// Desc:产品名称
/// Default:
/// Nullable:True
/// </summary>
public string ProductName { get; set; }
/// <summary>
/// Desc:完成次数
/// Default:
/// Nullable:True
/// </summary>
public int? FinishedNum { get; set; }
/// <summary>
/// Desc:执行物料
/// Default:
/// Nullable:True
/// </summary>
public int? RMatCode { get; set; }
/// <summary>
/// Desc:执行物料
/// Default:
/// Nullable:True
/// </summary>
public string MaterialID { get; set; }
/// <summary>
/// Desc:当前执行物料名称
/// Default:
/// Nullable:True
/// </summary>
public string MaterialName { get; set; }
/// <summary>
/// Desc:重量
/// Default:
/// Nullable:True
/// </summary>
public decimal? Weight { get; set; }
/// <summary>
/// 读取完整物料信息
/// </summary>
public string WholeMaterial { get; set; }
/// <summary>
/// 存货编码
/// </summary>
public string Material_InventoryCode { get; set; }
/// <summary>
/// 批次
/// </summary>
public string Material_BatchNumber { get; set; }
/// <summary>
/// 流水号
/// </summary>
public string Material_SerialCode { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime CreateTime { get; set; }
/// <summary>
/// 完整二维码
/// </summary>
public string BarCodeStr { get; set; }
}
}

@ -119,5 +119,9 @@ namespace Mesnac.Action.ChemicalWeighing
/// 计划状态 8已完成5未下发
/// </summary>
public int Plan_State { get; set; }
/// <summary>
/// 皮重
/// </summary>
public string Tare { get; set; }
}
}

@ -120,5 +120,9 @@ namespace Mesnac.Action.ChemicalWeighing
/// </summary>
public string PumpCode { get; set; }
/// <summary>
/// 皮重
/// </summary>
public string Tare { get; set; }
}
}

@ -9,6 +9,7 @@ using Mesnac.Equips;
using Mesnac.Codd.Session;
using Mesnac.Controls.Base;
using System.Threading.Tasks;
using System.Timers;
namespace Mesnac.Action.ChemicalWeighing.FinishBatch
{
@ -25,14 +26,25 @@ namespace Mesnac.Action.ChemicalWeighing.FinishBatch
private bool runState = false;
#endregion
bool flag = true;
bool flag2 = true;
#region 单例实现
private static FinishBatchService _instance = null;
private FinishBatchService()
{
System.Timers.Timer timer = new System.Timers.Timer(1000);
timer.Elapsed += new ElapsedEventHandler(ReadData);
timer.AutoReset = true;
timer.Enabled = true;
timer.Start();
System.Timers.Timer timer2 = new System.Timers.Timer(1000);
timer2.Elapsed += new ElapsedEventHandler(UpdatePlanStateData);
timer2.AutoReset = true;
timer2.Enabled = true;
timer2.Start();
}
public static FinishBatchService Instance
@ -64,9 +76,13 @@ namespace Mesnac.Action.ChemicalWeighing.FinishBatch
}
lock (String.Empty)
{
//BasePlcHelper.Instance.PlcRead(BasePlcHelper.Instance.read_data, out int[] p);
Mesnac.Equips.Factory.Instance.SetMinHZReadDataEvent(ReadData);
//Mesnac.Equips.Factory.Instance.SetMinHZReadDataEvent(UpdatePlanStateData);
//Mesnac.Equips.Factory.Instance.SetMinHZReadDataEvent(ReadData);
//System.Timers.Timer timer = new System.Timers.Timer(3000);
//timer.Elapsed += new ElapsedEventHandler(StartServer1);
//timer.AutoReset = true;
//timer.Enabled = true;
//timer.Start();
this.runState = true;
}
}
@ -106,60 +122,64 @@ namespace Mesnac.Action.ChemicalWeighing.FinishBatch
#endregion
#region 事件处理 普力通物料下传2023-06-12
private void ReadData(object sender, Mesnac.Equips.ReadEventArgs e)
//private void ReadData(object sender, Mesnac.Equips.ReadEventArgs e)
private void ReadData(object sender, ElapsedEventArgs e)
{
try
if (flag)
{
lock(String.Empty)
flag = false;
try
{
//XlPlcHelper.PlcPlanHelper.ExecPlanState();
#region 更新溶剂称量计划状态地磅
//Task.Run(async () =>
//{
ChemicalWeighingPlc.PlcPlanHelper.UpdateWeighbridge1PlanData();
// });
//Task.Run(async () =>
//{
ChemicalWeighingPlc.PlcPlanHelper.UpdateWeighbridge2PlanData();
//});
lock (String.Empty)
{
#region 更新溶剂称量计划状态地磅
#endregion
PlcWeighbridgePlanHelper.UpdateWeighbridge1PlanData();
#endregion
}
}
catch (Exception ex)
{
ICSharpCode.Core.LoggingService<FinishBatchService>.Error(ex.Message, ex);
}
finally
{
GC.Collect();
flag=true;
}
}
catch(Exception ex)
{
ICSharpCode.Core.LoggingService<FinishBatchService>.Error(ex.Message, ex);
}
finally
{
}
}
private void UpdatePlanStateData(object sender, Mesnac.Equips.ReadEventArgs e)
/// <summary>
/// 地磅2
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void UpdatePlanStateData(object sender, ElapsedEventArgs e)
{
try
if (flag2)
{
lock (String.Empty)
try
{
Task.Run(() =>
flag2 = false;
lock (String.Empty)
{
ChemicalWeighingPlc.PlcPlanHelper.UpdateRjPlanStateFromPlc();
});
PlcWeighbridgePlanHelper.UpdateWeighbridge2PlanData();
}
}
catch (Exception ex)
{
ICSharpCode.Core.LoggingService<FinishBatchService>.Error(ex.Message, ex);
}
finally
{
GC.Collect();
flag2 = true;
}
}
catch (Exception ex)
{
ICSharpCode.Core.LoggingService<FinishBatchService>.Error(ex.Message, ex);
}
finally
{
}
}
#endregion
}

@ -125,6 +125,9 @@
<Reference Include="FreeSql.Repository">
<HintPath>..\..\..\..\XL\dll\FreeSql.Repository.dll</HintPath>
</Reference>
<Reference Include="HslCommunication">
<HintPath>E:\普力通处理\dll\HslCommunication.dll</HintPath>
</Reference>
<Reference Include="ICSharpCode.Core, Version=4.3.0.9338, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\PlugInPlatform\ICSharpCode.Core.dll</HintPath>
@ -258,6 +261,9 @@
<Compile Include="CylinderManage\InsertAction.cs" />
<Compile Include="CylinderManage\RefreshAction.cs" />
<Compile Include="DBHelper\FreeHelper.cs" />
<Compile Include="DBHelper\SolventPlanHelper.cs" />
<Compile Include="DBHelper\PlcConnect.cs" />
<Compile Include="DBHelper\PlcWeighbridgePlanHelper.cs" />
<Compile Include="DeviceParamManage\InitDeviceParamInfo.cs" />
<Compile Include="DeviceParamManage\SelectDeviceParamInfo.cs" />
<Compile Include="DeviceParamManage\WriteDeviceParamInfo.cs" />
@ -279,6 +285,7 @@
<Compile Include="Entity\PptPlan\xl_recipe.cs" />
<Compile Include="Entity\pump\Hw_Pump.cs" />
<Compile Include="Entity\RecordSaveDataInfo.cs" />
<Compile Include="Entity\Report\Hw_SolventErrorPreventionReport.cs" />
<Compile Include="Entity\Report\LR_BarcodeLog.cs" />
<Compile Include="Entity\SimplePstRole.cs" />
<Compile Include="Entity\SimplePstUser.cs" />
@ -385,15 +392,23 @@
<Compile Include="PumpManage\RefreshAction.cs" />
<Compile Include="Report\ProductionReport\SelectPlanAction.cs" />
<Compile Include="Report\ProductionReport\SelectPlanTotalAction.cs" />
<Compile Include="Report\ProductionSolventReport\Export.cs" />
<Compile Include="Report\ProductionSolventReport\ExportAction.cs" />
<Compile Include="Report\ProductionSolventReport\InitFormAction.cs" />
<Compile Include="Report\ProductionSolventReport\SelectAction.cs" />
<Compile Include="Report\ProductionSolventReport\SelectAnalysisAction.cs" />
<Compile Include="Report\ScanControl.cs" />
<Compile Include="Report\SolventDBHelper.cs" />
<Compile Include="Report\SolventReport\Export.cs" />
<Compile Include="Report\SolventReport\ExportAction.cs" />
<Compile Include="Report\SolventReport\InitFormAction.cs" />
<Compile Include="Report\SolventReport\SelectPlanAction.cs" />
<Compile Include="Report\SolventReport\SelectPlanTotalAction.cs" />
<Compile Include="Report\SolventReport\SelectRowAction.cs" />
<Compile Include="Report\XlDbHelper.cs" />
<Compile Include="Show\Conf2WeightAction.cs" />
<Compile Include="Show\InitFormAction.cs" />
<Compile Include="Show\Conf1WeightAction.cs" />
<Compile Include="Show\XlInitAction.cs" />
<Compile Include="SmallMaterial\Parameter\DeleteMaterialAction.cs" />
<Compile Include="SmallMaterial\Parameter\InitMaterialFormAction.cs" />
@ -747,6 +762,7 @@
</ItemGroup>
<ItemGroup>
<Folder Include="Alarm\Hw\" />
<Folder Include="Entity\NewFolder1\" />
<Folder Include="Product\PptShift\" />
<Folder Include="Solvent\Plan\" />
<Folder Include="Solvent\Recipe\" />

@ -228,7 +228,7 @@ namespace Mesnac.Action.ChemicalWeighing.Product.PptPlan
public List<MetagePlan> GetEmptList(int k)
{
List<MetagePlan> EmptylList = new List<MetagePlan>();
for (int i = (k+1); i <= 100; i++)
for (int i = (k+1); i <= 50; i++)
{
MetagePlan plan = new MetagePlan();
plan.MID = 0;

@ -1523,7 +1523,7 @@ namespace Mesnac.Action.ChemicalWeighing.Product.PptPlan
}
dbHelper.ClearParameter();
dbHelper.CommandType = CommandType.Text;
string strSql = "SELECT Batch,ProductName,Plan_Serial,Recipe_ID,Recipe_Name,Equip_Code,Version,Plan_Id,Plan_Num,Real_Num,Plan_State,Plan_StateText,Start_Date,End_Date,Plan_Date,CylinderName,PumpName,WeighbridgeId,Weighbridge FROM RT_plan ORDER BY Plan_State,left(Plan_Id,8),Plan_Serial";
string strSql = "SELECT Batch,ProductName,Plan_Serial,Recipe_ID,Recipe_Name,Equip_Code,Version,Plan_Id,Plan_Num,Real_Num,Plan_State,Plan_StateText,Start_Date,End_Date,Plan_Date,CylinderName,PumpName,WeighbridgeId,Weighbridge FROM RT_plan where CONVERT(varchar(100), Start_Date, 23) >= CONVERT(varchar(100), GETDATE(), 23) or (CONVERT(varchar(100), Start_Date, 23) >= CONVERT(varchar(100), GETDATE(), 23) and Plan_State=8 and Plan_State=3) or Plan_State=5 ORDER BY Plan_State,left(Plan_Id,8),Plan_Serial";
dbHelper.CommandText = strSql;
DataTable table = dbHelper.ToDataTable();
return table;
@ -2075,29 +2075,43 @@ namespace Mesnac.Action.ChemicalWeighing.Product.PptPlan
/// </summary>
/// <param name="planID">计划编号</param>
/// <param name="realNum">完成数</param>
public static void UpdateRealNum(string planID, int realNum, decimal totalWeight, decimal totalError)
public static bool UpdateRealNum(string planID, int realNum, decimal totalWeight, decimal totalError)
{
try
{
DbHelper dbHelper = Mesnac.Basic.DataSourceFactory.Instance.GetDbHelper(Mesnac.Basic.DataSourceFactory.MCDbType.Local);
if (dbHelper == null)
//DbHelper dbHelper = Mesnac.Basic.DataSourceFactory.Instance.GetDbHelper(Mesnac.Basic.DataSourceFactory.MCDbType.Local);
//if (dbHelper == null)
//{
// throw new Exception(Mesnac.Basic.LanguageHelper.DataBaseConnectError);
//}
//dbHelper.ClearParameter();
//dbHelper.CommandType = CommandType.Text;
//string strSql = "UPDATE RT_plan SET Real_Num = @RealNum,Plan_TotalWeight=@Plan_TotalWeight,Plan_TotalError=@Plan_TotalError,Exec_Num=@Exec_Num WHERE Plan_Id = @PlanID";
//dbHelper.CommandText = strSql;
//dbHelper.AddParameter("@RealNum", realNum);
//dbHelper.AddParameter("@Plan_TotalWeight", totalWeight);
//dbHelper.AddParameter("@Plan_TotalError", totalError);
//dbHelper.AddParameter("@Exec_Num", 1);
//dbHelper.AddParameter("@PlanID", planID);
//dbHelper.ExecuteNonQuery();
IFreeSql fsql = FreeHelper.Instance;
int result = fsql.Update<RT_plan>().Set(a => new RT_plan
{
throw new Exception(Mesnac.Basic.LanguageHelper.DataBaseConnectError);
}
dbHelper.ClearParameter();
dbHelper.CommandType = CommandType.Text;
string strSql = "UPDATE RT_plan SET Real_Num = @RealNum,Plan_TotalWeight=@Plan_TotalWeight,Plan_TotalError=@Plan_TotalError,Exec_Num=@Exec_Num WHERE Plan_Id = @PlanID";
dbHelper.CommandText = strSql;
dbHelper.AddParameter("@RealNum", realNum);
dbHelper.AddParameter("@Plan_TotalWeight", totalWeight);
dbHelper.AddParameter("@Plan_TotalError", totalError);
dbHelper.AddParameter("@Exec_Num", 1);
dbHelper.AddParameter("@PlanID", planID);
dbHelper.ExecuteNonQuery();
Real_Num = realNum,
Plan_TotalWeight = totalWeight,
Plan_TotalError = totalError,
Exec_Num = 1
}).Where(a => a.Plan_Id == planID).ExecuteAffrows();
if (result > 0) return true;
else return false;
}
catch (Exception ex)
{
Console.WriteLine("更新计划完成数异常:"+ex.Message);
ICSharpCode.Core.LoggingService<PlanHelper>.Error("更新计划完成数异常:" + ex.Message, ex);
return false;
}
}
@ -3033,10 +3047,10 @@ namespace Mesnac.Action.ChemicalWeighing.Product.PptPlan
}
dbHelper.CommandType = CommandType.Text;
string strSql = @"select w.Weight_Id MID,p.Plan_Id,p.Plan_Num,p.Real_Num,p.Plan_Serial,p.Plan_State,p.Plan_Date,p.Plan_StateText,r.ID as RecipeID,r.Recipe_Serial,r.Recipe_Name,r.Version,r.Recipe_Verify,r.Total_Weight,r.Total_Error,
m.ID as MaterialID,m.Material_name,w.Set_Weight,w.Set_Error,p.Exec_Num
m.ID as MaterialID,m.Material_name,w.Set_Weight,w.Set_Error,p.Exec_Num,w.TheoryRate
from (select * from RT_plan where Start_Date=(select Max(Start_Date) from RT_plan)) p left join Pmt_recipe r on p.Recipe_ID=r.ID left join Pmt_weigh w on r.ID=w.Recipe_ID
left join Pmt_material m on w.Material_ID=m.ID where p.Weighbridge='1'
ORDER BY w.Weight_Id";
ORDER BY w.Weight_Id";
dbHelper.CommandText = strSql;
dbHelper.ClearParameter();
@ -3062,7 +3076,7 @@ namespace Mesnac.Action.ChemicalWeighing.Product.PptPlan
}
dbHelper.CommandType = CommandType.Text;
string strSql = @"select w.Weight_Id MID,p.Plan_Id,p.Plan_Num,p.Real_Num,p.Plan_Serial,p.Plan_State,p.Plan_Date,p.Plan_StateText,r.ID as RecipeID,r.Recipe_Serial,r.Recipe_Name,r.Version,r.Recipe_Verify,r.Total_Weight,r.Total_Error,
m.ID as MaterialID,m.Material_name,w.Set_Weight,w.Set_Error,p.Exec_Num
m.ID as MaterialID,m.Material_name,w.Set_Weight,w.Set_Error,p.Exec_Num,w.TheoryRate
from (select * from RT_plan where Start_Date=(select Max(Start_Date) from RT_plan)) p left join Pmt_recipe r on p.Recipe_ID=r.ID left join Pmt_weigh w on r.ID=w.Recipe_ID
left join Pmt_material m on w.Material_ID=m.ID where p.Weighbridge='2'
ORDER BY w.Weight_Id";
@ -3177,33 +3191,47 @@ namespace Mesnac.Action.ChemicalWeighing.Product.PptPlan
/// </summary>
/// <param name="planID">计划编号</param>
/// <param name="realNum">完成数</param>
public static void UpdatePlan(string planID, int realNum,int state,decimal totalWeight, decimal totalError)
public static bool UpdatePlan(string planID, int realNum,int state,decimal totalWeight, decimal totalError)
{
try
{
DbHelper dbHelper = Mesnac.Basic.DataSourceFactory.Instance.GetDbHelper(Mesnac.Basic.DataSourceFactory.MCDbType.Local);
if (dbHelper == null)
//DbHelper dbHelper = Mesnac.Basic.DataSourceFactory.Instance.GetDbHelper(Mesnac.Basic.DataSourceFactory.MCDbType.Local);
//if (dbHelper == null)
//{
// throw new Exception(Mesnac.Basic.LanguageHelper.DataBaseConnectError);
//}
//dbHelper.ClearParameter();
//dbHelper.CommandType = CommandType.Text;
//string strSql = "UPDATE RT_plan SET Real_Num = @RealNum,Plan_State=@Plan_State,Plan_StateText=@Plan_StateText,End_Date=@End_Date,Plan_TotalWeight=@Plan_TotalWeight,Plan_TotalError=@Plan_TotalError,Exec_Num=@Exec_Num WHERE Plan_Id = @PlanID";
//dbHelper.CommandText = strSql;
//dbHelper.AddParameter("@RealNum", realNum);
//dbHelper.AddParameter("@PlanID", planID);
//dbHelper.AddParameter("@Plan_State", state);
//dbHelper.AddParameter("@Plan_StateText", StateToShow(state));
//dbHelper.AddParameter("@End_Date", String.Format("{0:yyyy-MM-dd HH:mm:ss}", DateTime.Now));
//dbHelper.AddParameter("@Plan_TotalWeight", totalWeight);
//dbHelper.AddParameter("@Plan_TotalError", totalError);
//dbHelper.AddParameter("@Exec_Num", 0);
IFreeSql fsql = FreeHelper.Instance;
int result = fsql.Update<RT_plan>().Set(a => new RT_plan
{
throw new Exception(Mesnac.Basic.LanguageHelper.DataBaseConnectError);
}
dbHelper.ClearParameter();
dbHelper.CommandType = CommandType.Text;
string strSql = "UPDATE RT_plan SET Real_Num = @RealNum,Plan_State=@Plan_State,Plan_StateText=@Plan_StateText,End_Date=@End_Date,Plan_TotalWeight=@Plan_TotalWeight,Plan_TotalError=@Plan_TotalError,Exec_Num=@Exec_Num WHERE Plan_Id = @PlanID";
dbHelper.CommandText = strSql;
dbHelper.AddParameter("@RealNum", realNum);
dbHelper.AddParameter("@PlanID", planID);
dbHelper.AddParameter("@Plan_State", state);
dbHelper.AddParameter("@Plan_StateText", StateToShow(state));
dbHelper.AddParameter("@End_Date", String.Format("{0:yyyy-MM-dd HH:mm:ss}", DateTime.Now));
dbHelper.AddParameter("@Plan_TotalWeight", totalWeight);
dbHelper.AddParameter("@Plan_TotalError", totalError);
dbHelper.AddParameter("@Exec_Num", 0);
dbHelper.ExecuteNonQuery();
Real_Num = realNum,
Plan_TotalWeight = totalWeight,
Plan_TotalError= totalError,
Plan_State = state,
Plan_StateText = StateToShow(state),
End_Date = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
}).Where(a => a.Plan_Id == planID).ExecuteAffrows();
if (result > 0) return true;
else return false;
}
catch (Exception ex)
{
Console.WriteLine("更新完成计划!");
ICSharpCode.Core.LoggingService<PlanHelper>.Error("更新计划完成数异常:" + ex.Message, ex);
return false;
}
}
@ -3306,7 +3334,6 @@ namespace Mesnac.Action.ChemicalWeighing.Product.PptPlan
plan.Retransmission_Num = Mesnac.Basic.DataProcessor.RowValue(dr, "Retransmission_Num", 0);
plan.Exec_Num = Mesnac.Basic.DataProcessor.RowValue(dr, "Exec_Num", 0);
return plan;
}
@ -3354,6 +3381,7 @@ namespace Mesnac.Action.ChemicalWeighing.Product.PptPlan
}
#endregion
#region 获取List
/// <summary>

@ -38,6 +38,7 @@ namespace Mesnac.Action.ChemicalWeighing.Product.PptPlan
private DbMCControl _clientGridControl = null; //网格计划控件
string selectedPlanId = string.Empty; //选中的计划号
string selectedRecipeID = string.Empty;
List<MetagePlan> materialList = new List<MetagePlan>();
bool flag=false;
#endregion
@ -79,46 +80,63 @@ namespace Mesnac.Action.ChemicalWeighing.Product.PptPlan
}
if (planState == "7")
{
MessageBox.Show("该计划已终止,无法重传下发!", Mesnac.Basic.LanguageHelper.Caption, MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
DialogResult dr = MessageBox.Show("该计划已终止,确认要重传吗?", "提示", MessageBoxButtons.OKCancel);
if (dr == DialogResult.OK)
{
flag = true;
}
else return;
}
if (planState == "5")
{
MessageBox.Show("该计划尚未重新开始,无法重传下发!", Mesnac.Basic.LanguageHelper.Caption, MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
if (planState == "3")
string weighbridge = clientGridView.SelectedRows[0].Cells["Weighbridge"].Value.ToString();
if (string.IsNullOrEmpty(weighbridge))
{
DialogResult dr = MessageBox.Show("该计划正在运行中,确认要重传吗?", "提示", MessageBoxButtons.OKCancel);
if (dr == DialogResult.OK) flag=true;
else return;
MessageBox.Show("地磅为空,不可以下发任务!");
ICSharpCode.Core.LoggingService<PlanDownloadAction>.Error("{生产计划-手动下发计划} 地磅为空.");
return;
}
//if (planState == "3")
//{
// DialogResult dr = MessageBox.Show("该计划正在运行中,确认要重传吗?", "提示", MessageBoxButtons.OKCancel);
// if (dr == DialogResult.OK) flag=true;
// else return;
//}
if (flag)
{
selectedPlanId = clientGridView.SelectedRows[0].Cells["Plan_Id"].Value as string;
bool IsExec = Product.XlPlan.PlanHelper.GetXlPlanState(selectedPlanId);//检查当前任务是否还处于执行中
if (IsExec)
{
MessageBox.Show("请确定该计划是否在执行中!");
ICSharpCode.Core.LoggingService<StopAction>.Error("{生产计划-重传计划} ");
return;
}
//获取选中计划、获取选中物料、
// List<MetagePlan> materialList = PlanHelper.GetExecPlan(selectedPlanId);
//获取选中计划、获取选中物料
materialList = PlanHelper.GetPlan(selectedPlanId);
List<MetagePlan> emptList = GetEmptList(materialList.Count());
List<MetagePlan> list = (materialList.Concat(emptList)).ToList();
//下传计划给PLC
int planNum = Convert.ToInt32(clientGridView.SelectedRows[0].Cells["Plan_Num"].Value as string);
bool IsSucess = BasePlcHelper.Instance.PlcWriteByDataKey(BasePlcHelper.Instance.solvent_status, new object[] { 1 });
bool IsSucess = false;
if (weighbridge == "1号地磅")
{
BasePlcHelper.Instance.PlcWriteByDataKey(BasePlcHelper.Instance.solvent_stopScale, new object[] { 1 });//终止上一次计划
IsSucess = PlcPlanHelper.DownloadPlanDataToWeighbridge1Plc(list);
}
if (weighbridge == "2号地磅")
{
BasePlcHelper.Instance.PlcWriteByDataKey(BasePlcHelper.Instance.solvent2_stopScale, new object[] { 1 });//终止上一次计划
IsSucess = PlcPlanHelper.DownloadPlanDataToWeighbridge2Plc(list);
}
if (IsSucess)
{
MessageBox.Show("计划任务重传成功!");
ICSharpCode.Core.LoggingService<PlcPlanHelper>.Debug(String.Format("[{0}]计划重传完毕...", selectedPlanId));
//回写计划任务状态 3:任务执行中
PlanHelper.UpdatePlanState1(selectedPlanId, 3);
MessageBox.Show("计划任务下发成功!");
ICSharpCode.Core.LoggingService<PlanDownloadAction>.Debug(String.Format("[{0}]计划信息下传完毕...", selectedPlanId));
}
else
{
MessageBox.Show("计划任务重传失败!请检查设备是否正常,设置计划数量是否正确。");
ICSharpCode.Core.LoggingService<PlcPlanHelper>.Debug(String.Format("[{0}]计划重传失败...", selectedPlanId));
MessageBox.Show("计划任务下发失败!请检查配方是否设置完整、PLC是否正常");
ICSharpCode.Core.LoggingService<PlanDownloadAction>.Debug(String.Format("[{0}]计划信息下传失败...", selectedPlanId));
}
IsFirstRun = false;
}
@ -197,5 +215,19 @@ namespace Mesnac.Action.ChemicalWeighing.Product.PptPlan
}
#endregion
public List<MetagePlan> GetEmptList(int k)
{
List<MetagePlan> EmptylList = new List<MetagePlan>();
for (int i = (k + 1); i <= 50; i++)
{
MetagePlan plan = new MetagePlan();
plan.MID = 0;
plan.Set_Weight = 0;
plan.Set_Error = 0;
EmptylList.Add(plan);
}
return EmptylList;
}
}
}

@ -0,0 +1,118 @@
using DataTable = System.Data.DataTable;
using Workbook = Microsoft.Office.Interop.Excel.Workbook;
using Worksheet = Microsoft.Office.Interop.Excel.Worksheet;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Mesnac.Action.ChemicalWeighing.Report.ProductionSolventReport
{
public class Export
{
string FileName = @"D:\WeightExportFile.xlsx";
DataTable dt;
DataTable MoreDataTable;
public void ExportTo(string fileName, DataTable dt1)
{
//dt = new DataTable();
//dt.Columns.Add("机台", typeof(string));
//dt.Columns.Add("湿混等待时间", typeof(string));
//dt.Columns.Add("RGV等待时间", typeof(string));
//dt.Columns.Add("总等待时间", typeof(string));
//MoreDataTable = new DataTable();
//MoreDataTable.Columns.Add("湿混等待时间", typeof(string));
//MoreDataTable.Columns.Add("RGV等待时间", typeof(string));
//MoreDataTable.Columns.Add("总等待时间", typeof(string));
//MoreDataTable.Columns.Add("起始时间", typeof(string));
//MoreDataTable.Columns.Add("结束时间", typeof(string));
// 使用 Microsoft Office Interop Excel 组件导出 Excel 文件
Microsoft.Office.Interop.Excel.Application excelApp = new Microsoft.Office.Interop.Excel.Application();
Workbook workbook = excelApp.Workbooks.Add();
//AllExport(workbook);
MoreDataExport(workbook, dt1);
// 将 Excel 文件保存到磁盘
try
{
workbook.SaveAs(fileName);
}
catch (Exception e)
{
MessageBox.Show("请重新选择导出路径或关闭已打开的导出文件! " + e);
}
// 关闭 Excel 应用程序和工作簿对象,并释放资源
workbook.Close();
//excelApp.Quit();
System.Runtime.InteropServices.Marshal.ReleaseComObject(workbook);
//System.Runtime.InteropServices.Marshal.ReleaseComObject(excelApp);
}
/// <summary>
/// 数据和导出
/// </summary>
/// <param name="workbook"></param>
private void AllExport(Workbook workbook)
{
//DataTableSum();
Worksheet worksheet = (Worksheet)workbook.Worksheets[1];
worksheet.Name = "总量统计";
worksheet.Cells[1, 1] = "机台";
worksheet.Cells[1, 2] = "湿混等待时间";
worksheet.Cells[1, 3] = "RGV等待时间";
worksheet.Cells[1, 4] = "总等待时间";
int row = 2;
//读取数据
foreach (DataRow item in dt.Rows)
{
worksheet.Cells[row, 1] = item[0];
worksheet.Cells[row, 2] = item[1];
worksheet.Cells[row, 3] = item[2];
worksheet.Cells[row, 4] = item[3];
row++;
}
System.Runtime.InteropServices.Marshal.ReleaseComObject(worksheet);
}
//详细数据导出
private void MoreDataExport(Workbook workbook, DataTable dt1)
{
Worksheet worksheet = (Worksheet)workbook.Worksheets.Add();
worksheet.Name = "计划投料报表";
worksheet.Cells[1, 1] = "执行批次";
worksheet.Cells[1, 2] = "产品名称";
worksheet.Cells[1, 3] = "计划号";
worksheet.Cells[1, 4] = "存货编码";
worksheet.Cells[1, 5] = "批次号";
worksheet.Cells[1, 6] = "流水号";
worksheet.Cells[1, 7] = "物料名称";
worksheet.Cells[1, 8] = "完整二维码";
int row = 2;
foreach (DataRow item in dt1.Rows)
{
worksheet.Cells[row, 1] = item[2];
worksheet.Cells[row, 2] = item[3];
worksheet.Cells[row, 3] = item[1];
worksheet.Cells[row, 4] = item[10];
worksheet.Cells[row, 5] = item[11];
worksheet.Cells[row, 6] = item[12];
worksheet.Cells[row, 7] = item[7];
worksheet.Cells[row, 8] = item[13];
row++;
}
System.Runtime.InteropServices.Marshal.ReleaseComObject(worksheet);
}
}
}

@ -0,0 +1,118 @@
using ICSharpCode.Core;
using Mesnac.Action.Base;
using Mesnac.Action.ChemicalWeighing.DBHelper;
using Mesnac.Action.ChemicalWeighing.Entity;
using Mesnac.Action.ChemicalWeighing.Entity.Report;
using Mesnac.Controls.Base;
using Microsoft.Office.Interop.Excel;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Mesnac.Action.ChemicalWeighing.Report.ProductionSolventReport
{
/// <summary>
/// 生产分析报表导出业务
/// </summary>
class ExportAction : ChemicalWeighingAction, Base.IAction
{
private IBaseControl _startdate = null; //开始日期
private IBaseControl _enddate = null; //结束日期
private IBaseControl _starttime = null; //开始时间
private IBaseControl _endtime = null; //结束时间
private DbMCControl _recipeNameControl = null; //配方名Combobox控件
private Control _clientDGV = null; //生产分析DGV
public void Run(RuntimeParameter runtime)
{
base.RunIni(runtime); //必须要调用的
ICSharpCode.Core.LoggingService<ExportAction>.Debug("溶剂和整包生产报表-导出...");
#region 时间配方名控件
List<DbMCControl> mcControllist = GetAllDbMCControlsByOption(DbOptionTypes.Query);//获取所有待初始化控件
//开始时间条件
this._startdate = mcControllist.Where(t => t.BaseControl.MCKey != null && t.BaseControl.MCKey.ToLower() == "startdate").FirstOrDefault().BaseControl;
this._starttime = mcControllist.Where(t => t.BaseControl.MCKey != null && t.BaseControl.MCKey.ToLower() == "starttime").FirstOrDefault().BaseControl;
if (_startdate == null && _starttime == null)
{
ICSharpCode.Core.LoggingService<Hw_SolventErrorPreventionReport>.Debug("{溶剂和整包生产报表} 缺少key值为startdate或者starttime的时间查询条件...");
return;
}
string start = Convert.ToDateTime(_startdate.MCValue).ToString("yyyy-MM-dd") + " " + Convert.ToDateTime(_starttime.MCValue).ToShortTimeString();
//结束时间条件
this._enddate = mcControllist.Where(t => t.BaseControl.MCKey != null && t.BaseControl.MCKey.ToLower() == "enddate").FirstOrDefault().BaseControl;
this._endtime = mcControllist.Where(t => t.BaseControl.MCKey != null && t.BaseControl.MCKey.ToLower() == "endtime").FirstOrDefault().BaseControl;
if (_enddate == null && _endtime == null)
{
ICSharpCode.Core.LoggingService<Hw_SolventErrorPreventionReport>.Debug("{溶剂和整包生产报表} 缺少key值为enddate或者enddate的时间查询条件...");
return;
}
string end = Convert.ToDateTime(_enddate.MCValue).ToString("yyyy-MM-dd") + " " + Convert.ToDateTime(_endtime.MCValue).ToShortTimeString();
#endregion
this._recipeNameControl = this.GetDbMCControlByKey(Mesnac.Basic.DataSourceFactory.MCDbType.Local, "Hw_SolventErrorPreventionReport").FirstOrDefault();
if (_recipeNameControl == null)
{
ICSharpCode.Core.LoggingService<Hw_SolventErrorPreventionReport>.Warn("{溶剂和整包生产报表} 缺少配方名控件...");
runtime.IsReturn = false;
return;
}
//string queryStr = (base.GetControlById("MCTextBox1") as System.Windows.Forms.TextBox).Text;
//#endregion
//IFreeSql fsql = FreeHelper.Instance;
//List<Hw_SolventErrorPreventionReport> entity = fsql.Select<Hw_SolventErrorPreventionReport>().ToList();
SaveFileDialog sfd = new SaveFileDialog();
sfd.Filter = "xls files(*.xls)|*.xls";
sfd.FileName = String.Format("溶剂和整包称量生产投料报表_{0:yyyyMMdd}", DateTime.Now);
sfd.AddExtension = true;
DialogResult result = sfd.ShowDialog();
if (result == DialogResult.OK)
{
string fileName = sfd.FileName;
if (!String.IsNullOrEmpty(fileName))
{
try
{
System.Data.DataTable dts1 = _recipeNameControl.BaseControl.BindDataSource as System.Data.DataTable;
Export export = new Export();
export.ExportTo(fileName, dts1);
string msg1 = "导出生产投料报表数据至Excel成功!"; //导出生产分析报表数据至Excel成功!
ICSharpCode.Core.LoggingService<ExportAction>.Info(msg1);
#region 记录操作日志
base.DBLog(msg1);
#endregion
MessageBox.Show(msg1, Mesnac.Basic.LanguageHelper.Caption, MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch (Exception ex)
{
string msg2 = StringParser.Parse(ResourceService.GetString("Mesnac_Action_ChemicalWeighing_Report_ProductionAnalysisReport_ExportAction_msg2")); //导出生产分析数据至Excel失败:{0}!
msg2 = String.Format(msg2, ex.Message);
ICSharpCode.Core.LoggingService<ExportAction>.Error(msg2);
#region 记录操作日志
base.DBLog(msg2);
#endregion
MessageBox.Show(msg2, Mesnac.Basic.LanguageHelper.WarnCaption, MessageBoxButtons.OK, MessageBoxIcon.Warning);
runtime.IsReturn = true;
return;
}
}
}
}
}
}

@ -0,0 +1,28 @@
using Mesnac.Action.Base;
using Mesnac.Controls.Base;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Mesnac.Action.ChemicalWeighing.Report.ProductionSolventReport
{
/// <summary>
/// 初始化生产分析报表
/// </summary>
class InitFormAction : ChemicalWeighingAction, IAction
{
public void Run(RuntimeParameter runtime)
{
base.RunIni(runtime); //必须要调用的
ICSharpCode.Core.LoggingService<InitFormAction>.Debug("生产报表-窗体初始化...");
List<DbMCControl> mcControllist = GetAllDbMCControlsByOption(DbOptionTypes.Query);//获取所有待初始化控件
IBaseControl starttime = mcControllist.Where(t => t.BaseControl.MCKey != null && t.BaseControl.MCKey.ToLower() == "starttime").FirstOrDefault().BaseControl;
IBaseControl endtime = mcControllist.Where(t => t.BaseControl.MCKey != null && t.BaseControl.MCKey.ToLower() == "endtime").FirstOrDefault().BaseControl;
starttime.MCValue = DateTime.Parse("00:00:00");
endtime.MCValue = DateTime.Parse("23:59:59");
}
}
}

@ -0,0 +1,164 @@
using Mesnac.Action.Base;
using Mesnac.Codd.Session;
using Mesnac.Controls.Base;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Mesnac.Action.ChemicalWeighing.Report.ProductionSolventReport
{
/// <summary>
/// 生产报表中查询生产计划Action
/// </summary>
class SelectAction : ChemicalWeighingAction, IAction
{
private RuntimeParameter _runtime;
private IBaseControl _equipCode = null; //机台号
private IBaseControl _version = null; //版本
private IBaseControl _startdate = null; //开始日期
private IBaseControl _enddate = null; //结束日期
private IBaseControl _starttime = null; //开始时间
private IBaseControl _endtime = null; //结束时间
//private IBaseControl _recipeName = null; //配方名
string _recipeName = string.Empty;
//private IBaseControl _shiftName = null; //班次
string _shiftName = string.Empty;
private DbMCControl _dgvRtPlan = null; //生产计划
public void Run(RuntimeParameter runtime)
{
base.RunIni(runtime);
this._runtime = runtime;
ICSharpCode.Core.LoggingService<SelectAction>.Debug("整包溶剂报表-生产计划-查询..");
//刷新生产计划DataGridView数据
this._dgvRtPlan = this.GetDbMCControlByKey(Mesnac.Basic.DataSourceFactory.MCDbType.Local, "Hw_SolventErrorPreventionReport").FirstOrDefault();
if (_dgvRtPlan == null || !(_dgvRtPlan.BaseControl is DataGridView))
{
ICSharpCode.Core.LoggingService<SelectAction>.Warn("{整包溶剂报表-查询} 缺少生产计划DataGridView控件...");
runtime.IsReturn = false;
return;
}
DbHelper dbHelper = Mesnac.Basic.DataSourceFactory.Instance.GetDbHelper(Mesnac.Basic.DataSourceFactory.MCDbType.Local);
dbHelper.ClearParameter();
StringBuilder sb = new StringBuilder();
sb.AppendLine(@" select * from Hw_SolventErrorPreventionReport WHERE 1=1");
List<DbMCControl> mcControllist = GetAllDbMCControlsByOption(DbOptionTypes.Query);//获取所有待初始化控件
//开始时间条件
this._startdate = mcControllist.Where(t => t.BaseControl.MCKey != null && t.BaseControl.MCKey.ToLower() == "startdate").FirstOrDefault().BaseControl;
this._starttime = mcControllist.Where(t => t.BaseControl.MCKey != null && t.BaseControl.MCKey.ToLower() == "starttime").FirstOrDefault().BaseControl;
if (_startdate != null && _starttime != null)
{
sb.AppendLine(@"And CreateTime >='" + Convert.ToDateTime(_startdate.MCValue).ToString("yyyy-MM-dd") + " " + Convert.ToDateTime(_starttime.MCValue).ToShortTimeString() + "' ");
}
else
{
ICSharpCode.Core.LoggingService<SelectAction>.Debug("{整包溶剂报表} 缺少key值为startdate或者starttime的时间查询条件...");
return;
}
//结束时间条件
this._enddate = mcControllist.Where(t => t.BaseControl.MCKey != null && t.BaseControl.MCKey.ToLower() == "enddate").FirstOrDefault().BaseControl;
this._endtime = mcControllist.Where(t => t.BaseControl.MCKey != null && t.BaseControl.MCKey.ToLower() == "endtime").FirstOrDefault().BaseControl;
if (_enddate != null && _endtime != null)
{
sb.AppendLine(@" And CreateTime <='" + Convert.ToDateTime(_enddate.MCValue).ToString("yyyy-MM-dd") + " " + Convert.ToDateTime(_endtime.MCValue).ToShortTimeString() + "' ");
}
else
{
ICSharpCode.Core.LoggingService<SelectAction>.Debug("{整包溶剂报表} 缺少key值为enddate或者enddate的时间查询条件...");
return;
}
this._recipeName = (base.GetControlById("MCTextBox1") as System.Windows.Forms.TextBox).Text;
if (_recipeName != "")
sb.AppendLine($" and (Material_InventoryCode like '%{_recipeName}%' or Material_BatchNumber like '%{_recipeName}%' or Material_SerialCode like '%{_recipeName}%')");
dbHelper.CommandText = sb.ToString();
dbHelper.CommandType = System.Data.CommandType.Text;
DataTable table = dbHelper.ToDataTable();
_dgvRtPlan.BaseControl.BindDataSource = null;
_dgvRtPlan.BaseControl.BindDataSource = table;
//ExportAction.OnRefresh -= Process_Event;
//ExportAction.OnRefresh += Process_Event;
}
#region 事件处理方法
private void Process_Event(object sender, EventArgs e)
{
if (sender is RuntimeParameter)
{
this.Run(sender as RuntimeParameter);
}
else
{
this.Run(this._runtime);
}
}
#endregion
//public DataTable QueryXlPlan(string sql)
//{
//StringBuilder sb = new StringBuilder();
//sb.AppendLine(@" select p.Plan_Id,p.Recipe_ID,p.Recipe_Name,p.Version,p.Plan_Num,p.Real_Num,p.Start_Date,p.End_Date,B.Shift_name as Shift_Name,p.Weight_Man,Total_Weight,Total_Error,
// case when IsRetransmission=0 then '是' when IsRetransmission=1 then '否' when IsRetransmission is null then '否' end as IsRetransmission
// from LR_plan p Left Join Pmt_ShifTime B On(p.Shift_Id = B.Shift_ID) WHERE 1=1");
//List<DbMCControl> mcControllist = GetAllDbMCControlsByOption(DbOptionTypes.Query);//获取所有待初始化控件
////开始时间条件
//this._startdate = mcControllist.Where(t => t.BaseControl.MCKey != null && t.BaseControl.MCKey.ToLower() == "startdate").FirstOrDefault().BaseControl;
//this._starttime = mcControllist.Where(t => t.BaseControl.MCKey != null && t.BaseControl.MCKey.ToLower() == "starttime").FirstOrDefault().BaseControl;
//if (_startdate != null && _starttime != null)
//{
// sb.AppendLine(@"And p.Start_Date >='" + Convert.ToDateTime(_startdate.MCValue).ToString("yyyy-MM-dd") + " " + Convert.ToDateTime(_starttime.MCValue).ToShortTimeString() + "' ");
//}
//else
//{
// ICSharpCode.Core.LoggingService<SelectPlanAction>.Debug("{生产报表} 缺少key值为startdate或者starttime的时间查询条件...");
// return;
//}
//结束时间条件
//this._enddate = mcControllist.Where(t => t.BaseControl.MCKey != null && t.BaseControl.MCKey.ToLower() == "enddate").FirstOrDefault().BaseControl;
//this._endtime = mcControllist.Where(t => t.BaseControl.MCKey != null && t.BaseControl.MCKey.ToLower() == "endtime").FirstOrDefault().BaseControl;
//if (_enddate != null && _endtime != null)
//{
// sb.AppendLine(@" And p.End_Date <='" + Convert.ToDateTime(_enddate.MCValue).ToString("yyyy-MM-dd") + " " + Convert.ToDateTime(_endtime.MCValue).ToShortTimeString() + "' ");
//}
//else
//{
// ICSharpCode.Core.LoggingService<SelectPlanAction>.Debug("{生产报表} 缺少key值为enddate或者enddate的时间查询条件...");
// return;
//}
//配方名和班次条件
//this._recipeName = (base.GetControlById("comRecipe") as System.Windows.Forms.ComboBox).Text;
//this._shiftName = (base.GetControlById("comShiftime") as System.Windows.Forms.ComboBox).Text;
//if (!String.IsNullOrEmpty(this._recipeName))
//{
// sb.AppendLine(@" And p.Recipe_Name ='" + _recipeName + "' ");
//}
//if (!String.IsNullOrEmpty(this._shiftName))
//{
// sb.AppendLine(@"And Shift_Name = '" + _shiftName + "' ");
//}
//sb.Append(" ORDER BY p.Start_Date desc");
//dbHelper.CommandText = sb.ToString();
//dbHelper.CommandType = System.Data.CommandType.Text;
//DataTable table = dbHelper.ToDataTable();
//}
}
}

@ -0,0 +1,68 @@
using Mesnac.Action.Base;
using Mesnac.Action.ChemicalWeighing.Entity.Report;
using Mesnac.Controls.Base;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Mesnac.Action.ChemicalWeighing.Report.ProductionSolventReport
{
class SelectAnalysisAction : ChemicalWeighingAction, IAction
{
#region 字段定义
private RuntimeParameter _runtime;
private IBaseControl _startdate = null; //开始日期
private IBaseControl _enddate = null; //结束日期
private IBaseControl _starttime = null; //开始时间
private IBaseControl _endtime = null; //结束时间
private DbMCControl _recipeNameControl = null; //配方名Combobox控件
private Control _clientGridControl = null; //多维表控件
private DataTable dataTable = null;
#endregion
public void Run(RuntimeParameter runtime)
{
base.RunIni(runtime);
this._runtime = runtime;
#region 获取开始/结束时间控件和质量分析控件
List<DbMCControl> mcControllist = GetAllDbMCControlsByOption(DbOptionTypes.Query);//获取所有待初始化控件
this._recipeNameControl = this.GetDbMCControlByKey(Mesnac.Basic.DataSourceFactory.MCDbType.Local, "Hw_BinTypeErrorPreventionReport").FirstOrDefault();
if (_recipeNameControl == null)
{
ICSharpCode.Core.LoggingService<Hw_SolventErrorPreventionReport>.Warn("{溶剂投料报表} 缺少控件...");
runtime.IsReturn = false;
return;
}
Mesnac.Controls.Default.MultiColHeaderDgv clientGrid = (this._clientGridControl as Mesnac.Controls.Default.MultiColHeaderDgv);
#endregion
#region 控件格式化
clientGrid.myColHeaderTreeView = null;
clientGrid.DataSource = null;
clientGrid.iNodeLevels = 0;
clientGrid.ColLists.Clear();
clientGrid.ColumnHeadersHeight = 23;
clientGrid.ScrollBars = ScrollBars.Both;
clientGrid.AllowUserToAddRows = false;
clientGrid.RowsDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
clientGrid.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
clientGrid.ColumnHeadersDefaultCellStyle.Font = new System.Drawing.Font("宋体", 12);
clientGrid.DefaultCellStyle.Font = new System.Drawing.Font("宋体", 10);
#endregion
}
}
}

@ -8,6 +8,7 @@ using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Mesnac.Action.ChemicalWeighing.Report
{
@ -300,11 +301,12 @@ namespace Mesnac.Action.ChemicalWeighing.Report
}
#endregion
public static bool SaveToSolvenDB(Hw_plan plan,Hw_weigh weigh)
public static bool SaveToSolvenDB(Hw_plan plan, Hw_weigh weigh)
{
IFreeSql fsql = FreeHelper.Instance;
try
{
IFreeSql fsql = FreeHelper.Instance;
fsql.Transaction(() =>
{
var affrows = fsql.Insert<Hw_plan>(plan).ExecuteAffrows();
@ -317,23 +319,25 @@ namespace Mesnac.Action.ChemicalWeighing.Report
});
return true;
}
catch (Exception ex)
{
MessageBox.Show($"保存盘物料计划数据失败!异常原因:{ex.Message}");
return false;
}
}
public static bool SaveToSolvenDB2(Hw_plan plan, Hw_weigh weigh)
{
IFreeSql fsql = FreeHelper.Instance;
try
{
IFreeSql fsql = FreeHelper.Instance;
var affrows = fsql.Insert<Hw_weigh>(weigh).ExecuteAffrows();
if (affrows < 1)
{
return false;
}
else
{
@ -342,6 +346,7 @@ namespace Mesnac.Action.ChemicalWeighing.Report
}
catch (Exception ex)
{
MessageBox.Show($"保存物料详细数据失败!异常原因:{ex.Message}");
return false;
}
}

@ -0,0 +1,173 @@
using DataTable = System.Data.DataTable;
using Workbook = Microsoft.Office.Interop.Excel.Workbook;
using Worksheet = Microsoft.Office.Interop.Excel.Worksheet;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Mesnac.Action.ChemicalWeighing.Report.SolventReport
{
public class Export
{
string FileName = @"D:\WeightExportFile.xlsx";
DataTable dt;
DataTable MoreDataTable;
public void ExportTo(string fileName, DataTable dt1, DataTable dt2, DataTable dt3)
{
//dt = new DataTable();
//dt.Columns.Add("机台", typeof(string));
//dt.Columns.Add("湿混等待时间", typeof(string));
//dt.Columns.Add("RGV等待时间", typeof(string));
//dt.Columns.Add("总等待时间", typeof(string));
//MoreDataTable = new DataTable();
//MoreDataTable.Columns.Add("湿混等待时间", typeof(string));
//MoreDataTable.Columns.Add("RGV等待时间", typeof(string));
//MoreDataTable.Columns.Add("总等待时间", typeof(string));
//MoreDataTable.Columns.Add("起始时间", typeof(string));
//MoreDataTable.Columns.Add("结束时间", typeof(string));
// 使用 Microsoft Office Interop Excel 组件导出 Excel 文件
Microsoft.Office.Interop.Excel.Application excelApp = new Microsoft.Office.Interop.Excel.Application();
Workbook workbook = excelApp.Workbooks.Add();
//AllExport(workbook);
MoreDataExport(workbook, dt1, dt2, dt3);
// 将 Excel 文件保存到磁盘
try
{
workbook.SaveAs(fileName);
}
catch (Exception e)
{
MessageBox.Show("请重新选择导出路径或关闭已打开的导出文件! " + e);
}
// 关闭 Excel 应用程序和工作簿对象,并释放资源
workbook.Close();
//excelApp.Quit();
System.Runtime.InteropServices.Marshal.ReleaseComObject(workbook);
//System.Runtime.InteropServices.Marshal.ReleaseComObject(excelApp);
}
/// <summary>
/// 数据和导出
/// </summary>
/// <param name="workbook"></param>
private void AllExport(Workbook workbook)
{
//DataTableSum();
Worksheet worksheet = (Worksheet)workbook.Worksheets[1];
worksheet.Name = "总量统计";
worksheet.Cells[1, 1] = "机台";
worksheet.Cells[1, 2] = "湿混等待时间";
worksheet.Cells[1, 3] = "RGV等待时间";
worksheet.Cells[1, 4] = "总等待时间";
int row = 2;
//读取数据
foreach (DataRow item in dt.Rows)
{
worksheet.Cells[row, 1] = item[0];
worksheet.Cells[row, 2] = item[1];
worksheet.Cells[row, 3] = item[2];
worksheet.Cells[row, 4] = item[3];
row++;
}
System.Runtime.InteropServices.Marshal.ReleaseComObject(worksheet);
}
//详细数据导出
private void MoreDataExport(Workbook workbook, DataTable dt1, DataTable dt2, DataTable dt3)
{
for (int i = 1; i <= 3; i++)
{
if (i == 1)
{
Worksheet worksheet = (Worksheet)workbook.Worksheets.Add();
worksheet.Name = "执行计划报表";
worksheet.Cells[1, 1] = "执行批次";
worksheet.Cells[1, 2] = "产品名称";
worksheet.Cells[1, 3] = "计划号";
worksheet.Cells[1, 4] = "配方名";
worksheet.Cells[1, 5] = "执行状态";
worksheet.Cells[1, 6] = "计划批次";
worksheet.Cells[1, 7] = "完成批次";
worksheet.Cells[1, 8] = "开始时间";
worksheet.Cells[1, 9] = "结束时间";
worksheet.Cells[1, 10] = "总重量";
worksheet.Cells[1, 11] = "总误差";
int row = 2;
foreach (DataRow item in dt1.Rows)
{
worksheet.Cells[row, 1] = item[0];
worksheet.Cells[row, 2] = item[1];
worksheet.Cells[row, 3] = item[2];
worksheet.Cells[row, 4] = item[4];
worksheet.Cells[row, 5] = item[6];
worksheet.Cells[row, 6] = item[7];
worksheet.Cells[row, 7] = item[8];
worksheet.Cells[row, 8] = item[9];
worksheet.Cells[row, 9] = item[10];
worksheet.Cells[row, 10] = item[13];
worksheet.Cells[row, 11] = item[15];
row++;
}
System.Runtime.InteropServices.Marshal.ReleaseComObject(worksheet);
}
if (i == 2)
{
Worksheet worksheet = (Worksheet)workbook.Worksheets.Add();
worksheet.Name = "执行计划车报表";
worksheet.Cells[1, 1] = "计划号";
worksheet.Cells[1, 2] = "执行批次";
worksheet.Cells[1, 3] = "总计重量";
worksheet.Cells[1, 4] = "总计误差";
int row = 2;
foreach (DataRow item in dt2.Rows)
{
worksheet.Cells[row, 1] = item[1];
worksheet.Cells[row, 2] = item[2];
worksheet.Cells[row, 3] = item[3];
worksheet.Cells[row, 4] = item[4];
row++;
}
System.Runtime.InteropServices.Marshal.ReleaseComObject(worksheet);
}
if (i == 3)
{
Worksheet worksheet = (Worksheet)workbook.Worksheets.Add();
worksheet.Name = "计划详细数据";
worksheet.Cells[1, 1] = "计划号";
worksheet.Cells[1, 2] = "物料名称";
worksheet.Cells[1, 4] = "设定重量";
worksheet.Cells[1, 5] = "实际重量";
worksheet.Cells[1, 6] = "设定误差";
worksheet.Cells[1, 7] = "实际误差";
worksheet.Cells[1, 8] = "固含率";
int row = 2;
foreach (DataRow item in dt3.Rows)
{
worksheet.Cells[row, 1] = item[2];
worksheet.Cells[row, 2] = item[5];
worksheet.Cells[row, 4] = item[6];
worksheet.Cells[row, 5] = item[8];
worksheet.Cells[row, 6] = item[7];
worksheet.Cells[row, 7] = item[9];
worksheet.Cells[row, 8] = item[12];
row++;
}
System.Runtime.InteropServices.Marshal.ReleaseComObject(worksheet);
}
}
}
}
}

@ -39,23 +39,23 @@ namespace Mesnac.Action.ChemicalWeighing.Report.SolventReport
DialogResult result = sfd.ShowDialog();
if (result == DialogResult.OK)
{
DbMCControl weighGridControl = this.GetDbMCControlByKey(Mesnac.Basic.DataSourceFactory.MCDbType.Local, "Hw_weigh").FirstOrDefault();
// 创建一个新的DataTable对象
System.Data.DataTable dt = new System.Data.DataTable();
DataGridView dataGridView1 = weighGridControl.BaseControl as DataGridView;
// 添加列
foreach (DataGridViewColumn column in dataGridView1.Columns)
{
dt.Columns.Add(column.HeaderText, column.ValueType);
}
string fileName = sfd.FileName;
if (!String.IsNullOrEmpty(fileName))
{
try
{
DataTabletoExcel(_dgvLRPlan, fileName);
Export export = new Export();
System.Data.DataTable dts1 = _dgvLRPlan.BaseControl.BindDataSource as System.Data.DataTable;
DbMCControl subPlanGridControl = this.GetDbMCControlByKey(Mesnac.Basic.DataSourceFactory.MCDbType.Local, "Hw_plan").FirstOrDefault();
System.Data.DataTable dts2 = subPlanGridControl.BaseControl.BindDataSource as System.Data.DataTable;
DbMCControl subPlanGridContro3 = this.GetDbMCControlByKey(Mesnac.Basic.DataSourceFactory.MCDbType.Local, "Hw_weigh").FirstOrDefault();
System.Data.DataTable dts3 = subPlanGridContro3.BaseControl.BindDataSource as System.Data.DataTable;
export.ExportTo(fileName, dts1, dts2, dts3);
string msg1 = StringParser.Parse(ResourceService.GetString("Mesnac_Action_ChemicalWeighing_Report_ProductionReport_ExportAction_msg1")); //导出生产报表数据至Excel成功!
ICSharpCode.Core.LoggingService<ExportAction>.Info(msg1);

@ -85,7 +85,7 @@ namespace Mesnac.Action.ChemicalWeighing.Report.SolventReport
if (!String.IsNullOrEmpty(this._recipeName))
{
sb.AppendLine(@" And p.Batch ='" + _recipeName + "' ");
sb.AppendLine(@" And p.Batch ='" + _recipeName + "' or Plan_State=3 ");
}
//if (!String.IsNullOrEmpty(this._shiftName))
//{

@ -0,0 +1,95 @@
using DevExpress.Data.Filtering.Helpers;
using DevExpress.DataAccess.DataFederation;
using Mesnac.Action.Base;
using Mesnac.Action.ChemicalWeighing.Entity;
using Mesnac.Action.ChemicalWeighing.Entity.PptPlan;
using Mesnac.Action.ChemicalWeighing.Product.XlPlan;
using Mesnac.Action.ChemicalWeighing.Warehouse;
using Mesnac.Communication;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Timers;
using System.Windows.Forms;
namespace Mesnac.Action.ChemicalWeighing.Show
{
/// <summary>
/// 手动称量确认
/// </summary>
public class Conf1WeightAction : ChemicalWeighingAction, IAction
{
#region 字段定义
bool flag = true;
public static bool IsFirstRun = true; //是否首次运行
private RuntimeParameter _runtime;
private DbMCControl _clientGridControl = null; //本地计划控件
#endregion
public void Run(RuntimeParameter runtime)
{
base.RunIni(runtime);
#region 首次执行,进行事件订阅
if (IsFirstRun)
{
ICSharpCode.Core.LoggingService<XlInitAction>.Debug("溶剂上料确认-窗体初始化业务...");
}
#endregion
#region 初始化
string msg1 = "确认要完成称量吗?"; //确认删除当前配方(配方名:{0})吗?
DialogResult result = MessageBox.Show(msg1, Mesnac.Basic.LanguageHelper.Caption, MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if (result == DialogResult.Yes)
{
BasePlcHelper.Instance.PlcWriteByDataKey(BasePlcHelper.Instance.solvent_Configweight1, new object[] { 1 }); // 人工确认
MessageBox.Show("确认成功!");
}
#endregion
}
#region 方法定义
#region 网格事件处理方法
/// <summary>
/// 初始化网格样式
/// </summary>
/// <param name="dgv">DataGridView网格控件对象</param>
private void InitGridViewEvent(DataGridView dgv)
{
}
#endregion
#region 初始化界面控件数据
/// <summary>
/// 初始化界面控件数据
/// </summary>
private void InitData()
{
}
#endregion
#endregion
}
}

@ -0,0 +1,96 @@
using DevExpress.Data.Filtering.Helpers;
using Mesnac.Action.Base;
using Mesnac.Action.ChemicalWeighing.Entity;
using Mesnac.Action.ChemicalWeighing.Entity.PptPlan;
using Mesnac.Action.ChemicalWeighing.Product.XlPlan;
using Mesnac.Communication;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Timers;
using System.Windows.Forms;
namespace Mesnac.Action.ChemicalWeighing.Show
{
/// <summary>
/// 手动称量确认
/// </summary>
public class Conf2WeightAction : ChemicalWeighingAction, IAction
{
#region 字段定义
bool flag = true;
public static bool IsFirstRun = true; //是否首次运行
private RuntimeParameter _runtime;
private DbMCControl _clientGridControl = null; //本地计划控件
#endregion
public void Run(RuntimeParameter runtime)
{
base.RunIni(runtime);
#region 首次执行,进行事件订阅
if (IsFirstRun)
{
ICSharpCode.Core.LoggingService<XlInitAction>.Debug("溶剂上料确认-窗体初始化业务...");
}
#endregion
#region 初始化
#region 初始化
string msg1 = "确认要完成称量吗?"; //确认删除当前配方(配方名:{0})吗?
DialogResult result = MessageBox.Show(msg1, Mesnac.Basic.LanguageHelper.Caption, MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if (result == DialogResult.Yes)
{
BasePlcHelper.Instance.PlcWriteByDataKey(BasePlcHelper.Instance.solvent_Configweight2, new object[] { 1 }); // 人工确认
MessageBox.Show("确认成功!");
}
#endregion
#endregion
}
#region 方法定义
#region 网格事件处理方法
/// <summary>
/// 初始化网格样式
/// </summary>
/// <param name="dgv">DataGridView网格控件对象</param>
private void InitGridViewEvent(DataGridView dgv)
{
}
#endregion
#region 初始化界面控件数据
/// <summary>
/// 初始化界面控件数据
/// </summary>
private void InitData()
{
}
#endregion
#endregion
}
}

@ -1,11 +1,13 @@
using DevExpress.Office.Drawing;
using DevExpress.Office.Utils;
using DevExpress.XtraEditors.Filtering.Templates;
using Mesnac.Action.Base;
using Mesnac.Action.ChemicalWeighing.ChemicalWeighingPlc;
using Mesnac.Action.ChemicalWeighing.Entity;
using Mesnac.Action.ChemicalWeighing.Entity.PptPlan;
using Mesnac.Action.ChemicalWeighing.Entity.station;
using Mesnac.Action.ChemicalWeighing.Product.PptPlan;
using Mesnac.Controls.Default;
using System;
using System.Collections.Generic;
using System.Data;
@ -30,6 +32,8 @@ namespace Mesnac.Action.ChemicalWeighing.Show
string planFlag= string.Empty;
#endregion
System.Timers.Timer timer = new System.Timers.Timer(3000);
System.Timers.Timer timer2 = new System.Timers.Timer(3000);
public void Run(RuntimeParameter runtime)
{
base.RunIni(runtime);
@ -54,15 +58,15 @@ namespace Mesnac.Action.ChemicalWeighing.Show
//StartServer2();
//InitData();
//1号地磅
System.Timers.Timer timer = new System.Timers.Timer(3000);
timer.Elapsed += new ElapsedEventHandler(StartServer1);
timer.AutoReset = true;
timer.Enabled = true;
timer.Start();
//IsFirstRun = false;
////2号地磅
System.Timers.Timer timer2 = new System.Timers.Timer(3000);
////IsFirstRun = false;
//////2号地磅
timer2.Elapsed += new ElapsedEventHandler(StartServer2);
timer2.AutoReset = true;
timer2.Enabled = true;
@ -180,7 +184,11 @@ namespace Mesnac.Action.ChemicalWeighing.Show
}
var lblPlanName = base.GetControlById("lblPlanName") as System.Windows.Forms.Label;//配方名称
if (lblPlanName == null) { return; }
if (lblPlanName == null) {
timer.Stop();
timer.Close();
return;
}
var lblRecipeName = base.GetControlById("lblRecipeName") as System.Windows.Forms.Label;//配方名称
var lblTotalBatch = base.GetControlById("lblTotalBatch") as System.Windows.Forms.Label;//总批次
@ -189,7 +197,7 @@ namespace Mesnac.Action.ChemicalWeighing.Show
var lblStandardWeight = base.GetControlById("lblStandardWeight") as System.Windows.Forms.Label;//标重
var lblStateMessage = base.GetControlById("lblStateMessage") as System.Windows.Forms.Label;//配方名称
var lblPlanStateMessage = base.GetControlById("lblPlanState") as System.Windows.Forms.Label;//计划状态
DataTable table = PlanHelper.GetProPlan();//正在执行的任务
if (table == null) {
@ -201,47 +209,35 @@ namespace Mesnac.Action.ChemicalWeighing.Show
return;
}
int startBarCode = BasePlcHelper.Instance.solvent_status.NowValue.ToInt();
if (startBarCode == 1)
int status01 = BasePlcHelper.Instance.solvent_status01.NowValue.ToInt();
if (status01 == 1)
{
lblStateMessage.Text = "请扫描拉缸条码,核对投料类型!";
lblStateMessage.Text = "请加料!";
}
int status02 = BasePlcHelper.Instance.solvent_status02.NowValue.ToInt();
if (status02 == 1)
{
lblStateMessage.Text = "";
}
int status04 = BasePlcHelper.Instance.solvent_status04.NowValue.ToInt();
if (status04 == 1)
{
lblStateMessage.Text = "请清空地磅,扫描之后放物料!";
}
int status01 = BasePlcHelper.Instance.solvent_status01.NowValue.ToInt();
int setr = BasePlcHelper.Instance.solvent_Set_R.NowValue.ToInt();
if (status01 == 1 && setr == 250)
int runState = BasePlcHelper.Instance.solvent_SystemRuning.NowValue.ToInt();
if (runState == 1&& status01==1)
{
lblStateMessage.Text = "请加料!";
}
int addmateral = BasePlcHelper.Instance.solvent_Set_R.NowValue.ToInt();
if (addmateral == 1)
if (runState == 1 && status01 == 0)
{
lblStateMessage.Text = "称量完成!";
Thread.Sleep(5000);
int runState = BasePlcHelper.Instance.solvent_SystemRuning.NowValue.ToInt();
if (runState == 1)
{
lblStateMessage.Text = "请扫描拉缸条码,核对投料类型!";
}
//else
//{
// if (status01 == 0 && setr == 0)
// {
// lblStateMessage.Text = "";
// }
// lblStateMessage.Text = "";
//}
}
int status = BasePlcHelper.Instance.solvent_SystemRuning.NowValue.ToInt();
if (status01 == 0 && status04 == 0 && status != 1)
lblStateMessage.Text = "请扫描拉缸条码,核对投料类型!";
}
if (runState == 0 && status01 == 0&&status04 == 0&&status02 == 0)
{
lblStateMessage.Text = "";
lblStateMessage.Text = "状态信息";
}
List<MetagePlan> materialList = PlanHelper.DataTableToList(table);
if (materialList.Count == 0) { return; }
MetagePlan plan2 = null;
@ -260,12 +256,7 @@ namespace Mesnac.Action.ChemicalWeighing.Show
return;
}
//if (plan2 != null) {lblPlanStateMessage.Text = plan2.Plan_StateText; }
var matSerial = plan2.MID;
//if (matSerial > 1&& matSerial != materialList.Count())
//{
// matSerial = matSerial - 1;
//}
MetagePlan plan = materialList.FirstOrDefault(d => d.MID == matSerial);
if (plan2 != null) { lblPlanStateMessage.Text = plan2.Plan_StateText; }
@ -277,6 +268,12 @@ namespace Mesnac.Action.ChemicalWeighing.Show
lblRecipeName.Text = p.Recipe_Name;
lblMaterial.Text = plan.Material_name;//正在执行的物料号
lblStandardWeight.Text = plan.Total_Weight.ToString("f2");
var rate = base.GetControlById("MCLabel2") as System.Windows.Forms.Label;//理论固含
if (rate!=null)
{
rate.Text = plan.TheoryRate.ToString();
}
}
else
{
@ -321,7 +318,7 @@ namespace Mesnac.Action.ChemicalWeighing.Show
}
private void StartServer2(object sender, ElapsedEventArgs e)//object sender, ElapsedEventArgs e
private void StartServer2(object sender, ElapsedEventArgs e)
{
DbMCControl clientGridControl = this.GetDbMCControlByKey(Mesnac.Basic.DataSourceFactory.MCDbType.Local, "xl_weigh").FirstOrDefault(); //获取本机台计划控件
if (clientGridControl == null || !(clientGridControl.BaseControl is DataGridView))
@ -331,7 +328,12 @@ namespace Mesnac.Action.ChemicalWeighing.Show
}
var lblPlanName = base.GetControlById("lblPlanName2") as System.Windows.Forms.Label;//计划名称
if (lblPlanName == null) { return; }
if (lblPlanName == null)
{
timer.Stop();
timer.Close();
return;
}
var lblRecipeName = base.GetControlById("lblRecipeName2") as System.Windows.Forms.Label;//配方名称
var lblTotalBatch = base.GetControlById("lblTotalBatch2") as System.Windows.Forms.Label;//总批次
@ -352,47 +354,36 @@ namespace Mesnac.Action.ChemicalWeighing.Show
clientGridControl.BaseControl.BindDataSource = null;
return;
}
int startBarCode = BasePlcHelper.Instance.solvent2_status.NowValue.ToInt();
if (startBarCode == 1)
int status01 = BasePlcHelper.Instance.solvent_status01.NowValue.ToInt();
if (status01 == 1)
{
lblStateMessage.Text = "请扫描拉缸条码,核对投料类型!";
lblStateMessage.Text = "请加料!";
}
int status02 = BasePlcHelper.Instance.solvent_status02.NowValue.ToInt();
if (status02 == 1)
{
lblStateMessage.Text = "";
}
int status04 = BasePlcHelper.Instance.solvent2_status04.NowValue.ToInt();
int status04 = BasePlcHelper.Instance.solvent_status04.NowValue.ToInt();
if (status04 == 1)
{
lblStateMessage.Text = "请清空地磅,扫描之后放物料!";
}
int status01 = BasePlcHelper.Instance.solvent2_status01.NowValue.ToInt();
int setr = BasePlcHelper.Instance.solvent2_Set_R.NowValue.ToInt();
if (status01 == 1 && setr == 250)
int runState = BasePlcHelper.Instance.solvent_SystemRuning.NowValue.ToInt();
if (runState == 1 && status01 == 1)
{
lblStateMessage.Text = "请加料!";
}
int addmateral = BasePlcHelper.Instance.solvent2_Set_R.NowValue.ToInt();
if (addmateral == 1)
if (runState == 1 && status01 == 0)
{
lblStateMessage.Text = "称量完成!";
Thread.Sleep(5000);
int runState = BasePlcHelper.Instance.solvent2_SystemRuning.NowValue.ToInt();
if (runState == 1)
{
lblStateMessage.Text = "请扫描拉缸条码,核对投料类型!";
}
else
{
//if (status01 == 0 && setr == 0)
//{
// lblStateMessage.Text = "";
//}
//lblStateMessage.Text = "";
}
lblStateMessage.Text = "请扫描拉缸条码,核对投料类型!";
}
int status = BasePlcHelper.Instance.solvent2_SystemRuning.NowValue.ToInt();
if (status01 == 0 && status04 == 0 && status != 1)
if (runState == 0 && status01 == 0 && status04 == 0 && status02 == 0)
{
//lblStateMessage.Text = "";
lblStateMessage.Text = "状态信息";
}
List<MetagePlan> materialList = PlanHelper.DataTableToList(table);
if (materialList.Count == 0) { return; }
@ -418,6 +409,8 @@ namespace Mesnac.Action.ChemicalWeighing.Show
lblRecipeName.Text = p.Recipe_Name;
lblMaterial.Text = plan2.Material_name;//正在执行的物料号
lblStandardWeight.Text = plan2.Total_Weight.ToString("f2");
var rate = base.GetControlById("MCLabel249") as System.Windows.Forms.Label;//理论固含
rate.Text = plan2.TheoryRate.ToString();
}
else
{

@ -121,7 +121,7 @@ namespace Mesnac.Action.ChemicalWeighing.Warehouse
#endregion
MessageBox.Show(String.Format(msg2), Mesnac.Basic.LanguageHelper.WarnCaption, MessageBoxButtons.OK, MessageBoxIcon.Warning);
MessageBox.Show(String.Format(msg2), Mesnac.Basic.LanguageHelper.Caption, MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
}

@ -60,10 +60,12 @@ namespace Mesnac.Action.ChemicalWeighing
try
{
#region 配方
string recipeCode= Guid.NewGuid().ToString("N");
string recipeID = Guid.NewGuid().ToString("N");
Pmt_recipe recipe = new Pmt_recipe();
recipe.ID = Guid.NewGuid().ToString("N");
recipe.ID = recipeID;
recipe.Equip_Code = "01";
recipe.Recipe_Code = item.Recipe;
recipe.Recipe_Code = recipeCode;
recipe.Version = "1";
recipe.Recipe_Name = item.Recipe;
recipe.Recipe_Verify = 1;
@ -82,7 +84,7 @@ namespace Mesnac.Action.ChemicalWeighing
Pmt_weigh material = new Pmt_weigh();
material.ID = Guid.NewGuid().ToString("N");
material.Equip_Code = "01";
material.Recipe_ID = recipe.ID;
material.Recipe_ID = recipeID;
material.Weight_Id = i;
if (sub.Material_Code == null | sub.Material_Code == "")
@ -135,8 +137,8 @@ namespace Mesnac.Action.ChemicalWeighing
plan.Plan_Id = planID;
plan.Plan_Serial = serialNum;
plan.Recipe_ID = recipe.ID;
plan.Recipe_Code = item.Recipe;
plan.Recipe_ID = recipeID;
plan.Recipe_Code = recipeCode;
plan.Recipe_Name = item.Recipe;
plan.Version = "1";
plan.Mixer_Line = null;
@ -226,65 +228,74 @@ namespace Mesnac.Action.ChemicalWeighing
sb.Recipe = a.Recipe;
sb.Remark = a.Remark;
sb.CreateTime = DateTime.Now;
sb.Tare = a.Tare;
subList.Add(sb);
});
//查询数据
var xlList = subList.Where(d => d.MaterialType.Contains("整包"));
var xt = (from d in xlList
select new
{
d.PId,
d.ProductName,
d.MaterialType,
d.Recipe,
d.Weighbridge,
}).Distinct();
var xt = from d in xlList
group d by new { PId = d.PId, ProductName = d.ProductName, Material_Code = d.Material_Code, MaterialType = d.MaterialType, Recipe = d.Recipe, SetWeight = d.Recipe, SetError = d.SetError, Weighbridge = d.Weighbridge } into g
select new
{
g.Key.PId,
g.Key.ProductName,
g.Key.Material_Code,
g.Key.MaterialType,
g.Key.Recipe,
SetWeight = g.Sum(m => m.SetWeight),
SetError = g.Sum(m => m.SetError),
g.Key.Weighbridge
};
foreach (var item in xt)
{
try
{
#region 配方
string recipeID = Guid.NewGuid().ToString("N");
string recipeCode = Guid.NewGuid().ToString("N");
Pmt_recipe recipe = new Pmt_recipe();
recipe.ID = Guid.NewGuid().ToString("N");
recipe.Equip_Code = "01";
recipe.Recipe_Code = item.Recipe;
recipe.Version = "1";
recipe.Recipe_Name = item.Recipe;
recipe.Recipe_Verify = 1;
recipe.Total_Weight = 0;
recipe.Total_Error = 0;
recipe.CreateDateTime = DateTime.Now;
{
recipe.ID = recipeID;
recipe.Equip_Code = "01";
recipe.Recipe_Code = recipeCode;
recipe.Version = "1";
recipe.Recipe_Name = item.Recipe;
recipe.Recipe_Verify = 1;
recipe.Total_Weight = 0;
recipe.Total_Error = 0;
recipe.CreateDateTime = DateTime.Now;
}
#endregion
#region 物料
var repiceList = xlList.Where(d => item.PId.Equals(d.PId) && item.ProductName.Equals(d.ProductName) && item.Recipe.Equals(d.Recipe));
int i = 1;
List<Pmt_weigh> weighList = new List<Pmt_weigh>();
foreach (var sub in repiceList)
{
Pmt_weigh material = new Pmt_weigh();
material.ID = Guid.NewGuid().ToString("N");
material.Equip_Code = "01";
material.Recipe_ID = recipe.ID;
material.Weight_Id = i;
if (sub.Material_Code == null | sub.Material_Code == "")
material.Weight_Id = 1;
if (item.Material_Code == null | item.Material_Code == "")
{
throw new Exception("未查询到物料!");
}
var obj = GetMaterial(sub.Material_Code);
var obj = GetMaterial(item.Material_Code);
if (obj == null)
{
throw new Exception("未查询到当前物料!");
}
material.Material_ID = obj.ID;
material.Set_Weight = Convert.ToDecimal(sub.SetWeight);
material.Set_Error = Convert.ToDecimal(sub.SetError);
recipe.Total_Weight = recipe.Total_Weight + material.Set_Weight;
recipe.Total_Error = recipe.Total_Error + material.Set_Error;
material.Set_Weight = Convert.ToDecimal(item.SetWeight);
material.Set_Error = Convert.ToDecimal(item.SetError);
recipe.Total_Weight = Convert.ToDecimal(item.SetWeight);
recipe.Total_Error = Convert.ToDecimal(item.SetError);
weighList.Add(material);
i++;
}
#endregion
@ -310,7 +321,7 @@ namespace Mesnac.Action.ChemicalWeighing
plan.Plan_Id = planID;
plan.Plan_Serial = serialNum;
plan.Recipe_ID = recipe.ID;
plan.Recipe_Code = item.Recipe;
plan.Recipe_Code = recipeCode;
plan.Recipe_Name = item.Recipe;
plan.Version = "1";
plan.Mixer_Line = null;
@ -347,6 +358,7 @@ namespace Mesnac.Action.ChemicalWeighing
{
throw new Exception("计划数据不可为空!");
}
var repiceList = xlList.Where(d => item.PId.Equals(d.PId) && item.ProductName.Equals(d.ProductName) && item.Recipe.Equals(d.Recipe));
if (repiceList == null)
{
throw new Exception("反应釜计划数据不可为空!");

@ -55,11 +55,14 @@ namespace Mesnac.Action.ChemicalWeighing
{
try
{
string recipeID = Guid.NewGuid().ToString("N");
string recipeCode = Guid.NewGuid().ToString("N");
#region 配方
xl_recipe recipe = new xl_recipe();
recipe.ID = Guid.NewGuid().ToString("N");
recipe.ID = recipeID;
recipe.Equip_Code = "01";
recipe.Recipe_Code = item.Recipe;
recipe.Recipe_Code = recipeCode;
recipe.Version = "1";
recipe.Recipe_Name = item.Recipe;
recipe.Recipe_Verify = 1;
@ -133,7 +136,7 @@ namespace Mesnac.Action.ChemicalWeighing
plan.Plan_Id = planID;
plan.Plan_Serial = serialNum;
plan.Recipe_ID = recipe.ID;
plan.Recipe_Code = item.Recipe;
plan.Recipe_Code = recipeID;
plan.Recipe_Name = item.Recipe;
plan.Version = "1";
plan.Recipe_Type = 0;

@ -163,7 +163,7 @@ namespace Mesnac.Action.ChemicalWeighing.Warehouse
throw new Exception(Mesnac.Basic.LanguageHelper.DataBaseConnectError);
}
dbHelper.CommandType = CommandType.Text;
string strSql = "SELECT ID,PId,MaterialID,MaterialName,SetWeight,SetError FROM Hw_WareHouse_Sub where MainId=@MainId";
string strSql = "SELECT ID,PId,MaterialID,MaterialName,SetWeight,SetError,Tare FROM Hw_WareHouse_Sub where MainId=@MainId";
dbHelper.CommandText = strSql;
dbHelper.ClearParameter();
dbHelper.AddParameter("@MainId", MId);

@ -41,6 +41,7 @@ namespace Mesnac.Controls.Default
//{
// this.datas
//}
this.MaxDropDownItems = 100;
}
public MCCombobox(IContainer container)

@ -10,6 +10,14 @@
<Caption>溶剂展示界面</Caption>
<Remark>溶剂展示界面</Remark>
</Action>
<Action action="6024DA443A4B2F163607CAAA9FCBD623">
<Caption>地磅1人工确认</Caption>
<Remark>地磅1人工确认</Remark>
</Action>
<Action action="18CA9351644D6854196690CB351C8C7A">
<Caption>地磅2人工确认</Caption>
<Remark>地磅2人工确认</Remark>
</Action>
</Path>
</Design>
@ -20,12 +28,20 @@
<Design action="F6C08A4C6DC4D51978F8198D70ECCAAD">
<Runtime action="2931A6C3474C54284ADAECE7A4CD7960" parameters="0"/>
</Design>
<Design action="6024DA443A4B2F163607CAAA9FCBD623">
<Runtime action="17E0E6B108CE0E29B0CD5C84C88B77B9" parameters="0"/>
</Design>
<Design action="18CA9351644D6854196690CB351C8C7A">
<Runtime action="20C5AB0A6C358E1C47C782DB4125871E" parameters="0"/>
</Design>
</DesignToRuntime>
<Runtime>
<Import assembly = "Data/Action/ChemicalWeighing/Mesnac.Action.ChemicalWeighing.dll">
<Action action="F67A3BF588F2ADDCCCB0703CEB532327" class="Mesnac.Action.ChemicalWeighing.Show.XlInitAction"/>
<Action action="2931A6C3474C54284ADAECE7A4CD7960" class="Mesnac.Action.ChemicalWeighing.Show.InitFormAction"/>
<Action action="17E0E6B108CE0E29B0CD5C84C88B77B9" class="Mesnac.Action.ChemicalWeighing.Show.Conf1WeightAction"/>
<Action action="20C5AB0A6C358E1C47C782DB4125871E" class="Mesnac.Action.ChemicalWeighing.Show.Conf2WeightAction"/>
</Import>
</Runtime>
</ActionService>

@ -22,6 +22,18 @@
<Caption>导出生产报表</Caption>
<Remark>导出生产报表</Remark>
</Action>
<Action action="2b9995ab78814157d02d7f73444d6b1f">
<Caption>料仓投料生产报表</Caption>
<Remark>料仓投料生产报表</Remark>
</Action>
<Action action="ca1171782aaaeceab8aa5aa99692c3c7">
<Caption>料仓投料生产报表查询</Caption>
<Remark>料仓投料生产报表查询</Remark>
</Action>
<Action action="b2963e6b045142996ca1740dc2c09b0a">
<Caption>料仓投料生产报表导出</Caption>
<Remark>料仓投料生产报表导出</Remark>
</Action>
</Path>
</Design>
@ -46,6 +58,18 @@
<Design action="D0AA7FF35ADA404F8CDBA8786D91181D">
<Runtime action="04C54D3415B045E4A1B467F1BAA63694"/>
</Design>
<!--料仓投料生产报表-->
<Design action="2b9995ab78814157d02d7f73444d6b1f">
<Runtime action="07d87b9e2ff6895be0d937f3bb86c583"/>
</Design>
<!--料仓投料生产报表查询-->
<Design action="ca1171782aaaeceab8aa5aa99692c3c7">
<Runtime action="7c0daa9b7d4e43b8f16b106e2933bd16"/>
</Design>
<!--料仓投料生产报表导出-->
<Design action="b2963e6b045142996ca1740dc2c09b0a">
<Runtime action="dd2f613621deae199f07b16fb3c8c25c"/>
</Design>
</DesignToRuntime>
<Runtime>
@ -55,6 +79,9 @@
<Action action="540F8A9047DAE5A605C71D761CBE567B" class="Mesnac.Action.ChemicalWeighing.Report.ProductionReport.SelectPlanTotalAction"/>
<Action action="E2C77EA13C04436EA079309A9D7A9BBC" class="Mesnac.Action.ChemicalWeighing.Report.ProductionReport.SelectRowAction"/>
<Action action="04C54D3415B045E4A1B467F1BAA63694" class="Mesnac.Action.ChemicalWeighing.Report.ProductionReport.ExportAction"/>
</Import>
<Action action="07d87b9e2ff6895be0d937f3bb86c583" class="Mesnac.Action.ChemicalWeighing.Report.ProductionSolventReport.InitFormAction"/>
<Action action="7c0daa9b7d4e43b8f16b106e2933bd16" class="Mesnac.Action.ChemicalWeighing.Report.ProductionSolventReport.SelectAction"/>
<Action action="dd2f613621deae199f07b16fb3c8c25c" class="Mesnac.Action.ChemicalWeighing.Report.ProductionSolventReport.ExportAction"/>
</Import>
</Runtime>
</ActionService>

@ -14,6 +14,7 @@
<Node Name="frmPump" Text="投料泵管理" ToolTipText="frmPump" Tag="frmPump" ImageIndex="3" SelectedImageIndex="3" />
<Node Name="frmCylinder" Text="拉缸管理" ToolTipText="frmCylinder" Tag="frmCylinder" ImageIndex="3" SelectedImageIndex="3" />
<Node Name="溶剂称量" Text="溶剂称量" ToolTipText="溶剂称量" Tag="溶剂称量" ImageIndex="3" SelectedImageIndex="3" />
<Node Name="溶剂和整包投料历史报表" Text="溶剂和整包投料历史报表" ToolTipText="溶剂和整包投料历史报表" Tag="溶剂和整包投料历史报表" ImageIndex="3" SelectedImageIndex="3" />
</Node>
<Node Name="nodeDevice" Text="设备" ToolTipText="" Tag="nodeDevice" ImageIndex="2" SelectedImageIndex="2">
<Node Name="CWSS_PLC" Text="CWSS_PLC" ToolTipText="" Tag="CWSS_PLC" ImageIndex="5" SelectedImageIndex="5" />

@ -7,7 +7,7 @@
<ReadHz value="1000" />
<UnitLen value="8" />
<Connection mode="Net">
<IP value="192.168.10.130" />
<IP value="127.0.0.1" />
<Rack value="0" />
<Slot value="0" />
</Connection>
@ -3368,7 +3368,7 @@
<Data name="status_U15_plusStatus" runname="DB109.DBW248" start="124" len="1" method="Default_ShortDiv()" max="" issave="False" subtractor="" remark="气振阀状态" />
</Data>
</Group>
<Group name="DB110" block="110" start="0" len="891" access="ReadWrite" remark="地磅称量1" isautoread="True">
<Group name="DB110" block="110" start="0" len="892" access="ReadWrite" remark="地磅称量1" isautoread="True">
<Data>
<Data name="scaleWeight" runname="DB110.DBW0" start="0" len="1" method="Default_Div()" max="" issave="False" subtractor="" remark="实时重量" />
<Data name="finishedNum" runname="DB110.DBW2" start="1" len="1" method="Default_Div()" max="" issave="False" subtractor="" remark="完成数量" />
@ -4259,9 +4259,10 @@
<Data name="status04" runname="DB110.DBW1776" start="888" len="1" method="Default_ShortDiv()" max="" issave="False" subtractor="" remark="清空地磅" />
<Data name="status05" runname="DB110.DBW1778" start="889" len="1" method="Default_ShortDiv()" max="" issave="False" subtractor="" remark="禁止操作" />
<Data name="TartTime" runname="DB110.DBW1780" start="890" len="1" method="Default_ShortDiv()" max="" issave="False" subtractor="" remark="配方是否还在称量中1正在称量,其他不在称量中" />
<Data name="Confeight" runname="DB110.DBW1782" start="891" len="1" method="Default_ShortDiv()" max="" issave="False" subtractor="" remark="人工确认" />
</Data>
</Group>
<Group name="DB111" block="111" start="0" len="891" access="ReadWrite" remark="地磅称量2" isautoread="True">
<Group name="DB111" block="111" start="0" len="892" access="ReadWrite" remark="地磅称量2" isautoread="True">
<Data>
<Data name="scaleWeight" runname="DB111.DBW0" start="0" len="1" method="Default_Div()" max="" issave="False" subtractor="" remark="实时重量" />
<Data name="finishedNum" runname="DB111.DBW2" start="1" len="1" method="Default_Div()" max="" issave="False" subtractor="" remark="完成数量" />
@ -5152,6 +5153,7 @@
<Data name="status04" runname="DB111.DBW1776" start="888" len="1" method="Default_ShortDiv()" max="" issave="False" subtractor="" remark="清空地磅" />
<Data name="status05" runname="DB111.DBW1778" start="889" len="1" method="Default_ShortDiv()" max="" issave="False" subtractor="" remark="禁止操作" />
<Data name="TartTime" runname="DB111.DBW1780" start="890" len="1" method="Default_ShortDiv()" max="" issave="False" subtractor="" remark="配方是否还在称量中1正在称量,其他不在称量中" />
<Data name="ConfWeight" runname="DB111.DBW1782" start="891" len="1" method="Default_ShortDiv()" max="" issave="False" subtractor="" remark="人工确认" />
</Data>
</Group>
<Group name="DB101" block="101" start="0" len="15" access="ReadWrite" remark="溶剂设备" isautoread="False">

@ -0,0 +1,47 @@
<Object type="Mesnac.Gui.Common.FrmRunTemplate, Mesnac.Gui.Common, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" name="123213" children="Controls">
<Object type="Mesnac.Controls.Default.MCLabel, Mesnac.Controls.Default, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" name="MCLabel1" children="Controls">
<Property name="Format" />
<Property name="TextName">CWSS_PLC.DB110.status02</Property>
<Property name="NewFillColor">Red</Property>
<Property name="OldFillColor">DarkGray</Property>
<Property name="MCKey" />
<Property name="MCDataSourceID" />
<Property name="IsDbControl">True</Property>
<Property name="InitDataSource" />
<Property name="ActionDataSource" />
<Property name="BindDataSource" />
<Property name="DbOptionType">Query</Property>
<Property name="MCVisible">True</Property>
<Property name="MCEnabled">True</Property>
<Property name="Text">MCLabel1</Property>
<Property name="Location">139, 145</Property>
<Property name="Name">MCLabel1</Property>
<Property name="Size">53, 12</Property>
</Object>
<Property name="LoadActionList">
<Binary>AAEAAAD/////AQAAAAAAAAAMAgAAAEtNZXNuYWMuQ29udHJvbHMuQmFzZSwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGwEAQAAAJMBU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tNZXNuYWMuQ29udHJvbHMuQmFzZS5EZXNpZ25BY3Rpb24sIE1lc25hYy5Db250cm9scy5CYXNlLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbF1dAwAAAAZfaXRlbXMFX3NpemUIX3ZlcnNpb24EAAAjTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGVzaWduQWN0aW9uW10CAAAACAgJAwAAAAAAAAAAAAAABwMAAAAAAQAAAAAAAAAEIU1lc25hYy5Db250cm9scy5CYXNlLkRlc2lnbkFjdGlvbgIAAAAL</Binary>
</Property>
<Property name="ActivatedActionList">
<Binary>AAEAAAD/////AQAAAAAAAAAMAgAAAEtNZXNuYWMuQ29udHJvbHMuQmFzZSwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGwEAQAAAJMBU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tNZXNuYWMuQ29udHJvbHMuQmFzZS5EZXNpZ25BY3Rpb24sIE1lc25hYy5Db250cm9scy5CYXNlLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbF1dAwAAAAZfaXRlbXMFX3NpemUIX3ZlcnNpb24EAAAjTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGVzaWduQWN0aW9uW10CAAAACAgJAwAAAAAAAAAAAAAABwMAAAAAAQAAAAAAAAAEIU1lc25hYy5Db250cm9scy5CYXNlLkRlc2lnbkFjdGlvbgIAAAAL</Binary>
</Property>
<Property name="ReloadActionList">
<Binary>AAEAAAD/////AQAAAAAAAAAMAgAAAEtNZXNuYWMuQ29udHJvbHMuQmFzZSwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGwEAQAAAJMBU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tNZXNuYWMuQ29udHJvbHMuQmFzZS5EZXNpZ25BY3Rpb24sIE1lc25hYy5Db250cm9scy5CYXNlLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbF1dAwAAAAZfaXRlbXMFX3NpemUIX3ZlcnNpb24EAAAjTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGVzaWduQWN0aW9uW10CAAAACAgJAwAAAAAAAAAAAAAABwMAAAAAAQAAAAAAAAAEIU1lc25hYy5Db250cm9scy5CYXNlLkRlc2lnbkFjdGlvbgIAAAAL</Binary>
</Property>
<Property name="RefreshDataActionList">
<Binary>AAEAAAD/////AQAAAAAAAAAMAgAAAEtNZXNuYWMuQ29udHJvbHMuQmFzZSwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGwEAQAAAJMBU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tNZXNuYWMuQ29udHJvbHMuQmFzZS5EZXNpZ25BY3Rpb24sIE1lc25hYy5Db250cm9scy5CYXNlLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbF1dAwAAAAZfaXRlbXMFX3NpemUIX3ZlcnNpb24EAAAjTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGVzaWduQWN0aW9uW10CAAAACAgJAwAAAAAAAAAAAAAABwMAAAAAAQAAAAAAAAAEIU1lc25hYy5Db250cm9scy5CYXNlLkRlc2lnbkFjdGlvbgIAAAAL</Binary>
</Property>
<Property name="BHaveAction">True</Property>
<Property name="MCPurview">False</Property>
<Property name="AllowOriginalSizeShow">False</Property>
<Property name="BackColor">Control</Property>
<Property name="Size">600, 401</Property>
<Property name="StartPosition">WindowsDefaultLocation</Property>
<Property name="Text">123213</Property>
<Property name="WindowState">Normal</Property>
<Property name="BackgroundImage" />
<Property name="BackgroundImageLayout">Tile</Property>
<Property name="Font">宋体, 9pt</Property>
<Property name="ForeColor">ControlText</Property>
<Property name="Name">123213</Property>
</Object>

@ -158,6 +158,32 @@
<Property name="Size">100, 30</Property>
<Property name="TabIndex">5</Property>
</Object>
<Object type="Mesnac.Controls.Default.MCButton, Mesnac.Controls.Default, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" name="MCButton1" children="Controls">
<Property name="ClickActionList">
<Binary>AAEAAAD/////AQAAAAAAAAAMAgAAAEtNZXNuYWMuQ29udHJvbHMuQmFzZSwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGwEAQAAAJMBU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tNZXNuYWMuQ29udHJvbHMuQmFzZS5EZXNpZ25BY3Rpb24sIE1lc25hYy5Db250cm9scy5CYXNlLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbF1dAwAAAAZfaXRlbXMFX3NpemUIX3ZlcnNpb24EAAAjTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGVzaWduQWN0aW9uW10CAAAACAgJAwAAAAEAAAAEAAAABwMAAAAAAQAAAAQAAAAEIU1lc25hYy5Db250cm9scy5CYXNlLkRlc2lnbkFjdGlvbgIAAAAJBAAAAA0DBQQAAAAhTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGVzaWduQWN0aW9uAwAAABU8R1VJRD5rX19CYWNraW5nRmllbGQVPE5hbWU+a19fQmFja2luZ0ZpZWxkFzxSZW1hcms+a19fQmFja2luZ0ZpZWxkAQEBAgAAAAYFAAAAIDRGOTk4MEI1MzMyQjQ3REM4MUI2QTE4ODQ2MDQzOEE3BgYAAAAM6YeN5Lyg6K6h5YiSBgcAAAAV6YeN5Lyg6K6h5YiS5L+h5oGvUExDCw==</Binary>
</Property>
<Property name="MCKey" />
<Property name="MCDataSourceID" />
<Property name="IsDbControl">False</Property>
<Property name="InitDataSource" />
<Property name="ActionDataSource" />
<Property name="BindDataSource" />
<Property name="DbOptionType">None</Property>
<Property name="MCVisible">True</Property>
<Property name="MCEnabled">True</Property>
<Property name="MCPurview">False</Property>
<Property name="Format" />
<Property name="TextName" />
<Property name="NewFillColor">Red</Property>
<Property name="OldFillColor">DarkGray</Property>
<Property name="BackColor">Transparent</Property>
<Property name="Text">计划重传</Property>
<Property name="Font">宋体, 14.25pt, style=Bold</Property>
<Property name="Location">690, 0</Property>
<Property name="Name">MCButton1</Property>
<Property name="Size">100, 30</Property>
<Property name="TabIndex">5</Property>
</Object>
<Object type="Mesnac.Controls.Default.MCButton, Mesnac.Controls.Default, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" name="MCButton6" children="Controls">
<Property name="ClickActionList">
<Binary>AAEAAAD/////AQAAAAAAAAAMAgAAAEtNZXNuYWMuQ29udHJvbHMuQmFzZSwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGwEAQAAAJMBU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tNZXNuYWMuQ29udHJvbHMuQmFzZS5EZXNpZ25BY3Rpb24sIE1lc25hYy5Db250cm9scy5CYXNlLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbF1dAwAAAAZfaXRlbXMFX3NpemUIX3ZlcnNpb24EAAAjTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGVzaWduQWN0aW9uW10CAAAACAgJAwAAAAEAAAACAAAABwMAAAAAAQAAAAQAAAAEIU1lc25hYy5Db250cm9scy5CYXNlLkRlc2lnbkFjdGlvbgIAAAAJBAAAAA0DBQQAAAAhTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGVzaWduQWN0aW9uAwAAABU8R1VJRD5rX19CYWNraW5nRmllbGQVPE5hbWU+a19fQmFja2luZ0ZpZWxkFzxSZW1hcms+a19fQmFja2luZ0ZpZWxkAQEBAgAAAAYFAAAAIFhMNDNDRDMyNzZGMDQxN0NBQzY1MTk3RDE3OTlCOUIyBgYAAAAG5LiK56e7BgcAAAAM5LiK56e76K6h5YiSCw==</Binary>

@ -3,7 +3,7 @@
<Object type="Mesnac.Controls.Default.MCDataGridView, Mesnac.Controls.Default, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" name="MCDataGridView1" children="Controls">
<Property name="DisplayAllColumn">False</Property>
<Property name="DgvColumn">
<Binary>AAEAAAD/////AQAAAAAAAAAMAgAAAEtNZXNuYWMuQ29udHJvbHMuQmFzZSwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGwEAQAAAJoBU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tNZXNuYWMuQ29udHJvbHMuQmFzZS5EYXRhR3JpZFZpZXdDb2x1bW5zLCBNZXNuYWMuQ29udHJvbHMuQmFzZSwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGxdXQMAAAAGX2l0ZW1zBV9zaXplCF92ZXJzaW9uBAAAKk1lc25hYy5Db250cm9scy5CYXNlLkRhdGFHcmlkVmlld0NvbHVtbnNbXQIAAAAICAkDAAAABQAAAFYAAAAHAwAAAAABAAAACAAAAAQoTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGF0YUdyaWRWaWV3Q29sdW1ucwIAAAAJBAAAAAkFAAAACQYAAAAJBwAAAAkIAAAADQMFBAAAAChNZXNuYWMuQ29udHJvbHMuQmFzZS5EYXRhR3JpZFZpZXdDb2x1bW5zAgAAAApfZmlsZWREYXRhDF9kaXNwbGF5TmFtZQEBAgAAAAYJAAAABuW6j+WPtwYKAAAABuW6j+WPtwEFAAAABAAAAAYLAAAADU1hdGVyaWFsX25hbWUGDAAAAAznianmlpnlkI3np7ABBgAAAAQAAAAGDQAAAA1NYXRlcmlhbF9jb2RlBg4AAAAa54mp5paZ57yW56CBKOm7mOiupOadoeeggSkBBwAAAAQAAAAGDwAAAAhJc0VuYWJsZQYQAAAADOaYr+WQpuWQr+eUqAEIAAAABAAAAAYRAAAABlJlbWFyawYSAAAABuWkh+azqAs=</Binary>
<Binary>AAEAAAD/////AQAAAAAAAAAMAgAAAEtNZXNuYWMuQ29udHJvbHMuQmFzZSwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGwEAQAAAJoBU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tNZXNuYWMuQ29udHJvbHMuQmFzZS5EYXRhR3JpZFZpZXdDb2x1bW5zLCBNZXNuYWMuQ29udHJvbHMuQmFzZSwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGxdXQMAAAAGX2l0ZW1zBV9zaXplCF92ZXJzaW9uBAAAKk1lc25hYy5Db250cm9scy5CYXNlLkRhdGFHcmlkVmlld0NvbHVtbnNbXQIAAAAICAkDAAAABgAAAGQAAAAHAwAAAAABAAAACAAAAAQoTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGF0YUdyaWRWaWV3Q29sdW1ucwIAAAAJBAAAAAkFAAAACQYAAAAJBwAAAAkIAAAACQkAAAANAgUEAAAAKE1lc25hYy5Db250cm9scy5CYXNlLkRhdGFHcmlkVmlld0NvbHVtbnMCAAAACl9maWxlZERhdGEMX2Rpc3BsYXlOYW1lAQECAAAABgoAAAAG5bqP5Y+3BgsAAAAG5bqP5Y+3AQUAAAAEAAAABgwAAAANTWF0ZXJpYWxfbmFtZQYNAAAADOeJqeaWmeWQjeensAEGAAAABAAAAAYOAAAADU1hdGVyaWFsX2NvZGUGDwAAABrnianmlpnnvJbnoIEo6buY6K6k5p2h56CBKQEHAAAABAAAAAYQAAAACElzRW5hYmxlBhEAAAAM5piv5ZCm5ZCv55SoAQgAAAAEAAAABhIAAAAGUmVtYXJrBhMAAAAG5aSH5rOoAQkAAAAEAAAABhQAAAAEVGFyZQYVAAAABuearumHjQs=</Binary>
</Property>
<Property name="ClickActionList">
<Binary>AAEAAAD/////AQAAAAAAAAAMAgAAAEtNZXNuYWMuQ29udHJvbHMuQmFzZSwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGwEAQAAAJMBU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tNZXNuYWMuQ29udHJvbHMuQmFzZS5EZXNpZ25BY3Rpb24sIE1lc25hYy5Db250cm9scy5CYXNlLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbF1dAwAAAAZfaXRlbXMFX3NpemUIX3ZlcnNpb24EAAAjTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGVzaWduQWN0aW9uW10CAAAACAgJAwAAAAAAAAAAAAAABwMAAAAAAQAAAAAAAAAEIU1lc25hYy5Db250cm9scy5CYXNlLkRlc2lnbkFjdGlvbgIAAAAL</Binary>

@ -267,6 +267,30 @@
<Property name="Size">110, 26</Property>
<Property name="TabIndex">11</Property>
</Object>
<Object type="Mesnac.Controls.Default.MCButton, Mesnac.Controls.Default, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" name="MCButton2" children="Controls">
<Property name="ClickActionList">
<Binary>AAEAAAD/////AQAAAAAAAAAMAgAAAEtNZXNuYWMuQ29udHJvbHMuQmFzZSwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGwEAQAAAJMBU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tNZXNuYWMuQ29udHJvbHMuQmFzZS5EZXNpZ25BY3Rpb24sIE1lc25hYy5Db250cm9scy5CYXNlLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbF1dAwAAAAZfaXRlbXMFX3NpemUIX3ZlcnNpb24EAAAjTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGVzaWduQWN0aW9uW10CAAAACAgJAwAAAAEAAAAQAAAABwMAAAAAAQAAAAQAAAAEIU1lc25hYy5Db250cm9scy5CYXNlLkRlc2lnbkFjdGlvbgIAAAAJBAAAAA0DBQQAAAAhTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGVzaWduQWN0aW9uAwAAABU8R1VJRD5rX19CYWNraW5nRmllbGQVPE5hbWU+a19fQmFja2luZ0ZpZWxkFzxSZW1hcms+a19fQmFja2luZ0ZpZWxkAQEBAgAAAAYFAAAAIEJFNURFRkFBMUI2RDkxNTBDNDg3NTRBRjk1RjVGMTI1BgYAAAAS5a+85Ye655Sf5Lqn5oql6KGoBgcAAAAS5a+85Ye655Sf5Lqn5oql6KGoCw==</Binary>
</Property>
<Property name="MCKey" />
<Property name="MCDataSourceID" />
<Property name="IsDbControl">False</Property>
<Property name="InitDataSource" />
<Property name="ActionDataSource" />
<Property name="BindDataSource" />
<Property name="DbOptionType">None</Property>
<Property name="MCVisible">True</Property>
<Property name="MCEnabled">True</Property>
<Property name="MCPurview">False</Property>
<Property name="Format" />
<Property name="TextName" />
<Property name="NewFillColor">Red</Property>
<Property name="OldFillColor">DarkGray</Property>
<Property name="Text">导出报表</Property>
<Property name="Location">996, 23</Property>
<Property name="Name">MCButton2</Property>
<Property name="Size">113, 30</Property>
<Property name="TabIndex">6</Property>
</Object>
<Object type="Mesnac.Controls.Default.MCButton, Mesnac.Controls.Default, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" name="MCButton3" children="Controls">
<Property name="ClickActionList">
<Binary>AAEAAAD/////AQAAAAAAAAAMAgAAAEtNZXNuYWMuQ29udHJvbHMuQmFzZSwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGwEAQAAAJMBU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tNZXNuYWMuQ29udHJvbHMuQmFzZS5EZXNpZ25BY3Rpb24sIE1lc25hYy5Db250cm9scy5CYXNlLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbF1dAwAAAAZfaXRlbXMFX3NpemUIX3ZlcnNpb24EAAAjTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGVzaWduQWN0aW9uW10CAAAACAgJAwAAAAEAAAAOAAAABwMAAAAAAQAAAAQAAAAEIU1lc25hYy5Db250cm9scy5CYXNlLkRlc2lnbkFjdGlvbgIAAAAJBAAAAA0DBQQAAAAhTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGVzaWduQWN0aW9uAwAAABU8R1VJRD5rX19CYWNraW5nRmllbGQVPE5hbWU+a19fQmFja2luZ0ZpZWxkFzxSZW1hcms+a19fQmFja2luZ0ZpZWxkAQEBAgAAAAYFAAAAIEFFRjIwMjBDMDA4MjIwOTA0NURDQUQzQ0EyMDM4RDUyBgYAAAAS5p+l6K+i55Sf5Lqn6K6h5YiSBgcAAAAS5p+l6K+i55Sf5Lqn6K6h5YiSCw==</Binary>

@ -28,6 +28,7 @@
<Property name="DbOptionType">Query</Property>
<Property name="MCVisible">True</Property>
<Property name="MCEnabled">True</Property>
<Property name="AutoGenerateColumns">False</Property>
<Property name="MultiSelect">False</Property>
<Property name="Dock">Fill</Property>
<Property name="Location">3, 25</Property>
@ -54,7 +55,7 @@
<Object type="Mesnac.Controls.Default.MCDataGridView, Mesnac.Controls.Default, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" name="MCDataGridView2" children="Controls">
<Property name="DisplayAllColumn">False</Property>
<Property name="DgvColumn">
<Binary>AAEAAAD/////AQAAAAAAAAAMAgAAAEtNZXNuYWMuQ29udHJvbHMuQmFzZSwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGwEAQAAAJoBU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tNZXNuYWMuQ29udHJvbHMuQmFzZS5EYXRhR3JpZFZpZXdDb2x1bW5zLCBNZXNuYWMuQ29udHJvbHMuQmFzZSwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGxdXQMAAAAGX2l0ZW1zBV9zaXplCF92ZXJzaW9uBAAAKk1lc25hYy5Db250cm9scy5CYXNlLkRhdGFHcmlkVmlld0NvbHVtbnNbXQIAAAAICAkDAAAABQAAAGgAAAAHAwAAAAABAAAACAAAAAQoTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGF0YUdyaWRWaWV3Q29sdW1ucwIAAAAJBAAAAAkFAAAACQYAAAAJBwAAAAkIAAAADQMFBAAAAChNZXNuYWMuQ29udHJvbHMuQmFzZS5EYXRhR3JpZFZpZXdDb2x1bW5zAgAAAApfZmlsZWREYXRhDF9kaXNwbGF5TmFtZQEBAgAAAAYJAAAAA1BJZAYKAAAABuaJueasoQEFAAAABAAAAAYLAAAADE1hdGVyaWFsTmFtZQYMAAAADOeJqeaWmeWQjeensAEGAAAABAAAAAYNAAAACk1hdGVyaWFsSUQGDgAAAAznianmlpnnvJbnoIEBBwAAAAQAAAAGDwAAAAlTZXRXZWlnaHQGEAAAAAznianmlpnph43ph48BCAAAAAQAAAAGEQAAAAhTZXRFcnJvcgYSAAAADOiuvuWumuivr+W3rgs=</Binary>
<Binary>AAEAAAD/////AQAAAAAAAAAMAgAAAEtNZXNuYWMuQ29udHJvbHMuQmFzZSwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGwEAQAAAJoBU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tNZXNuYWMuQ29udHJvbHMuQmFzZS5EYXRhR3JpZFZpZXdDb2x1bW5zLCBNZXNuYWMuQ29udHJvbHMuQmFzZSwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGxdXQMAAAAGX2l0ZW1zBV9zaXplCF92ZXJzaW9uBAAAKk1lc25hYy5Db250cm9scy5CYXNlLkRhdGFHcmlkVmlld0NvbHVtbnNbXQIAAAAICAkDAAAABgAAAH0AAAAHAwAAAAABAAAACAAAAAQoTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGF0YUdyaWRWaWV3Q29sdW1ucwIAAAAJBAAAAAkFAAAACQYAAAAJBwAAAAkIAAAACQkAAAANAgUEAAAAKE1lc25hYy5Db250cm9scy5CYXNlLkRhdGFHcmlkVmlld0NvbHVtbnMCAAAACl9maWxlZERhdGEMX2Rpc3BsYXlOYW1lAQECAAAABgoAAAADUElkBgsAAAAG5om55qyhAQUAAAAEAAAABgwAAAAMTWF0ZXJpYWxOYW1lBg0AAAAM54mp5paZ5ZCN56ewAQYAAAAEAAAABg4AAAAKTWF0ZXJpYWxJRAYPAAAADOeJqeaWmee8lueggQEHAAAABAAAAAYQAAAACVNldFdlaWdodAYRAAAADOeJqeaWmemHjemHjwEIAAAABAAAAAYSAAAACFNldEVycm9yBhMAAAAM6K6+5a6a6K+v5beuAQkAAAAEAAAABhQAAAAEVGFyZQYVAAAABuearumHjQs=</Binary>
</Property>
<Property name="ClickActionList">
<Binary>AAEAAAD/////AQAAAAAAAAAMAgAAAEtNZXNuYWMuQ29udHJvbHMuQmFzZSwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGwEAQAAAJMBU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tNZXNuYWMuQ29udHJvbHMuQmFzZS5EZXNpZ25BY3Rpb24sIE1lc25hYy5Db250cm9scy5CYXNlLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbF1dAwAAAAZfaXRlbXMFX3NpemUIX3ZlcnNpb24EAAAjTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGVzaWduQWN0aW9uW10CAAAACAgJAwAAAAAAAAAAAAAABwMAAAAAAQAAAAAAAAAEIU1lc25hYy5Db250cm9scy5CYXNlLkRlc2lnbkFjdGlvbgIAAAAL</Binary>

@ -0,0 +1,257 @@
<Object type="Mesnac.Gui.Common.FrmRunTemplate, Mesnac.Gui.Common, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" name="溶剂和整包投料历史报表" children="Controls">
<Object type="Mesnac.Controls.Default.MCDataGridView, Mesnac.Controls.Default, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" name="MCDataGridView1" children="Controls">
<Property name="DisplayAllColumn">False</Property>
<Property name="DgvColumn">
<Binary>AAEAAAD/////AQAAAAAAAAAMAgAAAEtNZXNuYWMuQ29udHJvbHMuQmFzZSwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGwEAQAAAJoBU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tNZXNuYWMuQ29udHJvbHMuQmFzZS5EYXRhR3JpZFZpZXdDb2x1bW5zLCBNZXNuYWMuQ29udHJvbHMuQmFzZSwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGxdXQMAAAAGX2l0ZW1zBV9zaXplCF92ZXJzaW9uBAAAKk1lc25hYy5Db250cm9scy5CYXNlLkRhdGFHcmlkVmlld0NvbHVtbnNbXQIAAAAICAkDAAAACAAAAGAAAAAHAwAAAAABAAAACAAAAAQoTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGF0YUdyaWRWaWV3Q29sdW1ucwIAAAAJBAAAAAkFAAAACQYAAAAJBwAAAAkIAAAACQkAAAAJCgAAAAkLAAAABQQAAAAoTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGF0YUdyaWRWaWV3Q29sdW1ucwIAAAAKX2ZpbGVkRGF0YQxfZGlzcGxheU5hbWUBAQIAAAAGDAAAAAZQbGFuSWQGDQAAAAnorqHliJLlj7cBBQAAAAQAAAAGDgAAAAVCYXRjaAYPAAAADOiuoeWIkuaJueasoQEGAAAABAAAAAYQAAAAC1Byb2R1Y3ROYW1lBhEAAAAM5Lqn5ZOB5ZCN56ewAQcAAAAEAAAABhIAAAAWTWF0ZXJpYWxfSW52ZW50b3J5Q29kZQYTAAAADOWtmOi0p+e8lueggQEIAAAABAAAAAYUAAAAFE1hdGVyaWFsX0JhdGNoTnVtYmVyBhUAAAAJ5om55qyh5Y+3AQkAAAAEAAAABhYAAAATTWF0ZXJpYWxfU2VyaWFsQ29kZQYXAAAACea1geawtOWPtwEKAAAABAAAAAYYAAAADE1hdGVyaWFsTmFtZQYZAAAADOeJqeaWmeWQjeensAELAAAABAAAAAYaAAAACkJhckNvZGVTdHIGGwAAAAnkuoznu7TnoIEL</Binary>
</Property>
<Property name="ClickActionList">
<Binary>AAEAAAD/////AQAAAAAAAAAMAgAAAEtNZXNuYWMuQ29udHJvbHMuQmFzZSwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGwEAQAAAJMBU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tNZXNuYWMuQ29udHJvbHMuQmFzZS5EZXNpZ25BY3Rpb24sIE1lc25hYy5Db250cm9scy5CYXNlLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbF1dAwAAAAZfaXRlbXMFX3NpemUIX3ZlcnNpb24EAAAjTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGVzaWduQWN0aW9uW10CAAAACAgJAwAAAAAAAAAAAAAABwMAAAAAAQAAAAAAAAAEIU1lc25hYy5Db250cm9scy5CYXNlLkRlc2lnbkFjdGlvbgIAAAAL</Binary>
</Property>
<Property name="DoubleClickActionList">
<Binary>AAEAAAD/////AQAAAAAAAAAMAgAAAEtNZXNuYWMuQ29udHJvbHMuQmFzZSwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGwEAQAAAJMBU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tNZXNuYWMuQ29udHJvbHMuQmFzZS5EZXNpZ25BY3Rpb24sIE1lc25hYy5Db250cm9scy5CYXNlLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbF1dAwAAAAZfaXRlbXMFX3NpemUIX3ZlcnNpb24EAAAjTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGVzaWduQWN0aW9uW10CAAAACAgJAwAAAAAAAAAAAAAABwMAAAAAAQAAAAAAAAAEIU1lc25hYy5Db250cm9scy5CYXNlLkRlc2lnbkFjdGlvbgIAAAAL</Binary>
</Property>
<Property name="SelectionChangedActionList">
<Binary>AAEAAAD/////AQAAAAAAAAAMAgAAAEtNZXNuYWMuQ29udHJvbHMuQmFzZSwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGwEAQAAAJMBU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tNZXNuYWMuQ29udHJvbHMuQmFzZS5EZXNpZ25BY3Rpb24sIE1lc25hYy5Db250cm9scy5CYXNlLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbF1dAwAAAAZfaXRlbXMFX3NpemUIX3ZlcnNpb24EAAAjTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGVzaWduQWN0aW9uW10CAAAACAgJAwAAAAAAAAAAAAAABwMAAAAAAQAAAAAAAAAEIU1lc25hYy5Db250cm9scy5CYXNlLkRlc2lnbkFjdGlvbgIAAAAL</Binary>
</Property>
<Property name="MCKey">[DataSource1].[Hw_SolventErrorPreventionReport]</Property>
<Property name="MCDataSourceID">MCDataSource1</Property>
<Property name="IsDbControl">True</Property>
<Property name="InitDataSource" />
<Property name="ActionDataSource" />
<Property name="BindDataSource">
<Binary>AAEAAAD/////AQAAAAAAAAAMAgAAAE5TeXN0ZW0uRGF0YSwgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAABVTeXN0ZW0uRGF0YS5EYXRhVGFibGUDAAAAGURhdGFUYWJsZS5SZW1vdGluZ1ZlcnNpb24JWG1sU2NoZW1hC1htbERpZmZHcmFtAwEBDlN5c3RlbS5WZXJzaW9uAgAAAAkDAAAABgQAAACFBDw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi0xNiI/Pg0KPHhzOnNjaGVtYSB4bWxucz0iIiB4bWxuczp4cz0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiIHhtbG5zOm1zZGF0YT0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp4bWwtbXNkYXRhIj4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iTUNEYXRhR3JpZFZpZXciPg0KICAgIDx4czpjb21wbGV4VHlwZT4NCiAgICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8L3hzOmVsZW1lbnQ+DQogIDx4czplbGVtZW50IG5hbWU9InRtcERhdGFTZXQiIG1zZGF0YTpJc0RhdGFTZXQ9InRydWUiIG1zZGF0YTpNYWluRGF0YVRhYmxlPSJNQ0RhdGFHcmlkVmlldyIgbXNkYXRhOlVzZUN1cnJlbnRMb2NhbGU9InRydWUiPg0KICAgIDx4czpjb21wbGV4VHlwZT4NCiAgICAgIDx4czpjaG9pY2UgbWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9InVuYm91bmRlZCIgLz4NCiAgICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8L3hzOmVsZW1lbnQ+DQo8L3hzOnNjaGVtYT4GBQAAAIABPGRpZmZncjpkaWZmZ3JhbSB4bWxuczptc2RhdGE9InVybjpzY2hlbWFzLW1pY3Jvc29mdC1jb206eG1sLW1zZGF0YSIgeG1sbnM6ZGlmZmdyPSJ1cm46c2NoZW1hcy1taWNyb3NvZnQtY29tOnhtbC1kaWZmZ3JhbS12MSIgLz4EAwAAAA5TeXN0ZW0uVmVyc2lvbgQAAAAGX01ham9yBl9NaW5vcgZfQnVpbGQJX1JldmlzaW9uAAAAAAgICAgCAAAAAAAAAP//////////Cw==</Binary>
</Property>
<Property name="DbOptionType">None</Property>
<Property name="MCVisible">True</Property>
<Property name="MCEnabled">True</Property>
<Property name="AutoGenerateColumns">False</Property>
<Property name="ColumnHeadersHeight">30</Property>
<Property name="MultiSelect">False</Property>
<Property name="Dock">Fill</Property>
<Property name="Location">0, 50</Property>
<Property name="Name">MCDataGridView1</Property>
<Property name="Size">1148, 582</Property>
<Property name="TabIndex">11</Property>
</Object>
<Object type="System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" name="Panel1" children="Controls">
<Object type="Mesnac.Controls.Default.MCTextBox, Mesnac.Controls.Default, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" name="MCTextBox1" children="Controls">
<Property name="KeyDownActionList">
<Binary>AAEAAAD/////AQAAAAAAAAAMAgAAAEtNZXNuYWMuQ29udHJvbHMuQmFzZSwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGwEAQAAAJMBU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tNZXNuYWMuQ29udHJvbHMuQmFzZS5EZXNpZ25BY3Rpb24sIE1lc25hYy5Db250cm9scy5CYXNlLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbF1dAwAAAAZfaXRlbXMFX3NpemUIX3ZlcnNpb24EAAAjTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGVzaWduQWN0aW9uW10CAAAACAgJAwAAAAAAAAAAAAAABwMAAAAAAQAAAAAAAAAEIU1lc25hYy5Db250cm9scy5CYXNlLkRlc2lnbkFjdGlvbgIAAAAL</Binary>
</Property>
<Property name="WaterMarkText" />
<Property name="MaxValue">0</Property>
<Property name="MinValue">0</Property>
<Property name="IsEmpty">True</Property>
<Property name="MCKey" />
<Property name="MCDataSourceID" />
<Property name="IsDbControl">False</Property>
<Property name="InitDataSource" />
<Property name="ActionDataSource" />
<Property name="BindDataSource" />
<Property name="DbOptionType">None</Property>
<Property name="MCVisible">True</Property>
<Property name="MCEnabled">True</Property>
<Property name="TextName" />
<Property name="Location">595, 14</Property>
<Property name="Name">MCTextBox1</Property>
<Property name="Size">130, 21</Property>
<Property name="TabIndex">9</Property>
</Object>
<Object type="Mesnac.Controls.Default.MCButton, Mesnac.Controls.Default, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" name="MCButton2" children="Controls">
<Property name="ClickActionList">
<Binary>AAEAAAD/////AQAAAAAAAAAMAgAAAEtNZXNuYWMuQ29udHJvbHMuQmFzZSwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGwEAQAAAJMBU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tNZXNuYWMuQ29udHJvbHMuQmFzZS5EZXNpZ25BY3Rpb24sIE1lc25hYy5Db250cm9scy5CYXNlLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbF1dAwAAAAZfaXRlbXMFX3NpemUIX3ZlcnNpb24EAAAjTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGVzaWduQWN0aW9uW10CAAAACAgJAwAAAAEAAAAIAAAABwMAAAAAAQAAAAQAAAAEIU1lc25hYy5Db250cm9scy5CYXNlLkRlc2lnbkFjdGlvbgIAAAAJBAAAAA0DBQQAAAAhTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGVzaWduQWN0aW9uAwAAABU8R1VJRD5rX19CYWNraW5nRmllbGQVPE5hbWU+a19fQmFja2luZ0ZpZWxkFzxSZW1hcms+a19fQmFja2luZ0ZpZWxkAQEBAgAAAAYFAAAAIGIyOTYzZTZiMDQ1MTQyOTk2Y2ExNzQwZGMyYzA5YjBhBgYAAAAe5paZ5LuT5oqV5paZ55Sf5Lqn5oql6KGo5a+85Ye6BgcAAAAe5paZ5LuT5oqV5paZ55Sf5Lqn5oql6KGo5a+85Ye6Cw==</Binary>
</Property>
<Property name="MCKey">mcbuttonExport</Property>
<Property name="MCDataSourceID" />
<Property name="IsDbControl">False</Property>
<Property name="InitDataSource" />
<Property name="ActionDataSource" />
<Property name="BindDataSource" />
<Property name="DbOptionType">None</Property>
<Property name="MCVisible">True</Property>
<Property name="MCEnabled">True</Property>
<Property name="MCPurview">True</Property>
<Property name="Format" />
<Property name="TextName" />
<Property name="NewFillColor">Red</Property>
<Property name="OldFillColor">DarkGray</Property>
<Property name="Text">导出</Property>
<Property name="Location">856, 12</Property>
<Property name="Name">MCButton2</Property>
<Property name="Size">100, 30</Property>
<Property name="TabIndex">6</Property>
</Object>
<Object type="Mesnac.Controls.Default.MCButton, Mesnac.Controls.Default, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" name="MCButton1" children="Controls">
<Property name="ClickActionList">
<Binary>AAEAAAD/////AQAAAAAAAAAMAgAAAEtNZXNuYWMuQ29udHJvbHMuQmFzZSwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGwEAQAAAJMBU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tNZXNuYWMuQ29udHJvbHMuQmFzZS5EZXNpZ25BY3Rpb24sIE1lc25hYy5Db250cm9scy5CYXNlLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbF1dAwAAAAZfaXRlbXMFX3NpemUIX3ZlcnNpb24EAAAjTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGVzaWduQWN0aW9uW10CAAAACAgJAwAAAAEAAAAKAAAABwMAAAAAAQAAAAQAAAAEIU1lc25hYy5Db250cm9scy5CYXNlLkRlc2lnbkFjdGlvbgIAAAAJBAAAAA0DBQQAAAAhTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGVzaWduQWN0aW9uAwAAABU8R1VJRD5rX19CYWNraW5nRmllbGQVPE5hbWU+a19fQmFja2luZ0ZpZWxkFzxSZW1hcms+a19fQmFja2luZ0ZpZWxkAQEBAgAAAAYFAAAAIGNhMTE3MTc4MmFhYWVjZWFiOGFhNWFhOTk2OTJjM2M3BgYAAAAe5paZ5LuT5oqV5paZ55Sf5Lqn5oql6KGo5p+l6K+iBgcAAAAe5paZ5LuT5oqV5paZ55Sf5Lqn5oql6KGo5p+l6K+iCw==</Binary>
</Property>
<Property name="MCKey">mcbuttonSearch</Property>
<Property name="MCDataSourceID">MCDataSource1</Property>
<Property name="IsDbControl">True</Property>
<Property name="InitDataSource" />
<Property name="ActionDataSource" />
<Property name="BindDataSource" />
<Property name="DbOptionType">Query</Property>
<Property name="MCVisible">True</Property>
<Property name="MCEnabled">True</Property>
<Property name="MCPurview">True</Property>
<Property name="Format" />
<Property name="TextName" />
<Property name="NewFillColor">Red</Property>
<Property name="OldFillColor">DarkGray</Property>
<Property name="Text">查 询</Property>
<Property name="Location">750, 11</Property>
<Property name="Name">MCButton1</Property>
<Property name="Size">100, 30</Property>
<Property name="TabIndex">5</Property>
</Object>
<Object type="Mesnac.Controls.Default.MCDateTimePicker, Mesnac.Controls.Default, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" name="MCDateTimePicker3" children="Controls">
<Property name="ValueChangedList">
<Binary>AAEAAAD/////AQAAAAAAAAAMAgAAAEtNZXNuYWMuQ29udHJvbHMuQmFzZSwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGwEAQAAAJMBU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tNZXNuYWMuQ29udHJvbHMuQmFzZS5EZXNpZ25BY3Rpb24sIE1lc25hYy5Db250cm9scy5CYXNlLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbF1dAwAAAAZfaXRlbXMFX3NpemUIX3ZlcnNpb24EAAAjTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGVzaWduQWN0aW9uW10CAAAACAgJAwAAAAAAAAAAAAAABwMAAAAAAQAAAAAAAAAEIU1lc25hYy5Db250cm9scy5CYXNlLkRlc2lnbkFjdGlvbgIAAAAL</Binary>
</Property>
<Property name="MCKey">endtime</Property>
<Property name="MCDataSourceID" />
<Property name="IsDbControl">False</Property>
<Property name="InitDataSource" />
<Property name="ActionDataSource" />
<Property name="BindDataSource" />
<Property name="DbOptionType">Query</Property>
<Property name="MCVisible">True</Property>
<Property name="MCEnabled">True</Property>
<Property name="Format">Time</Property>
<Property name="ShowUpDown">True</Property>
<Property name="Location">483, 15</Property>
<Property name="Name">MCDateTimePicker3</Property>
<Property name="Size">80, 21</Property>
<Property name="TabIndex">4</Property>
</Object>
<Object type="Mesnac.Controls.Default.MCDateTimePicker, Mesnac.Controls.Default, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" name="MCDateTimePicker4" children="Controls">
<Property name="ValueChangedList">
<Binary>AAEAAAD/////AQAAAAAAAAAMAgAAAEtNZXNuYWMuQ29udHJvbHMuQmFzZSwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGwEAQAAAJMBU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tNZXNuYWMuQ29udHJvbHMuQmFzZS5EZXNpZ25BY3Rpb24sIE1lc25hYy5Db250cm9scy5CYXNlLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbF1dAwAAAAZfaXRlbXMFX3NpemUIX3ZlcnNpb24EAAAjTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGVzaWduQWN0aW9uW10CAAAACAgJAwAAAAAAAAAAAAAABwMAAAAAAQAAAAAAAAAEIU1lc25hYy5Db250cm9scy5CYXNlLkRlc2lnbkFjdGlvbgIAAAAL</Binary>
</Property>
<Property name="MCKey">enddate</Property>
<Property name="MCDataSourceID" />
<Property name="IsDbControl">False</Property>
<Property name="InitDataSource" />
<Property name="ActionDataSource" />
<Property name="BindDataSource" />
<Property name="DbOptionType">Query</Property>
<Property name="MCVisible">True</Property>
<Property name="MCEnabled">True</Property>
<Property name="Location">353, 15</Property>
<Property name="Name">MCDateTimePicker4</Property>
<Property name="Size">130, 21</Property>
<Property name="TabIndex">3</Property>
</Object>
<Object type="Mesnac.Controls.Default.MCLabel, Mesnac.Controls.Default, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" name="MCLabel2" children="Controls">
<Property name="Format" />
<Property name="TextName" />
<Property name="NewFillColor">Red</Property>
<Property name="OldFillColor">DarkGray</Property>
<Property name="MCKey">OperationRecord_EndLable</Property>
<Property name="MCDataSourceID" />
<Property name="IsDbControl">False</Property>
<Property name="InitDataSource" />
<Property name="ActionDataSource" />
<Property name="BindDataSource" />
<Property name="DbOptionType">None</Property>
<Property name="MCVisible">True</Property>
<Property name="MCEnabled">True</Property>
<Property name="TextAlign">MiddleCenter</Property>
<Property name="Text"></Property>
<Property name="Location">321, 18</Property>
<Property name="Name">MCLabel2</Property>
<Property name="Size">17, 12</Property>
</Object>
<Object type="Mesnac.Controls.Default.MCDateTimePicker, Mesnac.Controls.Default, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" name="MCDateTimePicker2" children="Controls">
<Property name="ValueChangedList">
<Binary>AAEAAAD/////AQAAAAAAAAAMAgAAAEtNZXNuYWMuQ29udHJvbHMuQmFzZSwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGwEAQAAAJMBU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tNZXNuYWMuQ29udHJvbHMuQmFzZS5EZXNpZ25BY3Rpb24sIE1lc25hYy5Db250cm9scy5CYXNlLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbF1dAwAAAAZfaXRlbXMFX3NpemUIX3ZlcnNpb24EAAAjTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGVzaWduQWN0aW9uW10CAAAACAgJAwAAAAAAAAAAAAAABwMAAAAAAQAAAAAAAAAEIU1lc25hYy5Db250cm9scy5CYXNlLkRlc2lnbkFjdGlvbgIAAAAL</Binary>
</Property>
<Property name="MCKey">starttime</Property>
<Property name="MCDataSourceID" />
<Property name="IsDbControl">False</Property>
<Property name="InitDataSource" />
<Property name="ActionDataSource" />
<Property name="BindDataSource" />
<Property name="DbOptionType">Query</Property>
<Property name="MCVisible">True</Property>
<Property name="MCEnabled">True</Property>
<Property name="CustomFormat">HH:mm:ss</Property>
<Property name="Format">Time</Property>
<Property name="ShowUpDown">True</Property>
<Property name="Location">235, 15</Property>
<Property name="Name">MCDateTimePicker2</Property>
<Property name="Size">80, 21</Property>
<Property name="TabIndex">2</Property>
</Object>
<Object type="Mesnac.Controls.Default.MCDateTimePicker, Mesnac.Controls.Default, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" name="MCDateTimePicker1" children="Controls">
<Property name="ValueChangedList">
<Binary>AAEAAAD/////AQAAAAAAAAAMAgAAAEtNZXNuYWMuQ29udHJvbHMuQmFzZSwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGwEAQAAAJMBU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tNZXNuYWMuQ29udHJvbHMuQmFzZS5EZXNpZ25BY3Rpb24sIE1lc25hYy5Db250cm9scy5CYXNlLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbF1dAwAAAAZfaXRlbXMFX3NpemUIX3ZlcnNpb24EAAAjTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGVzaWduQWN0aW9uW10CAAAACAgJAwAAAAAAAAAAAAAABwMAAAAAAQAAAAAAAAAEIU1lc25hYy5Db250cm9scy5CYXNlLkRlc2lnbkFjdGlvbgIAAAAL</Binary>
</Property>
<Property name="MCKey">startdate</Property>
<Property name="MCDataSourceID" />
<Property name="IsDbControl">False</Property>
<Property name="InitDataSource" />
<Property name="ActionDataSource" />
<Property name="BindDataSource" />
<Property name="DbOptionType">Query</Property>
<Property name="MCVisible">True</Property>
<Property name="MCEnabled">True</Property>
<Property name="Location">105, 15</Property>
<Property name="Name">MCDateTimePicker1</Property>
<Property name="Size">130, 21</Property>
<Property name="TabIndex">1</Property>
</Object>
<Object type="Mesnac.Controls.Default.MCLabel, Mesnac.Controls.Default, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" name="MCLabel1" children="Controls">
<Property name="Format" />
<Property name="TextName" />
<Property name="NewFillColor">Red</Property>
<Property name="OldFillColor">DarkGray</Property>
<Property name="MCKey">OperationRecord_StartLable</Property>
<Property name="MCDataSourceID" />
<Property name="IsDbControl">False</Property>
<Property name="InitDataSource" />
<Property name="ActionDataSource" />
<Property name="BindDataSource" />
<Property name="DbOptionType">None</Property>
<Property name="MCVisible">True</Property>
<Property name="MCEnabled">True</Property>
<Property name="TextAlign">MiddleRight</Property>
<Property name="Text">起止时间</Property>
<Property name="Location">18, 18</Property>
<Property name="Name">MCLabel1</Property>
<Property name="Size">53, 12</Property>
</Object>
<Property name="BackColor">White</Property>
<Property name="Dock">Top</Property>
<Property name="Location">0, 0</Property>
<Property name="Name">Panel1</Property>
<Property name="Size">1148, 50</Property>
</Object>
<Property name="LoadActionList">
<Binary>AAEAAAD/////AQAAAAAAAAAMAgAAAEtNZXNuYWMuQ29udHJvbHMuQmFzZSwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGwEAQAAAJMBU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tNZXNuYWMuQ29udHJvbHMuQmFzZS5EZXNpZ25BY3Rpb24sIE1lc25hYy5Db250cm9scy5CYXNlLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbF1dAwAAAAZfaXRlbXMFX3NpemUIX3ZlcnNpb24EAAAjTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGVzaWduQWN0aW9uW10CAAAACAgJAwAAAAAAAAAAAAAABwMAAAAAAQAAAAAAAAAEIU1lc25hYy5Db250cm9scy5CYXNlLkRlc2lnbkFjdGlvbgIAAAAL</Binary>
</Property>
<Property name="ActivatedActionList">
<Binary>AAEAAAD/////AQAAAAAAAAAMAgAAAEtNZXNuYWMuQ29udHJvbHMuQmFzZSwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGwEAQAAAJMBU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tNZXNuYWMuQ29udHJvbHMuQmFzZS5EZXNpZ25BY3Rpb24sIE1lc25hYy5Db250cm9scy5CYXNlLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbF1dAwAAAAZfaXRlbXMFX3NpemUIX3ZlcnNpb24EAAAjTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGVzaWduQWN0aW9uW10CAAAACAgJAwAAAAAAAAAAAAAABwMAAAAAAQAAAAAAAAAEIU1lc25hYy5Db250cm9scy5CYXNlLkRlc2lnbkFjdGlvbgIAAAAL</Binary>
</Property>
<Property name="ReloadActionList">
<Binary>AAEAAAD/////AQAAAAAAAAAMAgAAAEtNZXNuYWMuQ29udHJvbHMuQmFzZSwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGwEAQAAAJMBU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tNZXNuYWMuQ29udHJvbHMuQmFzZS5EZXNpZ25BY3Rpb24sIE1lc25hYy5Db250cm9scy5CYXNlLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbF1dAwAAAAZfaXRlbXMFX3NpemUIX3ZlcnNpb24EAAAjTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGVzaWduQWN0aW9uW10CAAAACAgJAwAAAAAAAAAAAAAABwMAAAAAAQAAAAAAAAAEIU1lc25hYy5Db250cm9scy5CYXNlLkRlc2lnbkFjdGlvbgIAAAAL</Binary>
</Property>
<Property name="RefreshDataActionList">
<Binary>AAEAAAD/////AQAAAAAAAAAMAgAAAEtNZXNuYWMuQ29udHJvbHMuQmFzZSwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGwEAQAAAJMBU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tNZXNuYWMuQ29udHJvbHMuQmFzZS5EZXNpZ25BY3Rpb24sIE1lc25hYy5Db250cm9scy5CYXNlLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbF1dAwAAAAZfaXRlbXMFX3NpemUIX3ZlcnNpb24EAAAjTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGVzaWduQWN0aW9uW10CAAAACAgJAwAAAAAAAAAAAAAABwMAAAAAAQAAAAAAAAAEIU1lc25hYy5Db250cm9scy5CYXNlLkRlc2lnbkFjdGlvbgIAAAAL</Binary>
</Property>
<Property name="BHaveAction">False</Property>
<Property name="MCPurview">False</Property>
<Property name="AllowOriginalSizeShow">False</Property>
<Property name="BackColor">Control</Property>
<Property name="Size">1164, 671</Property>
<Property name="StartPosition">WindowsDefaultLocation</Property>
<Property name="Text">溶剂和整包投料历史报表</Property>
<Property name="WindowState">Normal</Property>
<Property name="BackgroundImage" />
<Property name="BackgroundImageLayout">Tile</Property>
<Property name="Font">宋体, 9pt</Property>
<Property name="ForeColor">ControlText</Property>
<Property name="Name">溶剂和整包投料历史报表</Property>
</Object>

File diff suppressed because one or more lines are too long

@ -101,6 +101,9 @@
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\Libraries\Host.dll</HintPath>
</Reference>
<Reference Include="HslCommunication">
<HintPath>E:\普力通处理\dll\HslCommunication.dll</HintPath>
</Reference>
<Reference Include="ICSharpCode.Core, Version=4.3.0.9338, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\PlugInPlatform\ICSharpCode.Core.dll</HintPath>

@ -6,7 +6,7 @@
<ProductVersion>8.0.30703</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{91C803A6-90D1-4361-8B92-9AFD9E766411}</ProjectGuid>
<OutputType>WinExe</OutputType>
<OutputType>Exe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>MCRun</RootNamespace>
<AssemblyName>MCRun</AssemblyName>
@ -96,6 +96,9 @@
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\Libraries\Host.dll</HintPath>
</Reference>
<Reference Include="HslCommunication">
<HintPath>E:\普力通处理\dll\HslCommunication.dll</HintPath>
</Reference>
<Reference Include="ICSharpCode.Core, Version=4.3.0.9338, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\PlugInPlatform\ICSharpCode.Core.dll</HintPath>

Loading…
Cancel
Save