300 lines
12 KiB
C#
300 lines
12 KiB
C#
|
using System;
|
|||
|
using System.Collections.Generic;
|
|||
|
using System.ComponentModel;
|
|||
|
using System.Data;
|
|||
|
using System.Drawing;
|
|||
|
using System.IO;
|
|||
|
using System.Linq;
|
|||
|
using System.Text;
|
|||
|
using System.Threading.Tasks;
|
|||
|
using System.Windows.Forms;
|
|||
|
|
|||
|
namespace ProductionControl
|
|||
|
{
|
|||
|
public partial class FrmStepInfo : Form
|
|||
|
{
|
|||
|
Service.StepService service = new Service.StepService();
|
|||
|
Models.Step model=new Models.Step();
|
|||
|
public FrmStepInfo(Models.Step m=null)
|
|||
|
{
|
|||
|
InitializeComponent();
|
|||
|
dataGridView1.AutoGenerateColumns = false;
|
|||
|
dataGridView2.AutoGenerateColumns = false;
|
|||
|
//显示行号与列宽度自动调整
|
|||
|
dataGridView2.RowHeadersVisible = true;
|
|||
|
dataGridView2.RowHeadersWidthSizeMode = DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders;
|
|||
|
dataGridView2.RowPostPaint += (sender, e) =>
|
|||
|
{
|
|||
|
Utils.Util.showRowNum_onDataGrid_RowPostPaint(this.dataGridView2, sender, e);
|
|||
|
};
|
|||
|
|
|||
|
if (m == null)
|
|||
|
model.ProcessList = new List<Models.StepProcess>();
|
|||
|
else
|
|||
|
model = m;
|
|||
|
}
|
|||
|
private void initDataView()
|
|||
|
{
|
|||
|
dataGridView1.Columns.Add("colCode", "code");
|
|||
|
dataGridView1.Columns.Add("colName", "工序");
|
|||
|
dataGridView1.Columns[0].Visible = false;
|
|||
|
dataGridView1.Columns[1].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
|
|||
|
foreach (var item in Config.dicDevType)
|
|||
|
dataGridView1.Rows.Add(item.Key, item.Value);
|
|||
|
|
|||
|
//
|
|||
|
this.txtCode.Text = model.Code;
|
|||
|
this.txtName.Text = model.Name;
|
|||
|
this.numStartTimeIndex.Value = model.StartTimeIndex;
|
|||
|
if (model.ProcessList!=null)
|
|||
|
dataGridView2.DataSource = new BindingSource(model.ProcessList, null);
|
|||
|
}
|
|||
|
private class Process
|
|||
|
{
|
|||
|
public Process(string code, string name)
|
|||
|
{
|
|||
|
Code = code;
|
|||
|
Name = name;
|
|||
|
}
|
|||
|
public string Code { get; set; }
|
|||
|
public string Name { get; set; }
|
|||
|
}
|
|||
|
private void FrmStepInfo_Load(object sender, EventArgs e)
|
|||
|
{
|
|||
|
initDataView();
|
|||
|
}
|
|||
|
#region private
|
|||
|
private void reOrderProcess()
|
|||
|
{
|
|||
|
for (int i = 0; i < model.ProcessList.Count; i++)
|
|||
|
model.ProcessList[i].Order = i;
|
|||
|
}
|
|||
|
private void refreshDataGridView()
|
|||
|
{
|
|||
|
dataGridView2.DataSource = null;
|
|||
|
dataGridView2.DataSource = new BindingSource(model.ProcessList, null);
|
|||
|
}
|
|||
|
#endregion
|
|||
|
private bool saveExit=false;
|
|||
|
private void tsbtnSave_Click(object sender, EventArgs e)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
string szCode = this.txtCode.Text.Trim();
|
|||
|
string szName = this.txtName.Text.Trim();
|
|||
|
if (szCode == "" || szName == "")
|
|||
|
throw new Exception("请填写编号和名称!");
|
|||
|
if (model.ProcessList == null || model.ProcessList.Count == 0)
|
|||
|
throw new Exception("请添加流程工序!");
|
|||
|
foreach(var item in model.ProcessList)
|
|||
|
{
|
|||
|
if (string.IsNullOrWhiteSpace(item.ProcessParams))
|
|||
|
throw new Exception($"{Config.dicDevType[item.ProcessCode]} 配方未设置!");
|
|||
|
}
|
|||
|
|
|||
|
model.Code = szCode;
|
|||
|
model.Name = szName;
|
|||
|
model.StartTimeIndex = (int)numStartTimeIndex.Value;
|
|||
|
model.ModifyUserCode = Config.loginUser.Code;
|
|||
|
bool result;
|
|||
|
if (model.Id == 0)
|
|||
|
{
|
|||
|
model.CreateUserCode=Config.loginUser.Code;
|
|||
|
result = service.InsertNav(model);
|
|||
|
}
|
|||
|
else
|
|||
|
result = service.UpdateNav(model);
|
|||
|
if (!result)
|
|||
|
throw new Exception("保存失败!");
|
|||
|
|
|||
|
MessageBox.Show("保存成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
|||
|
saveExit=true;
|
|||
|
this.Close();
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
|||
|
}
|
|||
|
}
|
|||
|
private void btnAdd_Click(object sender, EventArgs e)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
if (this.dataGridView1.SelectedRows.Count != 1)
|
|||
|
throw new Exception("请选择要插入的工序!");
|
|||
|
|
|||
|
string processCode = this.dataGridView1.SelectedRows[0].Cells[0].Value.ToString();
|
|||
|
model.ProcessList.Add(new Models.StepProcess()
|
|||
|
{
|
|||
|
ProcessCode = processCode,
|
|||
|
ProcessName= Config.dicDevType[processCode],
|
|||
|
ModifyUserCode = Config.loginUser.Code,
|
|||
|
CreateUserCode = Config.loginUser.Code
|
|||
|
});
|
|||
|
reOrderProcess();
|
|||
|
this.refreshDataGridView();
|
|||
|
this.dataGridView2.Rows[this.dataGridView2.Rows.Count-1].Selected = true;
|
|||
|
dataGridView2.CurrentCell = dataGridView2.Rows[this.dataGridView2.Rows.Count - 1].Cells[1];
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
|||
|
}
|
|||
|
}
|
|||
|
private void btnInsert_Click(object sender, EventArgs e)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
if (this.dataGridView1.SelectedRows.Count != 1)
|
|||
|
throw new Exception("请选择要插入的工序!");
|
|||
|
|
|||
|
string processCode= this.dataGridView1.SelectedRows[0].Cells[0].Value.ToString();
|
|||
|
int liInsertIndex = this.dataGridView2.Rows.Count;
|
|||
|
if (this.dataGridView2.SelectedRows.Count > 0)
|
|||
|
liInsertIndex = this.dataGridView2.SelectedRows[0].Index;
|
|||
|
model.ProcessList.Insert(liInsertIndex, new Models.StepProcess()
|
|||
|
{
|
|||
|
ProcessCode = processCode,
|
|||
|
ProcessName = Config.dicDevType[processCode],
|
|||
|
Order = liInsertIndex,
|
|||
|
ModifyUserCode=Config.loginUser.Code,
|
|||
|
CreateUserCode=Config.loginUser.Code
|
|||
|
});
|
|||
|
reOrderProcess();
|
|||
|
this.refreshDataGridView();
|
|||
|
this.dataGridView2.Rows[liInsertIndex].Selected = true;
|
|||
|
dataGridView2.CurrentCell = dataGridView2.Rows[liInsertIndex].Cells[1];
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
private void btnDel_Click(object sender, EventArgs e)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
if (this.dataGridView2.SelectedRows.Count != 1)
|
|||
|
throw new Exception("请选择要删除的工序!");
|
|||
|
|
|||
|
int liRowIndex = this.dataGridView2.SelectedRows[0].Index;
|
|||
|
model.ProcessList.RemoveAt(liRowIndex);
|
|||
|
if(liRowIndex>= dataGridView2.Rows.Count-1)
|
|||
|
liRowIndex= dataGridView2.Rows.Count-1;
|
|||
|
dataGridView2.CurrentCell = dataGridView2.Rows[liRowIndex].Cells[1];
|
|||
|
//reOrderProcess();
|
|||
|
this.refreshDataGridView();
|
|||
|
|
|||
|
if (dataGridView2.Rows.Count < 1)
|
|||
|
return;
|
|||
|
if (liRowIndex >= dataGridView2.Rows.Count)
|
|||
|
liRowIndex = dataGridView2.Rows.Count - 1;
|
|||
|
dataGridView2.CurrentCell = dataGridView2.Rows[liRowIndex].Cells[1];
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
private void btnUp_Click(object sender, EventArgs e)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
if (this.dataGridView2.SelectedRows.Count != 1)
|
|||
|
throw new Exception("请选择要调整顺序的工序!");
|
|||
|
int liSelIndex = this.dataGridView2.SelectedRows[0].Index;
|
|||
|
if (liSelIndex == 0)
|
|||
|
return;
|
|||
|
|
|||
|
model.ProcessList.Insert(liSelIndex - 1, model.ProcessList[liSelIndex]);
|
|||
|
model.ProcessList.RemoveAt(liSelIndex + 1);
|
|||
|
reOrderProcess();
|
|||
|
this.refreshDataGridView();
|
|||
|
this.dataGridView2.Rows[liSelIndex-1].Selected = true;
|
|||
|
dataGridView2.CurrentCell = dataGridView2.Rows[liSelIndex - 1].Cells[1];
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
private void btnDown_Click(object sender, EventArgs e)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
if (this.dataGridView2.SelectedRows.Count != 1)
|
|||
|
throw new Exception("请选择要调整顺序的工序!");
|
|||
|
int liSelIndex = this.dataGridView2.SelectedRows[0].Index;
|
|||
|
if (liSelIndex == this.dataGridView2.Rows.Count-1)
|
|||
|
return;
|
|||
|
|
|||
|
model.ProcessList.Insert(liSelIndex +2, model.ProcessList[liSelIndex]);
|
|||
|
model.ProcessList.RemoveAt(liSelIndex);
|
|||
|
reOrderProcess();
|
|||
|
this.refreshDataGridView();
|
|||
|
this.dataGridView2.Rows[liSelIndex+1].Selected = true;
|
|||
|
dataGridView2.CurrentCell = dataGridView2.Rows[liSelIndex + 1].Cells[1];
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
private void tsbtnDebug_Click(object sender, EventArgs e)
|
|||
|
{
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
private void dataGridView2_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
|
|||
|
{
|
|||
|
for(int i=0;i< dataGridView2.Rows.Count;i++)
|
|||
|
{
|
|||
|
dataGridView2.Rows[i].Cells["colTypeName"].Value = Config.dicDevType[dataGridView2.Rows[i].Cells[0].Value.ToString()];
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
private void dataGridView2_CellContentClick(object sender, DataGridViewCellEventArgs e)
|
|||
|
{
|
|||
|
int Index = this.dataGridView2.CurrentRow.Index;//获取当前选中行的索引
|
|||
|
if (Index < this.dataGridView2.Rows.Count && this.dataGridView2.CurrentCell.Value.ToString() == "设置")
|
|||
|
{
|
|||
|
string processCode = this.dataGridView2.Rows[Index].Cells["colProcessCode"].Value.ToString();
|
|||
|
string processParams="";
|
|||
|
if(this.dataGridView2.Rows[Index].Cells["colProcessParams"].Value!=null)
|
|||
|
processParams=this.dataGridView2.Rows[Index].Cells["colProcessParams"].Value.ToString();
|
|||
|
FrmSetParams frm=new FrmSetParams(processCode, processParams);
|
|||
|
if (frm.ShowDialog() == DialogResult.OK)
|
|||
|
this.dataGridView2.Rows[Index].Cells["colProcessParams"].Value = frm.ParamsData;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
private void tsbtnClose_Click(object sender, EventArgs e)
|
|||
|
{
|
|||
|
this.Close();
|
|||
|
}
|
|||
|
|
|||
|
//单元格编译完成
|
|||
|
private void dataGridView2_CellEndEdit(object sender, DataGridViewCellEventArgs e)
|
|||
|
{
|
|||
|
var value = dataGridView2.Rows[e.RowIndex].Cells["colProcessName"].Value;
|
|||
|
if (value==null || value.ToString().Trim() == "")
|
|||
|
{
|
|||
|
dataGridView2.Rows[e.RowIndex].Cells["colProcessName"].Value = dataGridView2.Rows[e.RowIndex].Cells["colTypeName"].Value;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
private void FrmStepInfo_FormClosing(object sender, FormClosingEventArgs e)
|
|||
|
{
|
|||
|
if (!saveExit && MessageBox.Show($"确认修改已保存,是否退出?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.Yes)
|
|||
|
{
|
|||
|
e.Cancel = true;
|
|||
|
return;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|