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 System.Collections; using Core.Mes.Client.Comm.Server; using Core.Mes.Client.Comm.Control; using Infragistics.Win.UltraWinGrid; using Core.StlMes.Client.YdmPipeManage.Controls; using Core.Mes.Client.Comm.Tool; using Infragistics.Win; using Core.StlMes.Client.YdmPipeManage.Tool; using Core.StlMes.Client.YdmBase; namespace Core.StlMes.Client.YdmPipeManage { public partial class frmPipeStow : FrmBase { ArrayList pram = new ArrayList(); private int isSelect = 0;//新增 public frmPipeStow() { InitializeComponent(); } private void frmPipeStow_Load(object sender, EventArgs e) { //StorInfo(); Init(); ultraGrid3.Enabled = false; //doQuery(); this.chkMaterial.Visible = false; BaseMethod.InitStorage(cmbWarehous, CustomInfo, this.ValidDataPurviewIds, this.ob); } /// /// 重写基类方法 /// /// /// public override void ToolBar_Click(object sender, string ToolbarKey) { switch (ToolbarKey) { case "Query": if(!CheckQuery())return; doQuery(); break; case "Add": doSave(); break; case"Refresh": doRefresh(); break; case "Export": GridHelper.ulGridToExcel(ultraGrid4, "倒垛历史实绩"); break; case "Close": this.Close(); break; } } /// /// 绑定仓库号 /// private void StorInfo() { ArrayList arList = new ArrayList(); //获取用户对应科室ID string User = this.UserInfo.GetDeptid(); string StorageType = "";//根据传递的参数获取仓库类别 string StorageAttr = "";////根据传递的参数获取仓库类型 if (CustomInfo != "") { string[] strflg = CustomInfo.ToString().Split(new char[] { ',' }); StorageType = strflg[0]; StorageAttr = strflg[1]; } pram.Clear(); pram.Add(StorageType); pram.Add(StorageAttr); pram.Add(User); PipeManageClass.BindComBaseInfo(pram, cmbWarehous, ob); } /// /// 绑定原料位号下拉框 /// private void Init() { //绑定料位号 string strStorage = ""; if (cmbWarehous.SelectedIndex != -1) { strStorage = cmbWarehous.Value.ToString(); } pram.Clear(); pram.Add(strStorage); PipeManageClass.BindLocationInfo(pram, cmbMaterialEid, ob); } private void doQuery() { string strWare = "";//仓库号 string strMat = "";//料位号 string strFurnace = ""; string strBatch = ""; if (chkWarehous.Checked) { strWare = cmbWarehous.Value.ToString(); } if (chkMaterial.Checked) { strMat = cmbMaterialEid.Value.ToString(); } if (chkFurnace.Checked) { strFurnace = txtFurnace.Text.Trim(); } if (chkBatch.Checked) { strBatch = txtBatch.Text.Trim(); } pram.Clear(); pram.Add(strWare); pram.Add(strMat); pram.Add(strFurnace); //pram.Add(strBatch); //pram.Add(txtGroup.Text.Trim()); //pram.Add(this.UserInfo.GetUserName()); string[] arr = BaseMethod.WarehousePermissions(CustomInfo,this.ValidDataPurviewIds,this.ob); if (ultraTabControl1.SelectedTab.Key.Equals("0")) { DataTable dt = ServerHelper.GetData("com.steering.pss.ydm.pipemanage.FrmPipeStow.queryStorage", new object[] { pram, arr }, ob); GridHelper.CopyDataToDatatable(dt, this.dataStorage, true); GridHelper.RefreshAndAutoSize(ultraGrid1); } else { DataTable dt = ServerHelper.GetData("com.steering.pss.ydm.pipemanage.FrmPipeStow.queryStowList", new object[] { pram, arr }, ob); GridHelper.CopyDataToDatatable(dt, this.dataStowList, true); GridHelper.RefreshAndAutoSize(ultraGrid4); } } /// /// 保存,新增 /// private void doSave() { //需对倒垛历史表进行插入、对位置表进行删除 ultraGrid3.UpdateData(); int count = 0; UltraGridRow ugr1 = this.ultraGrid1.ActiveRow; UltraGridRow ugr3 = this.ultraGrid3.ActiveRow; UltraGridRow ugr2 = this.ultraGrid2.ActiveRow; string loactionNo = ""; if (ugr3 == null||isSelect==0) { MessageUtil.ShowTips("请输入您要操作的记录!"); return; } if (MessageUtil.ShowYesNoAndQuestion("是否确认倒垛?") == DialogResult.No) { return; } foreach (Infragistics.Win.UltraWinGrid.UltraGridRow uRow in ultraGrid3.Rows) { if (Convert.ToBoolean(uRow.Cells["CHOOSE"].Text) == true) { string strLocat=uRow.Cells["LOCATION_NO"].Text.Trim(); if (strLocat == "") { MessageUtil.ShowTips("目标料位不能为空!"); return; } if (ugr2.Cells["LOCATION_NO"].Text.Trim() == strLocat) { MessageUtil.ShowTips("目标料位与当前料位一致,请重新输入!"); return; } if (uRow.Cells["ACT_COUNT"].Value.ToString() == "0" || uRow.Cells["ACT_COUNT"].Value.ToString() == "") { MessageUtil.ShowTips("目标支数不能为空或零!"); return; } pram.Clear(); pram.Add(ugr1.Cells["storage_no"].Text.Trim()); pram.Add(ugr1.Cells["JUDGE_STOVE_NO"].Text.Trim()); pram.Add(ugr1.Cells["BATCH_NO"].Text.Trim()); pram.Add(ugr1.Cells["BATCH_GROUD_NO"].Text.Trim()); pram.Add(ugr2.Cells["LOCATION_NO"].Text.Trim()); pram.Add(uRow.Cells["ACT_COUNT"].Text.Trim()); pram.Add(uRow.Cells["LOCATION_NO"].Text.Trim()); pram.Add(this.UserInfo.GetUserOrder()); pram.Add(this.UserInfo.GetUserGroup()); pram.Add(this.UserInfo.GetUserName()); pram.Add(UserInfo.GetDeptid()); pram.Add(UserInfo.GetDepartment()); loactionNo = this.ultraGrid3.ActiveRow.Cells["LOCATION_NO"].Text.ToString(); string departMentNo = ClsBaseInfo.GetDepartIdBySectionId(UserInfo.GetDeptid(), this.ob); string departMent = ClsBaseInfo.GetDepartBySectionId(UserInfo.GetDeptid(), this.ob); pram.Add(departMentNo); pram.Add(departMent); CoreClientParam ccp = new CoreClientParam(); ccp.ServerName = "com.steering.pss.ydm.pipemanage.FrmPipeStow"; ccp.MethodName = "addPipeSwtow"; ccp.ServerParams = new object[] { pram }; ccp = ob.ExecuteNonQuery(ccp, CoreInvokeType.Internal); if (ccp.ReturnCode == -1) { return; } count += 1; //count = ServerHelper.SetData("com.steering.pss.ydm.pipemanage.FrmPipeStow.addPipeSwtow", new object[] { pram }, ob); } } if (count > 0) { MessageUtil.ShowTips("倒垛成功!"); } QueryOutList(); doQuery(); YdmBaseClass.Postioning(this.ultraGrid1, "LOCATION_NO", loactionNo); } private void doRefresh() { StorInfo(); Init(); ultraGrid2.UpdateData(); UltraGridRow ugr = this.ultraGrid2.ActiveRow; if (this.ultraGrid2.Rows.Count <= 0) return; if (ugr == null) return; if (ugr.IsFilterRow) return; if (ugr.HasParent() == true) return; pram.Clear(); pram.Add(ugr.Cells["storage_no"].Text.ToString()); PipeManageClass.BindLocationInfo(pram, cmbMaterialEid, ob); } private void QueryOutList() { ultraGrid1.UpdateData(); UltraGridRow ugr = this.ultraGrid1.ActiveRow; if (this.ultraGrid1.Rows.Count <= 0) return; if (ugr == null) return; if (ugr.IsFilterRow) return; if (ugr.HasParent() == true) return; string strMat = ""; if (cmbWarehous.SelectedIndex != -1) { strMat = cmbWarehous.Value.ToString(); } pram.Clear(); pram.Add(ugr.Cells["STORAGE_NO"].Value.ToString()); pram.Add(ugr.Cells["judge_stove_no"].Text.ToString()); pram.Add(ugr.Cells["batch_no"].Text.ToString()); //pram.Add(ugr.Cells["batch_groud_no"].Text.ToString()); pram.Add(ugr.Cells["LOCATION_NO"].Text.ToString()); DataTable dt = ServerHelper.GetData("com.steering.pss.ydm.pipemanage.FrmPipeStow.queryStow", new object[] { pram }, ob); GridHelper.CopyDataToDatatable(dt, this.dataStow, true); GridHelper.RefreshAndAutoSize(ultraGrid2); } private void ultraGrid1_AfterRowActivate(object sender, EventArgs e) { QueryOutList(); } private void ultraGrid2_AfterRowActivate(object sender, EventArgs e) { ultraGrid2.UpdateData(); UltraGridRow ugr = this.ultraGrid2.ActiveRow; if (this.ultraGrid2.Rows.Count <= 0) return; if (ugr == null) { ultraGrid3.Enabled = false; return; } else { ultraGrid3.Enabled = true; } if (ugr.IsFilterRow) return; if (ugr.HasParent() == true) return; DataTable dt = new DataTable(); pram.Clear(); pram.Add(ugr.Cells["storage_no"].Text.ToString()); //pram.Add(ugr.Cells["LOCATION_NO"].Text.ToString()); //DataTable dtLond = ServerHelper.GetData("com.steering.pss.ydm.pipemanage.FrmPipeStow.queryLocaTarget", new object[] { pram }, ob); //cmbMaterialEid.DataSource = dtLond; //cmbMaterialEid.ValueMember = "LOCATION_NO"; PipeManageClass.BindLocationInfo(pram, cmbMaterialEid, ob); GridHelper.CopyDataToDatatable(dt, this.dataTable1, true); } /// /// 验证Checked是否勾选,显示控件可编辑 打勾表示可编辑,不打勾表示不可编辑 /// /// /// private void chk_CheckedChanged(object sender, EventArgs e) { if (chkWarehous.Checked) { cmbWarehous.Enabled = true; } else { cmbWarehous.Enabled = false; } if (chkMaterial.Checked) { cmbMaterialEid.Enabled = true; } else { cmbMaterialEid.Enabled = false; } if (chkFurnace.Checked) { txtFurnace.Enabled = true; } else { txtFurnace.Enabled = false; } if (chkBatch.Checked) { txtBatch.Enabled = true; } else { txtBatch.Enabled = false; } if (chkGroup.Checked) { txtGroup.Enabled = true; } else { txtGroup.Enabled = false; } } private void cmbWarehous_TextChanged(object sender, EventArgs e) { Init(); } ///查询时验证必填项 private bool CheckQuery() { if (chkWarehous.Checked && string.IsNullOrEmpty(cmbWarehous.Text.Trim())) { MessageBox.Show("请选择仓库号!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); return false; } if (chkMaterial.Checked && string.IsNullOrEmpty(cmbMaterialEid.Text.Trim())) { MessageBox.Show("请选择料位号!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); return false; } if (chkFurnace.Checked && string.IsNullOrEmpty(txtFurnace.Text.Trim())) { MessageBox.Show("请输入炉号!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); return false; } if (chkBatch.Checked && string.IsNullOrEmpty(txtBatch.Text.Trim())) { MessageBox.Show("请输入批号!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); return false; } if (chkGroup.Checked && string.IsNullOrEmpty(txtGroup.Text.Trim())) { MessageBox.Show("请输入组号!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); return false; } return true; } /// /// 对录入支数进行判断 /// /// /// private void ultraGrid3_CellChange(object sender, CellEventArgs e) { ultraGrid2.UpdateData(); ultraGrid3.UpdateData(); UltraGridRow ugr = this.ultraGrid2.ActiveRow; UltraGridRow ugr1 = this.ultraGrid3.ActiveRow; string plannum = ugr.Cells["ACT_COUNT"].Value.ToString();//当前料位支数 if (e.Cell.Column.Key.Equals("ACT_COUNT")) { double strCount = 0; foreach (Infragistics.Win.UltraWinGrid.UltraGridRow uRow in ultraGrid3.Rows) { if (uRow.Cells["ACT_COUNT"].Value.ToString()=="") { uRow.Cells["ACT_COUNT"].Value = "0"; } if (Convert.ToBoolean(uRow.Cells["CHOOSE"].Text) == true) { strCount += double.Parse(uRow.Cells["ACT_COUNT"].Value.ToString());//目标料位支数 } } if (strCount.ToString() != "" && strCount.ToString() != "0") { if (Convert.ToInt32(strCount.ToString()) > Convert.ToInt32(plannum)) { MessageUtil.ShowWarning("目标料位支数不能大于当前料位支数!"); ugr1.Cells["ACT_COUNT"].Value = ""; return; } } } if (e.Cell.Column.Key.Equals("CHOOSE")) { if (Convert.ToBoolean(e.Cell.Value)) { isSelect += 1; } else isSelect -= 1; } if (e.Cell.Column.Key.Equals("AREA_NO")) { this.ultraGrid3.ActiveRow.Cells["LOCATION_NO"].Value = this.ultraGrid1.ActiveRow.Cells["STORAGE_NO"].Text.Trim() + this.ultraGrid3.ActiveRow.Cells["AREA_NO"].Text.Trim() + this.ultraGrid3.ActiveRow.Cells["ROW_NO"].Text.Trim() + this.ultraGrid3.ActiveRow.Cells["COL_NO"].Text.Trim(); } if (e.Cell.Column.Key.Equals("ROW_NO")) { this.ultraGrid3.ActiveRow.Cells["LOCATION_NO"].Value = this.ultraGrid1.ActiveRow.Cells["STORAGE_NO"].Text.Trim() + this.ultraGrid3.ActiveRow.Cells["AREA_NO"].Text.Trim() + this.ultraGrid3.ActiveRow.Cells["ROW_NO"].Text.Trim() + this.ultraGrid3.ActiveRow.Cells["COL_NO"].Text.Trim(); } if (e.Cell.Column.Key.Equals("COL_NO")) { this.ultraGrid3.ActiveRow.Cells["LOCATION_NO"].Value = this.ultraGrid1.ActiveRow.Cells["STORAGE_NO"].Text.Trim() + this.ultraGrid3.ActiveRow.Cells["AREA_NO"].Text.Trim() + this.ultraGrid3.ActiveRow.Cells["ROW_NO"].Text.Trim() + this.ultraGrid3.ActiveRow.Cells["COL_NO"].Text.Trim(); } } private void frmPipeStow_Shown(object sender, EventArgs e) { toolMenu.Toolbars[0].Tools["Export"].InstanceProps.Visible = DefaultableBoolean.False; } private void ultraTabControl1_SelectedTabChanged(object sender, Infragistics.Win.UltraWinTabControl.SelectedTabChangedEventArgs e) { if (toolMenu == null) return; if (e.Tab.TabControl.SelectedTab.Key.Equals("0")) { toolMenu.Toolbars[0].Tools["Export"].InstanceProps.Visible = DefaultableBoolean.False; toolMenu.Toolbars[0].Tools["Add"].InstanceProps.Visible = DefaultableBoolean.True; } else { toolMenu.Toolbars[0].Tools["Export"].InstanceProps.Visible = DefaultableBoolean.True; toolMenu.Toolbars[0].Tools["Add"].InstanceProps.Visible = DefaultableBoolean.False; } } private void ultraGrid3_InitializeRow(object sender, InitializeRowEventArgs e) { if (!Convert.ToBoolean(e.Row.Cells["CHOOSE"].Value)) { for (int i = 0; i < e.Row.Cells.Count; i++) { if (!e.Row.Cells[i].Column.Key.Equals("CHOOSE")) e.Row.Cells[i].Activation = Activation.ActivateOnly; } } else { for (int i = 0; i < e.Row.Cells.Count; i++) { e.Row.Cells[i].Activation = Activation.AllowEdit; } } } private void txtFurnace_KeyDown(object sender, KeyEventArgs e) { if (e.KeyValue == 13) { doQuery(); } } } }