frmManualOperate.cs 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339
  1. using System;
  2. using System.Data;
  3. using System.Windows.Forms;
  4. using Core.Mes.Client.Common;
  5. using System.Collections;
  6. using Core.LgMes.Client.Comm;
  7. namespace Core.LgMes.Client.LgJobMgt
  8. {
  9. public partial class frmManualOperate : Form
  10. {
  11. public CoreFS.CA06.OpeBase ob;
  12. public string strStationCode = ""; //岗位编号
  13. public bool blTrade = false; //是否有切换工位信息
  14. public string strOldPos = ""; //原始工位
  15. public string strObjectPos = ""; //目标位置
  16. public string strOptcommandType = "";//操作命令类型
  17. public string strOptcaption = ""; //操作说明
  18. public string strNormalOpt = ""; //操作类型(正常操作、异常操作、互换信息)
  19. public frmManualOperate()
  20. {
  21. InitializeComponent();
  22. }
  23. private void frmManualOperate_Load(object sender, EventArgs e)
  24. {
  25. InitializeInfo();
  26. }
  27. /// <summary>
  28. /// 初始化所有信息
  29. /// </summary>
  30. private void InitializeInfo()
  31. {
  32. //初始化标题
  33. string strChineseName = CStaticMethod.analysChineseName(strStationCode);
  34. this.Text = strChineseName + "工序手动操作";
  35. if (strStationCode == "LFS" || strStationCode == "RHS" || strStationCode == "VDS")
  36. blTrade = true;
  37. //初始切换工位信息功能
  38. if (blTrade == true)
  39. ultegbTradeOpt.Visible = true;
  40. else
  41. {
  42. if (strStationCode == "CCM")
  43. this.Width = this.Width - ultegbTradeOpt.Width + 50;
  44. else
  45. this.Width = this.Width - ultegbTradeOpt.Width;
  46. }
  47. //作业手动操作配置信息
  48. GetManualOperateInfo();
  49. //初始化加载窗体时默认正常操作
  50. InitializeLoadDefaultOpt();
  51. }
  52. /// <summary>
  53. /// 初始化手动操作OptionSet控件
  54. /// </summary>
  55. private void InitializeOptSet(Infragistics.Win.UltraWinEditors.UltraOptionSet ultost)
  56. {
  57. //正常操作
  58. for (int i = 0; i < ultosNormalOpt.Items.Count; i++)
  59. {
  60. ultosNormalOpt.Items[i].Appearance.FontData.Bold = Infragistics.Win.DefaultableBoolean.Default;
  61. if (ultost != ultosNormalOpt)
  62. ultosNormalOpt.Value = false;
  63. }
  64. //异常操作
  65. for (int i = 0; i < ultosExpOpt.Items.Count; i++)
  66. {
  67. ultosExpOpt.Items[i].Appearance.FontData.Bold = Infragistics.Win.DefaultableBoolean.Default;
  68. if (ultost != ultosExpOpt)
  69. ultosExpOpt.Value = false;
  70. }
  71. //切换工位信息
  72. for (int i = 0; i < ultosTradeOpt.Items.Count; i++)
  73. {
  74. ultosTradeOpt.Items[i].Appearance.FontData.Bold = Infragistics.Win.DefaultableBoolean.Default;
  75. if (ultost != ultosTradeOpt)
  76. ultosTradeOpt.Value = false;
  77. }
  78. }
  79. /// <summary>
  80. /// 初始化加载窗体时默认正常操作
  81. /// </summary>
  82. private void InitializeLoadDefaultOpt()
  83. {
  84. foreach (Infragistics.Win.ValueListItem vli in ultosNormalOpt.Items)
  85. {
  86. if (strStationCode == "HMP")
  87. {
  88. ValueListItem listvalue = (ValueListItem)vli.DataValue;
  89. //根据炉次所在工位默认作操
  90. switch (strOldPos)
  91. {
  92. case "DEVICE": //处理位
  93. if (listvalue.ID == "_OVER") ultosNormalOpt.CheckedItem = vli;
  94. break;
  95. case "FRONT": //小车位
  96. if (listvalue.ID == "_DEVICE") ultosNormalOpt.CheckedItem = vli;
  97. break;
  98. default:
  99. break;
  100. }
  101. }
  102. if (strStationCode == "BOF")
  103. {
  104. ValueListItem listvalue =(ValueListItem) vli.DataValue;
  105. //根据炉次所在工位默认作操
  106. switch (strOldPos)
  107. {
  108. case "DEVICE": //吹炼位
  109. if (listvalue.ID == "_BACK") ultosNormalOpt.CheckedItem = vli;
  110. break;
  111. case "BACK": //出钢位
  112. if (listvalue.ID == "_IDLE") ultosNormalOpt.CheckedItem = vli;
  113. break;
  114. default:
  115. break;
  116. }
  117. }
  118. if (strStationCode == "CAS")
  119. {
  120. ValueListItem listvalue = (ValueListItem)vli.DataValue;
  121. //根据炉次所在工位默认作操
  122. switch (strOldPos)
  123. {
  124. case "IDLE": //缓冲位
  125. case "FRONT": //等待位
  126. if (listvalue.ID == "_FRONT") ultosNormalOpt.CheckedItem = vli;
  127. break;
  128. case "DEVICE": //处理位
  129. if (listvalue.ID == "_IDLE" && listvalue.Name=="出站") ultosNormalOpt.CheckedItem = vli;
  130. break;
  131. default:
  132. break;
  133. }
  134. }
  135. if (strStationCode == "LFS")
  136. {
  137. ValueListItem listvalue = (ValueListItem)vli.DataValue;
  138. //根据炉次所在工位默认作操
  139. switch (strOldPos)
  140. {
  141. case "IDLE": //缓冲位
  142. case "FRONT": //1#小车
  143. case "BACK": //2#小车
  144. if (listvalue.ID == "_DEVICE") ultosNormalOpt.CheckedItem = vli;
  145. break;
  146. case "DEVICE": //处理位
  147. if (listvalue.ID == "_IDLE" && listvalue.Name == "出站") ultosNormalOpt.CheckedItem = vli;
  148. break;
  149. default:
  150. break;
  151. }
  152. }
  153. if (strStationCode == "RHS")
  154. {
  155. ValueListItem listvalue = (ValueListItem)vli.DataValue;
  156. //根据炉次所在工位默认作操
  157. switch (strOldPos)
  158. {
  159. case "IDLE": //缓冲位
  160. case "FRONT": //1#小车
  161. case "BACK": //2#小车
  162. if (listvalue.ID == "_DEVICE") ultosNormalOpt.CheckedItem = vli;
  163. break;
  164. case "DEVICE": //处理位
  165. if (listvalue.ID == "_IDLE" && listvalue.Name == "出站") ultosNormalOpt.CheckedItem = vli;
  166. break;
  167. default:
  168. break;
  169. }
  170. }
  171. if (strStationCode == "VDS")
  172. {
  173. ValueListItem listvalue = (ValueListItem)vli.DataValue;
  174. //根据炉次所在工位默认作操
  175. switch (strOldPos)
  176. {
  177. case "IDLE": //缓冲位
  178. if (listvalue.ID == "_FRONT") ultosNormalOpt.CheckedItem = vli;
  179. break;
  180. case "FRONT": //1#处理位
  181. case "DEVICE": //2#处理位
  182. case "BACK": //2#处理位
  183. if (listvalue.ID == "_IDLE" && listvalue.Name == "出站") ultosNormalOpt.CheckedItem = vli;
  184. break;
  185. default:
  186. break;
  187. }
  188. }
  189. if (strStationCode == "CCM")
  190. {
  191. ValueListItem listvalue = (ValueListItem)vli.DataValue;
  192. //根据炉次所在工位默认作操
  193. switch (strOldPos)
  194. {
  195. case "IDLE": //缓冲位
  196. if (listvalue.ID == "_FRONT") ultosNormalOpt.CheckedItem = vli;
  197. break;
  198. case "FRONT": //换包位
  199. if (listvalue.ID == "_DEVICE") ultosNormalOpt.CheckedItem = vli;
  200. break;
  201. case "DEVICE": //2#处理位
  202. if (listvalue.ID == "_OVER" && listvalue.Name == "大包下台") ultosNormalOpt.CheckedItem = vli;
  203. break;
  204. default:
  205. break;
  206. }
  207. }
  208. }
  209. }
  210. /// <summary>
  211. /// 查询作业手动操作配置信息
  212. /// </summary>
  213. private void GetManualOperateInfo()
  214. {
  215. string strErr = "";
  216. int intNormaOptIndex = 0;
  217. int intExpOptIndex = 0;
  218. int intTradeOptIndex = 0;
  219. if (strStationCode == "") return;
  220. ArrayList arry = new ArrayList();
  221. arry.Add("GetManualOperateInfo.Select");//此ID为XML文件ID
  222. arry.Add(strStationCode);
  223. CommonClientToServer cctos = new CommonClientToServer();
  224. cctos.ob = ob;
  225. //查询作业手动操作配置信息
  226. DataSet ds = cctos.ExecuteQueryFunctions("Core.LgMes.Server.LgJobMgt.ClassCommonModule",
  227. "GetManualOperateInfo", arry, out strErr);
  228. if (strErr == "" && ds != null)
  229. {
  230. DataTable dtOpt = ds.Tables[0];
  231. foreach (DataRow drOpt in dtOpt.Rows)
  232. {
  233. //正常操作
  234. if (drOpt["OPTTYPE"].ToString() == "1")
  235. {
  236. ultosNormalOpt.Items.Add(new ValueListItem( drOpt["OBJECTPOS"].ToString(), drOpt["OPTCAPTION"].ToString() ));
  237. ultosNormalOpt.Items[intNormaOptIndex].Tag = drOpt["OPTCOMMANDTYPE"].ToString();
  238. intNormaOptIndex++;
  239. }
  240. //异常操作
  241. if (drOpt["OPTTYPE"].ToString() == "2")
  242. {
  243. ultosExpOpt.Items.Add(new ValueListItem(drOpt["OBJECTPOS"].ToString(), drOpt["OPTCAPTION"].ToString()));
  244. ultosExpOpt.Items[intExpOptIndex].Tag = drOpt["OPTCOMMANDTYPE"].ToString();
  245. intExpOptIndex++;
  246. }
  247. //切换工位信息
  248. if (drOpt["OPTTYPE"].ToString() == "3")
  249. {
  250. ultosTradeOpt.Items.Add(new ValueListItem(drOpt["OBJECTPOS"].ToString(), drOpt["OPTCAPTION"].ToString()));
  251. ultosTradeOpt.Items[intTradeOptIndex].Tag = drOpt["OPTCOMMANDTYPE"].ToString();
  252. intTradeOptIndex++;
  253. }
  254. }
  255. }
  256. }
  257. /// <summary>
  258. /// 确认作业手动操作
  259. /// </summary>
  260. private void ConfirmManualOpterate()
  261. {
  262. if (ultosNormalOpt.CheckedItem != null)
  263. {
  264. ValueListItem vli = (ValueListItem)ultosNormalOpt.CheckedItem.DataValue;
  265. strObjectPos = vli.ID;
  266. strOptcaption = vli.Name;
  267. strOptcommandType = ultosNormalOpt.CheckedItem.Tag.ToString();
  268. strNormalOpt = "1";
  269. }
  270. if (ultosExpOpt.CheckedItem != null)
  271. {
  272. ValueListItem vli = (ValueListItem)ultosExpOpt.CheckedItem.DataValue;
  273. strObjectPos = vli.ID;
  274. strOptcaption = vli.Name;
  275. strOptcommandType = ultosExpOpt.CheckedItem.Tag.ToString();
  276. strNormalOpt = "2";
  277. }
  278. if (ultosTradeOpt.CheckedItem != null)
  279. {
  280. ValueListItem vli = (ValueListItem)ultosTradeOpt.CheckedItem.DataValue;
  281. strObjectPos = vli.ID;
  282. strOptcaption = vli.Name;
  283. strOptcommandType = ultosTradeOpt.CheckedItem.Tag.ToString();
  284. strNormalOpt = "3";
  285. }
  286. }
  287. private void ultosNormalOpt_ValueChanged(object sender, EventArgs e)
  288. {
  289. Infragistics.Win.UltraWinEditors.UltraOptionSet ultOs = (Infragistics.Win.UltraWinEditors.UltraOptionSet)sender;
  290. if (ultOs.ValueList.SelectedIndex != -1)
  291. ultOs.Items[ultOs.ValueList.SelectedIndex].Appearance.FontData.Bold = Infragistics.Win.DefaultableBoolean.True;
  292. }
  293. private void ultosNormalOpt_Click(object sender, EventArgs e)
  294. {
  295. Infragistics.Win.UltraWinEditors.UltraOptionSet ultOs = (Infragistics.Win.UltraWinEditors.UltraOptionSet)sender;
  296. InitializeOptSet(ultOs);
  297. }
  298. private void ulttbmMain_ToolClick(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e)
  299. {
  300. switch (e.Tool.Key)
  301. {
  302. case "Confirm": //确认作业手动操作
  303. strObjectPos = "";
  304. strOptcommandType = "";
  305. ConfirmManualOpterate();
  306. this.Close();
  307. break;
  308. case "Cancel":
  309. this.Close();
  310. break;
  311. default:
  312. break;
  313. }
  314. }
  315. }
  316. }