版博士V2.0程序
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
 
 
 
 

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