using Core.Mes.Client.Comm.Control; using Core.Mes.Client.Comm.Server; using Core.Mes.Client.Comm.Tool; using Core.StlMes.Client.LgResMgt.Mcms.entity; using CoreFS.CA06; using Infragistics.Win; using Infragistics.Win.Misc; using Infragistics.Win.UltraWinEditors; using Infragistics.Win.UltraWinGrid; using Infragistics.Win.UltraWinListView; using Infragistics.Win.UltraWinTabControl; using Newtonsoft.Json; using Newtonsoft.Json.Serialization; using NPOI.HSSF.UserModel; using NPOI.SS.Formula.Functions; using NPOI.SS.UserModel; using NPOI.SS.Util; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Diagnostics; using System.Drawing; using System.IO; using System.Linq; using System.Timers; using System.Windows.Forms; using System.Xml.Linq; using BorderStyle = NPOI.SS.UserModel.BorderStyle; using HorizontalAlignment = NPOI.SS.UserModel.HorizontalAlignment; using Timer = System.Timers.Timer; namespace Core.StlMes.Client.LgResMgt.Mcms { public partial class frmLocalTruckScale : FrmBase { private static readonly string _path = Environment.CurrentDirectory + "\\data\\SerialPort.xml"; private readonly Timer timer = new Timer(); private List _cmmInputRecordEntities; private frmMessage _frmMessage; private List _templateList; private bool canUpdateWt; private CmmPoundBaseEntity cmmPoundBase; private iCommunication communication; private List CommunicationEntitys = new List(); private SerialPortEntity defultPortEntity; private bool isLoading = true; private List poundInfos; private Log l = Log.GetInstance(); public frmLocalTruckScale() { InitializeComponent(); IsLoadUserView = true; timer.Elapsed += timer_Elapsed; timer.Interval = 1*60*1000; } private void timer_Elapsed(object sender, ElapsedEventArgs e) { try { CurrentGrid.SafeRefreshControl(() => { var dic = new Dictionary(); if (!string.IsNullOrWhiteSpace(cboPoundList.Text)) dic.Add("poundNo", cboPoundList.Text); dic.Add("validflag", new List {"1"}); dic.Add("effRemaind", "1"); List list = EntityHelper.GetData( "com.steering.Mcms.RecordServer.doQueryRecord", new object[] {dic}, ob); if ((list != null) && list.Any()) foreach ( var ultraGridRow in CurrentGrid.Rows.Where( p => list.Any(q => q.RecordNo == p.Cells["RecordNo"].Value.ToString2()))) ultraGridRow.Cells["RecordDate"].Appearance.BackColor = Color.Red; }); GC.Collect(); } catch (Exception) { } } protected override void OnLoad(EventArgs e) { base.OnLoad(e); tbFirstWt.Controls.OfType() .SelectMany(p => p.Controls.OfType()) .ToList() .ForEach(p => p.ini(ob)); tbOther.Controls.OfType() .SelectMany(p => p.Controls.OfType()) .ToList() .ForEach(p => p.ini(ob)); matInfo15.ini(ob); matInfo16.ini(ob); tbWt.Appearance.ForeColor = SystemColors.ControlText; ; tbFirstWt.Appearance.ForeColor = SystemColors.ControlText; ; tbScondWt.Appearance.ForeColor = SystemColors.ControlText; ; tbOther.Appearance.ForeColor = SystemColors.ControlText; ; defultPortEntity = new SerialPortEntity { StrBaudRate = XmlHelper.GetXmlData(_path, "StrBaudRate", "9600"), StrDataBits = XmlHelper.GetXmlData(_path, "StrDataBits", "8"), StrParity = XmlHelper.GetXmlData(_path, "StrParity", "NONE"), StrStopBits = XmlHelper.GetXmlData(_path, "StrStopBits", "ONE"), PortName = XmlHelper.GetXmlData(_path, "PortName", "COM1") }; poundInfos = EntityHelper.GetData( "com.steering.Mcms.PoundBaseServer.getPoudInfo", new object[] {ValidDataPurviewIds}, ob); var data = XmlHelper.GetXElement(_path, "CommunicationInfo"); CommunicationEntitys = new List(); if (data != null) foreach (var xElement in data.Elements()) { var temp = new CommunicationEntity(); temp.PoundNo = xElement.Name.ToString3().Replace("POUND_", ""); var type = XmlHelper.GetAttribute(xElement, "type", "1"); if (type == "1") temp.Communication = new SerialPortEntity { StrBaudRate = XmlHelper.GetAttribute(xElement, "StrBaudRate", XmlHelper.GetXmlData(_path, "StrBaudRate", "9600")), StrDataBits = XmlHelper.GetAttribute(xElement, "StrDataBits", XmlHelper.GetXmlData(_path, "StrDataBits", "8")), StrParity = XmlHelper.GetAttribute(xElement, "StrParity", XmlHelper.GetXmlData(_path, "StrParity", "NONE")), StrStopBits = XmlHelper.GetAttribute(xElement, "StrStopBits", XmlHelper.GetXmlData(_path, "StrStopBits", "ONE")), PortName = XmlHelper.GetAttribute(xElement, "PortName", XmlHelper.GetXmlData(_path, "PortName", "COM1")) }; else temp.Communication = new SocketClient { Ip = XmlHelper.GetAttribute(xElement, "Ip", ""), Port = XmlHelper.GetAttribute(xElement, "Port", "") }; CommunicationEntitys.Add(temp); } CommunicationEntitys = poundInfos.Select(p => { var entity = new CommunicationEntity { PoundNo = p.PoundNo}; var tmplist = CommunicationEntitys.Where(q => q.PoundNo == p.PoundNo).ToList(); if (tmplist.Any()) entity.Communication = tmplist[0].Communication; if (entity.Communication == null) entity.Communication = defultPortEntity; return entity; } ).ToList(); List list = EntityHelper.GetData( "com.steering.Mcms.PoundBaseServer.getPoudInfo", new object[] {new string[] {}}, ob); cboPoundList.DataSource = new List {""}.Concat(list.Select(p => p.PoundNo)).ToList(); RegStartTime.Value = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd 07:00:00")); RegEndTime.Value = DateTime.Parse(DateTime.Now.AddDays(1).ToString("yyyy-MM-dd 07:00:00")); LoadRecord(); /* var source = new AutoCompleteStringCollection(); source.AddRange( _cmmInputRecordEntity.Where(p => p.RecordType == "1") .Select(p => p.RecordValue).ToArray());*/ cboNo.DisplayMember = "PoundNo"; cboNo.DataSource = poundInfos; cboNo.SelectedIndex = -1; cboNo.SelectedValueChanged += cboNo_SelectedValueChanged; var location = ""; location = XmlHelper.GetXmlData(_path, "cboNo", ""); if ("" == location) { if (cboNo.Items.Count > 0) { cboNo.SelectedIndex = 0; cboPoundList.Text = cboNo.Text; } } else { cboNo.Text = location; } LoadRecord(); LoadTempate(); } private void defultPortEntity_ReceiveData(object sender, object data, string message, DataType datatype, byte[] bdata) { ShowMessage(data, message, datatype); } private void LoadRecord() { var dic = new Dictionary(); dic.Add("recordType", new List {"1"}); List datas = EntityHelper.GetData( "com.steering.Mcms.InputRecordServer.doQuery", new object[] {dic}, ob); txtCar2.DataSource = datas.Where(p => p.RecordType == "1") .Select(p => p.RecordValue).Distinct().ToList(); txtCar2.Text = ""; dic = new Dictionary(); dic.Add("recordType", new List {"2", "7", "8", "9"}); _cmmInputRecordEntities = EntityHelper.GetData( "com.steering.Mcms.InputRecordServer.doQuery", new object[] {dic}, ob); } private void utbConnect_Click(object sender, EventArgs e) { if (communication == null) return; if ((communication != null) && communication.Status) { communication.Stop(); } else { communication.Start(); XmlHelper.SetXmlData(_path, "cboNo", cmmPoundBase.PoundNo); if (communication is SerialPortEntity) { XmlHelper.SetXmlData(_path, "PortName", ((SerialPortEntity) communication).PortName); XmlHelper.SetXmlData(_path, "StrBaudRate", ((SerialPortEntity) communication).StrBaudRate); } } } private void utbMessage_Click(object sender, EventArgs e) { _frmMessage = new frmMessage(); _frmMessage.Show(); } private void ShowMessage(object data, string message, DataType dataType) { if (dataType == DataType.ReceiveData) { double wt; if (double.TryParse(data.ToString2(), out wt)) lblWtNow.SafeRefreshControl(() => { lblWtNow.Text = (wt/100d).ToString("0.00") + "t"; }); } else if (dataType == DataType.Open) { utbConnect.SafeRefreshControl(() => utbConnect.Appearance.ForeColor = Color.Red); lblMsg.SafeRefreshControl( () => lblMsg.Text = communication.Status ? (communication is SerialPortEntity ? "已打开" : "已连接") : (communication is SerialPortEntity ? "已关闭" : "断开连接")); // cboNo.SafeRefreshControl(() => cboNo.Enabled = false); } else if (dataType == DataType.Close) { utbConnect.SafeRefreshControl(() => utbConnect.Appearance.ForeColor = Color.Lime); lblMsg.SafeRefreshControl( () => lblMsg.Text = communication.Status ? (communication is SerialPortEntity ? "已打开" : "已连接") : (communication is SerialPortEntity ? "已关闭" : "断开连接")); } else if (dataType == DataType.Error) { MessageBox.Show(message); } else if (dataType == DataType.ClientReconnect) { lblMsg.SafeRefreshControl(() => lblMsg.Text = "网络异常,正在重连服务!"); } lblStatus.SafeRefreshControl(() => lblStatus.Text = communication.ToString()); if ((_frmMessage != null) && !_frmMessage.IsDisposed) _frmMessage.SafeShowMsg(message, dataType); else _frmMessage = null; } private void utbShowWt_Click(object sender, EventArgs e) { string.Format("当前重量{0}", lblWt.Text.Replace("t", "吨")).Speak(); } private void lblWtNow_Click(object sender, EventArgs e) { /* var ccp = new CoreClientParam { ServerName = "com.steering.Mcms.MatOutServer", MethodName = "DoTest", ServerParams = new object[] { } }; ccp = ExecuteNonQuery(ccp, CoreInvokeType.Internal); */ lblWt.Text = lblWtNow.Text; if (CurrentGrid.ActiveRow != null) { var current = CurrentGrid.ActiveRow.ListObject as CmmWeightRecordEntity; if ((current == null) || ("" == current.CarNo)) return; if ((tbWt.ActiveTab != null) && (tbWt.ActiveTab.Key == "2") && (tbScondWt.ActiveTab != null)) if (tbScondWt.ActiveTab.Key == "3") { } else if (tbScondWt.ActiveTab.Key == "0") { } else if ((tbScondWt.ActiveTab.Key == "1") && (tbOther.ActiveTab != null) && (tbOther.ActiveTab.Key == "205")) { decimal wt, fwt; decimal.TryParse(lblWt.Text.Replace("t", ""), out wt); decimal.TryParse(current.RecordWeight.ToString3(), out fwt); ShowOutInfo(current.CarNo, wt - fwt); } else if ((tbScondWt.ActiveTab.Key == "1") && (tbOther.ActiveTab != null) && (tbOther.ActiveTab.Key == "206")) { decimal wt, fwt; decimal.TryParse(lblWt.Text.Replace("t", ""), out wt); decimal.TryParse(current.RecordWeight.ToString3(), out fwt); if (wt - fwt > 0) matInfo13.SetWt(wt - fwt); // ShowOutInfoGp(current.CarNo, wt - fwt); } else if ((tbScondWt.ActiveTab.Key == "1") && (tbOther.ActiveTab != null) && (tbOther.ActiveTab.Key == "109")) { var matInfo = GetMatInfo(); if (matInfo != null) { decimal wt, fwt; if (decimal.TryParse(lblWt.Text.Replace("t", ""), out wt) && decimal.TryParse(current.RecordWeight.ToString3(), out fwt)) if (wt - fwt > 0) matInfo.SetWt(wt - fwt); } } } } private void utbShowCarNo_Click(object sender, EventArgs e) { if ((cbxCar1.SelectedIndex < 0) || string.IsNullOrWhiteSpace(txtCar2.Text)) return; string.Format(" {0}", cbxCar1.Text + txtCar2.Text).Speak(); } private void chkGross_CheckedChanged(object sender, EventArgs e) { tbFirstWt.Visible = chkGross.Checked; utbSaveAsT.Visible = chkGross.Checked; } /// /// 一次称重保存 /// /// /// private void utbSave1_Click(object sender, EventArgs e) { if (cmmPoundBase == null) { MessageBox.Show(@"无磅房权限"); return; } if (string.IsNullOrWhiteSpace(txtCar2.Text) || string.IsNullOrWhiteSpace(cbxCar1.Text)) { MessageBox.Show(@"未录入车牌号!"); return; } decimal wt; if (!decimal.TryParse(lblWt.Text.Replace("t", ""), out wt) || (wt <= 0)) { MessageBox.Show(@"重量异常!"); return; } var cmmWeightRecord = new CmmWeightRecordEntityFull(); if (chkGross.Checked) { var matInfo = tbFirstWt.ActiveTab.TabPage.Controls.OfType().FirstOrDefault(); if (matInfo != null) cmmWeightRecord = matInfo.GetData(); } if ((cmmWeightRecord.RecordNumber == null) && (cmmWeightRecord.MatInfos != null) && cmmWeightRecord.MatInfos.Any()) { MessageBox.Show("支数不能为空!"); return; } cmmWeightRecord.CarNo = cbxCar1.Text + txtCar2.Text.ToUpper().Trim(); cmmWeightRecord.Recoder = UserInfo.GetUserName(); cmmWeightRecord.RecordType = !chkGross.Checked ? "101" : tbFirstWt.ActiveTab.Key; cmmWeightRecord.WtType = chkGross.Checked ? "1" : "0"; cmmWeightRecord.Validflag = "1"; cmmWeightRecord.RecordWeight = wt; cmmWeightRecord.RecoderLocation = cmmPoundBase.PoundNo; cmmWeightRecord.MatType = chkGross.Checked ? tbFirstWt.ActiveTab.Text : ""; //cmmWeightRecord.Memo = chkSteelCar.Checked ? "钢管" : ""; if ("102" == cmmWeightRecord.RecordType) if ((cmmWeightRecord.RecordNumber == null) || (cmmWeightRecord.RecordNumber <= 0) || (cmmWeightRecord.MatInfos == null) || !cmmWeightRecord.MatInfos.Any() || cmmWeightRecord.MatInfos.Any(p => (p.ActCount == null) || (p.ActCount <= 0))) { MessageBox.Show("支数不能为空!"); return; } var list = cmmWeightRecordEntityBindingSource.DataSource as List; if ((list != null) && list.Any(p => p.CarNo == cmmWeightRecord.CarNo)) if (MessageUtil.ShowYesNoAndQuestion("车牌已经存在皮重,是否继续保存皮重?") == DialogResult.No) return; var json = JsonConvert.SerializeObject(cmmWeightRecord, Formatting.None, new JsonSerializerSettings {ContractResolver = new CamelCasePropertyNamesContractResolver()}); var ccp = new CoreClientParam { ServerName = "com.steering.Mcms.LocalTruckScale", MethodName = "DoAdd", ServerParams = new object[] { "", json } }; ccp = ExecuteNonQuery(ccp, CoreInvokeType.Internal); if (ccp.ReturnCode != -1) if (ccp.ReturnInfo.ToString2().Contains("称重完成")) { ccp.ReturnInfo.ToString2().Speak(); lblWt.Text = "0.000t"; LoadRecord(); Query(); //ccp.ReturnObject; var matInfo = GetMatInfo(); if (matInfo != null) matInfo.SetDefault(null); } else { MessageUtil.ShowTips(ccp.ReturnInfo); } } /// /// 二次称重 /// /// /// private void btnSave2_Click(object sender, EventArgs e) { if (cmmPoundBase == null) { MessageBox.Show(@"无磅房权限"); return; } if (tbScondWt.ActiveTab == null) return; if (CurrentGrid.ActiveRow == null) { MessageBox.Show(@"请选择第一次称重记录"); return; } decimal wt; if (!decimal.TryParse(lblWt.Text.Replace("t", ""), out wt) || (wt <= 0)) { MessageBox.Show(@"重量异常!"); return; } var current = CurrentGrid.ActiveRow.ListObject as CmmWeightRecordEntity; if (current == null) return; var key = GetKey(); CmmWeightRecordEntityFull cmmWeightRecord; if ("207" == key) { cmmWeightRecord = new CmmWeightRecordEntityFull(); cmmWeightRecord.WtType = "0"; } else { var matInfo = GetMatInfo(); if (matInfo == null) return; cmmWeightRecord = matInfo.GetData(); cmmWeightRecord.WtType = "1"; if ((cmmWeightRecord.RecordNumber == null) && (cmmWeightRecord.MatInfos != null) && cmmWeightRecord.MatInfos.Any()) { MessageBox.Show("数量不能为空!"); return; } } var hookWtStr = ""; if (key == "201") { if ((cmmWeightRecord.MatInfos == null) || !cmmWeightRecord.MatInfos.Any()) { MessageBox.Show("无配送单信息!"); return; } if (cmmWeightRecord.MatInfos.Any(p => p.ActWeight == null)) { MessageBox.Show("有炉号没有钩子称重量!"); return; } var hookWt = cmmWeightRecord.MatInfos.Select(p => (decimal) p.ActWeight).Sum(); hookWtStr = hookWt.ToString(); decimal NetWt; decimal wt2, wt1; if (decimal.TryParse(lblWt.Text.Replace("t", ""), out wt2) && decimal.TryParse(current.RecordWeight.ToString3(), out wt1)) { NetWt = wt2 - wt1; } else { MessageBox.Show("数据异常!"); return; } if (NetWt <= 0) { MessageBox.Show("净重小于0!"); return; } cmmWeightRecord.RealWt = NetWt; if (Math.Abs(NetWt - hookWt)*1000/NetWt >= 5) { var msg = " 净重与钩子称 误差超过千分之5"; msg.Speak(); if ( MessageUtil.ShowYesNoAndQuestion(" 净重: " + NetWt + "t 钩子称重量: " + hookWt + "t 磅差 " + (NetWt - hookWt) + "t 误差超过千分之5, 请确认是否继续保存 ?") == DialogResult.No) return; } } cmmWeightRecord.Recoder = UserInfo.GetUserName(); cmmWeightRecord.RecordType = GetKey(); cmmWeightRecord.Validflag = "2"; cmmWeightRecord.RecordWeight = wt; cmmWeightRecord.RecoderLocation = cmmPoundBase.PoundNo; cmmWeightRecord.CarNo = current.CarNo; cmmWeightRecord.MatType = GetMatType(); if (("208" == cmmWeightRecord.RecordType) && ((cmmWeightRecord.MatInfos == null) || !cmmWeightRecord.MatInfos.Any())) { MessageBox.Show(@"无废品出库信息,无法保存!"); return; } if (("201" == cmmWeightRecord.RecordType) && ((cmmWeightRecord.MatInfos == null) || !cmmWeightRecord.MatInfos.Any())) { MessageBox.Show(@"无装车单信息,无法保存!"); return; } var json = JsonConvert.SerializeObject(cmmWeightRecord, Formatting.None, new JsonSerializerSettings {ContractResolver = new CamelCasePropertyNamesContractResolver()}); var ccp = new CoreClientParam { ServerName = "com.steering.Mcms.LocalTruckScale", MethodName = "DoAdd", ServerParams = new object[] { current.RecordNo, hookWtStr, json } }; ccp = ExecuteNonQuery(ccp, CoreInvokeType.Internal); if (ccp.ReturnCode != -1) if (ccp.ReturnInfo.ToString2().Contains("称重完成")) { decimal wt2; decimal.TryParse(lblWt.Text.Replace("t", ""), out wt2); lblWt.Text = "0.000t"; var result = ccp.ReturnInfo.ToString2().Split('|'); result[0].Speak(); if (result.Length > 1) if ((key == "201") && (wt2 > 50) && (MessageUtil.ShowYesNoAndQuestion("称重完成! 毛重超过50吨, 是否继续打印磅单?") == DialogResult.No)) { } else { Print(result[1]); } LoadRecord(); Query(); Query2(); //TODO 打印 var matInfo = GetMatInfo(); if (matInfo != null) matInfo.SetDefault(null); } else { MessageUtil.ShowTips(ccp.ReturnInfo); } } private void Print(string resultNo, bool spilt = false) { var strurl = "http://172.16.2.145/WebReport/ReportServer?reportlet=" + (spilt ? "RepThCattyListCut" : "RepThCattyList") + ".cpt&RESULT_NO=" + resultNo; var fre = new FrmRepBrower(ob, strurl) { Size = new Size(900, 500) }; fre.Show(); } private void Print2(string resultNo, bool spilt = false) { var strurl = "http://172.16.2.145/WebReport/ReportServer?reportlet=" + (spilt ? "RepThCattyListCut" : "RepThCattyList") + ".cpt&RESULT_NO=" + resultNo; System.Diagnostics.Process.Start(strurl); //var fre = new FrmRepBrower(ob, strurl) //{ // Size = new Size(900, // 500) //}; //fre.Show(); } private void frmLocalTruckScale_FormClosed(object sender, FormClosedEventArgs e) { if ((communication != null) && communication.Status) communication.Stop(); timer.Stop(); } private void Query() { var dic = new Dictionary(); if (!string.IsNullOrWhiteSpace(cboPoundList.Text)) dic.Add("poundNo", cboPoundList.Text); dic.Add("validflag", new List {"1"}); cmmWeightRecordEntityBindingSource.DataSource = EntityHelper.GetData( "com.steering.Mcms.RecordServer.doQueryRecord", new object[] {dic}, ob); Comm.RefreshAndAutoSize(CurrentGrid); } private void LoadTempate() { /* if (cmmPoundBase == null) return; */ _templateList = EntityHelper.GetData( "com.steering.Mcms.TemplateServer.doQueryTempate", new object[] {""}, ob); tbFirstWt_SelectedTabChanged(null, null); } private void utbSaveAsT_Click(object sender, EventArgs e) { if (cmmPoundBase == null) { MessageBox.Show(@"无磅房权限"); return; } if (tbWt.ActiveTab == null) return; var matInfo = GetMatInfo(); if (matInfo != null) { var cmmWeightRecord = matInfo.GetData(); string projectName; using (var fractureInfo = new ProjectName("模板名")) { fractureInfo.ShowDialog(); if (fractureInfo.DialogResult != DialogResult.OK) return; projectName = fractureInfo.ProjectNameStr; } var template = new CmmRecordTemplateEntity { CreateUser = UserInfo.GetUserName(), TemplateKey = GetKey(), TemplateLocation = cmmPoundBase.PoundNo, TemplateXml = cmmWeightRecord.ToString(), TemplateName = projectName }; var ccp = new CoreClientParam { ServerName = "com.steering.Mcms.TemplateServer", MethodName = "DoSaveTemplateNo", ServerParams = new object[] { JsonConvert.SerializeObject(template, Formatting.None, new JsonSerializerSettings {ContractResolver = new CamelCasePropertyNamesContractResolver()}) } }; ccp = ExecuteNonQuery(ccp, CoreInvokeType.Internal); if (ccp.ReturnCode != -1) { MessageUtil.ShowTips(ccp.ReturnInfo); if (ccp.ReturnInfo.Equals("保存成功!")) LoadTempate(); } } } private MatInfo GetMatInfo() { MatInfo matInfo = null; if (tbWt.ActiveTab == null) return null; if ((tbWt.ActiveTab.Key == "1") && (tbFirstWt.ActiveTab != null)) matInfo = tbFirstWt.ActiveTab.TabPage.Controls.OfType().FirstOrDefault(); else if ((tbWt.ActiveTab.Key == "2") && (tbScondWt.ActiveTab != null) && (tbScondWt.ActiveTab.Key == "1") && (tbOther.ActiveTab != null)) matInfo = tbOther.ActiveTab.TabPage.Controls.OfType().FirstOrDefault(); else if ((tbWt.ActiveTab.Key == "2") && (tbScondWt.ActiveTab != null) && (tbScondWt.ActiveTab.Key == "3")) matInfo = matInfo15; else if ((tbWt.ActiveTab.Key == "2") && (tbScondWt.ActiveTab != null) && (tbScondWt.ActiveTab.Key == "0")) matInfo = matInfo16; return matInfo; } private MatInfo GetMatInfoByKey(string key) { MatInfo matInfo = null; foreach (var ultraTab in tbFirstWt.Tabs) { var matinfo = ultraTab.TabPage.Controls.OfType().Where(p => p.Key == key).ToList(); if (matinfo.Any()) return matinfo[0]; } foreach (var ultraTab in tbOther.Tabs) { var matinfo = ultraTab.TabPage.Controls.OfType().Where(p => p.Key == key).ToList(); if (matinfo.Any()) return matinfo[0]; } if (key == "201") return matInfo16; return matInfo; } private void utbDelete_Click(object sender, EventArgs e) { var matInfo = GetMatInfo(); if (matInfo != null) matInfo.DeleteRow(); } private void utbClear_Click(object sender, EventArgs e) { var matInfo = GetMatInfo(); if (matInfo != null) matInfo.Clear(); } private void tbFirstWt_SelectedTabChanged(object sender, SelectedTabChangedEventArgs e) { LoadTem(); var matInfo = GetMatInfo(); if (matInfo != null) matInfo.Clear(); if (CurrentGrid.ActiveRow != null) { var current = CurrentGrid.ActiveRow.ListObject as CmmWeightRecordEntity; if ((current == null) || ("" == current.CarNo)) return; if ((tbWt.ActiveTab != null) && (tbWt.ActiveTab.Key == "2") && (tbScondWt.ActiveTab != null)) if (tbScondWt.ActiveTab.Key == "3") { } else if (tbScondWt.ActiveTab.Key == "0") { } else if ((tbScondWt.ActiveTab.Key == "1") && (tbOther.ActiveTab != null) && (tbOther.ActiveTab.Key == "205")) { decimal wt, fwt; decimal.TryParse(lblWt.Text.Replace("t", ""), out wt); decimal.TryParse(current.RecordWeight.ToString3(), out fwt); ShowOutInfo(current.CarNo, wt - fwt); } else if ((tbScondWt.ActiveTab.Key == "1") && (tbOther.ActiveTab != null) && (tbOther.ActiveTab.Key == "206")) { decimal wt, fwt; decimal.TryParse(lblWt.Text.Replace("t", ""), out wt); decimal.TryParse(current.RecordWeight.ToString3(), out fwt); if (wt - fwt > 0) matInfo13.SetWt(wt - fwt); //ShowOutInfoGp(current.CarNo, wt - fwt); } else { if (matInfo != null) { decimal wt, fwt; if (decimal.TryParse(lblWt.Text.Replace("t", ""), out wt) && decimal.TryParse(current.RecordWeight.ToString3(), out fwt)) if (wt - fwt > 0) matInfo.SetWt(wt - fwt); } } } utbSelect.Visible = (tbWt.ActiveTab != null) && (tbWt.ActiveTab.Key == "1") && (tbFirstWt.ActiveTab != null) && (tbFirstWt.ActiveTab.Key == "102"); utbSelect2.Visible = utbSelect.Visible; } private void LoadTem() { if (_templateList == null) return; var key = GetKey(); if (string.IsNullOrWhiteSpace(key)) return; if ((_cmmInputRecordEntities != null) && _cmmInputRecordEntities.Any()) { var matInfo = GetMatInfo(); if (matInfo != null) matInfo.iniMatName( _cmmInputRecordEntities.Where( p => (p.RecordKey == key) || string.IsNullOrWhiteSpace(p.RecordKey)).ToList()); } lvTemplate.Items.Clear(); lvTemplate.Items.AddRange(_templateList.Where(p => CheckShowKey(p.TemplateKey, key)) .Select(p => { var temp = new UltraListViewItem(p.TemplateName, null, null) {Key = p.TemplateNo}; try { temp.Tag = XmlHelper.FromXElement(XElement.Parse(p.TemplateXml)); } catch (Exception) { // ignored } return temp; } ). ToArray() ); } private string GetKey() { return tbWt.ActiveTab.Key == "1" ? (tbFirstWt.ActiveTab == null ? "" : tbFirstWt.ActiveTab.Key) : (tbWt.ActiveTab.Key == "2") && (tbScondWt.ActiveTab != null) && (tbScondWt.ActiveTab.Key == "1") && (tbOther.ActiveTab != null) ? tbOther.ActiveTab.Key : (tbWt.ActiveTab.Key == "2") && (tbScondWt.ActiveTab != null) && (tbScondWt.ActiveTab.Key == "0") ? "201" : (tbWt.ActiveTab.Key == "2") && (tbScondWt.ActiveTab != null) && (tbScondWt.ActiveTab.Key == "2") ? "207" : (tbWt.ActiveTab.Key == "2") && (tbScondWt.ActiveTab != null) && (tbScondWt.ActiveTab.Key == "3") ? "208" : ""; } private string GetMatType() { return tbWt.ActiveTab.Key == "1" ? "" : (tbWt.ActiveTab.Key == "2") && (tbScondWt.ActiveTab != null) && (tbScondWt.ActiveTab.Key == "1") && (tbOther.ActiveTab != null) ? tbOther.ActiveTab.Text : (tbWt.ActiveTab.Key == "2") && (tbScondWt.ActiveTab != null) && (tbScondWt.ActiveTab.Key == "0") ? "钢管发运" : (tbWt.ActiveTab.Key == "2") && (tbScondWt.ActiveTab != null) && (tbScondWt.ActiveTab.Key == "2") ? "" : (tbWt.ActiveTab.Key == "2") && (tbScondWt.ActiveTab != null) && (tbScondWt.ActiveTab.Key == "3") ? "其它内转" : ""; } private void lvTemplate_MouseClick(object sender, MouseEventArgs e) { var listView = sender as UltraListView; if (e.Button == MouseButtons.Right) { var itemAtPoint = lvTemplate.ItemFromPoint(e.Location); if (itemAtPoint != null) { lvTemplate.ContextMenuStrip = listViewMenuStrip; ISelectionManager selectionManager = listView; if (selectionManager != null) selectionManager.SelectItem(itemAtPoint, true); itemAtPoint.Activate(); } } } private void deleteTemplate_Click(object sender, EventArgs e) { if (lvTemplate.ActiveItem == null) return; var ccp = new CoreClientParam { ServerName = "com.steering.Mcms.TemplateServer", MethodName = "DoDeleteTemplate", ServerParams = new object[] { lvTemplate.ActiveItem.Key, UserInfo.GetUserName() } }; ccp = ExecuteNonQuery(ccp, CoreInvokeType.Internal); if (ccp.ReturnCode != -1) { MessageUtil.ShowTips(ccp.ReturnInfo); if (ccp.ReturnInfo.Equals("删除成功!")) LoadTempate(); } } private void CurrentGrid_AfterRowActivate(object sender, EventArgs e) { CurrentGrid.ActiveRow.RowSelectorAppearance.BackColor = Color.LightGreen; var current = CurrentGrid.ActiveRow.ListObject as CmmWeightRecordEntity; if ((current == null) || ("" == current.CarNo)) return; if ((tbWt.ActiveTab != null) && (tbWt.ActiveTab.Key == "2") && (tbScondWt.ActiveTab != null)) if (tbScondWt.ActiveTab.Key == "3") ShowWasteInfo(current.CarNo); else if (tbScondWt.ActiveTab.Key == "0") ShowLoadvehicleInfo(current.CarNo); else if ((tbScondWt.ActiveTab.Key == "1") && (tbOther.ActiveTab != null) && (tbOther.ActiveTab.Key == "205")) { decimal wt, fwt; decimal.TryParse(lblWt.Text.Replace("t", ""), out wt); decimal.TryParse(current.RecordWeight.ToString3(), out fwt); ShowOutInfo(current.CarNo, wt - fwt); } else if ((tbScondWt.ActiveTab.Key == "1") && (tbOther.ActiveTab != null) && (tbOther.ActiveTab.Key == "206")) { decimal wt, fwt; decimal.TryParse(lblWt.Text.Replace("t", ""), out wt); decimal.TryParse(current.RecordWeight.ToString3(), out fwt); if (wt - fwt > 0) matInfo13.SetWt(wt - fwt); //ShowOutInfoGp(current.CarNo, wt - fwt); } else { var matInfo = GetMatInfo(); if (matInfo != null) { decimal wt, fwt; if (decimal.TryParse(lblWt.Text.Replace("t", ""), out wt) && decimal.TryParse(current.RecordWeight.ToString3(), out fwt)) if (wt - fwt > 0) matInfo.SetWt(wt - fwt); } } } // 显示废品信息 public void ShowWasteInfo(string carNo) { var cmmWeightRecordEntityFull = new CmmWeightRecordEntityFull(); var dt = ServerHelper.GetData("com.steering.Mcms.MatOutServer.doQueryWasteInfo", new object[] {carNo}, ob); if ((dt != null) && (dt.Rows.Count > 0)) { cmmWeightRecordEntityFull.ShippersName = dt.Rows[0]["STORAGE_NAME_FROM"].ToString2(); cmmWeightRecordEntityFull.LoadvehicleNo = dt.Rows[0]["OUTSTOCK_DOC"].ToString2(); cmmWeightRecordEntityFull.ReceiveName = dt.Rows[0]["STORAGE_NAME_TO"].ToString2(); cmmWeightRecordEntityFull.RecordNumber = decimal.Parse(dt.Rows[0]["ACT_COUNT"].ToString3()); cmmWeightRecordEntityFull.MatName = "废品管"; foreach (DataRow dtcRow in dt.Rows) { var cmmWeightMatEntity = new CmmWeightMatEntity { Produccode = dtcRow["PRODUCCODE"].ToString2(), Producname = dtcRow["PRODUCNAME"].ToString2(), Gradecode = dtcRow["GRADECODE"].ToString2(), Gradename = dtcRow["GRADENAME"].ToString2(), Steelcode = dtcRow["STEELCODE"].ToString2(), Steelname = dtcRow["STEELNAME"].ToString2(), ActLenTemp = dtcRow["ACT_LEN_MIN"].ToString3() + "-" + dtcRow["ACT_LEN_MAX"].ToString3(), ActWeight = decimal.Parse(dtcRow["ACT_WEIGHT"].ToString3()), ActCount = decimal.Parse(dtcRow["ACT_COUNT"].ToString3()), JudgeStoveNo = dtcRow["JUDGE_STOVE_NO"].ToString2(), ActDimater = decimal.Parse(dtcRow["ACT_DIMATER"].ToString3()), ActHeight = decimal.Parse(dtcRow["ACT_HEIGHT"].ToString3()) }; cmmWeightRecordEntityFull.MatInfos.Add(cmmWeightMatEntity); } } matInfo15.SetDefault(cmmWeightRecordEntityFull); } //显示装车单信息 public void ShowLoadvehicleInfo(string carNo) { var cmmWeightRecordEntityFull = new CmmWeightRecordEntityFull(); var dt = ServerHelper.GetData("com.steering.Mcms.LoadVehicleServer.doQueryLoadvehicleInfo", new object[] {carNo}, ob); if ((dt != null) && (dt.Rows.Count > 0)) { cmmWeightRecordEntityFull.ShippersName = dt.Rows[0]["BASENAME"].ToString2(); cmmWeightRecordEntityFull.LoadvehicleNo = dt.Rows[0]["LOADVEHICLE_NO"].ToString2(); cmmWeightRecordEntityFull.ReceiveName = dt.Rows[0]["RECEIV_NM"].ToString2(); cmmWeightRecordEntityFull.RecordNumber = decimal.Parse(dt.Rows[0]["STACKING_PIECE"].ToString3()); cmmWeightRecordEntityFull.ShippersName = dt.Rows[0]["BASENAME"].ToString2(); cmmWeightRecordEntityFull.OrderName = dt.Rows[0]["CUSTOMER_NM"].ToString2(); cmmWeightRecordEntityFull.MatName = "钢管"; cmmWeightRecordEntityFull.MatInfos = new List(); var dtc = ServerHelper.GetData("com.steering.Mcms.LoadVehicleServer.doQueryLoadvehicleMatInfo", new object[] {cmmWeightRecordEntityFull.LoadvehicleNo}, ob); if ((dtc != null) && (dtc.Rows.Count > 0)) foreach (DataRow dtcRow in dtc.Rows) { var cmmWeightMatEntity = new CmmWeightMatEntity { StorageNo = dtcRow["STORAGE_NO"].ToString2(), StorageName = dtcRow["STORAGE_NAME"].ToString2(), StoveNo = dtcRow["STOVE_NO"].ToString2(), OrderNo = dtcRow["ORDER_NO"].ToString2(), OrderSeq = dtcRow["ORDER_SEQ"].ToString2(), OrderSeqNo = dtcRow["ORDER_SEQ_NO"].ToString2(), ProOrderNo = dtcRow["ORDER_NO"].ToString2() + "/" + dtcRow["ORDER_SEQ"].ToString2(), Produccode = dtcRow["PRODUCCODE"].ToString2(), Producname = dtcRow["PRODUCNAME"].ToString2(), StdCode = dtcRow["STD_CODE"].ToString2(), StdName = dtcRow["STD_NAME"].ToString2(), Gradecode = dtcRow["GRADECODE"].ToString2(), Gradename = dtcRow["GRADENAME"].ToString2(), Steelcode = dtcRow["STEELCODE"].ToString2(), Steelname = dtcRow["STEELNAME"].ToString2(), SpecCode = dtcRow["SPEC_CODE"].ToString2(), SpecName = dtcRow["SPEC_NAME"].ToString2(), ModelCode = dtcRow["MODEL_CODE"].ToString2(), ModelDesc = dtcRow["MODEL_DESC"].ToString2(), ActLenMin = decimal.Parse(dtcRow["ACT_LEN_MIN"].ToString3()), ActLenMax = decimal.Parse(dtcRow["ACT_LEN_MAX"].ToString3()), ActLenTemp = dtcRow["ACT_LEN_MIN"].ToString3() + "-" + dtcRow["ACT_LEN_MAX"].ToString3(), ActCount = decimal.Parse(dtcRow["ACT_COUNT"].ToString3()), JudgeStoveNo = dtcRow["JUDGE_STOVE_NO"].ToString2(), ActDimater = decimal.Parse(dtcRow["ACT_DIMATER"].ToString3()), ActHeight = decimal.Parse(dtcRow["ACT_HEIGHT"].ToString3()) }; cmmWeightRecordEntityFull.MatInfos.Add(cmmWeightMatEntity); } try { var dth = ServerHelper.GetData("com.steering.Mcms.LoadVehicleServer.doQueryHook", new object[] {cmmWeightRecordEntityFull.LoadvehicleNo}, ob); if ((dth != null) && (dth.Rows.Count > 0)) foreach (DataRow dthRow in dth.Rows) { var total = double.Parse(dthRow["HOOK_WEIGHT"].ToString3()); double num = int.Parse(cmmWeightRecordEntityFull.MatInfos.Where( p => p.JudgeStoveNo == dthRow["JUDGE_STOVE_NO"].ToString2()) .Select(p => p.ActCount) .Sum() .ToString3()); var perWt = Math.Round(total/num, 3); var list = cmmWeightRecordEntityFull.MatInfos.Where( p => p.JudgeStoveNo == dthRow["JUDGE_STOVE_NO"].ToString2()).ToList(); for (var i = 0; i < list.Count; i++) if (i == 0) list[i].ActWeight = decimal.Parse( (total - perWt*(num - double.Parse(list[i].ActCount.ToString3()))).ToString3 ()); else list[i].ActWeight = decimal.Parse( (perWt*double.Parse(list[i].ActCount.ToString3())).ToString3()); } } catch (Exception) { } } else { cmmWeightRecordEntityFull = null; } matInfo16.SetDefault(cmmWeightRecordEntityFull); } public void ShowOutInfo(string carNo, decimal nutWt) { var cmmWeightRecordEntityFull = new CmmWeightRecordEntityFull(); var dt = ServerHelper.GetData("com.steering.Mcms.MatOutServer.doQueryOutInfo", new object[] {carNo}, ob); if ((dt != null) && (dt.Rows.Count > 0) && ((dt.Rows[0]["STORAGE_NAME_D"].ToString2() == "天津钢管制造有限公司") || ((dt.Rows[0]["STORAGE_NAME_TO"].ToString2() == "天淮室外成品库" || dt.Rows[0]["STORAGE_NAME_TO"].ToString2() == "天淮室内成品库") && dt.Rows[0]["OUTSTOCK_PLAN_NO"].ToString2() == "1"))) // 调整 只有去天津和天淮室外成品库 才带出出库记录 2021.3.15 { cmmWeightRecordEntityFull.ShippersName = dt.Rows[0]["STORAGE_NAME_D"].ToString2() == "天津钢管制造有限公司" ? "江苏天淮钢管有限公司" : dt.Rows[0]["STORAGE_NAME_FROM"].ToString2(); cmmWeightRecordEntityFull.LoadvehicleNo = dt.Rows[0]["OUTSTOCK_DOC"].ToString2(); cmmWeightRecordEntityFull.ReceiveName = dt.Rows[0]["STORAGE_NAME_TO"].ToString2(); cmmWeightRecordEntityFull.OrderName = dt.Rows[0]["STORAGE_NAME_D"].ToString2(); cmmWeightRecordEntityFull.RecordNumber = dt.AsEnumerable().Select(p => decimal.Parse(p["ACT_COUNT"].ToString3())).Sum(); decimal.Parse(dt.Rows[0]["ACT_COUNT"].ToString3()); cmmWeightRecordEntityFull.MatName = dt.Rows[0]["STORAGE_NAME_D"].ToString2() == "天津钢管制造有限公司" ? "调拨钢管" : "内转钢管"; cmmWeightRecordEntityFull.MatInfos = new List(); var totalWt = dt.AsEnumerable().Select(p => decimal.Parse(p["ACT_WEIGHT"].ToString3())).Sum(); var perWt = nutWt/totalWt; var remainWt = nutWt; for (var i = 0; i < dt.Rows.Count; i++) { var dtcRow = dt.Rows[i]; var cmmWeightMatEntity = new CmmWeightMatEntity { Produccode = dtcRow["PRODUCCODE"].ToString2(), Producname = dtcRow["PRODUCNAME"].ToString2(), Gradecode = dtcRow["GRADECODE"].ToString2(), Gradename = dtcRow["GRADENAME"].ToString2(), Steelcode = dtcRow["STEELCODE"].ToString2(), Steelname = dtcRow["STEELNAME"].ToString2(), ActLenTemp = dtcRow["ACT_LEN_MIN"].ToString3() + "-" + dtcRow["ACT_LEN_MAX"].ToString3(), ActWeight = i == dt.Rows.Count - 1 ? remainWt : Math.Round(decimal.Parse(dtcRow["ACT_WEIGHT"].ToString3())*perWt, 3), ActCount = decimal.Parse(dtcRow["ACT_COUNT"].ToString3()), JudgeStoveNo = dtcRow["JUDGE_STOVE_NO"].ToString2(), ActDimater = decimal.Parse(dtcRow["ACT_DIMATER"].ToString3()), ActHeight = decimal.Parse(dtcRow["ACT_HEIGHT"].ToString3()) }; l.WriteLog(3, "车号:" + carNo + " nutWt:" + nutWt + " remainWt:" + remainWt + " totalWt:" + totalWt + "perWt:"+ perWt); remainWt = remainWt - (decimal) cmmWeightMatEntity.ActWeight; cmmWeightRecordEntityFull.MatInfos.Add(cmmWeightMatEntity); } matInfo12.SetDefault(cmmWeightRecordEntityFull); } else { if (nutWt > 0) matInfo12.SetWt(nutWt); } } public void ShowOutInfoGp(string carNo, decimal nutWt) { var cmmWeightRecordEntityFull = new CmmWeightRecordEntityFull(); var dt = ServerHelper.GetData("com.steering.Mcms.MatOutServer.doQueryOutInfoGp", new object[] {carNo}, ob); if ((dt != null) && (dt.Rows.Count > 0)) { cmmWeightRecordEntityFull.ShippersName = dt.Rows[0]["STORAGE_NAME_FROM"].ToString2(); cmmWeightRecordEntityFull.LoadvehicleNo = dt.Rows[0]["OUTSTOCK_DOC"].ToString2(); cmmWeightRecordEntityFull.ReceiveName = dt.Rows[0]["STORAGE_NAME_TO"].ToString2(); cmmWeightRecordEntityFull.RecordNumber = dt.AsEnumerable().Select(p => decimal.Parse(p["ACT_COUNT"].ToString3())).Sum(); decimal.Parse(dt.Rows[0]["ACT_COUNT"].ToString3()); cmmWeightRecordEntityFull.MatName = "内转钢坯"; cmmWeightRecordEntityFull.MatInfos = new List(); var perWt = Math.Round(nutWt/(decimal) cmmWeightRecordEntityFull.RecordNumber, 3); var remainWt = nutWt; for (var i = 0; i < dt.Rows.Count; i++) { var dtcRow = dt.Rows[i]; var cmmWeightMatEntity = new CmmWeightMatEntity { Steelcode = dtcRow["GRADECODE"].ToString2(), Steelname = dtcRow["GRADENAME"].ToString2(), ActLenTemp = dtcRow["ACT_LEN"].ToString3(), ActWeight = i == dt.Rows.Count - 1 ? remainWt : decimal.Parse(dtcRow["ACT_COUNT"].ToString3())*perWt, ActCount = decimal.Parse(dtcRow["ACT_COUNT"].ToString3()), JudgeStoveNo = dtcRow["JUDGE_STOVE_NO"].ToString2(), ActDimater = decimal.Parse(dtcRow["DIMATER"].ToString3()), ActHeight = decimal.Parse(dtcRow["HEIGHT"].ToString3()) }; remainWt = remainWt - perWt; cmmWeightRecordEntityFull.MatInfos.Add(cmmWeightMatEntity); } matInfo13.SetDefault(cmmWeightRecordEntityFull); } else { if (nutWt > 0) matInfo13.SetWt(nutWt); } } private void tbScondWt_SelectedTabChanged(object sender, SelectedTabChangedEventArgs e) { if (CurrentGrid.ActiveRow != null) { var current = CurrentGrid.ActiveRow.ListObject as CmmWeightRecordEntity; if (current != null) if (tbScondWt.ActiveTab.Key == "3") ShowWasteInfo(current.CarNo); else if (tbScondWt.ActiveTab.Key == "0") ShowLoadvehicleInfo(current.CarNo); } LoadTem(); } private void utnQuery_Click(object sender, EventArgs e) { Query2(); } private void Query2() { var dic = new Dictionary(); if (chkTim.Checked) { dic.Add("time", RegStartTime.Value.ToString("yyyy-MM-dd HH:mm:ss")); dic.Add("time1", RegEndTime.Value.ToString("yyy-MM-dd HH:mm:ss")); } dic.Add("carNo", uteCarNo.Text); dic.Add("matType", uceQueryCarType.Text); dic.Add("resultNo", utePound.Text); dic.Add("orderName", uteOrder.Text); dic.Add("shippersName", uteShippersName.Text); dic.Add("receiveName", uteReceiveName.Text); dic.Add("memo", uteMemo.Text); dic.Add("validflag", new List {"1"}); dic.Add("judgeStoveNo", uteJudgeStoveNo.Text); List list = EntityHelper.GetData( "com.steering.Mcms.ResultServer.doQuery", new object[] {dic}, ob); lblCount.Text = string.Format("共{0}条记录", list.Count); QueryBS.DataSource = list; Comm.RefreshAndAutoSize(ugData); } private void tbMain_SelectedTabChanged(object sender, SelectedTabChangedEventArgs e) { if (tbMain.SelectedTab.Key == "1") Query(); else Query2(); } private void utbReset_Click(object sender, EventArgs e) { RegStartTime.Value = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd 07:00:00")); RegEndTime.Value = DateTime.Parse(DateTime.Now.AddDays(1).ToString("yyyy-MM-dd 07:00:00")); uteCarNo.Text = ""; uceQueryCarType.Text = ""; utePound.Text = ""; uteOrder.Text = ""; uteShippersName.Text = ""; uteReceiveName.Text = ""; uteMemo.Text = ""; uteJudgeStoveNo.Text = ""; } private void btnDelete_Click(object sender, EventArgs e) { if (ugData.ActiveRow == null) return; var ub = sender as UltraButton; if (ub == null) return; var data = ugData.ActiveRow.ListObject as CmmWeightResultEntity; if (data == null) return; ("是否" + ub.Text + " 车辆 " + data.CarNo + " 的过磅单?").Speak(); if (MessageUtil.ShowYesNoAndQuestion("是否" + ub.Text + " 车牌[" + data.CarNo + "]过磅单?") == DialogResult.No) return; var ccp = new CoreClientParam { ServerName = "com.steering.Mcms.LocalTruckScale", MethodName = "DoDeleteResult", ServerParams = new object[] { data.ResultNo, UserInfo.GetUserName(), "重过" == ub.Text ? "2" : "1" } }; ccp = ExecuteNonQuery(ccp, CoreInvokeType.Internal); if (ccp.ReturnCode != -1) { MessageUtil.ShowTips(ccp.ReturnInfo); if (ccp.ReturnInfo.Equals("操作成功!")) { Query2(); Query(); } } } private void cboNo_SelectedValueChanged(object sender, EventArgs e) { lblWtNow.Text = "0.00t"; if (cboNo.SelectedIndex < 0) return; cmmPoundBase = cboNo.SelectedItem as CmmPoundBaseEntity; if (communication != null) { if (communication.Status) utbConnect_Click(null, null); communication.ReceiveData -= defultPortEntity_ReceiveData; } communication = null; if (cboNo.SelectedIndex < 0) return; var list = CommunicationEntitys.Where(p => p.PoundNo == cmmPoundBase.PoundNo).ToList(); if (list.Any()) communication = list[0].Communication; if (communication == null) communication = defultPortEntity; communication.ReceiveData += defultPortEntity_ReceiveData; CmmBaseProtocolEntity cmmBaseProtocol = null; if (cmmPoundBase != null) { List protocols = EntityHelper.GetData( "com.steering.Mcms.ProcotolServer.getProcotolId", new object[] {cmmPoundBase.PoundProtocolId}, ob); if ((protocols != null) && protocols.Any()) cmmBaseProtocol = new CmmBaseProtocolEntity { ProtocolId = cmmPoundBase.PoundProtocolId, ListC = protocols }; cboPoundList.Text = cmmPoundBase.PoundNo; } communication.ChangeProtocol(new TruckScaleProtocol(cmmBaseProtocol)); utbConnect_Click(null, null); } private void btnSetting_Click(object sender, EventArgs e) { if (communication != null) { if (communication.Status) utbConnect_Click(null, null); communication.ReceiveData -= defultPortEntity_ReceiveData; } using (var communicationSetting = new CommunicationSetting(CommunicationEntitys)) { if (communicationSetting.ShowDialog() == DialogResult.OK) { CommunicationEntitys = communicationSetting.Entitys; var xElementRoot = new XElement("CommunicationInfo"); foreach (var communicationEntity in CommunicationEntitys) { var temp = new XElement("POUND_" + communicationEntity.PoundNo); var type = communicationEntity.Communication is SerialPortEntity ? "1" : "2"; temp.SetAttributeValue("type", type); if (type == "1") { temp.SetAttributeValue("StrBaudRate", ((SerialPortEntity) communicationEntity.Communication).StrBaudRate); temp.SetAttributeValue("StrDataBits", ((SerialPortEntity) communicationEntity.Communication).StrDataBits); temp.SetAttributeValue("StrParity", ((SerialPortEntity) communicationEntity.Communication).StrParity); temp.SetAttributeValue("StrStopBits", ((SerialPortEntity) communicationEntity.Communication).StrStopBits); temp.SetAttributeValue("PortName", ((SerialPortEntity) communicationEntity.Communication).PortName); } else { temp.SetAttributeValue("Ip", ((SocketClient) communicationEntity.Communication).Ip); temp.SetAttributeValue("Port", ((SocketClient) communicationEntity.Communication).Port); } xElementRoot.Add(temp); } XmlHelper.SetXElement(_path, xElementRoot,true); } } communication = null; cboNo_SelectedValueChanged(null, null); } private void lvTemplate_ItemDoubleClick(object sender, ItemDoubleClickEventArgs e) { var matInfo = GetMatInfo(); if ((matInfo != null) && matInfo.AddNew) matInfo.SetDefault(e.Item.Tag as CmmWeightRecordEntityFull, e.Item.Text); } private void cboPoundList_SelectedValueChanged(object sender, EventArgs e) { Query(); } private void delete_EditorButtonClick(object sender, EditorButtonEventArgs e) { if (cmmPoundBase == null) { MessageBox.Show(@"无磅房权限"); return; } var current = CurrentGrid.ActiveRow.ListObject as CmmWeightRecordEntity; if ((current == null) || ("" == current.CarNo)) return; if (MessageUtil.ShowYesNoAndQuestion("是否删除" + current.CarNo + " 过磅记录?") == DialogResult.No) return; var ccp = new CoreClientParam { ServerName = "com.steering.Mcms.RecordServer", MethodName = "DoUpdateRecord", ServerParams = new object[] { current.RecordNo } }; ccp = ExecuteNonQuery(ccp, CoreInvokeType.Internal); if (ccp.ReturnCode != -1) if (ccp.ReturnInfo.ToString2().Contains("操作成功")) Query(); else MessageUtil.ShowTips(ccp.ReturnInfo); } private void ugData_InitializeRow(object sender, InitializeRowEventArgs e) { var data = e.Row.ListObject as CmmWeightResultEntity; if (data == null) return; if (data.RecordType2 == "201") e.Row.Appearance.BackColor = Color.ForestGreen; } private void uteCarNo_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyChar == 13) Query2(); } private void utnUpdate_Click(object sender, EventArgs e) { if (ugData.ActiveRow == null) { MessageBox.Show("请选择需要修改磅单记录!"); return; } var cmm = ugData.ActiveRow.ListObject as CmmWeightResultEntity; var matInfo = GetMatInfoByKey("101" == cmm.RecordType1 ? cmm.RecordType2 : cmm.RecordType1); if (matInfo == null) { MessageBox.Show("该类型不允许修改!"); return; } using (var frmUpdate = new FrmUpdate(ob, cmm, "101" == cmm.RecordType1 ? cmm.RecordNo2 : cmm.RecordNo1, canUpdateWt) { ColumnsM = matInfo.ColumnsM, ColumnsC = matInfo.ColumnsC }) { frmUpdate.ShowDialog(); if (frmUpdate.DialogResult == DialogResult.OK) Query2(); } } private void utbPrint_Click(object sender, EventArgs e) { if (ugData.ActiveRow == null) return; var data = ugData.ActiveRow.ListObject as CmmWeightResultEntity; if (data == null) return; if ((data.RecordType2 == "201") && (data.GrossWt != null) && (data.GrossWt > 50) && (MessageUtil.ShowYesNoAndQuestion("毛重超过50吨, 是否继续打印磅单?") == DialogResult.No)) { } else { Print(data.ResultNo); } } private void utbPrintSingle_Click(object sender, EventArgs e) { if (ugData.ActiveRow == null) return; var data = ugData.ActiveRow.ListObject as CmmWeightResultEntity; if (data == null) return; if ((data.RecordType2 == "205") || (data.RecordType2 == "201") || (data.RecordType2 == "200")) if ((data.RecordType2 == "201") && (data.GrossWt != null) && (data.GrossWt > 50) && (MessageUtil.ShowYesNoAndQuestion("毛重超过50吨, 是否继续打印磅单?") == DialogResult.No)) { } else { Print(data.ResultNo, true); } } private void unExcel_Click(object sender, EventArgs e) { var hssfworkbook = new HSSFWorkbook(); var sheet = hssfworkbook.CreateSheet("磅房统计"); var index = 0; SetHead(sheet, hssfworkbook, index++); SetHeadRow(sheet, hssfworkbook , new List {"磅房号", "称重类型", "物资名称", "物资数量", "称重次数", "物资净重"}, new List {9, 15, 25, 15, 15, 15}, index++ ); setData(sheet, hssfworkbook, ref index); SetSumm(sheet, index, hssfworkbook); sheet.ForceFormulaRecalculation = true; hssfworkbook.GetCreationHelper().CreateFormulaEvaluator().EvaluateAll(); using (var saveFileDialog1 = new SaveFileDialog()) { saveFileDialog1.FileName = "磅房统计" + DateTime.Now.ToString("yyMMdd"); saveFileDialog1.Filter = "Excel文件(*.xls)|*.xls"; if (saveFileDialog1.ShowDialog() == DialogResult.OK) { var sFullName = saveFileDialog1.FileName; var ms = new MemoryStream(); hssfworkbook.Write(ms); using (var fs = new FileStream(saveFileDialog1.FileName, FileMode.Create, FileAccess.Write)) { var bArr = ms.ToArray(); fs.Write(bArr, 0, bArr.Length); fs.Flush(); } var p = new ProcessStartInfo(sFullName); p.WorkingDirectory = Path.GetDirectoryName(sFullName); Process.Start(p); } } } private void SetSumm(ISheet sheet, int index, HSSFWorkbook hssfworkbook) { var IRow = sheet.CreateRow(index); IRow.Height = 20*20; var Icell1 = IRow.CreateCell(1); Icell1.SetCellValue("合计"); var style = CenterStyle(hssfworkbook); var font = ContextFont(hssfworkbook); style.SetFont(font); style.BorderTop = BorderStyle.Medium; style.BorderBottom = BorderStyle.Medium; style.BorderLeft = BorderStyle.Medium; style.BorderRight = BorderStyle.Thin; //将新的样式赋给单元格 Icell1.CellStyle = style; var Icell12 = IRow.CreateCell(2); var style12 = CenterStyle(hssfworkbook); style12.SetFont(font); style12.BorderTop = BorderStyle.Medium; style12.BorderBottom = BorderStyle.Medium; style12.BorderLeft = BorderStyle.Thin; style12.BorderRight = BorderStyle.Thin; //将新的样式赋给单元格 Icell12.CellStyle = style12; var Icell13 = IRow.CreateCell(3); var style13 = CenterStyle(hssfworkbook); style13.SetFont(font); style13.BorderTop = BorderStyle.Medium; style13.BorderBottom = BorderStyle.Medium; style13.BorderLeft = BorderStyle.Thin; style13.BorderRight = BorderStyle.Thin; //将新的样式赋给单元格 Icell13.CellStyle = style13; //合并单元格 sheet.AddMergedRegion(new CellRangeAddress(index, index, 1, 3)); var list = new List(); for (var i = 2; i < index; i++) list.Add(i + 1 + ""); var Icell2 = IRow.CreateCell(4); if (list.Any()) { Icell2.SetCellType(CellType.Formula); Icell2.SetCellFormula(string.Format("SUM({0})", string.Join(",", list.Select(p => "E" + p).ToList()))); hssfworkbook.GetCreationHelper().CreateFormulaEvaluator().EvaluateFormulaCell(Icell2); } var style2 = numStyle(hssfworkbook); var font2 = ContextFont(hssfworkbook); style2.SetFont(font2); style2.BorderTop = BorderStyle.Medium; style2.BorderBottom = BorderStyle.Medium; style2.BorderLeft = BorderStyle.Thin; style2.BorderRight = BorderStyle.Thin; //将新的样式赋给单元格 Icell2.CellStyle = style2; var Icell3 = IRow.CreateCell(5); if (list.Any()) { Icell3.SetCellType(CellType.Formula); Icell3.SetCellFormula(string.Format("SUM({0})", string.Join(",", list.Select(p => "F" + p).ToList()))); hssfworkbook.GetCreationHelper().CreateFormulaEvaluator().EvaluateFormulaCell(Icell3); } var style3 = numStyle(hssfworkbook); var font3 = ContextFont(hssfworkbook); style3.SetFont(font3); style3.BorderTop = BorderStyle.Medium; style3.BorderBottom = BorderStyle.Medium; style3.BorderLeft = BorderStyle.Thin; style3.BorderRight = BorderStyle.Thin; //将新的样式赋给单元格 Icell3.CellStyle = style3; var Icell4 = IRow.CreateCell(6); if (list.Any()) { Icell4.SetCellType(CellType.Formula); Icell4.SetCellFormula(string.Format("SUM({0})", string.Join(",", list.Select(p => "G" + p).ToList()))); hssfworkbook.GetCreationHelper().CreateFormulaEvaluator().EvaluateFormulaCell(Icell4); } var style4 = numStyle(hssfworkbook); var font4 = ContextFont(hssfworkbook); style4.SetFont(font4); style4.BorderTop = BorderStyle.Medium; style4.BorderBottom = BorderStyle.Medium; style4.BorderLeft = BorderStyle.Thin; style4.BorderRight = BorderStyle.Medium; //将新的样式赋给单元格 Icell4.CellStyle = style4; } private void setData(ISheet sheet, HSSFWorkbook hssfworkbook, ref int index) { var index1 = index; var data = QueryBS.DataSource as List; if ((data != null) && data.Any()) data.GroupBy(p => new {p.RecoderLocation2, p.MatName, p.MatType}) .Select(p => new { p.Key.MatName, p.Key.MatType, p.Key.RecoderLocation2, count = p.Count(), num = int.Parse(p.Select(q => q.MatNum ?? 0).Sum().ToString3()), wt = double.Parse(p.Select(q => q.NetWt).Sum().ToString3()) }).ToList() .ForEach( p => { var IRow = sheet.CreateRow(index1++); IRow.Height = 20*20; for (var i = 0; i < 6; i++) { var Icell = IRow.CreateCell(i + 1); if (i <= 2) { Icell.SetCellType(CellType.String); Icell.SetCellValue( i == 0 ? p.RecoderLocation2 : i == 1 ? p.MatType : p.MatName); } else { Icell.SetCellType(CellType.Numeric); if (i == 3) Icell.SetCellValue(p.num); if (i == 4) Icell.SetCellValue(p.count); if (i == 5) Icell.SetCellValue(p.wt); } ; var style = i <= 2 ? textStyle(hssfworkbook) : numStyle(hssfworkbook); style.BorderTop = BorderStyle.Thin; style.BorderBottom = BorderStyle.Thin; style.BorderLeft = i == 0 ? BorderStyle.Medium : BorderStyle.Thin; style.BorderRight = i == 5 ? BorderStyle.Medium : BorderStyle.Thin; var font = ContextFont(hssfworkbook); //使用SetFont方法将字体样式添加到单元格样式中 style.SetFont(font); //将新的样式赋给单元格 Icell.CellStyle = style; } } ); index = index1; } private void SetHeadRow(ISheet sheet, HSSFWorkbook hssfworkbook, List name, List columsWidth, int rowIndex) { var IRow = sheet.CreateRow(rowIndex); IRow.Height = 20*20; for (var i = 0; i < name.Count; i++) { sheet.SetColumnWidth(i + 1, columsWidth[i]*256); var Icell = IRow.CreateCell(i + 1); Icell.SetCellValue(name[i]); var style = CenterStyle(hssfworkbook); style.BorderTop = BorderStyle.Medium; style.BorderBottom = BorderStyle.Medium; style.BorderLeft = BorderStyle.Medium; style.BorderRight = BorderStyle.Medium; var font = ContextFont(hssfworkbook); //使用SetFont方法将字体样式添加到单元格样式中 style.SetFont(font); //将新的样式赋给单元格 Icell.CellStyle = style; } } private void SetHead(ISheet sheet, HSSFWorkbook hssfworkbook, int rowindex) { var IRow = sheet.CreateRow(rowindex); IRow.Height = 50*20; var Icell = IRow.CreateCell(1); Icell.SetCellValue("磅房统计"); var style = CenterStyle(hssfworkbook); var font = TitleFont(hssfworkbook); //使用SetFont方法将字体样式添加到单元格样式中 style.SetFont(font); //将新的样式赋给单元格 Icell.CellStyle = style; //合并单元格 sheet.AddMergedRegion(new CellRangeAddress(0, 0, 1, 6)); } private static IFont TitleFont(HSSFWorkbook hssfworkbook) { //新建一个字体样式对象 var font = hssfworkbook.CreateFont(); font.FontName = "宋体"; font.FontHeightInPoints = 30; //设置字体加粗样式 font.Boldweight = (short) FontBoldWeight.Bold; return font; } private static IFont ContextFont(HSSFWorkbook hssfworkbook) { //新建一个字体样式对象 var font = hssfworkbook.CreateFont(); font.FontName = "宋体"; font.FontHeightInPoints = 12; //设置字体加粗样式 font.Boldweight = (short) FontBoldWeight.Bold; return font; } private ICellStyle CenterStyle(HSSFWorkbook hssfworkbook) { var style = hssfworkbook.CreateCellStyle(); //设置单元格的样式:水平对齐居中 style.Alignment = HorizontalAlignment.Center; style.VerticalAlignment = VerticalAlignment.Center; return style; } private ICellStyle textStyle(HSSFWorkbook hssfworkbook) { var style = hssfworkbook.CreateCellStyle(); //设置单元格的样式:水平对齐居中 style.Alignment = HorizontalAlignment.Left; style.VerticalAlignment = VerticalAlignment.Center; return style; } private ICellStyle numStyle(HSSFWorkbook hssfworkbook) { var style = hssfworkbook.CreateCellStyle(); //设置单元格的样式:水平对齐居中 style.Alignment = HorizontalAlignment.Right; style.VerticalAlignment = VerticalAlignment.Center; return style; } private void CurrentGrid_InitializeLayout(object sender, InitializeLayoutEventArgs e) { } private void CurrentGrid_DoubleClickCell(object sender, DoubleClickCellEventArgs e) { var current = CurrentGrid.ActiveRow.ListObject as CmmWeightRecordEntity; if ((current == null) || ("" == current.CarNo)) return; foreach (var cbxCar1Item in cbxCar1.Items) if (current.CarNo.StartsWith(cbxCar1Item.ToString2().Trim())) { cbxCar1.SelectedItem = cbxCar1Item; txtCar2.Text = current.CarNo.Replace(cbxCar1Item.ToString2().Trim(), "").Trim(); } if (!tbWt.Tabs["2"].Selected) { tbWt.Tabs["2"].Selected = true; if (current.RecordType != "101") tbScondWt.Tabs["2"].Selected = true; else tbScondWt_SelectedTabChanged(null, null); } } private void utbExport_Click(object sender, EventArgs e) { GridHelper.ulGridToExcel(ugData, "称重记录"); } private void utbExport2_Click(object sender, EventArgs e) { GridHelper.ulGridToExcel(CurrentGrid, "称重记录"); } private void cbxCar1_SelectedValueChanged(object sender, EventArgs e) { txtCar2.Focus(); if (cbxCar1.Text.Trim() == "厂内") txtCar2.Text = "自用车"; } private void splitContainer2_SplitterMoved(object sender, SplitterEventArgs e) { if (isLoading) return; XmlHelper.SetXmlData(_path, "splitContainer2", splitContainer2.SplitterDistance); } private void splitContainer1_SplitterMoved(object sender, SplitterEventArgs e) { if (isLoading) return; XmlHelper.SetXmlData(_path, "splitContainer1", splitContainer1.SplitterDistance); } private void frmLocalTruckScale_Shown(object sender, EventArgs e) { timer.Start(); splitContainer1.SplitterDistance = XmlHelper.GetXmlData(_path, "splitContainer1", splitContainer1.SplitterDistance); splitContainer2.SplitterDistance = XmlHelper.GetXmlData(_path, "splitContainer2", splitContainer2.SplitterDistance); var x = new FontConverter(); CurrentGrid.Font = x.ConvertFromString(XmlHelper.GetXmlData(_path, CurrentGrid.Name, x.ConvertToString(CurrentGrid.Font))) as Font; ugData.Font = x.ConvertFromString(XmlHelper.GetXmlData(_path, ugData.Name, x.ConvertToString(ugData.Font))) as Font; isLoading = false; CurrentGrid.DisplayLayout.Bands[0].Columns["RecordType"].EditorComponent = uceType2; CurrentGrid.DisplayLayout.Bands[0].Columns["RecordNo"].EditorComponent = delete; CurrentGrid.DisplayLayout.Bands[0].Columns["CarNo"].EditorComponent = uteEdit; Query(); Query2(); try { if (toolMenu == null) return; if (toolMenu.Toolbars[0].Tools.Exists("UpdateWt")) canUpdateWt = true; toolMenu.Visible = false; } catch (Exception ex) { } } private void CurrentGrid_KeyPress(object sender, KeyPressEventArgs e) { } private void CurrentGrid_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.F5) using (var dr = new FontDialog {Font = (sender as Control).Font}) { if (dr.ShowDialog() == DialogResult.OK) { (sender as Control).Font = dr.Font; var x = new FontConverter(); var font = x.ConvertToString(dr.Font); // t = x.ConvertFromString(s) as Font; XmlHelper.SetXmlData(_path, (sender as Control).Name, font); } } } private void txtCar2_TextChanged(object sender, EventArgs e) { foreach (var currentGridRow in CurrentGrid.Rows) if (currentGridRow.Cells["CarNo"].Value.ToString2() == cbxCar1.Text + txtCar2.Text.Trim()) if (!tbWt.Tabs["2"].Selected) { tbWt.Tabs["2"].Selected = true; currentGridRow.Activated = true; if (currentGridRow.Cells["RecordType"].Value.ToString2() != "101") tbScondWt.Tabs["2"].Selected = true; else tbScondWt_SelectedTabChanged(null, null); return; } tbWt.Tabs["1"].Selected = true; } private void uteEdit_EditorButtonClick(object sender, EditorButtonEventArgs e) { if (cmmPoundBase == null) { MessageBox.Show(@"无磅房权限"); return; } var current = CurrentGrid.ActiveRow.ListObject as CmmWeightRecordEntity; string carNo; using (var update = new UpdateCar {CarNo = current.CarNo}) { var result = update.ShowDialog(); if (result != DialogResult.OK) return; carNo = update.CarNo; } var ccp = new CoreClientParam { ServerName = "com.steering.Mcms.RecordServer", MethodName = "DoUpdateCarNo", ServerParams = new object[] { current.RecordNo, carNo } }; ccp = ExecuteNonQuery(ccp, CoreInvokeType.Internal); if (ccp.ReturnCode != -1) { MessageUtil.ShowTips(ccp.ReturnInfo); if (ccp.ReturnInfo.ToString2().Contains("操作成功")) Query(); } } public bool CheckShowKey(string key1, string key2) { if (key1 == key2) return true; if (((key1 == "107") && (key2 == "204")) || ((key2 == "107") && (key1 == "204"))) return true; if (((key1 == "108") && (key2 == "205")) || ((key2 == "108") && (key1 == "205"))) return true; if (((key1 == "206") && (key2 == "206")) || ((key2 == "109") && (key1 == "206"))) return true; return false; } private void txtCar2_KeyPress(object sender, KeyPressEventArgs e) { if ((e.KeyChar >= 97) && (e.KeyChar <= 122)) e.KeyChar = (char) (e.KeyChar - 32); } private void CurrentGrid_InitializeRow(object sender, InitializeRowEventArgs e) { var cmmWeightRecord = e.Row.ListObject as CmmWeightRecordEntity; if (cmmWeightRecord == null) return; if ((cmmWeightRecord.EffRemaind != null) && (cmmWeightRecord.EffRemaind <= 1)) e.Row.Cells["RecordDate"].Appearance.BackColor = Color.Red; } private void utbSelect_Click(object sender, EventArgs e) { using (var BlankPredictionSelect = new BlankPredictionSelect(ob, matInfo3.GetData())) { if (BlankPredictionSelect.ShowDialog() == DialogResult.OK) matInfo3.UpdateData(new CmmWeightRecordEntityFull { MatName = "连铸圆坯", ShippersName = BlankPredictionSelect.ShipperName, RecordNumber = BlankPredictionSelect.ListMatNo == null ? null : BlankPredictionSelect.ListMatNo.Sum(p => p.ActCount), ReceiveName = "江苏天淮钢管有限公司", Memo = BlankPredictionSelect.Memo, MatInfos = BlankPredictionSelect.ListMatNo ?? new List {new CmmWeightMatEntity()} }); } } private void uteChangeType_EditorButtonClick(object sender, EditorButtonEventArgs e) { if (cmmPoundBase == null) { MessageBox.Show(@"无磅房权限"); return; } var current = CurrentGrid.ActiveRow.ListObject as CmmWeightRecordEntity; string type; string name; using (var changeType = new ChangeType {Type = current.RecordType}) { var result = changeType.ShowDialog(); if (result != DialogResult.OK) return; type = changeType.Type; name = changeType.TypeName; } var ccp = new CoreClientParam { ServerName = "com.steering.Mcms.RecordServer", MethodName = "DoUpdateType", ServerParams = new object[] { current.RecordNo, type, name } }; ccp = ExecuteNonQuery(ccp, CoreInvokeType.Internal); if (ccp.ReturnCode != -1) { MessageUtil.ShowTips(ccp.ReturnInfo); if (ccp.ReturnInfo.ToString2().Contains("成功")) Query(); } } private void ugData_AfterRowRegionScroll(object sender, RowScrollRegionEventArgs e) { var dex = e.RowScrollRegion.FirstRow; dex.Activate(); } private void CurrentGrid_AfterRowRegionScroll(object sender, RowScrollRegionEventArgs e) { /* UltraGridRow dex = e.RowScrollRegion.FirstRow; dex.Activate();*/ } private void ugData_AfterRowActivate(object sender, EventArgs e) { ugData.ActiveRow.RowSelectorAppearance.BackColor = Color.LightGreen; } private void ugData_BeforeRowDeactivate(object sender, CancelEventArgs e) { ugData.ActiveRow.RowSelectorAppearance.ResetBackColor(); } private void CurrentGrid_BeforeRowDeactivate(object sender, CancelEventArgs e) { CurrentGrid.ActiveRow.RowSelectorAppearance.ResetBackColor(); } private void utbSelect2_Click(object sender, EventArgs e) { var carNo = cbxCar1.Text + txtCar2.Text.ToUpper().Trim(); var cmmWeightRecordEntityFull = new CmmWeightRecordEntityFull(); var dt = ServerHelper.GetData("com.steering.Mcms.MatOutServer.doQueryOutInfoGp", new object[] {carNo}, ob); if ((dt != null) && (dt.Rows.Count > 0) && (dt.Rows[0]["STORAGE_NAME_D"].ToString2() == "天津钢管制造有限公司")) { cmmWeightRecordEntityFull.ShippersName = "天津钢管制造有限公司"; cmmWeightRecordEntityFull.LoadvehicleNo = dt.Rows[0]["OUTSTOCK_DOC"].ToString2(); cmmWeightRecordEntityFull.ReceiveName = "江苏天淮钢管有限公司"; cmmWeightRecordEntityFull.RecordNumber = dt.AsEnumerable().Select(p => decimal.Parse(p["ACT_COUNT"].ToString3())).Sum(); decimal.Parse(dt.Rows[0]["ACT_COUNT"].ToString3()); cmmWeightRecordEntityFull.MatName = "连铸圆坯"; cmmWeightRecordEntityFull.MatInfos = new List(); for (var i = 0; i < dt.Rows.Count; i++) { var dtcRow = dt.Rows[i]; var cmmWeightMatEntity = new CmmWeightMatEntity { JudgeStoveNoOld = dtcRow["STOVE_NO"].ToString2(), JudgeStoveNo = dtcRow["JUDGE_STOVE_NO"].ToString2(), ActDimater = decimal.Parse(dtcRow["DIMATER"].ToString3()), ActLenTemp = dtcRow["ACT_LEN"].ToString3(), ActCount = decimal.Parse(dtcRow["ACT_COUNT"].ToString3()), DocumentNo = dtcRow["OUTSTOCK_DOC"].ToString2(), ProOrderNo = dtcRow["ORDER_NO"].ToString2(), OrderNo = dtcRow["ORDER_NO"].ToString2(), OrderSeq = dtcRow["ORDER_SEQ"].ToString2(), OrdNoPk = dtcRow["ORD_PK"].ToString2(), Produccode = dtcRow["PRODUCCODE"].ToString2(), Producname = dtcRow["PRODUCNAME"].ToString2(), Gradecode = dtcRow["GRADECODE"].ToString2(), Gradename = dtcRow["GRADENAME"].ToString2(), Steelcode = dtcRow["GRADECODE"].ToString2(), Steelname = dtcRow["GRADENAME"].ToString2() }; cmmWeightRecordEntityFull.MatInfos.Add(cmmWeightMatEntity); } matInfo3.SetDefault(cmmWeightRecordEntityFull); } else { MessageBox.Show("未找到该车的出库记录!"); } } private void uctMemo_EditorButtonClick(object sender, EditorButtonEventArgs e) { if (cmmPoundBase == null) { MessageBox.Show(@"无磅房权限"); return; } var current = CurrentGrid.ActiveRow.ListObject as CmmWeightRecordEntity; string Memo; using (var update = new ChangeMemo { Memo = current.Memo }) { var result = update.ShowDialog(); if (result != DialogResult.OK) return; Memo = update.Memo; } var ccp = new CoreClientParam { ServerName = "com.steering.Mcms.RecordServer", MethodName = "DoUpdateMemo", ServerParams = new object[] { current.RecordNo, Memo } }; ccp = ExecuteNonQuery(ccp, CoreInvokeType.Internal); if (ccp.ReturnCode != -1) { MessageUtil.ShowTips(ccp.ReturnInfo); if (ccp.ReturnInfo.ToString2().Contains("操作成功")) Query(); } } private void ultraButton2_Click(object sender, EventArgs e) { if (ugData.ActiveRow == null) return; var data = ugData.ActiveRow.ListObject as CmmWeightResultEntity; if (data == null) return; if ((data.RecordType2 == "201") && (data.GrossWt != null) && (data.GrossWt > 50) && (MessageUtil.ShowYesNoAndQuestion("毛重超过50吨, 是否继续打印磅单?") == DialogResult.No)) { } else { Print2(data.ResultNo); } } } }