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;
//}
}
}
}
}