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

642 строки
28 KiB

  1. using MaiMuAOI.SysCtrl;
  2. using MaiMuAOI.SysUI.DefectPicShow;
  3. using MaiMuAOI.SysUI.ProcessStep.Prop;
  4. using MaiMuAOI.SysUI.ProductAndStep;
  5. using Newtonsoft.Json.Linq;
  6. using OpenCvSharp.Flann;
  7. using ProductionControl.UI;
  8. using System;
  9. using System.Collections.Generic;
  10. using System.ComponentModel;
  11. using System.Data;
  12. using System.Drawing;
  13. using System.Linq;
  14. using System.Text;
  15. using System.Threading;
  16. using System.Threading.Tasks;
  17. using System.Windows.Forms;
  18. namespace MaiMuAOI.SysUI.ProcessStep
  19. {
  20. public partial class StepProcessFrm : Form
  21. {
  22. Service.StepService service = new Service.StepService();
  23. Models.Step model = new Models.Step();
  24. DebugTestFrm frm;
  25. //工序库参数
  26. string LibprocessCode;
  27. TensionProp _libTensionProp;
  28. ThicknessProp _libThicknessProp;
  29. LensProp _libLensProp;
  30. LightProp _libLightProp;
  31. MarkProp _libMarkProp;
  32. PointTestProp _libPointTestProp;
  33. SizeDefectProp _libSizeDefectProp;
  34. ForProp _libForProp;
  35. //流程参数
  36. TensionProp _ProcessTensionProp;
  37. ThicknessProp _ProcessThicknessProp;
  38. LensProp _ProcessLensProp;
  39. LightProp _ProcessLightProp;
  40. MarkProp _ProcessMarkProp;
  41. PointTestProp _ProcessPointTestProp;
  42. SizeDefectProp _ProcessSizeDefectProp;
  43. ForProp _ProcessForProp;
  44. SynchronizationContext SyncContext = null;
  45. public StepProcessFrm(Models.Step m = null)
  46. {
  47. InitializeComponent();
  48. UIStyle.SetUIStyle(this);
  49. this.uiTitel1.FatherForm = this;
  50. dataGridView1.AutoGenerateColumns = false;
  51. dataGridView2.AutoGenerateColumns = false;
  52. //显示行号与列宽度自动调整
  53. dataGridView2.RowHeadersVisible = true;
  54. dataGridView2.RowHeadersWidthSizeMode = DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders;
  55. dataGridView2.RowPostPaint += (sender, e) =>
  56. {
  57. SysMgr.showRowNum_onDataGrid_RowPostPaint(this.dataGridView2, sender, e);
  58. };
  59. dataGridView1.DefaultCellStyle.ForeColor = Color.Black;
  60. dataGridView2.DefaultCellStyle.ForeColor = Color.Black;
  61. //获取UI线程同步上下文
  62. SyncContext = SynchronizationContext.Current;
  63. if (m == null)
  64. model.ProcessList = new List<Models.StepProcess>();
  65. else
  66. model = m;
  67. }
  68. private void InitDataView()
  69. {
  70. this.Cursor = Cursors.WaitCursor;
  71. dataGridView1.Columns.Add("colCode", "code");
  72. //DataGridViewComboBoxColumn col = new DataGridViewComboBoxColumn();
  73. //col.Name = "colName";
  74. //col.HeaderText = "工序";
  75. //dataGridView1.Columns.Add(col);
  76. dataGridView1.Columns.Add("colName", "工序");
  77. dataGridView1.Columns[0].Visible = false;
  78. dataGridView1.Columns[1].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
  79. foreach (var item in SysMgr.ProcessType)
  80. dataGridView1.Rows.Add(item.Key, item.Value);
  81. for (int i = 0; i < this.dataGridView1.Columns.Count; i++)
  82. {
  83. this.dataGridView1.Columns[i].SortMode = DataGridViewColumnSortMode.NotSortable;
  84. }
  85. int rowHeight = (dataGridView1.Height - dataGridView1.ColumnHeadersHeight - 5)/ dataGridView1.Rows.Count;
  86. for (int i = 0; i < this.dataGridView1.Rows.Count; i++)
  87. {
  88. this.dataGridView1.Rows[i].Height = rowHeight;
  89. }
  90. //
  91. this.txtCode.Text = model.Code;
  92. this.txtName.Text = model.Name;
  93. this.numStartTimeIndex.Value = model.StartTimeIndex;
  94. if (model.ProcessList != null)
  95. dataGridView2.DataSource = new BindingSource(model.ProcessList, null);
  96. for (int i = 0; i < this.dataGridView2.Columns.Count; i++)
  97. {
  98. this.dataGridView2.Columns[i].SortMode = DataGridViewColumnSortMode.NotSortable;
  99. }
  100. this.Cursor = Cursors.Default;
  101. }
  102. private void StepProcessFrm_Load(object sender, EventArgs e)
  103. {
  104. InitDataView();
  105. }
  106. #region private
  107. private void reOrderProcess()
  108. {
  109. for (int i = 0; i < model.ProcessList.Count; i++)
  110. model.ProcessList[i].Order = i;
  111. }
  112. private void refreshDataGridView()
  113. {
  114. dataGridView2.DataSource = null;
  115. dataGridView2.DataSource = new BindingSource(model.ProcessList, null);
  116. }
  117. #endregion
  118. #region 工具栏
  119. private void tsbtnSave_Click(object sender, EventArgs e)
  120. {
  121. try
  122. {
  123. string szCode = this.txtCode.Text.Trim();
  124. string szName = this.txtName.Text.Trim();
  125. if (szCode == "" || szName == "")
  126. throw new Exception("请填写编号和名称!");
  127. if (model.ProcessList == null || model.ProcessList.Count == 0)
  128. throw new Exception("请添加流程工序!");
  129. int index = 0;
  130. int TensionCnt = 0;
  131. foreach (var item in model.ProcessList)
  132. {
  133. if (string.IsNullOrWhiteSpace(item.ProcessParams))
  134. throw new Exception($"{SysMgr.ProcessType[item.ProcessCode]} 配方未设置!");
  135. //张力检测一定要第一步,防呆
  136. if (item.ProcessCode == "Tension" && index != 0)
  137. {
  138. throw new Exception("张力测量工序必须在第一步!");
  139. }
  140. else if (item.ProcessCode == "Tension")
  141. {
  142. TensionCnt++;//记录张力测试是否重复
  143. }
  144. if(TensionCnt >1)
  145. throw new Exception("张力测量工序只能存在一次!");
  146. if (item.ProcessCode == "Height" )
  147. {
  148. if(TensionCnt >0 && index != 1)
  149. throw new Exception("厚度测量工序必须在张力测量工序之后!");
  150. else if (TensionCnt == 0 && index != 0)
  151. throw new Exception("厚度测量工序必须在第一步!");
  152. }
  153. index++;
  154. }
  155. model.ProcessType = "快速流程";
  156. model.Code = szCode;
  157. model.Name = szName;
  158. model.StartTimeIndex = (int)numStartTimeIndex.Value;
  159. model.ModifyUserCode = SysMgr.Instance.UserMgr.LoginUser.Code;
  160. bool result;
  161. if (model.Id == 0)
  162. {
  163. model.CreateUserCode = SysMgr.Instance.UserMgr.LoginUser.Code;
  164. result = service.InsertNav(model);
  165. }
  166. else
  167. result = service.UpdateNav(model);
  168. if (!result)
  169. throw new Exception("保存失败!");
  170. MessageBox.Show("保存成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  171. this.Close();
  172. }
  173. catch (Exception ex)
  174. {
  175. MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
  176. }
  177. }
  178. private void tsbtnExit_Click(object sender, EventArgs e)
  179. {
  180. this.Close();
  181. }
  182. private void tsbDebug_Click(object sender, EventArgs e)
  183. {
  184. if ((frm == null) || (frm.IsDisposed))
  185. frm = new DebugTestFrm();
  186. //frm.TopMost = true;
  187. frm.Show();
  188. }
  189. #endregion
  190. #region 工序库表格
  191. private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
  192. {
  193. int Index = this.dataGridView1.CurrentRow.Index;//获取当前选中行的索引
  194. if (Index < this.dataGridView1.Rows.Count)
  195. {
  196. string processCode = this.dataGridView1.Rows[Index].Cells["colCode"].Value.ToString();
  197. bool IsSupport = SysMgr.ProcessType.ContainsKey(processCode);
  198. if (IsSupport)
  199. {
  200. LibprocessCode = processCode;
  201. switch (processCode)
  202. {
  203. case "Tension":
  204. _libTensionProp = new TensionProp();
  205. LibPropertyGrid.SelectedObject = _libTensionProp;
  206. break;
  207. case "Height":
  208. _libThicknessProp = new ThicknessProp();
  209. LibPropertyGrid.SelectedObject = _libThicknessProp;
  210. break;
  211. case "LensMotor":
  212. _libLensProp = new LensProp();
  213. LibPropertyGrid.SelectedObject = _libLensProp;
  214. break;
  215. case "Light":
  216. _libLightProp = new LightProp();
  217. LibPropertyGrid.SelectedObject = _libLightProp;
  218. break;
  219. case "Mark":
  220. _libMarkProp = new MarkProp();
  221. LibPropertyGrid.SelectedObject = _libMarkProp;
  222. break;
  223. case "PointTest":
  224. _libPointTestProp = new PointTestProp();
  225. LibPropertyGrid.SelectedObject = _libPointTestProp;
  226. break;
  227. case "SizeAndDefect":
  228. _libSizeDefectProp = new SizeDefectProp();
  229. LibPropertyGrid.SelectedObject = _libSizeDefectProp;
  230. break;
  231. case "For":
  232. _libForProp = new ForProp();
  233. LibPropertyGrid.SelectedObject = _libForProp;
  234. break;
  235. }
  236. LibPropertyGrid.Refresh();
  237. this.Refresh();
  238. }
  239. else
  240. {
  241. //MessageBox.Show("不支持改功能!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Information );
  242. }
  243. }
  244. }
  245. #endregion
  246. #region 流程表格
  247. //单元格编译完成
  248. private void dataGridView2_CellEndEdit(object sender, DataGridViewCellEventArgs e)
  249. {
  250. var value = dataGridView2.Rows[e.RowIndex].Cells["colProcessName"].Value;
  251. if (value == null || value.ToString().Trim() == "")
  252. {
  253. dataGridView2.Rows[e.RowIndex].Cells["colProcessName"].Value = dataGridView2.Rows[e.RowIndex].Cells["colTypeName"].Value;
  254. }
  255. }
  256. private void dataGridView2_CellClick(object sender, DataGridViewCellEventArgs e)
  257. {
  258. int Index = this.dataGridView2.CurrentRow.Index;//获取当前选中行的索引
  259. if (Index < this.dataGridView2.Rows.Count)
  260. {
  261. string processCode = this.dataGridView2.Rows[Index].Cells["colProcessCode"].Value.ToString();
  262. string processParams = this.dataGridView2.Rows[Index].Cells["colProcessParams"].Value.ToString();
  263. bool IsSupport = SysMgr.ProcessType.ContainsKey(processCode);
  264. if (IsSupport)
  265. {
  266. switch (processCode)
  267. {
  268. case "Tension":
  269. _ProcessTensionProp = new TensionProp();
  270. _ProcessTensionProp.deserialize(processParams);
  271. ProcessPropertyGrid.SelectedObject = _ProcessTensionProp;
  272. break;
  273. case "Height":
  274. _ProcessThicknessProp = new ThicknessProp();
  275. _ProcessThicknessProp.deserialize(processParams);
  276. ProcessPropertyGrid.SelectedObject = _ProcessThicknessProp;
  277. break;
  278. case "LensMotor":
  279. _ProcessLensProp = new LensProp();
  280. _ProcessLensProp.deserialize(processParams);
  281. ProcessPropertyGrid.SelectedObject = _ProcessLensProp;
  282. break;
  283. case "Light":
  284. _ProcessLightProp = new LightProp();
  285. _ProcessLightProp.deserialize(processParams);
  286. ProcessPropertyGrid.SelectedObject = _ProcessLightProp;
  287. break;
  288. case "Mark":
  289. _ProcessMarkProp = new MarkProp();
  290. _ProcessMarkProp.deserialize(processParams);
  291. ProcessPropertyGrid.SelectedObject = _ProcessMarkProp;
  292. break;
  293. case "PointTest":
  294. _ProcessPointTestProp = new PointTestProp();
  295. _ProcessPointTestProp.deserialize(processParams);
  296. ProcessPropertyGrid.SelectedObject = _ProcessPointTestProp;
  297. break;
  298. case "SizeAndDefect":
  299. _ProcessSizeDefectProp = new SizeDefectProp();
  300. _ProcessSizeDefectProp.deserialize(processParams);
  301. ProcessPropertyGrid.SelectedObject = _ProcessSizeDefectProp;
  302. break;
  303. case "For":
  304. _ProcessForProp = new ForProp();
  305. _ProcessForProp.deserialize(processParams);
  306. ProcessPropertyGrid.SelectedObject = _ProcessForProp;
  307. break;
  308. }
  309. ProcessPropertyGrid.Refresh();
  310. this.Refresh();
  311. }
  312. else
  313. {
  314. //MessageBox.Show("不支持改功能!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Information );
  315. }
  316. }
  317. }
  318. private void dataGridView2_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
  319. {
  320. for (int i = 0; i < dataGridView2.Rows.Count; i++)
  321. {
  322. if (SysMgr.ProcessType.ContainsKey(dataGridView2.Rows[i].Cells[0].Value.ToString()))
  323. {
  324. dataGridView2.Rows[i].Cells["colTypeName"].Value = SysMgr.ProcessType[dataGridView2.Rows[i].Cells[0].Value.ToString()];
  325. }
  326. else
  327. {
  328. dataGridView2.Rows[i].Cells["colTypeName"].Value = "不支持";
  329. dataGridView2.Rows[i].DefaultCellStyle.BackColor = Color.Yellow;
  330. }
  331. }
  332. }
  333. #endregion
  334. #region 操作按钮
  335. private void btnAdd_Click(object sender, EventArgs e)
  336. {
  337. try
  338. {
  339. if (this.dataGridView1.SelectedRows.Count != 1)
  340. throw new Exception("请选择要插入的工序!");
  341. string processCode = this.dataGridView1.SelectedRows[0].Cells[0].Value.ToString();
  342. string processParams = "";
  343. switch (LibprocessCode)
  344. {
  345. case "Tension":
  346. processParams = _libTensionProp.serialize();
  347. break;
  348. case "Height":
  349. processParams = _libThicknessProp.serialize();
  350. break;
  351. case "LensMotor":
  352. processParams = _libLensProp.serialize();
  353. break;
  354. case "Light":
  355. processParams = _libLightProp.serialize();
  356. break;
  357. case "Mark":
  358. processParams = _libMarkProp.serialize();
  359. break;
  360. case "PointTest":
  361. processParams = _libPointTestProp.serialize();
  362. break;
  363. case "SizeAndDefect":
  364. processParams = _libSizeDefectProp.serialize();
  365. break;
  366. case "For":
  367. processParams = _libForProp.serialize();
  368. break;
  369. }
  370. model.ProcessList.Add(new Models.StepProcess()
  371. {
  372. ProcessCode = processCode,
  373. ProcessName = SysMgr.ProcessType[processCode],
  374. ModifyUserCode = SysMgr.Instance.UserMgr.LoginUser.Code,
  375. CreateUserCode = SysMgr.Instance.UserMgr.LoginUser.Code,
  376. ProcessParams = processParams
  377. });
  378. reOrderProcess();
  379. this.refreshDataGridView();
  380. this.dataGridView2.Rows[this.dataGridView2.Rows.Count - 1].Selected = true;
  381. dataGridView2.CurrentCell = dataGridView2.Rows[this.dataGridView2.Rows.Count - 1].Cells[1];
  382. }
  383. catch (Exception ex)
  384. {
  385. MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
  386. }
  387. }
  388. private void btnInsert_Click(object sender, EventArgs e)
  389. {
  390. try
  391. {
  392. if (this.dataGridView1.SelectedRows.Count != 1)
  393. throw new Exception("请选择要插入的工序!");
  394. string processCode = this.dataGridView1.SelectedRows[0].Cells[0].Value.ToString();
  395. int liInsertIndex = this.dataGridView2.Rows.Count;
  396. if (this.dataGridView2.SelectedRows.Count > 0)
  397. liInsertIndex = this.dataGridView2.SelectedRows[0].Index;
  398. string processParams = "";
  399. switch (LibprocessCode)
  400. {
  401. case "Tension":
  402. processParams = _libTensionProp.serialize();
  403. break;
  404. case "Height":
  405. processParams = _libThicknessProp.serialize();
  406. break;
  407. case "LensMotor":
  408. processParams = _libLensProp.serialize();
  409. break;
  410. case "Light":
  411. processParams = _libLightProp.serialize();
  412. break;
  413. case "Mark":
  414. processParams = _libMarkProp.serialize();
  415. break;
  416. case "PointTest":
  417. processParams = _libPointTestProp.serialize();
  418. break;
  419. case "SizeAndDefect":
  420. processParams = _libSizeDefectProp.serialize();
  421. break;
  422. }
  423. model.ProcessList.Insert(liInsertIndex, new Models.StepProcess()
  424. {
  425. ProcessCode = processCode,
  426. ProcessName = SysMgr.ProcessType[processCode],
  427. Order = liInsertIndex,
  428. ModifyUserCode = SysMgr.Instance.UserMgr.LoginUser.Code,
  429. CreateUserCode = SysMgr.Instance.UserMgr.LoginUser.Code,
  430. ProcessParams = processParams
  431. });
  432. reOrderProcess();
  433. this.refreshDataGridView();
  434. this.dataGridView2.Rows[liInsertIndex].Selected = true;
  435. dataGridView2.CurrentCell = dataGridView2.Rows[liInsertIndex].Cells[1];
  436. }
  437. catch (Exception ex)
  438. {
  439. MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
  440. }
  441. }
  442. private void btnDel_Click(object sender, EventArgs e)
  443. {
  444. try
  445. {
  446. if (this.dataGridView2.SelectedRows.Count != 1)
  447. throw new Exception("请选择要删除的工序!");
  448. int liRowIndex = this.dataGridView2.SelectedRows[0].Index;
  449. model.ProcessList.RemoveAt(liRowIndex);
  450. if (liRowIndex >= dataGridView2.Rows.Count - 1)
  451. liRowIndex = dataGridView2.Rows.Count - 1;
  452. dataGridView2.CurrentCell = dataGridView2.Rows[liRowIndex].Cells[1];
  453. //reOrderProcess();
  454. this.refreshDataGridView();
  455. if (dataGridView2.Rows.Count < 1)
  456. return;
  457. if (liRowIndex >= dataGridView2.Rows.Count)
  458. liRowIndex = dataGridView2.Rows.Count - 1;
  459. dataGridView2.CurrentCell = dataGridView2.Rows[liRowIndex].Cells[1];
  460. }
  461. catch (Exception ex)
  462. {
  463. MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
  464. }
  465. }
  466. private void btnUp_Click(object sender, EventArgs e)
  467. {
  468. try
  469. {
  470. if (this.dataGridView2.SelectedRows.Count != 1)
  471. throw new Exception("请选择要调整顺序的工序!");
  472. int liSelIndex = this.dataGridView2.SelectedRows[0].Index;
  473. if (liSelIndex == 0)
  474. return;
  475. model.ProcessList.Insert(liSelIndex - 1, model.ProcessList[liSelIndex]);
  476. model.ProcessList.RemoveAt(liSelIndex + 1);
  477. reOrderProcess();
  478. this.refreshDataGridView();
  479. this.dataGridView2.Rows[liSelIndex - 1].Selected = true;
  480. dataGridView2.CurrentCell = dataGridView2.Rows[liSelIndex - 1].Cells[1];
  481. }
  482. catch (Exception ex)
  483. {
  484. MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
  485. }
  486. }
  487. private void btnDown_Click(object sender, EventArgs e)
  488. {
  489. try
  490. {
  491. if (this.dataGridView2.SelectedRows.Count != 1)
  492. throw new Exception("请选择要调整顺序的工序!");
  493. int liSelIndex = this.dataGridView2.SelectedRows[0].Index;
  494. if (liSelIndex == this.dataGridView2.Rows.Count - 1)
  495. return;
  496. model.ProcessList.Insert(liSelIndex + 2, model.ProcessList[liSelIndex]);
  497. model.ProcessList.RemoveAt(liSelIndex);
  498. reOrderProcess();
  499. this.refreshDataGridView();
  500. this.dataGridView2.Rows[liSelIndex + 1].Selected = true;
  501. dataGridView2.CurrentCell = dataGridView2.Rows[liSelIndex + 1].Cells[1];
  502. }
  503. catch (Exception ex)
  504. {
  505. MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
  506. }
  507. }
  508. #endregion
  509. private void refreshUI()
  510. {
  511. SyncContext.Post(m =>
  512. {
  513. var result = m as string;
  514. ProcessPropertyGrid.Refresh();
  515. //tbtnJogOnOff.Text = (prop.AxState == AxisState.STA_AX_EXT_JOG) ? "关闭Jog" : "开启Jog";
  516. //tbtnLeft.Enabled = tbtnRight.Enabled = (prop.AxState == AxisState.STA_AX_EXT_JOG);
  517. }, "异步操作完成结果");
  518. }
  519. private void ProcessPropertyGrid_PropertyValueChanged(object s, PropertyValueChangedEventArgs e)
  520. {
  521. //其中包含了两个重要的属性:OldValue和ChangeItem。
  522. //ChangeItem是“PropertyDescriptorGridEntry”类型。一般可以通过ChangeItem.PropertyDescriptor.ComponentType查找到属性的实际类型。
  523. //而通过ChangeItem的Label,则可以查看到当前在属性编辑输入框中显示的值。
  524. int Index = this.dataGridView2.CurrentRow.Index;//获取当前选中行的索引
  525. string className = e.ChangedItem.PropertyDescriptor.ComponentType.Name;
  526. string propertyName = e.ChangedItem.PropertyDescriptor.Name;
  527. var oldValue = e.OldValue;
  528. var newValue = e.ChangedItem.Value;
  529. switch (propertyName)
  530. {
  531. case "ChannelIndex":
  532. if ((int)newValue < 1 || (int)newValue > 6)
  533. {
  534. _ProcessLightProp.ChannelIndex = (int)oldValue;
  535. this.refreshUI();
  536. }
  537. else
  538. {
  539. //dev.getDigitalValue((int)newValue);
  540. }
  541. break;
  542. case "DigitalValue":
  543. if ((int)newValue < 0 || (int)newValue > 255)
  544. {
  545. _ProcessLightProp.DigitalValue = (int)oldValue;
  546. this.refreshUI();
  547. }
  548. break;
  549. //case "ThresholdsClass":
  550. // if (!IsNumber(newValue.ToString().Replace("-", "").Replace(",", "").Replace(";", "").Replace(".", "")))
  551. // txtLog.Text = "种类阀值只可输入数字!";
  552. // else if (!verifyThresholdsCount(newValue.ToString(), prop.ThresholdsClassCount))
  553. // txtLog.Text = "输入种类阀值与数量不一致!";
  554. // else
  555. // txtLog.Text = "";
  556. // break;
  557. //case "ThresholdsClassCount":
  558. // if (!verifyThresholdsCount(prop.ThresholdsClass, (int)newValue))
  559. // txtLog.Text = "输入种类阀值与数量不一致!";
  560. // else
  561. // txtLog.Text = "";
  562. // break;
  563. }
  564. switch (className)
  565. {
  566. case "TensionProp":
  567. this.dataGridView2.Rows[Index].Cells["colProcessParams"].Value = _ProcessTensionProp.serialize();
  568. break;
  569. case "ThicknessProp":
  570. this.dataGridView2.Rows[Index].Cells["colProcessParams"].Value = _ProcessThicknessProp.serialize();
  571. break;
  572. case "LensProp":
  573. this.dataGridView2.Rows[Index].Cells["colProcessParams"].Value = _ProcessLensProp.serialize();
  574. break;
  575. case "LightProp":
  576. this.dataGridView2.Rows[Index].Cells["colProcessParams"].Value = _ProcessLightProp.serialize();
  577. break;
  578. case "MarkProp":
  579. this.dataGridView2.Rows[Index].Cells["colProcessParams"].Value = _ProcessMarkProp.serialize();
  580. break;
  581. case "SizeDefectProp":
  582. this.dataGridView2.Rows[Index].Cells["colProcessParams"].Value = _ProcessSizeDefectProp.serialize();
  583. break;
  584. case "PointTestProp":
  585. this.dataGridView2.Rows[Index].Cells["colProcessParams"].Value = _ProcessPointTestProp.serialize();
  586. break;
  587. case "ForProp":
  588. this.dataGridView2.Rows[Index].Cells["colProcessParams"].Value = _ProcessForProp.serialize();
  589. break;
  590. }
  591. }
  592. }
  593. }