版博士V2.0程序
Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

StepInfoFrm.cs 13 KiB

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