using Core.Mes.Client.Comm; using Core.Mes.Client.Comm.Control; using Core.Mes.Client.Comm.Server; using Core.Mes.Client.Comm.Tool; using CoreFS.CA06; using Infragistics.Win.UltraWinGrid; using System; using System.Collections; using System.Data; using System.Drawing; using System.Windows.Forms; namespace Core.StlMes.Client.Qcm { public partial class FrmProcessBasics : FrmBase { public FrmProcessBasics() { InitializeComponent(); ExceptionHelper.RegistException(); } private void FrmProcessBasics_Load(object sender, EventArgs e) { LoadProcess1Data(); LoadProcessStyle(); } private void LoadProcess1Data() { DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreProcessBasics.loadProcess1Data", new object[] { }, ob); cmbProcess1.DataSource = dt; cmbProcess1.DisplayMember = "PROCESS_DESC"; cmbProcess1.ValueMember = "PROCESS_CODE"; } private void LoadProcessStyle() { DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreProcessBasics.loadProcessStyle", new object[] { }, ob); ultraComboEditor1.DataSource = dt; ultraComboEditor1.DisplayMember = "BASENAME"; ultraComboEditor1.ValueMember = "BASECODE"; } /// /// 重写基类方法 /// /// /// public override void ToolBar_Click(object sender, string ToolbarKey) { switch (ToolbarKey) { case "doQuery": if (ultraTabControl1.SelectedTab.Key == "PROCESS1") { doQuery(); } else { QueryProcess2Data(); } break; case "doAdd": if (ultraTabControl1.SelectedTab.Key == "PROCESS1") { doAdd(); } else { InsertProcess2Data(); } break; case "doModify": if (ultraTabControl1.SelectedTab.Key == "PROCESS1") { doModify(); } else { UpdateProcess2(); } break; case "doDelete": if (ultraTabControl1.SelectedTab.Key == "PROCESS1") { this.doDeleteOrResume(true); } else { DeleteOrResumeProcess2(true); } break; case "doResume": if (ultraTabControl1.SelectedTab.Key == "PROCESS1") { this.doDeleteOrResume(false); } else { DeleteOrResumeProcess2(false); } break; case "Export": if (ultraTabControl1.SelectedTab.Key == "PROCESS1") { Export(); } else { Export2(); } break; case "Refresh": LoadProcess1Data(); LoadProcessStyle(); break; case "Close": this.Close(); break; } } private void Export() { GridHelper.ulGridToExcel(ultraGrid2, "一级工序"); } private void Export2() { GridHelper.ulGridToExcel(ultraGrid1, "二级级工序"); } private void QueryProcess2Data() { ArrayList list = new ArrayList(); list.Add(chkValid.Checked ? "0" : ""); list.Add(txtTitleName.Text.Trim()); DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreProcessBasics.queryProcess2Data", new object[] { list }, ob); GridHelper.CopyDataToDatatable(ref dt, ref dataTable3, true); GridHelper.RefreshAndAutoSize(ultraGrid1); } private string GetMaxProcess2Code() { DataTable dt = null; try { dt = ServerHelper.GetData("com.steering.pss.qcm.CoreProcessBasics.getMaxProcess2Code", new object[] { }, ob); } catch { } string maxCode = ""; if (dt == null) { return "B001"; } else { if (dt.Rows[0][0].ToString() == "") { return "B001"; } else { int intMaxCode = int.Parse(dt.Rows[0][0].ToString().Substring(1)) + 1; maxCode = dt.Rows[0][0].ToString().Substring(0, 1) + intMaxCode.ToString().PadLeft(3, '0'); return maxCode; } } } private void InsertProcess2Data() { string process_Code_C = GetMaxProcess2Code(); if (ValidInput2(process_Code_C, txtProcess2.Text.Trim()) == false) { return; } if (MessageUtil.ShowYesNoAndQuestion("是否确认新增数据?") == DialogResult.No) { return; } ArrayList list = new ArrayList(); list.Add(process_Code_C); list.Add(txtProcess2.Text.Trim()); list.Add(cmbProcess1.SelectedValue.ToString()); list.Add(cmbProcess1.Text.Trim()); string process2Id = numSequence1.Text + numSequence2.Value.ToString().PadLeft(2, '0'); list.Add(process2Id); list.Add(UserInfo.GetUserName()); list.Add(txtMemo2.Text.Trim()); list.Add(ultraComboEditor1.Value.ToString()); list.Add(ultraNumericEditor10.Value.ToString2()); list.Add(ultraNumericEditor7.Value.ToString2()); list.Add(ultraNumericEditor8.Value.ToString2()); list.Add(ultraNumericEditor9.Value.ToString2()); list.Add(ultraNumericEditor6.Value.ToString2()); list.Add(ultraNumericEditor5.Value.ToString2()); ServerHelper.SetData("com.steering.pss.qcm.CoreProcessBasics.insertProcess2Data", new object[] { list }, ob); MessageUtil.ShowTips("新增数据成功!"); QueryProcess2Data(); MoveToSelectedRow2(process_Code_C); } private bool ValidInput2(string process_Code_C, string process_Desc_C) { if (cmbProcess1.SelectedValue == null) { MessageUtil.ShowWarning("请选择以及工序!"); cmbProcess1.Focus(); return false; } if (txtProcess2.Text.Trim() == "") { MessageUtil.ShowWarning("请输入二级工序!"); txtProcess2.Focus(); return false; } else if (IsExistProcess2(process_Code_C, process_Desc_C)) { MessageUtil.ShowWarning("系统已经存在该二级工序-[" + process_Desc_C + "]!"); txtProcess2.Focus(); return false; } string process2Id = numSequence1.Text + numSequence2.Value.ToString(); if (numSequence2.Value.ToString() == "") { MessageUtil.ShowWarning("请输入顺序号"); numSequence2.Focus(); return false; } else { if (process2Id != ultraGrid1.GetActiveRowValue("PROCESS_ID_C") && IsExistProcess2Id(process2Id)) { MessageUtil.ShowWarning("系统已经存在该工序顺序号-[" + process2Id + "]!"); numSequence2.Focus(); return false; } } if (ultraComboEditor1.SelectedItem == null) { MessageUtil.ShowWarning("选择二级工序分类"); ultraComboEditor1.Focus(); return false; } return true; } private bool IsExistProcess2(string process_Code_C, string process_Desc_C) { try { DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreProcessBasics.isExistProcess2", new object[] { process_Code_C, process_Desc_C }, ob); if (dt != null && dt.Rows[0][0].ToString() != "0") { return true; } } catch { }; return false; } private bool IsExistProcess1(string process_Code, string process_Desc) { try { DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreProcessBasics.isExistProcess1", new object[] { process_Code, process_Desc }, ob); if (dt != null && dt.Rows[0][0].ToString() != "0") { return true; } } catch { }; return false; } private bool IsExistProcess2Id(string process2Id) { ArrayList list = new ArrayList(); list.Add(process2Id); try { DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreProcessBasics.isExistProcess2Id", new object[] { list }, ob); if (dt != null && dt.Rows[0][0].ToString() != "0") { return true; } } catch { }; return false; } private void UpdateProcess2() { if (ultraGrid1.ActiveRow == null) { MessageBox.Show("请选择一条记录后再修改!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } string process_Code_C = ultraGrid1.ActiveRow.Cells["PROCESS_CDOE_C"].Value.ToString(); if (ValidInput2(process_Code_C, txtProcess2.Text.Trim()) == false) { return; } if (MessageUtil.ShowYesNoAndQuestion("是否确认修改选择的数据?") == DialogResult.No) { return; } ArrayList list = new ArrayList(); list.Add(txtProcess2.Text.Trim()); list.Add(cmbProcess1.SelectedValue.ToString()); list.Add(cmbProcess1.Text.Trim()); string process2Id = numSequence1.Text + numSequence2.Value.ToString().PadLeft(2, '0'); list.Add(process2Id); list.Add(UserInfo.GetUserName()); list.Add(txtMemo2.Text.Trim()); list.Add(ultraComboEditor1.Value.ToString()); list.Add(ultraNumericEditor10.Value.ToString2()); list.Add(ultraNumericEditor7.Value.ToString2()); list.Add(ultraNumericEditor8.Value.ToString2()); list.Add(ultraNumericEditor9.Value.ToString2()); list.Add(ultraNumericEditor6.Value.ToString2()); list.Add(ultraNumericEditor5.Value.ToString2()); list.Add(process_Code_C); try { ServerHelper.SetData("com.steering.pss.qcm.CoreProcessBasics.updateProcess2", new object[] { list }, ob); } catch (MESException ex) { return; } MessageUtil.ShowTips("修改数据成功!"); QueryProcess2Data(); MoveToSelectedRow2(process_Code_C); } private void MoveToSelectedRow2(string process_Code_C) { UltraGridRow[] rows = GridHelper.GetRowsWithKey(ultraGrid1, new string[] { "PROCESS_CDOE_C" }, new string[] { process_Code_C }); if (rows.Length > 0) { rows[0].Activate(); } } /// /// 检验非空项 /// /// private bool ValidInput(string process_Code, string process_Desc) { if (string.IsNullOrEmpty(txtName.Text.Trim())) { MessageUtil.ShowWarning("请输入工序描述!"); txtName.Focus(); return false; } else if (IsExistProcess1(process_Code, process_Desc)) { MessageUtil.ShowWarning("系统已存在该工序描述-[" + process_Desc + "]!"); txtName.Focus(); return false; } if (numMinute_Product.Value == null || numMinute_Product.Text == "") { MessageUtil.ShowWarning("请输入生产时间-自炼!"); numMinute_Product.Focus(); return false; } if (numMinute_Waite.Value == null || numMinute_Waite.Text == "") { MessageUtil.ShowWarning("请输入等待时间-自炼!"); numMinute_Waite.Focus(); return false; } if (ultraNumericEditor1.Value == null || ultraNumericEditor1.Text == "") { MessageUtil.ShowWarning("请输入生产时间-外购!"); ultraNumericEditor1.Focus(); return false; } if (ultraNumericEditor2.Value == null || ultraNumericEditor2.Text == "") { MessageUtil.ShowWarning("请输入等待时间-外购!"); ultraNumericEditor2.Focus(); return false; } if (ultraNumericEditor3.Value == null || ultraNumericEditor3.Text == "") { MessageUtil.ShowWarning("请输入批量等待时间-自炼!"); ultraNumericEditor3.Focus(); return false; } if (ultraNumericEditor4.Value == null || ultraNumericEditor4.Text == "") { MessageUtil.ShowWarning("请输入批量等待时间-外购!"); ultraNumericEditor4.Focus(); return false; } if (numICount.Value.ToString() == "") { MessageUtil.ShowWarning("请输入工序循环次数!"); numICount.Focus(); return false; } return true; } /// /// 新增 /// private void doAdd() { string modelCode = GetMaxProcess1Code(); if (ValidInput(modelCode, txtName.Text.Trim())) { if (MessageUtil.ShowYesNoAndQuestion("是否确认新增数据?") == DialogResult.No) { return; } try { ArrayList parm = new ArrayList(); if (modelCode.ToCharArray()[0] > 'Z') { MessageUtil.ShowError("已超出一级工序代码范围(A-Z), 新增失败!"); return; } parm.Add(modelCode); parm.Add(txtName.Text.Trim()); parm.Add("A"); parm.Add(numProcess_Id.Value == null ? "0" : numProcess_Id.Value.ToString()); parm.Add(cmbCOST.Value == null ? "0" : cmbCOST.Value.ToString()); parm.Add(numMinute_Product.Value.ToString()); parm.Add(numMinute_Waite.Value.ToString()); parm.Add(numICount.Value.ToString()); parm.Add(this.UserInfo.GetUserName()); parm.Add(txtMemo.Text.Trim()); parm.Add(ultraNumericEditor1.Value.ToString()); parm.Add(ultraNumericEditor2.Value.ToString()); parm.Add(ultraNumericEditor3.Value.ToString()); parm.Add(ultraNumericEditor4.Value.ToString()); ServerHelper.SetData("com.steering.pss.qcm.CoreProcessBasics.doAdd", new object[] { parm }, ob); doQuery(); MoveToSelectedRow(modelCode); } catch { return; } MessageUtil.ShowTips("新增数据成功!"); LoadProcess1Data(); } } private string GetMaxProcess1Code() { DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreProcessBasics.getMaxProcess1Code", new object[] { }, ob); if (dt == null) { return "A"; } else if (dt != null) { if (dt.Rows[0][0].ToString() == "") { return "A"; } else { string maxCode = dt.Rows[0][0].ToString(); maxCode = ((char)((int)maxCode.ToCharArray()[0] + 1)).ToString(); return maxCode; } } return "A"; } private void MoveToSelectedRow(string modelCode) { UltraGridRow row = null; for (int i = 0; i < ultraGrid2.Rows.Count; i++) { row = ultraGrid2.Rows[i]; if (row.Cells["PROCESS_CODE"].Value.ToString().Equals(modelCode)) { row.Activate(); break; } } } /// /// 修改 /// private void doModify() { if (ultraGrid2.ActiveRow == null) { MessageUtil.ShowWarning("请选择需要修改的数据!"); return; } string modelCode = ultraGrid2.ActiveRow.Cells["PROCESS_CODE"].Value.ToString(); if (ValidInput(modelCode, txtName.Text.Trim())) { //确认修改吗? if (MessageUtil.ShowYesNoAndQuestion("是否修改选中的数据?") == DialogResult.No) { return; } ArrayList parm = new ArrayList(); parm.Add(txtName.Text.Trim()); parm.Add("A"); parm.Add(numProcess_Id.Value == null ? "0" : numProcess_Id.Value.ToString()); parm.Add(cmbCOST.Value == null ? "0" : cmbCOST.Value.ToString()); parm.Add(numMinute_Product.Value == null ? "0" : numMinute_Product.Value.ToString()); parm.Add(numMinute_Waite.Value == null ? "0" : numMinute_Waite.Value.ToString()); parm.Add(numICount.Value == null ? "0" : numICount.Value.ToString()); parm.Add(this.UserInfo.GetUserName()); parm.Add(txtMemo.Text.Trim()); parm.Add(ultraNumericEditor1.Value.ToString()); parm.Add(ultraNumericEditor2.Value.ToString()); parm.Add(ultraNumericEditor3.Value.ToString()); parm.Add(ultraNumericEditor4.Value.ToString()); parm.Add(modelCode); try { ServerHelper.SetData("com.steering.pss.qcm.CoreProcessBasics.doModify", new object[] { parm }, ob); } catch { return; } MessageUtil.ShowTips("修改数据成功!"); doQuery(); MoveToSelectedRow(modelCode); LoadProcess1Data(); } } /// /// 查询 /// private void doQuery() { bool validFlag = chkValid.Checked; string titleName = txtTitleName.Text.Trim(); DataTable dt = null; try { dt = ServerHelper.GetData("com.steering.pss.qcm.CoreProcessBasics.getLineList", new Object[] { validFlag, titleName }, this.ob); } catch { return; } GridHelper.CopyDataToDatatable(ref dt, ref this.dataTable1, true); UltraGridColumn[] col = new UltraGridColumn[] { ultraGrid2.DisplayLayout.Bands[0].Columns["MINUTE_PRODUCT"], ultraGrid2.DisplayLayout.Bands[0].Columns["MINUTE_WAITE"],ultraGrid2.DisplayLayout.Bands[0].Columns["MINUTE_PRODUCT_OUT"], ultraGrid2.DisplayLayout.Bands[0].Columns["MINUTE_WAITE_OUT"],ultraGrid2.DisplayLayout.Bands[0].Columns["BATCH_WAITE"], ultraGrid2.DisplayLayout.Bands[0].Columns["BATCH_WAITE_OUT"]}; GridHelper.RefreshAndAutoSizeExceptColumns(ultraGrid2, col); } /// /// GRID ROW激活时信息带至编辑区 /// /// /// private void ultraGrid2_AfterRowActivate(object sender, EventArgs e) { Infragistics.Win.UltraWinGrid.UltraGridRow row = ultraGrid2.ActiveRow; if (row != null) { txtName.Text = row.Cells["PROCESS_DESC"].Value.ToString(); cmbCOST.Value = row.Cells["COST"].Value == DBNull.Value ? 0 : decimal.Parse(row.Cells["COST"].Value.ToString()); numMinute_Product.Value = row.Cells["MINUTE_PRODUCT"].Value.ToString(); numMinute_Waite.Value = row.Cells["MINUTE_WAITE"].Value.ToString(); numICount.Value = int.Parse(row.Cells["ICOUNT"].Value.ToString()); numProcess_Id.Value = row.Cells["PROCESS_ID"].Value == null ? 0 : int.Parse(row.Cells["PROCESS_ID"].Value.ToString()); txtMemo.Text = row.Cells["MEMO"].Value.ToString(); ultraNumericEditor1.Value = row.Cells["MINUTE_PRODUCT_OUT"].Value.ToString(); ultraNumericEditor2.Value = row.Cells["MINUTE_WAITE_OUT"].Value.ToString(); ultraNumericEditor3.Value = row.Cells["BATCH_WAITE"].Value.ToString(); ultraNumericEditor4.Value = row.Cells["BATCH_WAITE_OUT"].Value.ToString(); } } /// /// 删除或恢复 /// /// true删除 false恢复 private void doDeleteOrResume(bool isDelete) { if (ultraGrid2.ActiveRow == null) { MessageUtil.ShowWarning("请选择需要" + (isDelete ? "作废" : "恢复") + "的数据!"); return; } ArrayList param = new ArrayList(); string processCode = ultraGrid2.ActiveRow.Cells["PROCESS_CODE"].Value.ToString(); param.Add(processCode); if (param.Count > 0 && MessageBox.Show("是否确认" + (isDelete ? "作废" : "恢复") + "选择的数据?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.Yes) { try { int count = ServerHelper.SetData("com.steering.pss.qcm.CoreProcessBasics.deleteLineInfo", new Object[] { param, UserInfo.GetUserName(), isDelete }, this.ob); if (count > 0) { doQuery(); MoveToSelectedRow(processCode); } } catch { } MessageUtil.ShowTips((isDelete ? "作废" : "恢复") + "数据成功!"); } } private void DeleteOrResumeProcess2(bool isDelete) { if (ultraGrid1.ActiveRow == null) { MessageBox.Show("请选择需要" + (isDelete ? "作废" : "恢复") + "的数据!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (MessageUtil.ShowYesNoAndQuestion("是否确定" + (isDelete ? "作废" : "恢复") + "选择的数据?") == DialogResult.No) { return; } string process_Code_C = ultraGrid1.ActiveRow.Cells["PROCESS_CDOE_C"].Value.ToString(); ArrayList list = new ArrayList(); list.Add(isDelete ? "0" : "1"); list.Add(UserInfo.GetUserName()); list.Add(process_Code_C); try { ServerHelper.SetData("com.steering.pss.qcm.CoreProcessBasics.deleteOrResumeProcess2", new object[] { list }, ob); } catch { return; } MessageUtil.ShowTips((isDelete ? "作废" : "恢复") + "数据成功!"); QueryProcess2Data(); MoveToSelectedRow2(process_Code_C); } private void ultraGrid2_InitializeRow(object sender, InitializeRowEventArgs e) { if (e.Row.Cells["VALIDFLAG"].Value.ToString() == "0") { e.Row.Appearance.ForeColor = Color.Red; } else { e.Row.Appearance.ForeColor = Color.Black; } } private void ultraGrid1_InitializeRow(object sender, InitializeRowEventArgs e) { if (e.Row.Cells["VALIDFLAG"].Value.ToString() == "0") { e.Row.Appearance.ForeColor = Color.Red; } else { e.Row.Appearance.ForeColor = Color.Black; } } private void ultraGrid1_AfterRowActivate(object sender, EventArgs e) { if (ultraGrid1.ActiveRow == null) return; cmbProcess1.SelectedValue = ultraGrid1.ActiveRow.Cells["PROCESS_CDOE"].Value.ToString(); txtProcess2.Text = ultraGrid1.ActiveRow.Cells["PROCESS_DESC_C"].Value.ToString(); txtMemo2.Text = ultraGrid1.ActiveRow.Cells["MEMO"].Value.ToString(); string processId = ultraGrid1.GetActiveRowValue("PROCESS_ID_C"); numSequence2.Value = processId == "" ? "0" : processId.Substring(1, processId.Length - 1); ultraComboEditor1.Text = ultraGrid1.ActiveRow.Cells["PROCESS_STYLE"].Value.ToString(); ultraNumericEditor10.Value = ultraGrid1.GetActiveRowValue("MINUTE_PRODUCT"); ultraNumericEditor7.Value = ultraGrid1.GetActiveRowValue("MINUTE_WAITE"); ultraNumericEditor8.Value = ultraGrid1.GetActiveRowValue("BATCH_WAITE"); ultraNumericEditor9.Value = ultraGrid1.GetActiveRowValue("MINUTE_PRODUCT_OUT"); ultraNumericEditor6.Value = ultraGrid1.GetActiveRowValue("MINUTE_WAITE_OUT"); ultraNumericEditor5.Value = ultraGrid1.GetActiveRowValue("BATCH_WAITE_OUT"); } private void cmbProcess1_SelectedIndexChanged(object sender, EventArgs e) { } private void cmbProcess1_SelectedValueChanged(object sender, EventArgs e) { if (cmbProcess1.SelectedItem != null) { numSequence1.Text = cmbProcess1.SelectedValue.ToString(); //if (cmbProcess1.SelectedValue.ToString() == "F") //{ // ultraLabel2.Visible = true; // ultraComboEditor1.Visible = true; //} //else //{ // ultraLabel2.Visible = false; // ultraComboEditor1.Visible = false; //} } } } }