frmManualOperate.cs 14 KB

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