版博士V2.0程序
Non puoi selezionare più di 25 argomenti Gli argomenti devono iniziare con una lettera o un numero, possono includere trattini ('-') e possono essere lunghi fino a 35 caratteri.
 
 
 
 

303 righe
13 KiB

  1. using MaiMuAOI.SysCtrl;
  2. using MaiMuAOI.SysUI.ProductAndStep;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.ComponentModel;
  6. using System.Data;
  7. using System.Drawing;
  8. using System.Linq;
  9. using System.Text;
  10. using System.Threading.Tasks;
  11. using System.Windows.Forms;
  12. namespace MaiMuAOI.SysUI.ProcessStep
  13. {
  14. public partial class StepInfoFrm : Form
  15. {
  16. Service.StepService service = new Service.StepService();
  17. Models.Step model = new Models.Step();
  18. public StepInfoFrm(Models.Step m = null)
  19. {
  20. InitializeComponent();
  21. UIStyle.SetUIStyle(this);
  22. this.uiTitel1.FatherForm = this;
  23. dataGridView1.AutoGenerateColumns = false;
  24. dataGridView2.AutoGenerateColumns = false;
  25. //显示行号与列宽度自动调整
  26. dataGridView2.RowHeadersVisible = true;
  27. dataGridView2.RowHeadersWidthSizeMode = DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders;
  28. dataGridView2.RowPostPaint += (sender, e) =>
  29. {
  30. SysMgr.showRowNum_onDataGrid_RowPostPaint(this.dataGridView2, sender, e);
  31. };
  32. if (m == null)
  33. model.ProcessList = new List<Models.StepProcess>();
  34. else
  35. model = m;
  36. dataGridView1.DefaultCellStyle.ForeColor = Color.Black;
  37. dataGridView2.DefaultCellStyle.ForeColor = Color.Black;
  38. }
  39. private void InitDataView()
  40. {
  41. this.Cursor = Cursors.WaitCursor;
  42. dataGridView1.Columns.Add("colCode", "code");
  43. dataGridView1.Columns.Add("colName", "工序");
  44. dataGridView1.Columns[0].Visible = false;
  45. dataGridView1.Columns[1].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
  46. foreach (var item in SysMgr.dicDevType)
  47. dataGridView1.Rows.Add(item.Key, item.Value);
  48. //
  49. this.txtCode.Text = model.Code;
  50. this.txtName.Text = model.Name;
  51. this.numStartTimeIndex.Value = model.StartTimeIndex;
  52. if (model.ProcessList != null)
  53. dataGridView2.DataSource = new BindingSource(model.ProcessList, null);
  54. this.Cursor = Cursors.Default;
  55. }
  56. private void StepInfoFrm_Load(object sender, EventArgs e)
  57. {
  58. InitDataView();
  59. }
  60. #region private
  61. private void reOrderProcess()
  62. {
  63. for (int i = 0; i < model.ProcessList.Count; i++)
  64. model.ProcessList[i].Order = i;
  65. }
  66. private void refreshDataGridView()
  67. {
  68. dataGridView2.DataSource = null;
  69. dataGridView2.DataSource = new BindingSource(model.ProcessList, null);
  70. }
  71. #endregion
  72. private void tsbtnSave_Click(object sender, EventArgs e)
  73. {
  74. try
  75. {
  76. string szCode = this.txtCode.Text.Trim();
  77. string szName = this.txtName.Text.Trim();
  78. if (szCode == "" || szName == "")
  79. throw new Exception("请填写编号和名称!");
  80. if (model.ProcessList == null || model.ProcessList.Count == 0)
  81. throw new Exception("请添加流程工序!");
  82. foreach (var item in model.ProcessList)
  83. {
  84. if (string.IsNullOrWhiteSpace(item.ProcessParams))
  85. throw new Exception($"{SysMgr.dicDevType[item.ProcessCode]} 配方未设置!");
  86. }
  87. model.ProcessType = "高级流程";
  88. model.Code = szCode;
  89. model.Name = szName;
  90. model.StartTimeIndex = (int)numStartTimeIndex.Value;
  91. model.ModifyUserCode = SysMgr.Instance.UserMgr.LoginUser.Code;
  92. bool result;
  93. if (model.Id == 0)
  94. {
  95. model.CreateUserCode = SysMgr.Instance.UserMgr.LoginUser.Code;
  96. result = service.InsertNav(model);
  97. }
  98. else
  99. result = service.UpdateNav(model);
  100. if (!result)
  101. throw new Exception("保存失败!");
  102. MessageBox.Show("保存成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  103. this.Close();
  104. }
  105. catch (Exception ex)
  106. {
  107. MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
  108. }
  109. }
  110. private void btnAdd_Click(object sender, EventArgs e)
  111. {
  112. try
  113. {
  114. if (this.dataGridView1.SelectedRows.Count != 1)
  115. throw new Exception("请选择要插入的工序!");
  116. string processCode = this.dataGridView1.SelectedRows[0].Cells[0].Value.ToString();
  117. model.ProcessList.Add(new Models.StepProcess()
  118. {
  119. ProcessCode = processCode,
  120. ProcessName = SysMgr.dicDevType[processCode],
  121. ModifyUserCode = SysMgr.Instance.UserMgr.LoginUser.Code,
  122. CreateUserCode = SysMgr.Instance.UserMgr.LoginUser.Code
  123. });
  124. reOrderProcess();
  125. this.refreshDataGridView();
  126. this.dataGridView2.Rows[this.dataGridView2.Rows.Count - 1].Selected = true;
  127. dataGridView2.CurrentCell = dataGridView2.Rows[this.dataGridView2.Rows.Count - 1].Cells[1];
  128. }
  129. catch (Exception ex)
  130. {
  131. MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
  132. }
  133. }
  134. private void btnInsert_Click(object sender, EventArgs e)
  135. {
  136. try
  137. {
  138. if (this.dataGridView1.SelectedRows.Count != 1)
  139. throw new Exception("请选择要插入的工序!");
  140. string processCode = this.dataGridView1.SelectedRows[0].Cells[0].Value.ToString();
  141. int liInsertIndex = this.dataGridView2.Rows.Count;
  142. if (this.dataGridView2.SelectedRows.Count > 0)
  143. liInsertIndex = this.dataGridView2.SelectedRows[0].Index;
  144. model.ProcessList.Insert(liInsertIndex, new Models.StepProcess()
  145. {
  146. ProcessCode = processCode,
  147. ProcessName = SysMgr.dicDevType[processCode],
  148. Order = liInsertIndex,
  149. ModifyUserCode = SysMgr.Instance.UserMgr.LoginUser.Code,
  150. CreateUserCode = SysMgr.Instance.UserMgr.LoginUser.Code
  151. });
  152. reOrderProcess();
  153. this.refreshDataGridView();
  154. this.dataGridView2.Rows[liInsertIndex].Selected = true;
  155. dataGridView2.CurrentCell = dataGridView2.Rows[liInsertIndex].Cells[1];
  156. }
  157. catch (Exception ex)
  158. {
  159. MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
  160. }
  161. }
  162. private void btnDel_Click(object sender, EventArgs e)
  163. {
  164. try
  165. {
  166. if (this.dataGridView2.SelectedRows.Count != 1)
  167. throw new Exception("请选择要删除的工序!");
  168. int liRowIndex = this.dataGridView2.SelectedRows[0].Index;
  169. model.ProcessList.RemoveAt(liRowIndex);
  170. if (liRowIndex >= dataGridView2.Rows.Count - 1)
  171. liRowIndex = dataGridView2.Rows.Count - 1;
  172. dataGridView2.CurrentCell = dataGridView2.Rows[liRowIndex].Cells[1];
  173. //reOrderProcess();
  174. this.refreshDataGridView();
  175. if (dataGridView2.Rows.Count < 1)
  176. return;
  177. if (liRowIndex >= dataGridView2.Rows.Count)
  178. liRowIndex = dataGridView2.Rows.Count - 1;
  179. dataGridView2.CurrentCell = dataGridView2.Rows[liRowIndex].Cells[1];
  180. }
  181. catch (Exception ex)
  182. {
  183. MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
  184. }
  185. }
  186. private void btnUp_Click(object sender, EventArgs e)
  187. {
  188. try
  189. {
  190. if (this.dataGridView2.SelectedRows.Count != 1)
  191. throw new Exception("请选择要调整顺序的工序!");
  192. int liSelIndex = this.dataGridView2.SelectedRows[0].Index;
  193. if (liSelIndex == 0)
  194. return;
  195. model.ProcessList.Insert(liSelIndex - 1, model.ProcessList[liSelIndex]);
  196. model.ProcessList.RemoveAt(liSelIndex + 1);
  197. reOrderProcess();
  198. this.refreshDataGridView();
  199. this.dataGridView2.Rows[liSelIndex - 1].Selected = true;
  200. dataGridView2.CurrentCell = dataGridView2.Rows[liSelIndex - 1].Cells[1];
  201. }
  202. catch (Exception ex)
  203. {
  204. MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
  205. }
  206. }
  207. private void btnDown_Click(object sender, EventArgs e)
  208. {
  209. try
  210. {
  211. if (this.dataGridView2.SelectedRows.Count != 1)
  212. throw new Exception("请选择要调整顺序的工序!");
  213. int liSelIndex = this.dataGridView2.SelectedRows[0].Index;
  214. if (liSelIndex == this.dataGridView2.Rows.Count - 1)
  215. return;
  216. model.ProcessList.Insert(liSelIndex + 2, model.ProcessList[liSelIndex]);
  217. model.ProcessList.RemoveAt(liSelIndex);
  218. reOrderProcess();
  219. this.refreshDataGridView();
  220. this.dataGridView2.Rows[liSelIndex + 1].Selected = true;
  221. dataGridView2.CurrentCell = dataGridView2.Rows[liSelIndex + 1].Cells[1];
  222. }
  223. catch (Exception ex)
  224. {
  225. MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
  226. }
  227. }
  228. private void dataGridView2_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
  229. {
  230. for (int i = 0; i < dataGridView2.Rows.Count; i++)
  231. {
  232. if(SysMgr.dicDevType.ContainsKey(dataGridView2.Rows[i].Cells[0].Value.ToString()))
  233. {
  234. dataGridView2.Rows[i].Cells["colTypeName"].Value = SysMgr.dicDevType[dataGridView2.Rows[i].Cells[0].Value.ToString()];
  235. }
  236. else
  237. {
  238. dataGridView2.Rows[i].Cells["colTypeName"].Value = "不支持";
  239. dataGridView2.Rows[i].DefaultCellStyle.BackColor = Color.Yellow;
  240. }
  241. }
  242. }
  243. private void dataGridView2_CellContentClick(object sender, DataGridViewCellEventArgs e)
  244. {
  245. int Index = this.dataGridView2.CurrentRow.Index;//获取当前选中行的索引
  246. if (Index < this.dataGridView2.Rows.Count && this.dataGridView2.CurrentCell.Value.ToString() == "设置")
  247. {
  248. string processCode = this.dataGridView2.Rows[Index].Cells["colProcessCode"].Value.ToString();
  249. string processParams = "";
  250. if (this.dataGridView2.Rows[Index].Cells["colProcessParams"].Value != null)
  251. processParams = this.dataGridView2.Rows[Index].Cells["colProcessParams"].Value.ToString();
  252. bool IsSupport = SysMgr.dicDevType.ContainsKey(processCode);
  253. if (IsSupport)
  254. {
  255. SetParamsFrm frm = new SetParamsFrm(processCode, processParams);
  256. if (frm.ShowDialog() == DialogResult.OK)
  257. this.dataGridView2.Rows[Index].Cells["colProcessParams"].Value = frm.ParamsData;
  258. }
  259. else
  260. {
  261. //MessageBox.Show("不支持改功能!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Information );
  262. }
  263. }
  264. }
  265. private void tsbtnClose_Click(object sender, EventArgs e)
  266. {
  267. this.Close();
  268. }
  269. //单元格编译完成
  270. private void dataGridView2_CellEndEdit(object sender, DataGridViewCellEventArgs e)
  271. {
  272. var value = dataGridView2.Rows[e.RowIndex].Cells["colProcessName"].Value;
  273. if (value == null || value.ToString().Trim() == "")
  274. {
  275. dataGridView2.Rows[e.RowIndex].Cells["colProcessName"].Value = dataGridView2.Rows[e.RowIndex].Cells["colTypeName"].Value;
  276. }
  277. }
  278. }
  279. }