using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using CoreFS.CA06; using Core.Mes.Client.Comm.Tool; using System.Collections; using Core.Mes.Client.Comm.Control; using Core.Mes.Client.Comm.Server; using Infragistics.Win.UltraWinGrid; using Infragistics.Win.UltraWinEditors; using Infragistics.Win; using System.Text.RegularExpressions; using Core.Mes.Client.Comm.Format; using Core.StlMes.Client.YdmBcPipeManage.Entity; using Core.StlMes.Client.YdmBcPipeManage; namespace Core.StlMes.Client.YdmBcPipeManage { public partial class FrmBcStow : FrmBase { public FrmBcStow() { InitializeComponent(); } private string[] arrStorageNo = null;//仓库权限 UltraComboEditor uceReson = new UltraComboEditor(); UltraComboEditor stowReason = new UltraComboEditor(); private void FrmBcStow_Load(object sender, EventArgs e) { DateTime now = DateTime.Now; DateTime dt1 = new DateTime(now.Year, now.Month, 1);//当月第一天 DateTime dt2 = dt1.AddMonths(1).AddDays(-1);//当月最后一天 this.RegStartTime.Value = DateTime.Parse(dt1.ToString("yyyy-MM-dd") + " 00:00:00"); this.RegEndTime.Value = DateTime.Parse(dt2.ToString("yyyy-MM-dd") + " 23:59:59"); EntityHelper.ShowGridCaption(ultraGrid1.DisplayLayout.Bands[0]); EntityHelper.ShowGridCaption(ultraGrid4.DisplayLayout.Bands[0]); arrStorageNo = BaseMethod.WarehousePermissionsStore(this.ValidDataPurviewIds, ob); BaseMethod.InitComboEditor(stowReason, "com.steering.ydm.bc.FrmBcStow.doQueryStowReson", "BASECODE", this.ob, false); BaseMethod.BindColumn(stowReason, "STOW_REASON", this.Controls, this.ultraGrid3, 0); } /// /// 重写基类方法 /// /// /// public override void ToolBar_Click(object sender, string ToolbarKey) { switch (ToolbarKey) { case "Query": if (!CheckQuery()) return; doQueryData(); break; case "Add": doAdd(); break; case "Export": exportData(); break; case "Close": this.Close(); break; } } /// /// 倒垛 /// private void doAdd() { ultraGrid3.UpdateData(); UltraGridRow ugr1 = this.ultraGrid1.ActiveRow; UltraGridRow ugr2 = this.ultraGrid2.ActiveRow; UltraGridRow ugr3 = this.ultraGrid3.ActiveRow; if (ugr3 == null && ugr1 == null && ugr2 == null) { MessageUtil.ShowTips("请输入您要操作的记录!"); return; } if (MessageUtil.ShowYesNoAndQuestion("是否确认倒垛?") == DialogResult.No) { return; } ArrayList parm = new ArrayList(); int m = 0; MatBcMEntity matGpTity = (MatBcMEntity)ugr1.ListObject; string matGpEntity = JSONFormat.Format(matGpTity); foreach (UltraGridRow uRow in ultraGrid3.Rows) { if (Convert.ToBoolean(uRow.Cells["CHOOSE"].Text) == true) { ArrayList list = new ArrayList(); string strLocat = uRow.Cells["LOCATION_NO"].Value.ToString(); string strLayNo = uRow.Cells["LARY_NO"].Text.Trim(); if (strLocat == "" || strLayNo == "") { MessageUtil.ShowTips("目标库位和层号都不能为空!"); return; } if (ugr2.Cells["LOCATION_NO"].Value.ToString() == strLocat && ugr2.Cells["LARY_NO"].Text.ToString() == strLayNo) { MessageUtil.ShowTips("目标库位/层号与当前库位/层号一致,请重新选择!"); return; } if (uRow.Cells["ACT_COUNT"].Value.ToString() == "0" || uRow.Cells["ACT_COUNT"].Value.ToString() == "") { MessageUtil.ShowTips("目标支数不能为空或零!"); return; } list.Add(uRow.Cells["ACT_COUNT"].Text.Trim()); list.Add(uRow.Cells["LOCATION_NO"].Value.ToString());//目标库位 list.Add(uRow.Cells["LARY_NO"].Text.Trim());//目标层号 list.Add(this.UserInfo.GetUserOrder()); list.Add(this.UserInfo.GetUserGroup()); list.Add(this.UserInfo.GetUserName()); list.Add(UserInfo.GetDeptid()); list.Add(UserInfo.GetDepartment()); list.Add(ClsLoad.GetDepartIdBySectionId(this.UserInfo.GetDeptid(), this.ob)); list.Add(ClsLoad.GetDepartBySectionId(this.UserInfo.GetDeptid(), this.ob)); list.Add(uRow.Cells["LOCATION_NAME"].Text.Trim());//目标库位名称 list.Add(uRow.Cells["STOW_REASON"].Value.ToString2()); list.Add(ugr1.Cells["ProductFlag"].Text); list.Add(ugr2.Cells["FLAG_STOVE_NO_ZG"].Text); parm.Add(list); m = m + int.Parse(uRow.Cells["ACT_COUNT"].Text.Trim()); } } if (m > int.Parse(ugr1.Cells["ActCount"].Text)) { MessageUtil.ShowTips("倒垛支数不能大于库存支数!"); return; } CoreClientParam ccp = new CoreClientParam(); ccp.ServerName = "com.steering.ydm.bc.FrmBcStow"; ccp.MethodName = "doAddLocationNo"; ccp.ServerParams = new object[] {matGpEntity,ugr2.Cells["LOCATION_NO"].Value.ToString(),ugr2.Cells["LARY_NO"].Text.ToString(), parm }; ccp = ob.ExecuteNonQuery(ccp, CoreInvokeType.Internal); if (ccp.ReturnCode != -1) { if (ccp.ReturnInfo.Equals("倒垛成功!")) { doQueryData(); MessageUtil.ShowTips(ccp.ReturnInfo); } else { MessageUtil.ShowTips(ccp.ReturnInfo); } } } /// /// 导出 /// private void exportData() { GridHelper.ulGridToExcel(ultraGrid4, "倒垛历史实绩"); } /// /// 查询 /// private void doQueryData() { if (ultraTabControl1.SelectedTab.Key == "0") { doQueryMat(); } else { doQueryStow(); } } /// /// 查询库存实绩 /// private void doQueryMat() { string strRegStart = ""; string strRegEnd = ""; string heatNo = ""; ArrayList parm = new ArrayList(); if (chkRegTime.Checked) { strRegStart = RegStartTime.Value.ToString(); strRegEnd = RegEndTime.Value.ToString(); } if (this.checkHeatNo.Checked) { heatNo = this.txt_heatNo.Text.Trim(); } parm.Add(strRegStart); parm.Add(strRegEnd); parm.Add(heatNo); List listSource = EntityHelper.GetData( "com.steering.ydm.bc.FrmBcStow.doQueryMat", new object[] { parm, arrStorageNo }, this.ob); matBcMEntityBindingSource.DataSource = listSource; } /// /// 查询倒垛实绩 /// private void doQueryStow() { string strRegStart = ""; string strRegEnd = ""; string heatNo = ""; ArrayList parm = new ArrayList(); if (chkRegTime.Checked) { strRegStart = RegStartTime.Value.ToString(); strRegEnd = RegEndTime.Value.ToString(); } if (this.checkHeatNo.Checked) { heatNo = this.txt_heatNo.Text.Trim(); } parm.Add(strRegStart); parm.Add(strRegEnd); parm.Add(heatNo); List listSource = EntityHelper.GetData( "com.steering.ydm.bc.FrmBcStow.doQueryStow", new object[] { parm,arrStorageNo }, this.ob); ydmBcStowlistEntityBindingSource.DataSource = listSource; } private bool CheckQuery() { if (DataTimeUtil.JudgeTime(DateTime.Parse(RegStartTime.Value.ToString()), DateTime.Parse(RegEndTime.Value.ToString())) == 0) { MessageUtil.ShowTips("开始时间不能大于结束时间!"); return false; } if (checkHeatNo.Checked && string.IsNullOrEmpty(this.txt_heatNo.Text.Trim())) { MessageBox.Show("请输入判定炉号!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); return false; } return true; } private void ultraGrid1_AfterRowActivate(object sender, EventArgs e) { ultraGrid1.UpdateData(); ArrayList pram = new ArrayList(); UltraGridRow ugr = this.ultraGrid1.ActiveRow; if (ugr == null) return; if (ugr.IsFilterRow) return; pram.Add(ugr.Cells["JudgeStoveNo"].Value.ToString()); pram.Add(ugr.Cells["BatchNo"].Text.ToString()); pram.Add(ugr.Cells["BatchGroudNo"].Text.ToString()); pram.Add(ugr.Cells["StorageNo"].Text.ToString()); pram.Add(ugr.Cells["PlineCode"].Text.ToString()); DataTable dt = ServerHelper.GetData("com.steering.ydm.bc.FrmBcStow.queryStow", new object[] { pram, ugr.Cells["BarCode"].Text.ToString() }, ob); GridHelper.CopyDataToDatatable(dt, this.dataStow, true); GridHelper.RefreshAndAutoSize(ultraGrid2); } public void getLocation(string storageNo) { DataTable dt = ServerHelper.GetData("com.steering.ydm.bc.FrmBcStow.getLocationNo", new object[] { storageNo }, ob); if (dt != null && dt.Rows.Count > 0) { Object[] obj = new Object[] { "", "" }; DataRow dr = dt.NewRow(); dr.ItemArray = obj; dt.Rows.InsertAt(dr, 0); } } private void SetComboItemHeight(UltraComboEditor cmb) { foreach (ValueListItem item in cmb.Items) { if (Regex.IsMatch(item.DisplayText, @"[\u4e00-\u9fa5]+")) { item.Appearance.FontData.SizeInPoints = 9.0F; } else { item.Appearance.FontData.SizeInPoints = 10.5F; } } } private void ultraTabControl1_SelectedTabChanged(object sender, Infragistics.Win.UltraWinTabControl.SelectedTabChangedEventArgs e) { if (toolMenu == null) return; if (ultraTabControl1.SelectedTab.Key == "0") { if (toolMenu.Toolbars[0].Tools.Exists("Add")) { toolMenu.Toolbars[0].Tools["Add"].InstanceProps.Visible = DefaultableBoolean.True; } if (toolMenu.Toolbars[0].Tools.Exists("Export")) { toolMenu.Toolbars[0].Tools["Export"].InstanceProps.Visible = DefaultableBoolean.False; } this.chkRegTime.Text = "入库时间"; } else { if (toolMenu.Toolbars[0].Tools.Exists("Add")) { toolMenu.Toolbars[0].Tools["Add"].InstanceProps.Visible = DefaultableBoolean.False; } if (toolMenu.Toolbars[0].Tools.Exists("Export")) { toolMenu.Toolbars[0].Tools["Export"].InstanceProps.Visible = DefaultableBoolean.True; } this.chkRegTime.Text = "倒垛时间"; } } private void checkHeatNo_CheckedChanged(object sender, EventArgs e) { this.txt_heatNo.Enabled = this.checkHeatNo.Checked; } private void chkRegTime_CheckedChanged(object sender, EventArgs e) { this.RegStartTime.Enabled = this.chkRegTime.Checked; this.RegEndTime.Enabled = this.chkRegTime.Checked; } private void cmbLocationNo_EditorButtonClick(object sender, EditorButtonEventArgs e) { UltraGridRow uRow = this.ultraGrid1.ActiveRow; if (uRow == null) { return; } this.ultraGrid3.UpdateData(); DataTable dt = ServerHelper.GetData("com.steering.ydm.bc.FrmFilpInStorage.doQueryLocation", new object[] { uRow.Cells["StorageNo"].Text }, ob); dt.Columns["LOCATION_NAME"].Caption = "料位名称"; BaseInfoPopup baseInfo = new BaseInfoPopup(dt, "LOCATION_NAME", "LOCATION_NO"); baseInfo.Shown += new EventHandler((a, b) => { var actRow = baseInfo.UltraGrid1.Rows.AsQueryable().Where( c => c.GetValue("LOCATION_NO") == this.cmbLocationNo.Tag.ToString2()).FirstOrDefault(); if (actRow != null) actRow.Activate(); }); if (baseInfo.ShowDialog() == System.Windows.Forms.DialogResult.OK) { //cmbLocationNo.Tag = baseInfo.ChoicedRow.GetValue("LOCATION_NO"); //cmbLocationNo.Text = baseInfo.ChoicedRow.GetValue("LOCATION_NAME"); this.ultraGrid3.ActiveCell.Value = baseInfo.ChoicedRow.GetValue("LOCATION_NAME"); this.ultraGrid3.ActiveCell.Row.Cells["LOCATION_NO"].Value = baseInfo.ChoicedRow.GetValue("LOCATION_NO"); } } private void ultraGrid3_AfterRowInsert(object sender, RowEventArgs e) { e.Row.Cells["LARY_NO"].Value = cmbLayNo.Items[0].DataValue.ToString(); } } }