FrmPlanStoveF.cs 30 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681
  1. using Core.Mes.Client.Comm.Control;
  2. using Core.Mes.Client.Comm.Format;
  3. using Core.Mes.Client.Comm.Tool;
  4. using Core.StlMes.Client.PlnSaleOrd.BaseMethod;
  5. using Core.StlMes.Client.PlnSaleOrd.工序排产;
  6. using Core.StlMes.Client.PlnSaleOrd.炉计划.Entity;
  7. using Core.StlMes.Client.PlnSaleOrd.炉计划.Tool;
  8. using CoreFS.CA06;
  9. using Infragistics.Win;
  10. using Infragistics.Win.UltraWinGrid;
  11. using System;
  12. using System.Collections;
  13. using System.Collections.Generic;
  14. using System.ComponentModel;
  15. using System.Data;
  16. using System.Drawing;
  17. using System.IO;
  18. using System.Linq;
  19. using System.Text;
  20. using System.Windows.Forms;
  21. namespace Core.StlMes.Client.PlnSaleOrd.炉计划
  22. {
  23. public partial class FrmPlanStoveF : FrmBase
  24. {
  25. private ArrayList _EntityList = null;
  26. private string[] plineCode = null;//获取产线代码
  27. /// <summary>
  28. /// 虚拟炉计划id
  29. /// </summary>
  30. private string _heatPlanNo = "";
  31. /// <summary>
  32. /// 行首背景色
  33. /// </summary>
  34. private Color _backColor = new Color();
  35. public FrmPlanStoveF()
  36. {
  37. this.IsLoadUserView = true;
  38. InitializeComponent();
  39. }
  40. private void FrmPlanStoveF_Load(object sender, EventArgs e)
  41. {
  42. //订单排产
  43. EntityHelper.ShowGridCaption<PlnZyRclMEntity>(ultraGridZy.DisplayLayout.Bands[0]);
  44. EntityHelper.ShowGridCaption<PlnZyRclReadyEntity>(ultraGrid1.DisplayLayout.Bands[0]);
  45. //BaseHelper.setOtherColumnReadOnly(ultraGridZy, new string[] { "CHC" });
  46. BaseHelper.setUltraGridColumnMaxInput(ultraGridZy, new string[] { "PlnInsingleWt", "PlnOutsingleW", "PlnIndoubleWt", "PlnOutdoubleW" });
  47. BaseHelper.setUltraGridColumnBits(ultraGridZy, new string[] { "PlnInsingleNum", "PlnOutsingleNum", "PlnIndoubleNum", "PlnOutdoubleNum" });
  48. BaseHelper.InitCellPosition(ultraGridZy, new string[] { "GxProSeq", "GxPlanNo","OrderSeq", "DeliveryNo", "PlnInsingleNum", "PlnInsingleWt", "PlnIndoubleNum","PlnIndoubleWt","PlnOutsingleNum","PlnOutsingleW" ,"PlnOutdoubleNum","PlnOutdoubleW","OutdiameterIn","WallthickIn","LengthIn","LengthmaxIn",
  49. "LengthminIn","OutnumCut","Outdiameter","Wallthick","Lengthmin","Lengthmax","CraftSeq"});
  50. BaseHelper.GridColumnSum(ultraGridZy, new string[] { "PlnInsingleWt", "PlnOutsingleW", "PlnIndoubleWt", "PlnOutdoubleW" });
  51. BaseHelper.GridColumnCount(ultraGridZy, new string[] { "PlnInsingleNum", "PlnOutsingleNum", "PlnIndoubleNum", "PlnOutdoubleNum" });
  52. //BaseHelper.InitCellPositionMiddle(ultraGridZy, new string[] { "Isendgx", "IfWlMatched", "IfMonitorZg" });
  53. plineCode = PlanHelper.InitDropPlinePower("F", txtLine, this.ValidDataPurviewIds, this.ob);
  54. StoveHelper.ForbidSort(ultraGridZy);
  55. //BaseHelper.setOtherColumnReadOnly(ultraGrid1, new string[] { "CHC" });
  56. BaseHelper.setUltraGridColumnMaxInput(ultraGrid1, new string[] { "RealOutdoubleWt", "RealIndoubleWt", "PlanIndoubleWt"});
  57. BaseHelper.setUltraGridColumnBits(ultraGrid1, new string[] { "RealOutdoubleNum", "RealIndoubleNum", "PlanIndoubleNum"});
  58. BaseHelper.InitCellPosition(ultraGrid1, new string[] { "GxProSeq", "GxPlanNo","OrderSeq", "DeliveryNo", "PlnInsingleNum", "PlnInsingleWt", "PlnIndoubleNum","PlnIndoubleWt","PlnOutsingleNum","PlnOutsingleW" ,"PlnOutdoubleNum","PlnOutdoubleW","OutdiameterIn","WallthickIn","LengthIn","LengthmaxIn",
  59. "LengthminIn","OutnumCut", "Outdiameter","Wallthick","Lengthmin","Lengthmax","CraftSeq","RealOutdoubleWt", "RealIndoubleWt", "RealOutdoubleNum", "RealIndoubleNum"});
  60. BaseHelper.GridColumnSum(ultraGrid1, new string[] { "RealOutdoubleWt", "RealIndoubleWt", "PlanIndoubleWt" });
  61. BaseHelper.GridColumnCount(ultraGrid1, new string[] { "RealOutdoubleNum", "RealIndoubleNum", "PlanIndoubleNum" });
  62. StoveHelper.ForbidSort(ultraGrid1);
  63. InitDate();
  64. BaseHelper.SetGroupBySum(ultraGrid1, new string[] { "PlnInsingleWt", "PlnOutsingleW", "PlnIndoubleWt", "PlnOutdoubleW", "PlnInsingleNum", "PlnOutsingleNum", "PlnIndoubleNum", "PlnOutdoubleNum" }, "HeatPlanNo");
  65. InitDate();
  66. BaseHelper.InitComboEditor(ultraComboEditor1, "com.steering.pss.plnsaleord.planStove.FrmPlanStoveD.doQueryStorageNo", "STORAGE_NO", ob, true);
  67. }
  68. private void ultraGrid1_InitializeLayout(object sender, InitializeLayoutEventArgs e)
  69. {
  70. StoveHelper.CustomMergedCellEvaluator merge = new StoveHelper.CustomMergedCellEvaluator("HeatPlanNo");
  71. e.Layout.Bands[0].Columns["HeatPlanNo"].MergedCellStyle = MergedCellStyle.Always;
  72. e.Layout.Bands[0].Columns["HeatPlanNo"].MergedCellEvaluator = merge;
  73. e.Layout.Bands[0].Columns["JudgeStoveNo"].MergedCellStyle = MergedCellStyle.Always;
  74. e.Layout.Bands[0].Columns["JudgeStoveNo"].MergedCellEvaluator = merge;
  75. e.Layout.Bands[0].Columns["StoveNo"].MergedCellStyle = MergedCellStyle.Always;
  76. e.Layout.Bands[0].Columns["StoveNo"].MergedCellEvaluator = merge;
  77. e.Layout.Bands[0].Columns["PlnInsingleWt"].MergedCellStyle = MergedCellStyle.Always;
  78. e.Layout.Bands[0].Columns["PlnInsingleWt"].MergedCellEvaluator = merge;
  79. e.Layout.Bands[0].Columns["PlnOutsingleW"].MergedCellStyle = MergedCellStyle.Always;
  80. e.Layout.Bands[0].Columns["PlnOutsingleW"].MergedCellEvaluator = merge;
  81. e.Layout.Bands[0].Columns["PlnIndoubleWt"].MergedCellStyle = MergedCellStyle.Always;
  82. e.Layout.Bands[0].Columns["PlnIndoubleWt"].MergedCellEvaluator = merge;
  83. e.Layout.Bands[0].Columns["PlnOutdoubleW"].MergedCellStyle = MergedCellStyle.Always;
  84. e.Layout.Bands[0].Columns["PlnOutdoubleW"].MergedCellEvaluator = merge;
  85. e.Layout.Bands[0].Columns["PlnInsingleNum"].MergedCellStyle = MergedCellStyle.Always;
  86. e.Layout.Bands[0].Columns["PlnInsingleNum"].MergedCellEvaluator = merge;
  87. e.Layout.Bands[0].Columns["PlnOutsingleNum"].MergedCellStyle = MergedCellStyle.Always;
  88. e.Layout.Bands[0].Columns["PlnOutsingleNum"].MergedCellEvaluator = merge;
  89. e.Layout.Bands[0].Columns["PlnIndoubleNum"].MergedCellStyle = MergedCellStyle.Always;
  90. e.Layout.Bands[0].Columns["PlnIndoubleNum"].MergedCellEvaluator = merge;
  91. e.Layout.Bands[0].Columns["PlnOutdoubleNum"].MergedCellStyle = MergedCellStyle.Always;
  92. e.Layout.Bands[0].Columns["PlnOutdoubleNum"].MergedCellEvaluator = merge;
  93. e.Layout.Bands[0].Columns["ZyBatchId"].MergedCellStyle = MergedCellStyle.Always;
  94. e.Layout.Bands[0].Columns["ZyBatchId"].MergedCellEvaluator = merge;
  95. e.Layout.Bands[0].Columns["GxProSeq"].MergedCellStyle = MergedCellStyle.Always;
  96. e.Layout.Bands[0].Columns["GxProSeq"].MergedCellEvaluator = merge;
  97. e.Layout.Bands[0].Columns["Planstatus"].MergedCellStyle = MergedCellStyle.Always;
  98. e.Layout.Bands[0].Columns["Planstatus"].MergedCellEvaluator = merge;
  99. }
  100. /// <summary>
  101. /// 初始时间
  102. /// </summary>
  103. private void InitDate()
  104. {
  105. DateTime datetime = DateTime.Now;
  106. dateBegin.Value = datetime.AddDays(1 - datetime.Day);
  107. dateEnd.Value = datetime.AddDays(1 - datetime.Day).AddMonths(1).AddDays(-1);
  108. }
  109. private void chcLine_CheckedChanged(object sender, EventArgs e)
  110. {
  111. if (chcLine.Checked) { txtLine.Enabled = true; } else { txtLine.Enabled = false; }
  112. if (chcProPlanId.Checked) { txtProPlanId.Enabled = true; } else { txtProPlanId.Enabled = false; }
  113. if (chcOrderNo.Checked) { txtOrderNo.Enabled = true; } else { txtOrderNo.Enabled = false; }
  114. if (chcId.Checked) { txtId.Enabled = true; } else { txtId.Enabled = false; }
  115. if (chcTime.Checked) { dateBegin.Enabled = true; dateEnd.Enabled = true; } else { dateBegin.Enabled = false; dateEnd.Enabled = false; }
  116. if (chcJudgeNo.Checked) { txtJudgeNo.Enabled = true; } else { txtJudgeNo.Enabled = false; }
  117. if (txtFeedCheck.Checked) { txtFeedHeatNo.Enabled = true; } else { txtFeedHeatNo.Enabled = false; }
  118. }
  119. public override void ToolBar_Click(object sender, string ToolbarKey)
  120. {
  121. base.ToolBar_Click(sender, ToolbarKey);
  122. switch (ToolbarKey)
  123. {
  124. case "Query"://查询
  125. Query();
  126. break;
  127. case "UpdateGoWhere":
  128. updateGoWhere();
  129. break;
  130. case "UpdateLoadFlag":
  131. updateLoadFlag();
  132. break;
  133. case "UpdateIsWeight":
  134. updateIsWeight();
  135. break;
  136. case "Export": //导出
  137. Export();
  138. break;
  139. case "Print":
  140. doPrint();
  141. break;
  142. case "Print2":
  143. doPrint2();
  144. break;
  145. case "Close": //关闭
  146. this.Close();
  147. break;
  148. case "Excel":
  149. doExcel();
  150. break;
  151. default:
  152. break;
  153. }
  154. }
  155. /// <summary>
  156. /// 装炉指示卡
  157. /// </summary>
  158. private void doPrint()
  159. {
  160. this.ultraGridZy.UpdateData();
  161. UltraGridRow uRow = this.ultraGridZy.ActiveRow;
  162. if (uRow == null)
  163. {
  164. return;
  165. }
  166. ArrayList parm = new ArrayList();
  167. PlnZyRclMEntity plnZyRclMEntity = (PlnZyRclMEntity)uRow.ListObject;
  168. int countM = 0;
  169. string judgeStoveNo = "";
  170. string plineCode = "";
  171. string heatPlanNo = "";
  172. foreach (UltraGridRow item in ultraGridZy.Rows)
  173. {
  174. if (Convert.ToBoolean(item.Cells["CHC"].Text) == true)
  175. {
  176. countM++;
  177. plineCode = item.Cells["PlineCode"].Text.ToString().Trim();
  178. judgeStoveNo += "'" + item.Cells["FeedHeatNo"].Text.ToString().Trim() + "',";
  179. heatPlanNo += "'" + item.Cells["HeatPlanNo"].Text.ToString().Trim() + "',";
  180. }
  181. }
  182. if (countM == 0)
  183. {
  184. MessageUtil.ShowTips("请勾选需要打印的热处理炉计划主信息!");
  185. return;
  186. }
  187. //TZH 24.11.7 按照现场的需求取消
  188. //if (countM > 10)
  189. //{
  190. // MessageUtil.ShowTips("一次最多打印10个炉计划!");
  191. // return;
  192. //}
  193. if (judgeStoveNo.Equals("")) return;
  194. judgeStoveNo = judgeStoveNo.Substring(1, judgeStoveNo.Length - 3);
  195. if (heatPlanNo.Equals("")) return;
  196. heatPlanNo = heatPlanNo.Substring(1, heatPlanNo.Length - 3);
  197. string url = "http://172.54.10.42:8080/webroot/decision/view/report?viewlet=RepHttProductionPlanTH.cpt&JUDGE_STOVE_NO=" + judgeStoveNo + "&HEAT_PLAN_NO=" + heatPlanNo;
  198. FrmRepExcel fre = new FrmRepExcel(this.ob, url);
  199. //fre.AutoSize = true;
  200. fre.MaximumSize = new Size(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height);
  201. fre.Text = "装炉指示卡";
  202. fre.ShowDialog();
  203. }
  204. /// <summary>
  205. /// 生产流动卡
  206. /// </summary>
  207. private void doPrint2()
  208. {
  209. this.ultraGridZy.UpdateData();
  210. UltraGridRow uRow = this.ultraGridZy.ActiveRow;
  211. if (uRow == null)
  212. {
  213. return;
  214. }
  215. ArrayList parm = new ArrayList();
  216. int countM = 0;
  217. string judgeStoveNo = "";
  218. string plineCode = "";
  219. string heatPlanNo = "";
  220. foreach (UltraGridRow item in ultraGridZy.Rows)
  221. {
  222. if (Convert.ToBoolean(item.Cells["CHC"].Text) == true)
  223. {
  224. countM++;
  225. plineCode = item.Cells["PlineCode"].Text.ToString().Trim();
  226. judgeStoveNo += "'" + item.Cells["FeedHeatNo"].Text.ToString().Trim() + "',";
  227. heatPlanNo += "'" + item.Cells["HeatPlanNo"].Text.ToString().Trim() + "',";
  228. }
  229. }
  230. if (countM == 0)
  231. {
  232. MessageUtil.ShowTips("请勾选需要打印的热处理生产流动卡信息!");
  233. return;
  234. }
  235. if (countM > 1)
  236. {
  237. MessageUtil.ShowTips("一次最多打印1个生产流动卡!");
  238. return;
  239. }
  240. if (judgeStoveNo.Equals("")) return;
  241. judgeStoveNo = judgeStoveNo.Substring(1, judgeStoveNo.Length - 3);
  242. if (heatPlanNo.Equals("")) return;
  243. heatPlanNo = heatPlanNo.Substring(1, heatPlanNo.Length - 3);
  244. string url = "http://172.54.10.42:8080/webroot/decision/view/report?viewlet=RepHttDeliveryCardTH.cpt&JUDGE_STOVE_NO=" + judgeStoveNo + "&HEAT_PLAN_NO=" + heatPlanNo;
  245. FrmRepExcel fre = new FrmRepExcel(this.ob, url);
  246. //fre.AutoSize = true;
  247. fre.MaximumSize = new Size(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height);
  248. fre.Text = "生产流动卡";
  249. fre.ShowDialog();
  250. }
  251. private void updateIsWeight()
  252. {
  253. this.ultraGridZy.UpdateData();
  254. UltraGridRow row = this.ultraGridZy.ActiveRow;
  255. if (row == null)
  256. {
  257. return;
  258. }
  259. ArrayList parmList = new ArrayList();
  260. PlnZyRclMEntity plnDbkTity = (PlnZyRclMEntity)row.ListObject;
  261. string plnZgEntity = JSONFormat.Format(plnDbkTity);
  262. parmList.Add(plnZgEntity);
  263. CoreClientParam ccp = new CoreClientParam();
  264. ccp.ServerName = "com.steering.pss.plnsaleord.planStove.FrmPlanStoveF";
  265. ccp.MethodName = "updateIsWeight";
  266. ccp.ServerParams = new object[] { parmList };
  267. ccp = ob.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  268. if (ccp.ReturnCode != -1)
  269. {
  270. if (ccp.ReturnInfo.Equals("修改成功!"))
  271. {
  272. QueryM();
  273. MessageUtil.ShowTips(ccp.ReturnInfo);
  274. }
  275. else
  276. {
  277. MessageUtil.ShowTips(ccp.ReturnInfo);
  278. }
  279. }
  280. }
  281. /// <summary>
  282. /// 标识库位不变
  283. /// </summary>
  284. private void updateLoadFlag()
  285. {
  286. this.ultraGridZy.UpdateData();
  287. UltraGridRow row = this.ultraGridZy.ActiveRow;
  288. if (row == null)
  289. {
  290. return;
  291. }
  292. ArrayList parmList = new ArrayList();
  293. PlnZyRclMEntity plnDbkTity = (PlnZyRclMEntity)row.ListObject;
  294. string plnZgEntity = JSONFormat.Format(plnDbkTity);
  295. parmList.Add(plnZgEntity);
  296. CoreClientParam ccp = new CoreClientParam();
  297. ccp.ServerName = "com.steering.pss.plnsaleord.planStove.FrmPlanStoveF";
  298. ccp.MethodName = "updateLoadFlag";
  299. ccp.ServerParams = new object[] { parmList,UserInfo.GetUserName() };
  300. ccp = ob.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  301. if (ccp.ReturnCode != -1)
  302. {
  303. if (ccp.ReturnInfo.Equals("修改成功!"))
  304. {
  305. QueryM();
  306. MessageUtil.ShowTips(ccp.ReturnInfo);
  307. }
  308. else
  309. {
  310. MessageUtil.ShowTips(ccp.ReturnInfo);
  311. }
  312. }
  313. }
  314. /// <summary>
  315. /// 修改去向
  316. /// </summary>
  317. private void updateGoWhere()
  318. {
  319. this.ultraGridZy.UpdateData();
  320. UltraGridRow row = this.ultraGridZy.ActiveRow;
  321. if (row == null)
  322. {
  323. return;
  324. }
  325. ArrayList parmList = new ArrayList();
  326. PlnZyRclMEntity plnDbkTity = (PlnZyRclMEntity)row.ListObject;
  327. plnDbkTity.GowhereCode = row.Cells["GowhereCode"].Value.ToString();
  328. plnDbkTity.GowhereName = row.Cells["GowhereCode"].Text.ToString();
  329. string plnZgEntity = JSONFormat.Format(plnDbkTity);
  330. parmList.Add(plnZgEntity);
  331. CoreClientParam ccp = new CoreClientParam();
  332. ccp.ServerName = "com.steering.pss.plnsaleord.planStove.FrmPlanStoveF";
  333. ccp.MethodName = "updateGoWhere";
  334. ccp.ServerParams = new object[] { parmList };
  335. ccp = ob.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  336. if (ccp.ReturnCode != -1)
  337. {
  338. if (ccp.ReturnInfo.Equals("修改成功!"))
  339. {
  340. QueryM();
  341. MessageUtil.ShowTips(ccp.ReturnInfo);
  342. }
  343. else
  344. {
  345. MessageUtil.ShowTips(ccp.ReturnInfo);
  346. }
  347. }
  348. }
  349. private void Query()
  350. {
  351. if (ultraExpandableGroupBox1.Expanded == false)
  352. {
  353. QueryC();
  354. }
  355. else
  356. {
  357. QueryM();
  358. }
  359. }
  360. private int activation = 0;
  361. /// <summary>
  362. /// 导出
  363. /// </summary>
  364. private void Export()
  365. {
  366. if (activation < 2)
  367. {
  368. GridHelper.ulGridToExcel(ultraGridZy, "热处理炉计划主信息");
  369. }
  370. else
  371. {
  372. GridHelper.ulGridToExcel(ultraGrid1, "热处理炉计划详情");
  373. }
  374. }
  375. /// <summary>
  376. /// 查询镦拔虚拟炉计划
  377. /// </summary>
  378. private void QueryM()
  379. { //产线
  380. string plineCode = "";
  381. if (chcLine.Checked)
  382. {
  383. plineCode = txtLine.Value == null ? "" : txtLine.Value.ToString();
  384. }
  385. //if (txtLine.Text.Equals(""))
  386. //{
  387. // MessageUtil.ShowTips("请选择产线!");
  388. // return;
  389. //}
  390. string timeBegin = "";
  391. string timeEnd = "";
  392. if (chcTime.Checked && dateBegin.Value != null && dateEnd.Value != null)
  393. {
  394. timeBegin = DateTime.Parse(dateBegin.Value.ToString()).ToString("yyyy-MM-dd");
  395. timeEnd = DateTime.Parse(dateEnd.Value.ToString()).ToString("yyyy-MM-dd");
  396. }
  397. string orderNo = "";
  398. if (chcOrderNo.Checked) { orderNo = txtOrderNo.Text.Trim(); }
  399. string proPlanId = "";
  400. if (chcProPlanId.Checked) { proPlanId = txtProPlanId.Text.Trim(); }
  401. string heatId = "";
  402. if (chcId.Checked) { heatId = txtId.Text.Trim(); }
  403. string judgeNo = "";
  404. if (chcJudgeNo.Checked) { judgeNo = txtJudgeNo.Text.Trim(); }
  405. string feedNo = "";
  406. if (txtFeedCheck.Checked) { feedNo = txtFeedHeatNo.Text.Trim(); }
  407. //执行状态
  408. string[] statusArr = contorlPlanStatusZy1.statusArr;
  409. List<PlnZyRclMEntity> listSource = EntityHelper.GetData<PlnZyRclMEntity>
  410. ("com.steering.pss.plnsaleord.planStove.FrmPlanStoveF.queryPlanStoveYzF", new object[] { timeBegin, timeEnd, plineCode, orderNo, proPlanId, heatId, statusArr, judgeNo, feedNo }, this.ob);
  411. plnZyRclMEntityBindingSource.DataSource = listSource;
  412. foreach (UltraGridRow ugr in ultraGridZy.Rows)
  413. {
  414. int countMess = 0;
  415. if (!_heatPlanNo.Equals(""))
  416. {
  417. if (ugr.Cells["HeatPlanNo"].Text.Trim().Equals(_heatPlanNo))
  418. {
  419. ugr.Activate();
  420. break;
  421. }
  422. }
  423. if (_EntityList != null)
  424. {
  425. for (int i = 0; i < _EntityList.Count; i++)
  426. {
  427. PlnZyRclMEntity entity = (PlnZyRclMEntity)_EntityList[i];
  428. if (ugr.Cells["HeatPlanNo"].Text.Trim().Equals(entity.HeatPlanNo))
  429. {
  430. ugr.Appearance.BackColor = Color.Wheat;
  431. ugr.Activate();
  432. }
  433. }
  434. }
  435. }
  436. _EntityList = null;
  437. _heatPlanNo = "";
  438. }
  439. /// <summary>
  440. /// 查询镦拔扩实际炉计划
  441. /// </summary>
  442. private void QueryC()
  443. {
  444. //产线
  445. string plineCode = "";
  446. if (chcLine.Checked)
  447. {
  448. plineCode = txtLine.Value == null ? "" : txtLine.Value.ToString();
  449. }
  450. //if (txtLine.Text.Equals(""))
  451. //{
  452. // MessageUtil.ShowTips("请选择产线!");
  453. // return;
  454. //}
  455. string timeBegin = "";
  456. string timeEnd = "";
  457. if (chcTime.Checked && dateBegin.Value != null && dateEnd.Value != null)
  458. {
  459. timeBegin = DateTime.Parse(dateBegin.Value.ToString()).ToString("yyyy-MM-dd");
  460. timeEnd = DateTime.Parse(dateEnd.Value.ToString()).ToString("yyyy-MM-dd");
  461. }
  462. string orderNo = "";
  463. if (chcOrderNo.Checked) { orderNo = txtOrderNo.Text.Trim(); }
  464. string proPlanId = "";
  465. if (chcProPlanId.Checked) { proPlanId = txtProPlanId.Text.Trim(); }
  466. string heatId = "";
  467. if (chcId.Checked) { heatId = txtId.Text.Trim(); }
  468. string judgeNo = "";
  469. if (chcJudgeNo.Checked) { judgeNo = txtJudgeNo.Text.Trim(); }
  470. string feedNo = "";
  471. if (txtFeedCheck.Checked) { feedNo = txtFeedHeatNo.Text.Trim(); }
  472. //执行状态
  473. string[] statusArr = contorlPlanStatusZy1.statusArr;
  474. List<PlnZyRclReadyEntity> listSource = EntityHelper.GetData<PlnZyRclReadyEntity>
  475. ("com.steering.pss.plnsaleord.planStove.FrmPlanStoveF.queryPlnZyDbkReadyById", new object[] { timeBegin, timeEnd, plineCode, orderNo, proPlanId, heatId, statusArr, judgeNo, feedNo }, this.ob);
  476. plnZyRclReadyEntityBindingSource.DataSource = listSource;
  477. foreach (UltraGridRow ugr in ultraGrid1.Rows)
  478. {
  479. //没有实际炉计划,主炉计划变颜色
  480. if (ugr.Cells["HeatPlanSqe"].Value.ToString().Equals(""))
  481. {
  482. //ugr.RowSelectorAppearance.BackColor = Color.GreenYellow;
  483. ugr.Appearance.BackColor = Color.Orange;
  484. }
  485. }
  486. }
  487. private void ultraGridZy_AfterRowActivate(object sender, EventArgs e)
  488. {
  489. UltraGridRow row = ultraGridZy.ActiveRow;
  490. if (row == null) return;
  491. QueryMRow(row.Cells["HeatPlanNo"].Text.ToString().Trim());
  492. }
  493. private void QueryMRow(string heatPlanNo)
  494. {
  495. List<PlnZyRclReadyEntity> listSourceM = EntityHelper.GetData<PlnZyRclReadyEntity>
  496. ("com.steering.pss.plnsaleord.planStove.FrmPlanStoveF.queryPlanStoveRow", new object[] { heatPlanNo }, ob);
  497. plnZyRclReadyEntityBindingSource.DataSource = listSourceM;
  498. foreach (UltraGridRow ugr in ultraGrid1.Rows)
  499. {
  500. //没有实际炉计划,主炉计划变颜色
  501. if (ugr.Cells["HeatPlanSqe"].Value.ToString().Equals(""))
  502. {
  503. //ugr.RowSelectorAppearance.BackColor = Color.GreenYellow;
  504. ugr.Appearance.BackColor = Color.Orange;
  505. }
  506. }
  507. }
  508. private int splitterDistance = 0;
  509. int count1 = 0;
  510. int count2 = 0;
  511. private void ultraExpandableGroupBox1_ExpandedStateChanged(object sender, EventArgs e)
  512. {
  513. if (ultraExpandableGroupBox1.Expanded == false)
  514. {
  515. this.splitContainer1.SplitterDistance = 26;
  516. count1 = 26;
  517. }
  518. else
  519. {
  520. if (ultraExpandableGroupBox2.Expanded == false)
  521. {
  522. this.splitContainer1.SplitterDistance = splitContainer1.Size.Height - 26;
  523. }
  524. else
  525. {
  526. this.splitContainer1.SplitterDistance = splitterDistance == 0 ? splitContainer1.Size.Height / 2 : splitterDistance;
  527. }
  528. count1 = splitContainer1.Size.Height - 26;
  529. }
  530. }
  531. private void ultraExpandableGroupBox2_ExpandedStateChanged(object sender, EventArgs e)
  532. {
  533. if (ultraExpandableGroupBox2.Expanded == false)
  534. {
  535. if (count1 == 0) { count1 = splitContainer1.Size.Height - 26; }
  536. this.splitContainer1.SplitterDistance = count1;
  537. }
  538. else
  539. {
  540. if (ultraExpandableGroupBox1.Expanded == false)
  541. {
  542. this.splitContainer1.SplitterDistance = 26;
  543. }
  544. else
  545. {
  546. //this.splitContainer1.SplitterDistance = count1;
  547. this.splitContainer1.SplitterDistance = splitterDistance == 0 ? splitContainer1.Size.Height / 2 : splitterDistance;
  548. }
  549. }
  550. }
  551. private void ultraGridZy_Click(object sender, EventArgs e)
  552. {
  553. activation = 1;
  554. }
  555. private void ultraGridZy_ClickCell(object sender, ClickCellEventArgs e)
  556. {
  557. activation = 1;
  558. }
  559. private void ultraGrid1_Click(object sender, EventArgs e)
  560. {
  561. activation = 2;
  562. }
  563. private void ultraGrid1_ClickCell(object sender, ClickCellEventArgs e)
  564. {
  565. activation = 2;
  566. }
  567. private void doExcel()
  568. {
  569. try
  570. {
  571. var reportUrls = new Dictionary<string, string>();
  572. foreach (UltraGridRow row in ultraGridZy.Rows)
  573. {
  574. if (Convert.ToBoolean(row.Cells["CHC"].Text) == true)
  575. {
  576. string plineCode = row.Cells["PlineCode"].Value.ToString();
  577. string judgeStoveNo = row.Cells["FeedHeatNo"].Value.ToString();
  578. string heatPlanNo = row.Cells["HeatPlanNo"].Value.ToString();
  579. /* if (judgeStoveNo.Equals("")) return;
  580. judgeStoveNo = judgeStoveNo.Substring(1, judgeStoveNo.Length - 3);
  581. if (heatPlanNo.Equals("")) return;
  582. heatPlanNo = heatPlanNo.Substring(1, heatPlanNo.Length - 3);*/
  583. string url = "http://172.54.10.42:8080/webroot/decision/view/report?viewlet=RepHttDeliveryCardTH.cpt&JUDGE_STOVE_NO=" + judgeStoveNo + "&HEAT_PLAN_NO=" + heatPlanNo;
  584. reportUrls.Add(url, judgeStoveNo);
  585. }
  586. }
  587. // 检查是否有选中的数据
  588. if (reportUrls.Count == 0)
  589. {
  590. MessageBox.Show("请先选择要导出的数据!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  591. return;
  592. }
  593. // 使用文件夹浏览器对话框选择目录
  594. using (FolderBrowserDialog folderDialog = new FolderBrowserDialog())
  595. {
  596. folderDialog.Description = "选择导出目录";
  597. folderDialog.SelectedPath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
  598. folderDialog.ShowNewFolderButton = true;
  599. if (folderDialog.ShowDialog() == DialogResult.OK)
  600. {
  601. string selectedDirectory = folderDialog.SelectedPath;
  602. string outputPath = Path.Combine(selectedDirectory, DateTime.Now.ToString("yyyyMMdd") + "热处理炉计划.xlsx");
  603. // 检查文件是否已存在,如果存在则询问是否覆盖
  604. if (File.Exists(outputPath))
  605. {
  606. DialogResult overwriteResult = MessageBox.Show("文件已存在,是否覆盖?", "确认覆盖",
  607. MessageBoxButtons.YesNo, MessageBoxIcon.Question);
  608. if (overwriteResult == DialogResult.No)
  609. {
  610. return; // 用户选择不覆盖,直接返回
  611. }
  612. }
  613. var merger = new MultiReportExcelMerger();
  614. string result = merger.MergeReportsUsingInterop(reportUrls, outputPath);
  615. if (result == "成功")
  616. {
  617. MessageBox.Show($"导出成功!\n文件已保存到:{outputPath}", "成功", MessageBoxButtons.OK, MessageBoxIcon.Information);
  618. // 可选:打开文件所在目录
  619. if (MessageBox.Show("是否打开文件所在目录?", "打开目录", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
  620. {
  621. System.Diagnostics.Process.Start("explorer.exe", $"/select,\"{outputPath}\"");
  622. }
  623. }
  624. else
  625. {
  626. MessageBox.Show($"导出出错: {result}", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
  627. }
  628. }
  629. }
  630. }
  631. catch (Exception ex)
  632. {
  633. MessageBox.Show($"导出出错: {ex.Message}", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
  634. }
  635. }
  636. }
  637. }