版博士V2.0程序
Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.
 
 
 
 

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