frmPipePayIn.cs 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538
  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.StlMes.Client.YdmPipeManage.Controls;
  11. using System.Collections;
  12. using Core.Mes.Client.Comm.Server;
  13. using Core.Mes.Client.Comm.Control;
  14. using Infragistics.Win.UltraWinGrid;
  15. using Core.Mes.Client.Comm.Tool;
  16. using Infragistics.Win.UltraWinEditors;
  17. using Infragistics.Win;
  18. namespace Core.StlMes.Client.YdmPipeManage
  19. {
  20. public partial class frmPipePayIn : FrmBase
  21. {
  22. ArrayList pram = new ArrayList();
  23. private Dictionary<string, UltraComboEditor> cmbMatEditor = null;
  24. private string strInbound = "800701";//入库类型
  25. private string strInname = "";//入库类型名称
  26. private string strInMemo = "";//入库简码
  27. private int isSelect = 0;//新增
  28. private int isDelete = 0;//废除
  29. public frmPipePayIn()
  30. {
  31. InitializeComponent();
  32. }
  33. private void frmPipePayIn_Load(object sender, EventArgs e)
  34. {
  35. StorInfo();
  36. Init();
  37. ultraGrid2.Enabled = false;
  38. GridComboMat();
  39. RegStartTime.DateTime = DateTime.Parse(DateTime.Now.ToString("yyyy年MM月dd日") + " 00:00:00");
  40. RegEndTime.DateTime = DateTime.Parse(DateTime.Now.ToString("yyyy年MM月dd日") + " 23:59:59");
  41. ProEndTime.DateTime = DateTime.Parse(DateTime.Now.ToString("yyyy年MM月dd日") + " 23:59:59");
  42. doQuery();
  43. }
  44. /// <summary>
  45. /// 重写基类方法
  46. /// </summary>
  47. /// <param name="sender"></param>
  48. /// <param name="ToolbarKey"></param>
  49. public override void ToolBar_Click(object sender, string ToolbarKey)
  50. {
  51. switch (ToolbarKey)
  52. {
  53. case "Query":
  54. if (!CheckQuery()) return;
  55. doQuery();
  56. break;
  57. case "Add":
  58. doAdd();
  59. doQuery();
  60. break;
  61. case "Delete":
  62. doDelete();
  63. doQuery();
  64. break;
  65. case "Refresh":
  66. doRefresh();
  67. break;
  68. case "Export":
  69. GridHelper.ulGridToExcel(ultraGrid3, "产出入库实绩表");
  70. break;
  71. case "Colse":
  72. this.Close();
  73. break;
  74. }
  75. }
  76. private void GridComboMat()
  77. {
  78. int cout = cmbWarehous.Items.Count;
  79. cmbMatEditor = new Dictionary<string, UltraComboEditor>(cout);
  80. for (int i = 0; i < cmbWarehous.Items.Count; i++)
  81. {
  82. string phymaxcode = cmbWarehous.Items[i].DataValue.ToString();
  83. pram.Clear();
  84. pram.Add(phymaxcode);
  85. UltraComboEditor cmb = new UltraComboEditor();
  86. PipeManageClass.BindLocationInfo(pram, cmb, ob);
  87. cmb.Visible = false;
  88. cmbMatEditor.Add(phymaxcode, cmb);
  89. this.Controls.Add(cmb);
  90. }
  91. }
  92. /// <summary>
  93. /// 将生成的下拉框绑定到GRID
  94. /// </summary>
  95. /// <param name="e">初始化行时使用</param>
  96. /// <param name="ugr">Grid的子表行,刷新时用</param>
  97. ///
  98. private void BandComboToGrid(InitializeRowEventArgs e, UltraGridRow ugr)
  99. {
  100. string phycodemax = e.Row.Cells["STORAGE_NO"].Value.ToString();
  101. if (cmbMatEditor.ContainsKey(phycodemax))
  102. {
  103. e.Row.Cells["LOCATION_NO"].EditorComponent = cmbMatEditor[phycodemax];
  104. }
  105. else
  106. {
  107. e.Row.Cells["LOCATION_NO"].EditorComponent = null;
  108. }
  109. }
  110. /// <summary>
  111. /// 绑定仓库号
  112. /// </summary>
  113. private void StorInfo()
  114. {
  115. ArrayList arList = new ArrayList();
  116. //获取用户对应科室ID
  117. string User = this.UserInfo.GetDeptid();
  118. string StorageType = "";//根据传递的参数获取仓库类别
  119. string StorageAttr = "";////根据传递的参数获取仓库类型
  120. if (CustomInfo != "")
  121. {
  122. string[] strflg = CustomInfo.ToString().Split(new char[] { ',' });
  123. StorageType = strflg[0];
  124. StorageAttr = strflg[1];
  125. //strInbound = strflg[2];
  126. }
  127. pram.Clear();
  128. pram.Add(StorageType);
  129. pram.Add(StorageAttr);
  130. pram.Add(User);
  131. PipeManageClass.BindComBaseInfo(pram, cmbWarehous, ob);
  132. }
  133. /// <summary>
  134. /// 绑定原料位号下拉框
  135. /// </summary>
  136. private void Init()
  137. {
  138. //绑定料位号
  139. string strStorage = "";
  140. if (cmbWarehous.SelectedIndex != -1)
  141. {
  142. strStorage = cmbWarehous.Value.ToString();
  143. }
  144. pram.Clear();
  145. pram.Add(strStorage);
  146. PipeManageClass.BindLocationInfo(pram, cmbMaterial, ob);
  147. }
  148. /// <summary>
  149. /// 查询
  150. /// </summary>
  151. private void doQuery()
  152. {
  153. ArrayList list = new ArrayList();
  154. string strRegStart = "";
  155. string strRegEnd = "";
  156. string strProStart = "";
  157. string strProEnd = "";
  158. string strWare = "";//仓库号
  159. string strMat = "";//料位号
  160. string strFurnace = "";
  161. string strBatch = "";
  162. if (chkWarehous.Checked)
  163. {
  164. strWare = cmbWarehous.Value.ToString();
  165. }
  166. if (chkMaterial.Checked)
  167. {
  168. strMat = cmbMaterial.Value.ToString();
  169. }
  170. if (chkRegTime.Checked)
  171. {
  172. strRegStart = RegStartTime.Value.ToString();
  173. strRegEnd = RegEndTime.Value.ToString();
  174. }
  175. if (chkProTime.Checked)
  176. {
  177. strProStart = ProStartTime.Value.ToString();
  178. strProEnd = ProEndTime.Value.ToString();
  179. }
  180. if (chkFurnace.Checked)
  181. {
  182. strFurnace = txtFurnace.Text.Trim();
  183. }
  184. if (chkBatch.Checked)
  185. {
  186. strBatch = txtBatch.Text.Trim();
  187. }
  188. pram.Clear();
  189. pram.Add(strFurnace);
  190. //pram.Add(strBatch);
  191. //pram.Add(txtGroup.Text.Trim());
  192. pram.Add(strRegStart);
  193. pram.Add(strRegStart);
  194. pram.Add(strRegStart);
  195. pram.Add(strRegEnd);
  196. pram.Add(strRegEnd);
  197. //pram.Add(strProStart);
  198. //pram.Add(strProStart);
  199. //pram.Add(strProStart);
  200. //pram.Add(strProEnd);
  201. //pram.Add(strProEnd);
  202. pram.Add(this.UserInfo.GetUserName());
  203. if (ultraTabControl1.SelectedTab.Key.Equals("0"))
  204. {
  205. DataTable dt = PipeManageClass.getComPlineInfo(this.UserInfo.GetDeptid(), ob);
  206. if (dt.Rows.Count == 0) { MessageUtil.ShowTips("您所在的部门没有对应的产线,请配置!"); return; }
  207. for (int i = 0; i < dt.Rows.Count;i++ )
  208. {
  209. list.Add(dt.Rows[i]["PLINE_CODE"].ToString());
  210. }
  211. DataTable dtStor = ServerHelper.GetData("com.steering.pss.ydm.pipemanage.FrmPipePayIn.queryStorage", new object[] { pram, list }, ob);
  212. if (dtStor.Rows.Count == 0) { MessageUtil.ShowTips("您所在的部门没有对应的产线,请配置!"); return; }
  213. GridHelper.CopyDataToDatatable(dtStor, this.dataStorage, true);
  214. UltraGridBand ugb = this.ultraGrid1.DisplayLayout.Bands[0];
  215. UltraGridColumn[] col = new UltraGridColumn[] { ugb.Columns["STD_NAME"], ugb.Columns["MODEL_DESC"], ugb.Columns["PLINE_NAME"], ugb.Columns["SPEC_NAME"] };
  216. GridHelper.RefreshAndAutoSizeExceptColumns(ultraGrid1, col);
  217. this.ultraGrid1.DisplayLayout.Override.CellAppearance.TextTrimming = TextTrimming.EllipsisCharacter;
  218. }
  219. else
  220. {
  221. pram.Add(strWare);
  222. pram.Add(strMat);
  223. pram.Add(strInbound);
  224. DataTable dtIn = ServerHelper.GetData("com.steering.pss.ydm.pipemanage.FrmPipePayIn.queryInList", new object[] { pram }, ob);
  225. GridHelper.CopyDataToDatatable(dtIn, this.dataInList, true);
  226. UltraGridBand ugb = this.ultraGrid3.DisplayLayout.Bands[0];
  227. UltraGridColumn[] col = new UltraGridColumn[] { ugb.Columns["STD_NAME"], ugb.Columns["MODEL_DESC"], ugb.Columns["PLINE_NAME"], ugb.Columns["SPEC_NAME"] };
  228. GridHelper.RefreshAndAutoSizeExceptColumns(ultraGrid3, col);
  229. this.ultraGrid3.DisplayLayout.Override.CellAppearance.TextTrimming = TextTrimming.EllipsisCharacter;
  230. }
  231. }
  232. /// <summary>
  233. /// 新增
  234. /// </summary>
  235. private void doAdd()
  236. {
  237. UltraGridRow ugr = this.ultraGrid2.ActiveRow;
  238. UltraGridRow ugr1 = this.ultraGrid1.ActiveRow;
  239. if (ugr == null||isSelect==0) { MessageUtil.ShowTips("请选择库位信息!"); return; }
  240. int count = 0;
  241. if (MessageUtil.ShowYesNoAndQuestion("是否确认新增?") == DialogResult.No) return;
  242. foreach (Infragistics.Win.UltraWinGrid.UltraGridRow uRow in ultraGrid2.Rows)
  243. {
  244. if (uRow.Cells["ACT_COUNT"].Value.ToString() == "0"|| uRow.Cells["ACT_COUNT"].Value.ToString()=="") { MessageUtil.ShowTips("支数不能为空或为零!"); return; }
  245. if (Convert.ToBoolean(uRow.Cells["CHOOSE"].Text) == true)
  246. {
  247. if (!doAddCheck(uRow)) return;
  248. DataTable dt = PipeManageClass.getComTypeInfo(strInbound, ob);
  249. if (dt.Rows.Count >= 1)
  250. {
  251. strInname = dt.Rows[0]["BASENAME"].ToString();
  252. strInMemo = dt.Rows[0]["MEMO"].ToString();
  253. }
  254. else
  255. {
  256. MessageUtil.ShowTips("出库类型不能空,请确认基础信息是否有对应出库类型信息!");
  257. return;
  258. }
  259. pram.Clear();
  260. pram.Add(DateTime.Now.ToString("yyyy/MM/dd"));
  261. pram.Add(strInbound);
  262. DataTable dtList = PipeManageClass.getInList(pram, ob);
  263. string str = "";
  264. if (dtList.Rows.Count >= 1)
  265. {
  266. str = dtList.Rows[0]["INSTOCK_DOC"].ToString();
  267. }
  268. string strList = PipeManageClass.NextNumber(str, strInMemo, "00001");
  269. pram.Clear();
  270. pram.Add(ugr1.Cells["JUDGE_STOVE_NO"].Text.Trim());
  271. pram.Add(ugr1.Cells["BATCH_NO"].Text.Trim());
  272. pram.Add(ugr1.Cells["BATCH_GROUD_NO"].Text.Trim());
  273. pram.Add(ugr1.Cells["PLINE_CODE"].Text.Trim());
  274. pram.Add(uRow.Cells["ACT_COUNT"].Value.ToString());
  275. pram.Add(uRow.Cells["LOCATION_NO"].Value.ToString());
  276. pram.Add(uRow.Cells["STORAGE_NO"].Value.ToString());
  277. pram.Add(strInbound);
  278. pram.Add(strInname);
  279. pram.Add(strList);
  280. pram.Add(this.UserInfo.GetUserOrder());
  281. pram.Add(this.UserInfo.GetUserGroup());
  282. pram.Add(this.UserInfo.GetUserName());
  283. count = ServerHelper.SetData("com.steering.pss.ydm.pipemanage.FrmPipePayIn.addPipeSwtow", new object[] { pram }, ob);
  284. }
  285. }
  286. if (count != 0)
  287. {
  288. MessageUtil.ShowTips("新增成功!");
  289. }
  290. }
  291. private void doRefresh()
  292. {
  293. StorInfo();
  294. Init();
  295. }
  296. /// <summary>
  297. /// 作废
  298. /// </summary>
  299. private void doDelete()
  300. {
  301. UltraGridRow ugr = this.ultraGrid3.ActiveRow;
  302. if (ugr == null || isDelete==0) { MessageUtil.ShowTips("请选择你要作废的信息!"); return; }
  303. int count=0;
  304. if (MessageUtil.ShowYesNoAndQuestion("是否确认作废?") == DialogResult.No) return;
  305. foreach (Infragistics.Win.UltraWinGrid.UltraGridRow uRow in ultraGrid3.Rows)
  306. {
  307. if (Convert.ToBoolean(uRow.Cells["CHOOSE"].Text) == true)
  308. {
  309. pram.Clear();
  310. pram.Add(uRow.Cells["ACT_COUNT"].Text.Trim());
  311. pram.Add(uRow.Cells["JUDGE_STOVE_NO"].Text.Trim());
  312. pram.Add(uRow.Cells["BATCH_NO"].Text.Trim());
  313. pram.Add(uRow.Cells["BATCH_GROUD_NO"].Text.Trim());
  314. pram.Add(uRow.Cells["INSTOCK_TYPE_CODE"].Text.Trim());
  315. pram.Add(this.UserInfo.GetUserName());
  316. count = ServerHelper.SetData("com.steering.pss.ydm.pipemanage.FrmPipePayIn.deletePipeSwtow", new object[] { pram }, ob);
  317. }
  318. }
  319. if(count!=0)
  320. {
  321. MessageUtil.ShowTips("作废成功!");
  322. }
  323. }
  324. //新增时验证
  325. private bool doAddCheck(UltraGridRow urg)
  326. {
  327. if (urg.Cells["STORAGE_NO"].Text.Trim().Equals(""))
  328. {
  329. MessageUtil.ShowTips("仓库号不能为空!");
  330. return false;
  331. }
  332. if (urg.Cells["LOCATION_NO"].Text.Trim().Equals(""))
  333. {
  334. MessageUtil.ShowTips("料位不能为空!");
  335. return false;
  336. }
  337. if (urg.Cells["ACT_COUNT"].Value.Equals("0") || urg.Cells["ACT_COUNT"].Value.Equals(""))
  338. {
  339. MessageUtil.ShowTips("支数不能为空或为零!");
  340. return false;
  341. }
  342. return true;
  343. }
  344. ///查询时验证必填项
  345. private bool CheckQuery()
  346. {
  347. if (DataTimeUtil.JudgeTime(DateTime.Parse(RegStartTime.Value.ToString()), DateTime.Parse(RegEndTime.Value.ToString())) == 0)
  348. {
  349. MessageUtil.ShowTips("登记开始时间不能大于结束时间!");
  350. return false;
  351. }
  352. if (DataTimeUtil.JudgeTime(DateTime.Parse(ProStartTime.Value.ToString()), DateTime.Parse(ProEndTime.Value.ToString())) == 0)
  353. {
  354. MessageUtil.ShowTips("生产开始时间不能大于结束时间!");
  355. return false;
  356. }
  357. if (chkWarehous.Checked && string.IsNullOrEmpty(cmbWarehous.Text.Trim()))
  358. {
  359. MessageBox.Show("请选择仓库号!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  360. return false;
  361. }
  362. if (chkMaterial.Checked && string.IsNullOrEmpty(cmbMaterial.Text.Trim()))
  363. {
  364. MessageBox.Show("请选择料位号!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  365. return false;
  366. }
  367. if (chkFurnace.Checked && string.IsNullOrEmpty(txtFurnace.Text.Trim()))
  368. {
  369. MessageBox.Show("请输入炉号!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  370. return false;
  371. }
  372. if (chkBatch.Checked && string.IsNullOrEmpty(txtBatch.Text.Trim()))
  373. {
  374. MessageBox.Show("请输入批号!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  375. return false;
  376. }
  377. return true;
  378. }
  379. /// <summary>
  380. /// 验证Checked是否勾选,显示控件可编辑 打勾表示可编辑,不打勾表示不可编辑
  381. /// </summary>
  382. /// <param name="sender"></param>
  383. /// <param name="e"></param>
  384. private void chk_CheckedChanged(object sender, EventArgs e)
  385. {
  386. if (chkWarehous.Checked) { cmbWarehous.Enabled = true; } else { cmbWarehous.Enabled = false; }
  387. if (chkMaterial.Checked) { cmbMaterial.Enabled = true; } else { cmbMaterial.Enabled = false; }
  388. if (chkFurnace.Checked) { txtFurnace.Enabled = true; } else { txtFurnace.Enabled = false; }
  389. if (chkBatch.Checked) { txtBatch.Enabled = true; } else { txtBatch.Enabled = false; }
  390. if (chkRegTime.Checked) { RegStartTime.Enabled = true; RegEndTime.Enabled = true; } else { RegStartTime.Enabled = false; RegEndTime.Enabled = false; }
  391. if (chkProTime.Checked) { ProStartTime.Enabled = true; ProEndTime.Enabled = true; } else { ProStartTime.Enabled = false; ProEndTime.Enabled = false; }
  392. }
  393. private void cmbWarehous_TextChanged(object sender, EventArgs e)
  394. {
  395. Init();
  396. }
  397. private void ultraTabControl1_SelectedTabChanged(object sender, Infragistics.Win.UltraWinTabControl.SelectedTabChangedEventArgs e)
  398. {
  399. if (toolMenu == null) return;
  400. if (e.Tab.TabControl.SelectedTab.Key.Equals("0"))
  401. {
  402. chkWarehous.Visible = false;
  403. chkWarehous.Checked = false;
  404. cmbWarehous.Visible = false;
  405. chkMaterial.Visible = false;
  406. chkMaterial.Checked = false;
  407. cmbMaterial.Visible = false;
  408. toolMenu.Toolbars[0].Tools["Export"].InstanceProps.Visible = DefaultableBoolean.False;
  409. }
  410. else
  411. {
  412. chkWarehous.Visible = true;
  413. cmbWarehous.Visible = true;
  414. chkMaterial.Visible = true;
  415. cmbMaterial.Visible = true;
  416. toolMenu.Toolbars[0].Tools["Export"].InstanceProps.Visible = DefaultableBoolean.True;
  417. }
  418. }
  419. private void ultraGrid2_CellChange(object sender, Infragistics.Win.UltraWinGrid.CellEventArgs e)
  420. {
  421. ultraGrid2.UpdateData();
  422. UltraGridRow ugr = this.ultraGrid2.ActiveRow;
  423. UltraGridRow ugr1 = this.ultraGrid1.ActiveRow;
  424. string plannum = ugr1.Cells["ACT_COUNT"].Value.ToString();//当前料位支数
  425. if(e.Cell.Column.Key.Equals("ACT_COUNT"))
  426. {
  427. double strCount = 0;
  428. foreach (Infragistics.Win.UltraWinGrid.UltraGridRow uRow in ultraGrid2.Rows)
  429. {
  430. if (uRow.Cells["ACT_COUNT"].Value.ToString() == "")
  431. {
  432. uRow.Cells["ACT_COUNT"].Value = "0";
  433. }
  434. if (Convert.ToBoolean(uRow.Cells["CHOOSE"].Text) == true)
  435. {
  436. strCount += double.Parse(uRow.Cells["ACT_COUNT"].Value.ToString());//目标料位支数
  437. }
  438. }
  439. if (strCount.ToString() != "" && strCount.ToString() != "0")
  440. {
  441. if (Convert.ToInt32(strCount.ToString()) > Convert.ToInt32(plannum))
  442. {
  443. MessageUtil.ShowWarning("目标料位支数不能大于当前料位支数!");
  444. ugr.Cells["ACT_COUNT"].Value = "";
  445. return;
  446. }
  447. }
  448. }
  449. if (e.Cell.Column.Key.Equals("CHOOSE"))
  450. {
  451. if (Convert.ToBoolean(e.Cell.Value))
  452. {
  453. isSelect += 1;
  454. }
  455. else
  456. isSelect -= 1;
  457. }
  458. }
  459. private void ultraGrid1_AfterRowActivate(object sender, EventArgs e)
  460. {
  461. ultraGrid2.Enabled = true;
  462. ultraGrid1.UpdateData();
  463. UltraGridRow ugr = this.ultraGrid1.ActiveRow;
  464. if (this.ultraGrid1.Rows.Count <= 0) return;
  465. if (ugr == null) return;
  466. if (ugr.IsFilterRow) return;
  467. if (ugr.HasParent() == true) return;
  468. DataTable dt = new DataTable();
  469. GridHelper.CopyDataToDatatable(dt, this.dataStow, true);
  470. }
  471. private void ultraGrid2_InitializeRow(object sender, InitializeRowEventArgs e)
  472. {
  473. BandComboToGrid(e, null);
  474. //增加行如果没有勾选则不可编辑
  475. if (!Convert.ToBoolean(e.Row.Cells["CHOOSE"].Value))
  476. {
  477. for (int i = 0; i < e.Row.Cells.Count; i++)
  478. {
  479. if (!e.Row.Cells[i].Column.Key.Equals("CHOOSE"))
  480. e.Row.Cells[i].Activation = Activation.ActivateOnly;
  481. }
  482. }
  483. else
  484. {
  485. for (int i = 0; i < e.Row.Cells.Count; i++)
  486. {
  487. e.Row.Cells[i].Activation = Activation.AllowEdit;
  488. }
  489. }
  490. }
  491. private void frmPipeStow_Shown(object sender, EventArgs e)
  492. {
  493. toolMenu.Toolbars[0].Tools["Export"].InstanceProps.Visible = DefaultableBoolean.False;
  494. }
  495. private void ultraGrid3_CellChange(object sender, CellEventArgs e)
  496. {
  497. if (e.Cell.Column.Key.Equals("CHOOSE"))
  498. {
  499. if (Convert.ToBoolean(e.Cell.Text) == true)
  500. {
  501. isDelete += 1;
  502. }
  503. else
  504. isDelete -= 1;
  505. }
  506. }
  507. }
  508. }