using System; using System.Collections; using System.Data; using System.Windows.Forms; using Core.Mes.Client.Comm.Server; using Core.StlMes.Client.LgClassModel; using CoreFS.CA06; namespace Core.StlMes.Client.LgCommon { public partial class ucResAdditive : UserControl { private OpeBase _ob; private LG_PROCESS _process; private string _stove; private string _station; private string _disposalTime; private string _userName; private string _shifCode; public ucResAdditive() { InitializeComponent(); } #region 属性 /// /// 有值发生变化 /// public bool HasChanged { get { return toltalAdditiveChange || ucResAdditiveProcess1.Changed; } } public bool toltalAdditiveChange { get { return ucFL.HasChanged || ucHJ.HasChanged || ucWS.HasChanged || ucSTL.HasChanged; } } public bool CanSave { get { return ucResAdditiveProcess1.CanSave; } } /// /// 辅料TAB页可见 /// public bool FL_VISIBLE { get { return ultraTabControl1.Tabs["FL"].Visible; } set { if (value != ultraTabControl1.Tabs["FL"].Visible) ultraTabControl1.Tabs["FL"].Visible = value; } } /// /// 合金TAB页可见 /// public bool HJ_VISIBLE { get { return ultraTabControl1.Tabs["HJ"].Visible; } set { if (value != ultraTabControl1.Tabs["HJ"].Visible) ultraTabControl1.Tabs["HJ"].Visible = value; } } /// /// 喂丝TAB页可见 /// public bool WS_VISIBLE { get { return ultraTabControl1.Tabs["WS"].Visible; } set { if (value != ultraTabControl1.Tabs["WS"].Visible) ultraTabControl1.Tabs["WS"].Visible = value; } } /// /// 手投料TAB页可见 /// public bool STL_VISIBLE { get { return ultraTabControl1.Tabs["STL"].Visible; } set { if (value != ultraTabControl1.Tabs["STL"].Visible) ultraTabControl1.Tabs["STL"].Visible = value; } } #endregion #region 调用 public void SetBase(OpeBase ob, string station,string UserName,string ShifCode, Action ac) { _ob = ob; ucFL.SetOpeBase(ob); ucHJ.SetOpeBase(ob); ucWS.SetOpeBase(ob); ucSTL.SetOpeBase(ob); ucResAdditiveProcess1.SetOb(ob); ucFL.SetHopper += () => ac(); ucHJ.SetHopper += () => ac(); ucWS.SetHopper += () => ac(); ucSTL.SetHopper += () => ac(); _userName = UserName; _shifCode = ShifCode; SetDevice_Position(station); } /// /// 设置工序 /// /// private void SetDevice_Position(string DEVICE_POSITION) { try { ucFL.DEVICE_POSITION = DEVICE_POSITION; ucHJ.DEVICE_POSITION = DEVICE_POSITION; ucWS.DEVICE_POSITION = DEVICE_POSITION; ucSTL.DEVICE_POSITION = DEVICE_POSITION; } catch { } } // 设计物料名显示 /// /// 设计物料名显示 /// /// /// /// /// public void SetHopperInfo(string StationCode, DataTable dtMaterial, OpeBase ob) { try { var strMsg = ""; var bSuccess = false; try { SetDevice_Position(StationCode); var ds = ClsBusinessPack.GetHopperConfig(StationCode, out bSuccess, out strMsg, ob); if ((ds != null) && (ds.Tables.Count > 0)) { ucFL.SetHopperInfo(ds.Tables[0], dtMaterial); ucHJ.SetHopperInfo(ds.Tables[0], dtMaterial); ucWS.SetHopperInfo(ds.Tables[0], dtMaterial); } } catch { } try { var ds = ClsBusinessPack.GetManualAdditiveConfig(StationCode, out bSuccess, out strMsg, ob); if ((ds != null) && (ds.Tables.Count > 0)) ucSTL.SetHopperInfo(ds.Tables[0], dtMaterial); } catch { } ucResAdditiveProcess1.SetAdditiveProcess(StationCode, "01"); } catch { } } public bool SaveAdditives() { if (toltalAdditiveChange) { var alMaterialCode = new ArrayList(); var alMaterialName = new ArrayList(); var alMaterialType = new ArrayList(); var alAddtType = new ArrayList(); var alAddtAmount = new ArrayList(); var alAddtOrigin = new ArrayList(); GetDataChanged(ref alMaterialCode, ref alMaterialName, ref alMaterialType, ref alAddtType, ref alAddtAmount, ref alAddtOrigin); var Args = new object[] { _stove, _station, "01", alMaterialCode, alMaterialName, alMaterialType, alAddtType, alAddtAmount, alAddtOrigin, _userName }; var iRet = 0; var strMsg = ""; try { ServerHelper.SetData("Core.LgMes.Server.LgDeviceManager.StlAdditive.SaveAdditives", Args, _ob); SetResAdditiveData(); return true; } catch (Exception ex) { return false; } } if (ucResAdditiveProcess1.Changed) { var result = ucResAdditiveProcess1.SaveDate(); if (result) SetResAdditiveData(); return result; } return true; } public void SetResAdditiveData() { SetResAdditiveData(_process, _stove, _station, _disposalTime); } /// /// 获取并设置岗位加料汇总数据 /// /// /// /// 岗位编号 /// 处理次数 /// public void SetResAdditiveData(LG_PROCESS PROCESS, string strHeatNo, string strStationCode, string strDisposalTime) { _process = PROCESS; _stove = strHeatNo; _station = strStationCode; _disposalTime = strDisposalTime; try { var ds = ClsResAdditiveBLL.GetResAdditiveData(PROCESS, strHeatNo, strStationCode, strDisposalTime, _ob); var additiveBuffer = new CommonAdditive(); ClsResAdditiveBLL.DataSetToAdditive(ref ds, ref additiveBuffer); ucFL.SetAdditiveData(additiveBuffer); ucHJ.SetAdditiveData(additiveBuffer); ucWS.SetAdditiveData(additiveBuffer); ucSTL.SetAdditiveData(additiveBuffer); ucResAdditiveProcess1.SetData(PROCESS, strHeatNo, strStationCode, strDisposalTime); } catch { } } /// /// 获取加料数据修改信息 /// /// 加料物料编码 /// 加料物料名 /// 加料物料类型(FL\HJ\WS) /// 加料类型(1:自动加料2:手投料) /// 加料量 /// 原始量 public void GetDataChanged(ref ArrayList alMaterialCode, ref ArrayList alMaterialName, ref ArrayList alMaterialType, ref ArrayList alAddtType, ref ArrayList alAddtAmount, ref ArrayList alAddtOrigin) { alMaterialCode = new ArrayList(); alMaterialName = new ArrayList(); alMaterialType = new ArrayList(); alAddtType = new ArrayList(); alAddtAmount = new ArrayList(); alAddtOrigin = new ArrayList(); try { if (!toltalAdditiveChange) return; GetDataChangedDetail(ucFL, ref alMaterialCode, ref alMaterialName, ref alMaterialType, ref alAddtType, ref alAddtAmount, ref alAddtOrigin); GetDataChangedDetail(ucHJ, ref alMaterialCode, ref alMaterialName, ref alMaterialType, ref alAddtType, ref alAddtAmount, ref alAddtOrigin); GetDataChangedDetail(ucWS, ref alMaterialCode, ref alMaterialName, ref alMaterialType, ref alAddtType, ref alAddtAmount, ref alAddtOrigin); GetDataChangedDetail(ucSTL, ref alMaterialCode, ref alMaterialName, ref alMaterialType, ref alAddtType, ref alAddtAmount, ref alAddtOrigin); } catch { } } /// /// 获取各选项卡加料数据修改信息 /// /// /// /// /// /// /// /// private void GetDataChangedDetail(ucResAdditiveBase ucHopper, ref ArrayList alMaterialCode, ref ArrayList alMaterialName, ref ArrayList alMaterialType, ref ArrayList alAddtType, ref ArrayList alAddtAmount, ref ArrayList alAddtOrigin) { try { if (ucHopper == null) return; if ((alMaterialCode == null) || (alMaterialName == null) || (alMaterialType == null)) return; if ((alAddtType == null) || (alAddtAmount == null) || (alAddtOrigin == null)) return; var Keys = new ArrayList(); if ((ucHopper.htValueChanged != null) && (ucHopper.htValueChanged.Count > 0)) Keys = new ArrayList(ucHopper.htValueChanged.Keys); object ValuePre = null; object ValueCur = null; string strCode = "", strName = "", strType = "", strValueCur = "", strValuePre = ""; var strSort = ((int) ucHopper.HpprCategory).ToString(); for (var i = 0; i < Keys.Count; i++) { strCode = Convert.ToString(Keys[i]); strName = Convert.ToString(ucHopper.htCaptionChanged[strCode]); strType = Convert.ToString(ucHopper.htMaterialtypeChanged[strCode]); ValueCur = ucHopper.htValueChanged[strCode]; ValuePre = ucHopper.htValueInitial[strCode]; if (ValueCur == DBNull.Value) strValueCur = ""; else strValueCur = Convert.ToString(ValueCur); if (ValuePre == DBNull.Value) strValuePre = ""; else strValuePre = Convert.ToString(ValuePre); alMaterialCode.Add(strCode); alMaterialName.Add(strName); alMaterialType.Add(strType); alAddtType.Add(strSort); alAddtAmount.Add(strValueCur); alAddtOrigin.Add(strValuePre); } } catch { } } #endregion } }