FrmSpitWgt.cs 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307
  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 Core.Mes.Client.Comm.Tool;
  10. using CoreFS.CA06;
  11. namespace Core.StlMes.Client.PlnSaleOrd
  12. {
  13. public partial class FrmSpitWgt : FrmBase
  14. {
  15. /// <summary>
  16. /// 可分配重量
  17. /// </summary>
  18. private double waitSpitWgt;
  19. /// <summary>
  20. /// 可分配支数
  21. /// </summary>
  22. private int waitSpitNum;
  23. /// <summary>
  24. /// 已分配重量
  25. /// </summary>
  26. private double alreadySpitWgt = 0;
  27. /// <summary>
  28. /// 可分配剩余支数
  29. /// </summary>
  30. private int numF;
  31. public double AlreadySpitWgt
  32. {
  33. get { return alreadySpitWgt; }
  34. set { alreadySpitWgt = value; }
  35. }
  36. /// <summary>
  37. /// 已分配支数
  38. /// </summary>
  39. private int alreadySpitNum = 0;
  40. public int AlreadySpitNum
  41. {
  42. get { return alreadySpitNum; }
  43. set { alreadySpitNum = value; }
  44. }
  45. /// <summary>
  46. /// 可均分炉数
  47. /// </summary>
  48. private int countNum;
  49. /// <summary>
  50. /// 可均分炉数
  51. /// </summary>
  52. public int CountNum
  53. {
  54. get { return countNum; }
  55. set { countNum = value; }
  56. }
  57. /// <summary>
  58. /// 重量与支数比例
  59. /// </summary>
  60. private double spitRatio;
  61. private string procesCode;
  62. private string castingtype;
  63. private string furnDz;
  64. public FrmSpitWgt(double waitSpitWgt, int waitSpitNum, double spitRatio, string _procesCode, int _numF, string _castingtype,string _furnDz)
  65. {
  66. this.waitSpitWgt = waitSpitWgt;
  67. this.waitSpitNum = waitSpitNum;
  68. this.spitRatio = spitRatio;
  69. this.procesCode = _procesCode;
  70. castingtype = _castingtype;
  71. numF = _numF;
  72. furnDz = _furnDz;
  73. //窗体居中
  74. this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
  75. //取消窗体默认关闭按钮
  76. this.ControlBox = false;
  77. InitializeComponent();
  78. }
  79. private void FrmSpitWgt_Load(object sender, EventArgs e)
  80. {
  81. numEditorAllow.Value = waitSpitWgt;
  82. ultraNumericEditor1.Value = waitSpitNum;
  83. numEditorAlready.Value = 0;
  84. ultraNumericEditor2.Value = 0;
  85. if (procesCode.Equals("D"))
  86. {
  87. ultraLabel2.Text = "可分配需坯重量:";
  88. ultraLabel7.Text = "可分配需坯支数:";
  89. if (numF != 0)
  90. {
  91. int spitNum = int.Parse(waitSpitNum.ToString()) - numF;
  92. if (spitNum > 0)
  93. {
  94. ultraNumericEditor2.Value = spitNum;
  95. double spitWgt = spitNum * spitRatio;
  96. numEditorAlready.Value = spitWgt;
  97. }
  98. }
  99. //ultraNumericEditor3.Visible = false;
  100. //ultraLabel9.Visible = false;
  101. //ultraLabel10.Visible = false;
  102. }
  103. else if (procesCode.Equals("B"))
  104. {
  105. ultraLabel2.Text = "可分配待冶炼重量:";
  106. ultraLabel7.Text = "可分配待冶炼支数:";
  107. if (castingtype.Equals("连铸"))
  108. {
  109. numEditorAlready.Enabled = true;
  110. ultraNumericEditor2.Enabled = false;
  111. }
  112. else
  113. {
  114. numEditorAlready.Enabled = false;
  115. ultraNumericEditor2.Enabled = true;
  116. }
  117. //ultraNumericEditor3.Visible = true;
  118. //ultraLabel9.Visible = true;
  119. //ultraLabel10.Visible = true;
  120. }
  121. else
  122. {
  123. ultraLabel2.Text = "可分配待投入重量:";
  124. ultraLabel7.Text = "可分配待投入支数:";
  125. //ultraNumericEditor3.Visible = false;
  126. //ultraLabel9.Visible = false;
  127. //ultraLabel10.Visible = false;
  128. }
  129. }
  130. private void buttonCommit_Click(object sender, EventArgs e)
  131. {
  132. string spitNum = ultraNumericEditor2.Value == null ? "0" : ultraNumericEditor2.Value.ToString();
  133. //string spitWgt = numEditorAlready.Value == null ? "0" : numEditorAlready.Value.ToString();
  134. if (int.Parse(spitNum) <= 0)
  135. {
  136. MessageUtil.ShowWarning("分配支数不能为0支!");
  137. return;
  138. }
  139. if (Convert.ToInt32(spitNum) > waitSpitNum)
  140. {
  141. MessageUtil.ShowWarning("分配支数不能大于可分配支数!");
  142. return;
  143. }
  144. double spitWgt = Convert.ToInt32(spitNum) * spitRatio;
  145. alreadySpitWgt = Convert.ToDouble(spitWgt);
  146. //通过重量与支数的比例计划 分配支数
  147. alreadySpitNum = Convert.ToInt32(spitNum);
  148. //CountNum = Convert.ToInt32(ultraNumericEditor3.Value);
  149. CountNum = 1;
  150. this.Close();
  151. }
  152. private void buttonCancel_Click(object sender, EventArgs e)
  153. {
  154. this.Close();
  155. }
  156. //private void numEditorAlready_ValueChanged(object sender, EventArgs e)
  157. //{
  158. // if (numEditorAlready.Value == null)
  159. // {
  160. // numEditorAlready.Value = 0;
  161. // ultraNumericEditor2.Value = 0;
  162. // return;
  163. // }
  164. // string spitWgt = numEditorAlready.Value.ToString();
  165. // if (Double.Parse(spitWgt) > waitSpitWgt)
  166. // {
  167. // numEditorAlready.Value = waitSpitWgt;
  168. // ultraNumericEditor2.Value = waitSpitNum;
  169. // return;
  170. // }
  171. // int spitNum = (int)Math.Ceiling(alreadySpitWgt / spitRatio);
  172. // ultraNumericEditor2.Value = spitNum;
  173. //}
  174. //输入支数
  175. private void ultraNumericEditor2_ValueChanged(object sender, EventArgs e)
  176. {
  177. if (castingtype==null||!castingtype.Equals("连铸"))
  178. {
  179. if (ultraNumericEditor2 == null)
  180. {
  181. numEditorAlready.Value = 0;
  182. ultraNumericEditor2.Value = 0;
  183. return;
  184. }
  185. string spitNum = ultraNumericEditor2.Value.ToString();
  186. if (int.Parse(spitNum) > waitSpitNum)
  187. {
  188. numEditorAlready.Value = waitSpitWgt;
  189. ultraNumericEditor2.Value = waitSpitNum;
  190. return;
  191. }
  192. double spitWgt = int.Parse(spitNum) * spitRatio;
  193. numEditorAlready.Value = spitWgt;
  194. int numCont = 0;
  195. if (furnDz != null)
  196. {
  197. if (furnDz.Equals("1"))
  198. {
  199. numCont = (int)Math.Round(waitSpitWgt / spitWgt, 0);
  200. }
  201. else
  202. {
  203. numCont = (int)Math.Round(waitSpitWgt / spitWgt, 0) - 1;
  204. }
  205. if (numCont == 0)
  206. {
  207. numCont = 1;
  208. }
  209. }
  210. ultraNumericEditor3.Value = numCont;
  211. }
  212. }
  213. //输入重量
  214. private void numEditorAlready_ValueChanged(object sender, EventArgs e)
  215. {
  216. if (castingtype != null && castingtype.Equals("连铸"))
  217. {
  218. if (numEditorAlready == null)
  219. {
  220. numEditorAlready.Value = 0;
  221. ultraNumericEditor2.Value = 0;
  222. return;
  223. }
  224. string spitWt = numEditorAlready.Value.ToString();
  225. if (double.Parse(spitWt) > waitSpitWgt)
  226. {
  227. numEditorAlready.Value = waitSpitWgt;
  228. ultraNumericEditor2.Value = waitSpitNum;
  229. return;
  230. }
  231. int spitNum = (int)Math.Ceiling(double.Parse(spitWt) / spitRatio);
  232. ultraNumericEditor2.Value = spitNum;
  233. int numCont = 0;
  234. if (furnDz != null)
  235. {
  236. if (furnDz.Equals("1"))
  237. {
  238. numCont = (int)Math.Round(waitSpitWgt / double.Parse(spitWt), 0);
  239. }
  240. else
  241. {
  242. numCont = (int)Math.Round(waitSpitWgt / double.Parse(spitWt), 0) - 1;
  243. }
  244. if (numCont == 0)
  245. {
  246. numCont = 1;
  247. }
  248. }
  249. ultraNumericEditor3.Value = numCont;
  250. }
  251. }
  252. private void ultraNumericEditor3_ValueChanged(object sender, EventArgs e)
  253. {
  254. if (ultraNumericEditor3 == null)
  255. {
  256. ultraNumericEditor3.Value = 1;
  257. return;
  258. }
  259. if (numEditorAlready == null || double.Parse(numEditorAlready.Value.ToString()) == 0)
  260. {
  261. ultraNumericEditor3.Value = 1;
  262. }
  263. else
  264. {
  265. int numCont = 0;
  266. if (furnDz != null)
  267. {
  268. if (furnDz.Equals("1"))
  269. {
  270. numCont = (int)Math.Round(waitSpitWgt / double.Parse(numEditorAlready.Value.ToString()), 0);
  271. }
  272. else
  273. {
  274. numCont = (int)Math.Round(waitSpitWgt / double.Parse(numEditorAlready.Value.ToString()), 0) - 1;
  275. }
  276. if (numCont == 0)
  277. {
  278. numCont = 1;
  279. }
  280. }
  281. int countNum = int.Parse(ultraNumericEditor3.Value.ToString());
  282. if (countNum > numCont)
  283. {
  284. ultraNumericEditor3.Value = numCont;
  285. }
  286. }
  287. }
  288. }
  289. }