华恒Mes鼎捷代码
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1205 lines
50 KiB

5 months ago
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Text;
  7. using System.Windows.Forms;
  8. using DevExpress.XtraEditors;
  9. using ICSSoft.Frame.User.BLL;
  10. using ICSSoft.Base.Language.Tool;
  11. using ICSSoft.Base.UserControl.MessageControl;
  12. using System.Data.SqlClient;
  13. using ICSSoft.Base.Config.AppConfig;
  14. using ICSSoft.Base.Report.Filter;
  15. using ICSSoft.Base.Config.DBHelper;
  16. using ICSSoft.Base.UserControl.FormControl;
  17. using ICSSoft.Base.ReferForm.AppReferForm;
  18. using ICSSoft.Base.Lable.PrintTool;
  19. using ICSSoft.Frame.Data.DAL;
  20. using ICSSoft.Frame.Data.BLL;
  21. using ICSSoft.Frame.Data.Entity;
  22. namespace ICSSoft.Frame.APP
  23. {
  24. public partial class FormICSMO2LOT1 : DevExpress.XtraEditors.XtraForm
  25. {
  26. private string sqltxt = "";
  27. private string sqlconn = "";
  28. String guid = AppConfig.GetGuid();
  29. DataTable dtmc = new DataTable();
  30. private DataTable dataSource = null;
  31. //WorkPointBLL workBll = new WorkPointBLL();
  32. string moid = "";
  33. string mocode = "";//工单编码
  34. string moseq = "";//生产订单行号
  35. int monum;
  36. string itemcode = "";
  37. string LotNO = string.Empty;//批号20190711ZM
  38. string MOTYPE = "";
  39. string depts = "";
  40. int number = 0;
  41. DataTable dttp;
  42. #region 构造函数
  43. public FormICSMO2LOT1()
  44. {
  45. InitializeComponent();
  46. this.MaximumSize = new Size(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height);
  47. this.WindowState = FormWindowState.Maximized;
  48. this.txtLOTQTY.Text = "1";
  49. }
  50. #endregion
  51. public FormICSMO2LOT1(string id, string code, int num, string ITEMCODE, string moSeq, string dept, DateTime MOPLANSTARTDATE, DateTime MOPLANENDDATE)//,DataTable dt
  52. {
  53. InitializeComponent();
  54. this.MaximumSize = new Size(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height);
  55. this.WindowState = FormWindowState.Maximized;
  56. DateTime starts = MOPLANSTARTDATE;
  57. DateTime ends = MOPLANENDDATE;
  58. moid = id;
  59. mocode = code;
  60. monum = num;
  61. moseq = moSeq;
  62. itemcode = ITEMCODE;
  63. depts = dept;//0816新增
  64. this.txtLOTQTY.Text = "1";
  65. //this.txtLOTQTY.Text =monum.ToString();
  66. }
  67. #region 移动窗体
  68. private const int WM_NCHITTEST = 0x84;
  69. private const int HTCLIENT = 0x1;
  70. private const int HTCAPTION = 0x2;
  71. //首先必须了解Windows的消息传递机制,当有鼠标活动消息时,
  72. //系统发送WM_NCHITTEST 消息给窗体作为判断消息发生地的根据。 nchittest
  73. //假如你点击的是标题栏,窗体收到的消息值就是 HTCAPTION ,
  74. //同样地,若接受到的消息是 HTCLIENT,说明用户点击的是客户区,也就是鼠标消息发生在客户区。
  75. //重写窗体,使窗体可以不通过自带标题栏实现移动
  76. protected override void WndProc(ref Message m)
  77. {
  78. //当重载窗体的 WndProc 方法时,可以截获 WM_NCHITTEST 消息并改些该消息,
  79. //当判断鼠标事件发生在客户区时,改写改消息,发送 HTCAPTION 给窗体,
  80. //这样,窗体收到的消息就时 HTCAPTION ,在客户区通过鼠标来拖动窗体就如同通过标题栏来拖动一样。
  81. //注意:当你重载 WndProc 并改写鼠标事件后,整个窗体的鼠标事件也就随之改变了。
  82. switch (m.Msg)
  83. {
  84. case WM_NCHITTEST:
  85. base.WndProc(ref m);
  86. if ((int)m.Result == HTCLIENT)
  87. m.Result = (IntPtr)HTCAPTION;
  88. return;
  89. }
  90. //拦截双击标题栏、移动窗体的系统消息
  91. if (m.Msg != 0xA3)
  92. {
  93. base.WndProc(ref m);
  94. }
  95. }
  96. #endregion
  97. #region SystemOptition
  98. /// <summary>
  99. /// 操作权限
  100. /// </summary>
  101. /// <returns></returns>
  102. public DataTable RightOfExute()
  103. {
  104. DataTable rData = new DataTable();
  105. rData.Columns.Add("BtnName");
  106. rData.Columns.Add("ActionName");
  107. //查看权限(必须有)
  108. DataRow seeRow = rData.NewRow();
  109. seeRow["BtnName"] = "see";
  110. seeRow["ActionName"] = "查看";
  111. rData.Rows.Add(seeRow);
  112. List<Control> ControlList = new List<Control>();
  113. ControlList.Add(btnSave);
  114. //ControlList.Add(btnDelLable);
  115. foreach (Control ctr in ControlList)
  116. {
  117. if (ctr.GetType() == typeof(SimpleButton))
  118. {
  119. DataRow dr = rData.NewRow();
  120. dr["BtnName"] = ctr.Name;
  121. dr["ActionName"] = ctr.Text;
  122. rData.Rows.Add(dr);
  123. }
  124. }
  125. rData.AcceptChanges();
  126. return rData;
  127. }
  128. /// <summary>
  129. /// 数据权限
  130. /// </summary>
  131. /// <returns></returns>
  132. public DataTable RightOfData()
  133. {
  134. DataTable rData = new DataTable();
  135. rData.Columns.Add("BodyName");
  136. rData.Columns.Add("ControlName");
  137. rData.Columns.Add("ControlCaption");
  138. rData.AcceptChanges();
  139. return rData;
  140. }
  141. #endregion
  142. #region 退出
  143. private void btnClose_Click(object sender, EventArgs e)
  144. {
  145. AppConfig.CloseFormShow(this.Text);
  146. this.Close();
  147. }
  148. private void btnExit_Click(object sender, EventArgs e)
  149. {
  150. AppConfig.CloseFormShow(this.Text);
  151. this.Close();
  152. }
  153. #endregion
  154. #region 全选
  155. private void btnSelect_Click(object sender, EventArgs e)
  156. {
  157. for (int i = 0; i < grvDetail.RowCount; i++)
  158. {
  159. grvDetail.SetRowCellValue(i, colisSelect, "Y");
  160. }
  161. }
  162. #endregion
  163. #region 全消
  164. private void btnCanSelect_Click(object sender, EventArgs e)
  165. {
  166. for (int i = 0; i < grvDetail.RowCount; i++)
  167. {
  168. grvDetail.SetRowCellValue(i, colisSelect, "");
  169. }
  170. }
  171. #endregion
  172. #region 刷新
  173. private void btnFalsh_Click(object sender, EventArgs e)
  174. {
  175. if (sqlconn == null || sqlconn == "")
  176. {
  177. return;
  178. }
  179. DevExpress.Utils.WaitDialogForm _wait = new DevExpress.Utils.WaitDialogForm("正在查找...请稍等...");
  180. try
  181. {
  182. _wait.Show();
  183. //FormFilter filter = new FormFilter(AppConfig.GetSourceId(this.Tag.ToString(), btnConfig.Name), false);
  184. //filter.OldTempTableName = tempTableName;
  185. //tempTableName = filter.NewTempTableName;
  186. //DataTable data = DBHelper.ExecuteDataset(AppConfig.FrameConnectString, CommandType.Text, "select * from " + tempTableName).Tables[0];
  187. dataSource = DBHelper.ExecuteDataset(sqlconn, CommandType.Text, sqltxt).Tables[0];
  188. grdDetail.DataSource = dataSource;
  189. rptPage.RecordNum = dataSource.Rows.Count;
  190. rptPage.PageIndex = 1;
  191. rptPage.ReLoad();
  192. _wait.Close();
  193. }
  194. catch (Exception ex)
  195. {
  196. MessageBox.Show("异常:" + ex.Message, "异常", MessageBoxButtons.OK, MessageBoxIcon.Error);
  197. _wait.Close();
  198. }
  199. }
  200. #endregion
  201. #region 列表
  202. private void grvDetail_CustomDrawRowIndicator(object sender, DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventArgs e)
  203. {
  204. if (e.Info.IsRowIndicator && e.RowHandle >= 0)
  205. e.Info.DisplayText = (e.RowHandle + 1).ToString();
  206. }
  207. #endregion
  208. #region 双击选择
  209. private void grvDetail_DoubleClick(object sender, EventArgs e)
  210. {
  211. if (grvDetail.FocusedRowHandle < 0)
  212. {
  213. return;
  214. }
  215. if (grvDetail.FocusedColumn == colisSelect)
  216. {
  217. if (grvDetail.GetRowCellValue(grvDetail.FocusedRowHandle, colisSelect).ToString() == "")
  218. {
  219. grvDetail.SetRowCellValue(grvDetail.FocusedRowHandle, colisSelect, "Y");
  220. }
  221. else
  222. {
  223. grvDetail.SetRowCellValue(grvDetail.FocusedRowHandle, colisSelect, "");
  224. }
  225. }
  226. }
  227. #endregion
  228. #region 删除
  229. private void btnDel_Click(object sender, EventArgs e)
  230. {
  231. grvDetail.PostEditor();
  232. this.Validate();
  233. if (grvDetail.RowCount == 0)
  234. return;
  235. List<string> guidList = new List<string>();
  236. List<string> codeList = new List<string>();
  237. for (int i = 0; i < grvDetail.RowCount; i++)
  238. {
  239. guidList.Add(grvDetail.GetRowCellValue(i, colLOTNO).ToString());
  240. }
  241. if (guidList.Count == 0)
  242. {
  243. ICSBaseSimpleCode.AppshowMessageBox("请选择数据!");
  244. return;
  245. }
  246. //删除 ICSITEMROUT2OPLot表中数据删除20190717ZM
  247. if (ICSBaseSimpleCode.AppshowMessageBoxRepose("确定删除该工单批次信息吗?删除后无法恢复,确定吗?") != DialogResult.OK)
  248. return;
  249. try
  250. {
  251. ICSMO2LotBLL.delete(guidList);
  252. ICSBaseSimpleCode.AppshowMessageBox(0, "删除成功");
  253. dtmc = new DataTable();
  254. number = 0;
  255. FormICSMO2Lot_Load(null, null);
  256. }
  257. catch (Exception ex)
  258. {
  259. ICSBaseSimpleCode.AppshowMessageBox(ex.Message);
  260. }
  261. }
  262. #endregion
  263. #region 导出
  264. private void btnOutPut_Click(object sender, EventArgs e)
  265. {
  266. try
  267. {
  268. FormOutExcel foe = new FormOutExcel(this.Tag.ToString(), grdDetail);
  269. foe.ShowDialog();
  270. }
  271. catch (Exception ex)
  272. {
  273. MessageBox.Show("异常:" + ex.Message, "异常", MessageBoxButtons.OK, MessageBoxIcon.Error);
  274. }
  275. //FormOutExcel foe = new FormOutExcel();
  276. //if (foe.ShowDialog() == DialogResult.OK)
  277. //{
  278. // try
  279. // {
  280. // string outtype = foe._OutType;
  281. // string exceltype = foe._ExcelType;
  282. // string filename = foe._FileName;
  283. // string url = foe._Url;
  284. // string sheetname = foe._SheetName;
  285. // if (outtype.ToLower() == "excel")
  286. // {
  287. // DevExpress.XtraPrinting.XlsExportOptions op = new DevExpress.XtraPrinting.XlsExportOptions();
  288. // op.SheetName = sheetname;
  289. // grdDetail.MainView.ExportToXls((url + "\\" + filename + (exceltype == "2003" ? ".xls" : ".xlsx")), op);
  290. // }
  291. // else
  292. // {
  293. // grdDetail.MainView.ExportToPdf(url + "\\" + filename + ".pdf");
  294. // }
  295. // MessageBox.Show("导出成功", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  296. // }
  297. // catch (Exception ex)
  298. // {
  299. // MessageBox.Show("异常:" + ex.Message, "异常", MessageBoxButtons.OK, MessageBoxIcon.Error);
  300. // }
  301. //}
  302. }
  303. #endregion
  304. private void FormICSMO2Lot_Load(object sender, EventArgs e)
  305. {
  306. try
  307. {
  308. //0816新增CUSITEMCODE
  309. string sql = @"select '' as [isSelect],
  310. b.MOPLANENDDATE as MOPLANENDDATE,
  311. b.MOPLANSTARTDATE as MOPLANSTARTDATE,
  312. b.CUSITEMCODE as CUSITEMCODE,
  313. a.ID as ID,
  314. b.ID as MOID,
  315. a.LOTNO as LOTNO,
  316. b.MOCODE as MOCODE,
  317. a.MCODE as MCODE,
  318. b.MOSEQ as TransLine,
  319. a.LOTQTY as LOTQTY,
  320. a.MUSERName as MUSERName,
  321. a.VenderLotNO MOVER,
  322. a.EATTRIBUTE3 MOINPUTQTY,
  323. a.MTIME as MTIME
  324. from dbo.ICSITEMLot a
  325. left join ICSMO b on a.TransNO=b.MOCODE AND a.TransLine=b.MOSEQ
  326. where b.ID='{0}' order by a.LOTNO asc";
  327. sql = string.Format(sql, moid);
  328. DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0];
  329. grdDetail.DataSource = dt;
  330. this.txtMoQty.Text = monum.ToString();
  331. //设置单件流
  332. sql = @"select EnumValue from Sys_EnumValues
  333. where EnumKey='028'";
  334. DataTable dtKey = DBHelper.ExecuteDataset(AppConfig.AppConnectString.ToString(), CommandType.Text, sql).Tables[0];
  335. bool flag = false;
  336. foreach (DataRow dr in dtKey.Rows)
  337. {
  338. if (itemcode.StartsWith(dr["EnumValue"].ToString()))
  339. {
  340. flag = true;
  341. }
  342. }
  343. if (flag)
  344. {
  345. this.txtLOTQTY.Text = "1";
  346. this.txtJYLotQty.Text = "1";
  347. }
  348. //else
  349. //{
  350. // GetLotQty(dttp);
  351. //}
  352. }
  353. catch (Exception ex)
  354. {
  355. ICSBaseSimpleCode.AppshowMessageBox(ex.Message);
  356. }
  357. dtmc.Columns.Add("isSelect", typeof(string));
  358. dtmc.Columns["isSelect"].Caption = "选择";
  359. dtmc.Columns.Add("ID", typeof(string));
  360. dtmc.Columns["ID"].Caption = "批次ID";
  361. dtmc.Columns.Add("LOTNO", typeof(string));
  362. dtmc.Columns["LOTNO"].Caption = "批号";
  363. dtmc.Columns.Add("MOCODE", typeof(string));
  364. dtmc.Columns["MOCODE"].Caption = "生产订单号";
  365. dtmc.Columns.Add("TransLine", typeof(string));
  366. dtmc.Columns["TransLine"].Caption = "生产订单行号";
  367. dtmc.Columns.Add("PRODUCTDATE", typeof(DateTime));
  368. dtmc.Columns["PRODUCTDATE"].Caption = "产品日期";
  369. dtmc.Columns.Add("LOTQTY", typeof(int));
  370. dtmc.Columns["LOTQTY"].Caption = "批次数量";
  371. dtmc.Columns.Add("MCODE", typeof(string));
  372. dtmc.Columns["MCODE"].Caption = "存货编码";
  373. dtmc.Columns.Add("ACTIVE", typeof(string));
  374. dtmc.Columns["ACTIVE"].Caption = "状态";
  375. dtmc.Columns.Add("Exdate", typeof(DateTime));
  376. dtmc.Columns["Exdate"].Caption = "日期";
  377. dtmc.Columns.Add("WorkPoint", typeof(string));
  378. dtmc.Columns["WorkPoint"].Caption = "站点";
  379. dtmc.Columns.Add("MUSER", typeof(string));
  380. dtmc.Columns["MUSER"].Caption = "维护人";
  381. dtmc.Columns.Add("MUSERName", typeof(string));
  382. dtmc.Columns["MUSERName"].Caption = "维护人名称";
  383. dtmc.Columns.Add("MTIME", typeof(DateTime));
  384. dtmc.Columns["MTIME"].Caption = "维护时间";
  385. dtmc.Columns.Add("MOID", typeof(string));
  386. dtmc.Columns["MOID"].Caption = "工单ID";
  387. dtmc.Columns.Add("MOVER", typeof(string));
  388. dtmc.Columns["MOVER"].Caption = "零件号";
  389. dtmc.Columns.Add("MOINPUTQTY", typeof(Decimal));
  390. dtmc.Columns["MOINPUTQTY"].Caption = "辅助计量单位";
  391. dtmc.Columns.Add("MOPLANSTARTDATE", typeof(DateTime));
  392. dtmc.Columns["MOPLANSTARTDATE"].Caption = "预计开工日期";
  393. dtmc.Columns.Add("MOPLANENDDATE", typeof(DateTime));
  394. dtmc.Columns["MOPLANENDDATE"].Caption = "预计完工日期";
  395. // sql = @"select isnull(c.[Expanded1],'1') as LotQty from ICSMO a
  396. // left join Base_Inventory b on a.ItemCode=b.ITEMCODE
  397. // left join Base_InventoryExpanded c on b.guid = c.guid
  398. // where a.ID='{0}'";
  399. // sql = string.Format(sql, moid);
  400. // DataTable dt2 = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0];
  401. // if (dt2.Rows.Count > 0)
  402. // {
  403. // this.txtLOTQTY.Text = dt2.Rows[0][0].ToString();
  404. // }
  405. }
  406. private void GetLotQty(DataTable DT)
  407. {
  408. if (DT.Rows.Count > 0)
  409. {
  410. DataRow dr = DT.Select("", "标准工时 DESC")[0];
  411. int lotQty = (int)Math.Round(8 / Convert.ToDecimal(dr["标准工时"].ToString()), 0);
  412. this.txtJYLotQty.Text = lotQty.ToString();
  413. if (monum > lotQty)
  414. {
  415. this.txtLOTQTY.Text = lotQty + "";
  416. }
  417. else
  418. {
  419. this.txtLOTQTY.Text = monum.ToString();
  420. }
  421. this.txtOPCode.Text = dr["工序代码"].ToString();
  422. this.txtSTime.Text = dr["标准工时"].ToString();
  423. }
  424. }
  425. private void btnLot_Click(object sender, EventArgs e)
  426. {
  427. #region 20210804
  428. DataTable _dtIsSend = ICSMO2LotBLL.IsSendMO(mocode, moseq);
  429. if (_dtIsSend != null && _dtIsSend.Rows.Count > 0)
  430. {
  431. string isSend = _dtIsSend.Rows[0][0].ToString();
  432. if (isSend != "下发")
  433. {
  434. ICSBaseSimpleCode.AppshowMessageBox("该工单料号还未下发,不能进行拆批");
  435. return;
  436. }
  437. }
  438. #endregion
  439. if (ls.Visible==false)
  440. {
  441. bool b = ICSMO2LotBLL.IsIncludingInMO2Lot(moid);
  442. if (b)
  443. {
  444. ICSBaseSimpleCode.AppshowMessageBox("该工单已生成批次,若重新生成,请先删除原批次信息!");
  445. return;
  446. }
  447. int num = 0;
  448. int morow;//行数
  449. int lotqty;//批次数量
  450. int lotcount;//共分成多少批次
  451. int ys;//余数
  452. if (txtLOTQTY.Text.Trim() != "")
  453. {
  454. if (!int.TryParse(txtLOTQTY.Text.Trim(), out num))
  455. {
  456. ICSBaseSimpleCode.AppshowMessageBox("批次数量应该为正整数!");
  457. return;
  458. }
  459. lotqty = int.Parse(txtLOTQTY.Text.Trim());
  460. //lotqty = int.Parse(monum.ToString());
  461. ys = monum % lotqty;
  462. if (ys == 0)
  463. {
  464. morow = monum / lotqty;
  465. }
  466. else
  467. {
  468. morow = monum / lotqty + 1;
  469. }
  470. }
  471. else
  472. {
  473. lotqty = 1;
  474. morow = monum;
  475. ys = 0;
  476. }
  477. string _sqlMOVER = @"SELECT
  478. B.MOVER, B.MOINPUTQTY AS MOINPUTQTY, B.MOPLANQTY, MOTYPE ,
  479. --0830
  480. B.MOPLANSTARTDATE,
  481. B.MOPLANENDDATE
  482. FROM ICSMO B WHERE B.ID = '{0}' ";
  483. _sqlMOVER = string.Format(_sqlMOVER, moid);
  484. DataTable dtMOVER = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, _sqlMOVER).Tables[0];
  485. string MOVER = string.Empty;
  486. Decimal MOINPUTQTY = 0;
  487. DateTime MOPLANSTARTDATE = AppConfig.GetSeverDateTime("yyyy-MM-dd HH:mm:ss");//210830
  488. DateTime MOPLANENDDATE = AppConfig.GetSeverDateTime("yyyy-MM-dd HH:mm:ss");//210830
  489. if (dtMOVER != null && dtMOVER.Rows.Count > 0)
  490. {
  491. MOPLANSTARTDATE = (DateTime)dtMOVER.Rows[0]["MOPLANSTARTDATE"];
  492. MOPLANENDDATE = (DateTime)dtMOVER.Rows[0]["MOPLANENDDATE"];
  493. MOTYPE = dtMOVER.Rows[0]["MOTYPE"].ToString();
  494. MOVER = dtMOVER.Rows[0][0].ToString();
  495. Decimal _QTY = 0;
  496. if (!string.IsNullOrWhiteSpace(dtMOVER.Rows[0][2].ToString()))
  497. {
  498. _QTY = Decimal.Parse(dtMOVER.Rows[0][2].ToString());
  499. }
  500. //20190924更改工单表中辅助计量数值,总数值/个数
  501. MOINPUTQTY = Decimal.Parse(dtMOVER.Rows[0][1].ToString()) / _QTY;
  502. }
  503. //0826GJ
  504. DataTable dt = new DataTable();
  505. dt.Columns.Add("isSelect", typeof(string));
  506. dt.Columns["isSelect"].Caption = "选择";
  507. dt.Columns.Add("ID", typeof(string));
  508. dt.Columns["ID"].Caption = "批次ID";
  509. dt.Columns.Add("LOTNO", typeof(string));
  510. dt.Columns["LOTNO"].Caption = "批号";
  511. dt.Columns.Add("MOCODE", typeof(string));
  512. dt.Columns["MOCODE"].Caption = "生产订单号";
  513. dt.Columns.Add("TransLine", typeof(string));
  514. dt.Columns["TransLine"].Caption = "生产订单行号";
  515. dt.Columns.Add("PRODUCTDATE", typeof(DateTime));
  516. dt.Columns["PRODUCTDATE"].Caption = "产品日期";
  517. dt.Columns.Add("LOTQTY", typeof(int));
  518. dt.Columns["LOTQTY"].Caption = "批次数量";
  519. dt.Columns.Add("MCODE", typeof(string));
  520. dt.Columns["MCODE"].Caption = "存货编码";
  521. dt.Columns.Add("ACTIVE", typeof(string));
  522. dt.Columns["ACTIVE"].Caption = "状态";
  523. dt.Columns.Add("Exdate", typeof(DateTime));
  524. dt.Columns["Exdate"].Caption = "日期";
  525. dt.Columns.Add("WorkPoint", typeof(string));
  526. dt.Columns["WorkPoint"].Caption = "站点";
  527. dt.Columns.Add("MUSER", typeof(string));
  528. dt.Columns["MUSER"].Caption = "维护人";
  529. dt.Columns.Add("MUSERName", typeof(string));
  530. dt.Columns["MUSERName"].Caption = "维护人名称";
  531. dt.Columns.Add("MTIME", typeof(DateTime));
  532. dt.Columns["MTIME"].Caption = "维护时间";
  533. dt.Columns.Add("MOID", typeof(string));
  534. dt.Columns["MOID"].Caption = "工单ID";
  535. dt.Columns.Add("MOVER", typeof(string));
  536. dt.Columns["MOVER"].Caption = "零件号";
  537. dt.Columns.Add("MOINPUTQTY", typeof(Decimal));
  538. dt.Columns["MOINPUTQTY"].Caption = "辅助计量单位";
  539. dt.Columns.Add("MOPLANSTARTDATE", typeof(DateTime));
  540. dt.Columns["MOPLANSTARTDATE"].Caption = "预计开工日期";
  541. dt.Columns.Add("MOPLANENDDATE", typeof(DateTime));
  542. dt.Columns["MOPLANENDDATE"].Caption = "预计完工日期";
  543. for (int i = 1; i <= morow; i++)
  544. {
  545. DataRow dr = dt.NewRow();
  546. dr["isSelect"] = "";
  547. dr["ID"] = Guid.NewGuid().ToString();
  548. dr["MOID"] = moid;
  549. string n = Convert.ToString(i);
  550. n = n.PadLeft(4, '0');
  551. dr["LOTNO"] = mocode + moseq + n;
  552. //dr["LOTSEQ"] = i;
  553. dr["MOCODE"] = mocode;
  554. dr["MCODE"] = itemcode;
  555. if (ys == 0 || i != morow)
  556. {
  557. dr["LOTQTY"] = lotqty;
  558. }
  559. else if (i == morow)
  560. dr["LOTQTY"] = ys;
  561. dr["TransLine"] = moseq;
  562. //dr["LOTStatus"] = "新增";
  563. dr["MUSERName"] = AppConfig.UserName;
  564. dr["MTIME"] = AppConfig.GetSeverDateTime("yyyy-MM-dd HH:mm:ss").ToString();
  565. dr["MOVER"] = MOVER;
  566. dr["MOINPUTQTY"] = MOINPUTQTY;
  567. //21.9.4新增
  568. dr["MOPLANSTARTDATE"] = MOPLANSTARTDATE;
  569. dr["MOPLANENDDATE"] = MOPLANENDDATE;
  570. dt.Rows.Add(dr);
  571. }
  572. grdDetail.DataSource = dt;
  573. btnFalsh_Click(null, null);
  574. }
  575. else
  576. {
  577. int sum = 0;
  578. if (grvDetail.RowCount==0)
  579. {
  580. sum = 0;
  581. }
  582. else
  583. {
  584. for (int i = 0; i < grvDetail.RowCount; i++)
  585. {
  586. sum += Convert.ToInt32(grvDetail.GetRowCellValue(i, colLOTQTY).ToString());
  587. }
  588. }
  589. if (sum+Convert.ToInt32(txtnum.Text.Trim())> Convert.ToInt32(txtMoQty.Text.Trim()))
  590. {
  591. ICSBaseSimpleCode.AppshowMessageBox("数量已超过当前总数量!");
  592. return;
  593. }
  594. if (txtnum.Text.Trim() != "")
  595. {
  596. int num = 0;
  597. if (!int.TryParse(txtnum.Text.Trim(), out num))
  598. {
  599. ICSBaseSimpleCode.AppshowMessageBox("批次数量应该为正整数!");
  600. return;
  601. }
  602. number++;
  603. string _sqlMOVER = @"SELECT
  604. B.MOVER, B.MOINPUTQTY AS MOINPUTQTY, B.MOPLANQTY, MOTYPE ,
  605. --0830
  606. B.MOPLANSTARTDATE,
  607. B.MOPLANENDDATE
  608. FROM ICSMO B WHERE B.ID = '{0}' ";
  609. _sqlMOVER = string.Format(_sqlMOVER, moid);
  610. DataTable dtMOVER = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, _sqlMOVER).Tables[0];
  611. string MOVER = string.Empty;
  612. Decimal MOINPUTQTY = 0;
  613. DateTime MOPLANSTARTDATE = AppConfig.GetSeverDateTime("yyyy-MM-dd HH:mm:ss");//210830
  614. DateTime MOPLANENDDATE = AppConfig.GetSeverDateTime("yyyy-MM-dd HH:mm:ss");//210830
  615. if (dtMOVER != null && dtMOVER.Rows.Count > 0)
  616. {
  617. MOPLANSTARTDATE = (DateTime)dtMOVER.Rows[0]["MOPLANSTARTDATE"];
  618. MOPLANENDDATE = (DateTime)dtMOVER.Rows[0]["MOPLANENDDATE"];
  619. MOTYPE = dtMOVER.Rows[0]["MOTYPE"].ToString();
  620. MOVER = dtMOVER.Rows[0][0].ToString();
  621. Decimal _QTY = 0;
  622. if (!string.IsNullOrWhiteSpace(dtMOVER.Rows[0][2].ToString()))
  623. {
  624. _QTY = Decimal.Parse(dtMOVER.Rows[0][2].ToString());
  625. }
  626. //20190924更改工单表中辅助计量数值,总数值/个数
  627. MOINPUTQTY = Decimal.Parse(dtMOVER.Rows[0][1].ToString()) / _QTY;
  628. }
  629. //0826GJ
  630. DataRow dr = dtmc.NewRow();
  631. dr["isSelect"] = "";
  632. dr["ID"] = Guid.NewGuid().ToString();
  633. dr["MOID"] = moid;
  634. string n = number.ToString();
  635. n = n.PadLeft(4, '0');
  636. dr["LOTNO"] = mocode + moseq + n;
  637. //dr["LOTSEQ"] = i;
  638. dr["MOCODE"] = mocode;
  639. dr["MCODE"] = itemcode;
  640. dr["LOTQTY"] = txtnum.Text.Trim();
  641. dr["TransLine"] = moseq;
  642. dr["MUSERName"] = AppConfig.UserName;
  643. dr["MTIME"] = AppConfig.GetSeverDateTime("yyyy-MM-dd HH:mm:ss").ToString();
  644. dr["MOVER"] = MOVER;
  645. dr["MOINPUTQTY"] = MOINPUTQTY;
  646. //21.9.4新增
  647. dr["MOPLANSTARTDATE"] = MOPLANSTARTDATE;
  648. dr["MOPLANENDDATE"] = MOPLANENDDATE;
  649. dtmc.Rows.Add(dr);
  650. grdDetail.DataSource = dtmc;
  651. btnFalsh_Click(null, null);
  652. }
  653. }
  654. }
  655. private void btnSave_Click(object sender, EventArgs e)
  656. {
  657. if (!string.IsNullOrWhiteSpace(this.txtLOTQTY.Text.Trim()))
  658. {
  659. if (Decimal.Parse(this.txtLOTQTY.Text.Trim()) < 0 || Decimal.Parse(this.txtLOTQTY.Text.Trim()) == 0)
  660. {
  661. ICSBaseSimpleCode.AppshowMessageBox("每批数量不能小于等于0!");
  662. return;
  663. }
  664. }
  665. else
  666. {
  667. ICSBaseSimpleCode.AppshowMessageBox("请填写分批数量!");
  668. return;
  669. }
  670. bool b = ICSMO2LotBLL.IsIncludingInMO2Lot(moid);
  671. if (b)
  672. {
  673. ICSBaseSimpleCode.AppshowMessageBox("该工单已生成批次,若重新生成,请先删除原批次信息!");
  674. return;
  675. }
  676. int sum = 0;
  677. if (grvDetail.RowCount==0)
  678. {
  679. ICSBaseSimpleCode.AppshowMessageBox("请先进行分批操作!");
  680. return;
  681. }
  682. for (int i = 0; i < grvDetail.RowCount; i++)
  683. {
  684. sum += Convert.ToInt32(grvDetail.GetRowCellValue(i, colLOTQTY).ToString());
  685. }
  686. if (sum.ToString()!=txtMoQty.Text.Trim())
  687. {
  688. ICSBaseSimpleCode.AppshowMessageBox("数量不对等,请重新输入!");
  689. return;
  690. }
  691. #region 已注释 关联工单的默认途程
  692. // string isref = "";
  693. // string routeid = "";
  694. // //查找工单--产品途程
  695. // string sql1 = @"select ROUTEID,ISREF from ICSITEM2ROUTE where ITEMCODE='" + itemcode + "' and ISREF = '是' and WorkPoint='" + AppConfig.WorkPointCode + "'";
  696. // sql1 = string.Format(sql1);
  697. // DataTable data1 = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql1).Tables[0];
  698. // if (data1 != null && data1.Rows.Count > 0)
  699. // {
  700. // routeid = data1.Rows[0]["ROUTEID"].ToString();
  701. // isref = data1.Rows[0]["ISREF"].ToString();
  702. // ICSMOBLL.addRoute(moid, routeid, itemcode, isref, AppConfig.AppConnectString);
  703. // }
  704. // else
  705. // {
  706. // string sql = @"select a.ROUTEID,
  707. // a.ISREF
  708. // from ICSMODEL2ROUTE a
  709. // left join Base_Inventory b on a.MODELCODE=b.ItemMainCategoryCode
  710. // where b.ItemCode='" + itemcode + "' and a.ISREF = '是' and a.WorkPoint='" + AppConfig.WorkPointCode + "'";
  711. // sql = string.Format(sql);
  712. // DataTable data = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0];
  713. // if (data != null && data.Rows.Count > 0)
  714. // {
  715. // routeid = data.Rows[0]["ROUTEID"].ToString();
  716. // isref = data.Rows[0]["ISREF"].ToString();
  717. // ICSMOBLL.addRoute(moid, routeid, itemcode, isref, AppConfig.AppConnectString);
  718. // }
  719. // else
  720. // {
  721. // if (ICSBaseSimpleCode.AppshowMessageBoxRepose("该工单没有默认途程,是否继续生成批次?") != DialogResult.OK)
  722. // {
  723. // return;
  724. // }
  725. // }
  726. // }
  727. #endregion
  728. #region 校验工单是否关联途程、工艺路线、工序
  729. //mocode = code;
  730. //moseq = moSeq;
  731. //itemcode = ITEMCODE;
  732. //string mocode = "";//工单编码
  733. //string moseq = "";//生产订单行号
  734. //string itemcode = "";
  735. string _sql = @"SELECT DISTINCT
  736. a.ITEMCODE,
  737. b.ROUTECODE AS ROUTECODE,
  738. e.OPCODE,
  739. e.OPSEQ,
  740. a.MOCODE AS MOCODE,
  741. CONVERT (INT, a.MOSEQ) AS MOSEQ
  742. FROM
  743. ICSMO a
  744. LEFT JOIN ICSMO2ROUTE b ON ( b.MOID = a.ID)
  745. LEFT JOIN ICSITEMROUTE2OP e ON e.ROUTECODE = b.ROUTECODE AND a.ITEMCODE=e.ITEMCODE
  746. WHERE
  747. a.MOCODE = '" + mocode + "' AND a.MOSEQ = '" + moseq + "' AND a.ITEMCODE = '" + itemcode + "' ";
  748. _sql = string.Format(_sql);
  749. DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, _sql).Tables[0];
  750. if (dt != null && dt.Rows.Count > 0)
  751. {
  752. foreach (DataRow dr in dt.Rows)
  753. {
  754. string ROUTECODE = string.Empty;
  755. string OPCODE = string.Empty;
  756. int OPSEQ = 0;
  757. ROUTECODE = dr["ROUTECODE"].ToString();
  758. OPCODE = dr["OPCODE"].ToString();
  759. if (string.IsNullOrWhiteSpace(dr["OPSEQ"].ToString()))
  760. {
  761. OPSEQ = 0;
  762. }
  763. else
  764. {
  765. OPSEQ = Int32.Parse(dr["OPSEQ"].ToString());
  766. }
  767. if (string.IsNullOrWhiteSpace(ROUTECODE))
  768. {
  769. ICSBaseSimpleCode.AppshowMessageBox("未获取到途程,请维护");
  770. return;
  771. }
  772. if (string.IsNullOrWhiteSpace(OPCODE))
  773. {
  774. ICSBaseSimpleCode.AppshowMessageBox("未获取到工序,请维护");
  775. return;
  776. }
  777. if (OPSEQ <= 0)
  778. {
  779. ICSBaseSimpleCode.AppshowMessageBox("工序次序不符合规则,请重新维护");
  780. return;
  781. }
  782. }
  783. }
  784. else
  785. {
  786. ICSBaseSimpleCode.AppshowMessageBox("未获取到工单途程工序关系,请重新维护");
  787. return;
  788. }
  789. #endregion
  790. List<FormICSMO2LotUIModel> equipmentInfoList = new List<FormICSMO2LotUIModel>();
  791. //List<WM_BarCode> barcodeList = new List<WM_BarCode>();
  792. if (grvDetail.RowCount == 0)
  793. {
  794. ICSBaseSimpleCode.AppshowMessageBox("请先输入批数!");
  795. return;
  796. }
  797. int NUM = 0;
  798. for (int i = 0; i < grvDetail.RowCount; i++)
  799. {
  800. NUM += Convert.ToInt32(grvDetail.GetRowCellValue(i, colLOTQTY));
  801. }
  802. if (NUM != monum)
  803. {
  804. ICSBaseSimpleCode.AppshowMessageBox("批次总数量与计划工单数量不等!");
  805. return;
  806. }
  807. int row = 0;
  808. for (int i = 0; i < grvDetail.RowCount; i++)
  809. {
  810. // if (grvDetail.GetRowCellValue(i, colisSelect).ToString() == "Y")
  811. // {
  812. FormICSMO2LotUIModel equipmentInfo = new FormICSMO2LotUIModel();
  813. equipmentInfo.ID = grvDetail.GetRowCellValue(i, colID).ToString();
  814. equipmentInfo.MCODE = itemcode;
  815. equipmentInfo.TYPE = "工单";
  816. equipmentInfo.TransNO = grvDetail.GetRowCellValue(i, colMOCODE).ToString();
  817. equipmentInfo.TransLine = grvDetail.GetRowCellValue(i, colTransLine).ToString();
  818. equipmentInfo.LotNO = grvDetail.GetRowCellValue(i, colLOTNO).ToString();
  819. equipmentInfo.LOTQTY = Convert.ToInt32(grvDetail.GetRowCellValue(i, colLOTQTY));
  820. //equipmentInfo.MCODE = grvDetail.GetRowCellValue(i, colMCODE).ToString();
  821. equipmentInfo.MUSER = AppConfig.UserId;
  822. equipmentInfo.MUSERName = AppConfig.UserName;
  823. equipmentInfo.MTIME = AppConfig.GetSeverDateTime("yyyy-MM-dd HH:mm:ss");
  824. equipmentInfo.WorkPoint = AppConfig.WorkPointCode;
  825. equipmentInfo.EATTRIBUTE1 = null;
  826. equipmentInfo.MOPLANSTARTDATE = grvDetail.GetRowCellValue(i, gridColumn1).ToString();
  827. equipmentInfo.MOPLANENDDATE = grvDetail.GetRowCellValue(i, gridColumn2).ToString();
  828. //0830新增
  829. // equipmentInfo.
  830. //20190916新增ZM
  831. equipmentInfo.EATTRIBUTE3 = Decimal.Parse(grvDetail.GetRowCellValue(i, colMOINPUTQTY).ToString());//辅助计量
  832. if (MOTYPE == "装配生产")
  833. {
  834. row++;
  835. equipmentInfo.VenderLotNO = grvDetail.GetRowCellValue(i, colMOVER).ToString() + "-" + row.ToString();//add by summer 2020.10.27
  836. equipmentInfo.EATTRIBUTE6 = "qichu" + row;
  837. equipmentInfo.EATTRIBUTE7 = grvDetail.GetRowCellValue(i, colMOVER).ToString() + "-" + row.ToString();
  838. }
  839. //dr["MOVER"] = MOVER;
  840. //dr["MOINPUTQTY"] = MOINPUTQTY;
  841. equipmentInfoList.Add(equipmentInfo);
  842. //20190711ZM
  843. LotNO = equipmentInfo.LotNO;
  844. //WM_BarCode barcode = new WM_BarCode();
  845. //barcode.guid = AppConfig.GetGuid();
  846. //barcode.SrcType = "WM_Order";
  847. //barcode.Srcguid = grvDetail.GetRowCellValue(i, colMOID).ToString();
  848. //barcode.RCVShipguid = grvDetail.GetRowCellValue(i, colMOID).ToString();
  849. //barcode.BarCodeNo = grvDetail.GetRowCellValue(i, colLOTNO).ToString();
  850. //barcode.BarCodeQty = Convert.ToInt32(grvDetail.GetRowCellValue(i, colLOTQTY).ToString());
  851. //DataTable dt=ICSMO2LotBLL.searchForItem(itemcode,AppConfig.AppConnectString);
  852. //if (dt != null && dt.Rows.Count > 0)
  853. //{
  854. // barcode.ItemGuid = dt.Rows[0]["guid"].ToString();
  855. // barcode.ItemName = dt.Rows[0]["ItemName"].ToString();
  856. //}
  857. //barcode.ItemCode=itemcode;
  858. //barcode.WorkPointCode = AppConfig.WorkPointCode;
  859. //barcode.BarCodeStatus = "new";
  860. //barcode.MUSERCode = AppConfig.UserCode;
  861. //barcode.MUSERName = AppConfig.UserName;
  862. //barcode.MTIME = AppConfig.GetSeverDateTime("yyyy-MM-dd HH:mm:ss");
  863. //barcodeList.Add(barcode);
  864. }
  865. try
  866. {
  867. ICSMO2LotBLL.Add(equipmentInfoList, AppConfig.AppConnectString);
  868. //往ICSITEMROUT2OPLot表中插入数据
  869. List<ICSITEMROUTE2OPLot> ITEMROUTE2OPList = new List<ICSITEMROUTE2OPLot>();
  870. //foreach (DataRow dr in dt.Rows)
  871. foreach (var item in equipmentInfoList)
  872. {
  873. foreach (DataRow dr in dt.Rows)
  874. {
  875. string ROUTECODE = string.Empty;
  876. string OPCODE = string.Empty;
  877. int OPSEQ = 0;
  878. ROUTECODE = dr["ROUTECODE"].ToString();
  879. OPCODE = dr["OPCODE"].ToString();
  880. OPSEQ = Int32.Parse(dr["OPSEQ"].ToString());
  881. if (string.IsNullOrWhiteSpace(ROUTECODE))
  882. {
  883. ICSBaseSimpleCode.AppshowMessageBox("未获取到途程,请维护");
  884. return;
  885. }
  886. if (string.IsNullOrWhiteSpace(OPCODE))
  887. {
  888. ICSBaseSimpleCode.AppshowMessageBox("未获取到工序,请维护");
  889. return;
  890. }
  891. if (OPSEQ <= 0)
  892. {
  893. ICSBaseSimpleCode.AppshowMessageBox("工序次序不符合规则,请重新维护");
  894. return;
  895. }
  896. string OPCONTROL = string.Empty;
  897. string OPTIONALOP = string.Empty;
  898. string IDMERGETYPE = string.Empty;
  899. string IDMERGERULE = string.Empty;
  900. string _sql_ = @"SELECT
  901. OPCONTROL,
  902. OPTIONALOP,
  903. IDMERGETYPE,
  904. IDMERGERULE
  905. FROM
  906. ICSITEMROUTE2OP
  907. WHERE
  908. ROUTECODE = '" + ROUTECODE + "' AND OPCODE = '" + OPCODE + "' AND OPSEQ = '" + OPSEQ + "'";
  909. _sql_ = string.Format(_sql_);
  910. DataTable _dt_ = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, _sql_).Tables[0];
  911. if (_dt_ != null && _dt_.Rows.Count > 0)
  912. {
  913. OPCONTROL = _dt_.Rows[0][0].ToString();
  914. OPTIONALOP = _dt_.Rows[0][1].ToString();
  915. IDMERGETYPE = _dt_.Rows[0][2].ToString();
  916. IDMERGERULE = _dt_.Rows[0][3].ToString();
  917. }
  918. ICSITEMROUTE2OPLot ITEMROUTE2OP = new ICSITEMROUTE2OPLot();
  919. ITEMROUTE2OP.ID = "";
  920. ITEMROUTE2OP.ITEMCODE = itemcode;
  921. ITEMROUTE2OP.LotNo = item.LotNO;// LotNO;
  922. ITEMROUTE2OP.ROUTECODE = ROUTECODE;
  923. ITEMROUTE2OP.OPCODE = OPCODE;
  924. ITEMROUTE2OP.OPSEQ = OPSEQ;
  925. ITEMROUTE2OP.OPCONTROL = OPCONTROL;
  926. ITEMROUTE2OP.OPTIONALOP = OPTIONALOP;
  927. ITEMROUTE2OP.IDMERGETYPE = IDMERGETYPE;
  928. ITEMROUTE2OP.IDMERGERULE = 0;
  929. ITEMROUTE2OP.MUSER = AppConfig.UserId;
  930. ITEMROUTE2OP.MUSERName = AppConfig.UserName;
  931. ITEMROUTE2OP.MTIME = AppConfig.GetSeverDateTime("yyyy-MM-dd HH:mm:ss");
  932. ITEMROUTE2OP.WorkPoint = AppConfig.WorkPointCode;
  933. ITEMROUTE2OP.EATTRIBUTE1 = null;
  934. ITEMROUTE2OPList.Add(ITEMROUTE2OP);
  935. }
  936. }
  937. #region 20190716
  938. // foreach (DataRow dr in dt.Rows)
  939. // //grvDetail.RowCount
  940. // {
  941. // string ROUTECODE = string.Empty;
  942. // string OPCODE = string.Empty;
  943. // int OPSEQ = 0;
  944. // ROUTECODE = dr["ROUTECODE"].ToString();
  945. // OPCODE = dr["OPCODE"].ToString();
  946. // OPSEQ = Int32.Parse(dr["OPSEQ"].ToString());
  947. // if (string.IsNullOrWhiteSpace(ROUTECODE))
  948. // {
  949. // ICSBaseSimpleCode.AppshowMessageBox("未获取到途程,请维护");
  950. // return;
  951. // }
  952. // if (string.IsNullOrWhiteSpace(OPCODE))
  953. // {
  954. // ICSBaseSimpleCode.AppshowMessageBox("未获取到工序,请维护");
  955. // return;
  956. // }
  957. // if (OPSEQ <= 0)
  958. // {
  959. // ICSBaseSimpleCode.AppshowMessageBox("工序次序不符合规则,请重新维护");
  960. // return;
  961. // }
  962. // string OPCONTROL = string.Empty;
  963. // string OPTIONALOP = string.Empty;
  964. // string IDMERGETYPE = string.Empty;
  965. // string IDMERGERULE = string.Empty;
  966. // string _sql_ = @"SELECT
  967. // OPCONTROL,
  968. // OPTIONALOP,
  969. // IDMERGETYPE,
  970. // IDMERGERULE
  971. // FROM
  972. // ICSITEMROUTE2OP
  973. // WHERE
  974. // ROUTECODE = '" + ROUTECODE + "' AND OPCODE = '" + OPCODE + "' AND OPSEQ = '" + OPSEQ + "'";
  975. // _sql_ = string.Format(_sql_);
  976. // DataTable _dt_ = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, _sql_).Tables[0];
  977. // if (_dt_ != null && _dt_.Rows.Count > 0)
  978. // {
  979. // OPCONTROL = _dt_.Rows[0][0].ToString();
  980. // OPTIONALOP = _dt_.Rows[0][1].ToString();
  981. // IDMERGETYPE = _dt_.Rows[0][2].ToString();
  982. // IDMERGERULE = _dt_.Rows[0][3].ToString();
  983. // }
  984. // ICSITEMROUTE2OPLot ITEMROUTE2OP = new ICSITEMROUTE2OPLot();
  985. // ITEMROUTE2OP.ITEMCODE = itemcode;
  986. // ITEMROUTE2OP.LotNo = LotNO;
  987. // ITEMROUTE2OP.ROUTECODE = ROUTECODE;
  988. // ITEMROUTE2OP.OPCODE = OPCODE;
  989. // ITEMROUTE2OP.OPSEQ = OPSEQ;
  990. // ITEMROUTE2OP.OPCONTROL = OPCONTROL;
  991. // ITEMROUTE2OP.OPTIONALOP = OPTIONALOP;
  992. // ITEMROUTE2OP.IDMERGETYPE = IDMERGETYPE;
  993. // ITEMROUTE2OP.IDMERGERULE = 0;
  994. // ITEMROUTE2OP.MUSER = AppConfig.UserId;
  995. // ITEMROUTE2OP.MUSERName = AppConfig.UserName;
  996. // ITEMROUTE2OP.MTIME = AppConfig.GetSeverDateTime("yyyy-MM-dd HH:mm:ss");
  997. // ITEMROUTE2OP.WorkPoint = AppConfig.WorkPointCode;
  998. // ITEMROUTE2OP.EATTRIBUTE1 = null;
  999. // ITEMROUTE2OPList.Add(ITEMROUTE2OP);
  1000. // }
  1001. #endregion
  1002. ICSMO2LotBLL.AddList(ITEMROUTE2OPList, AppConfig.AppConnectString);
  1003. btnFalsh_Click(null, null);
  1004. ICSBaseSimpleCode.AppshowMessageBox("保存成功");
  1005. }
  1006. catch (Exception ex)
  1007. {
  1008. ICSBaseSimpleCode.AppshowMessageBox(ex.Message);
  1009. }
  1010. //}
  1011. }
  1012. private void repositoryItemButtonEdit1_BottonClick(object sender, DevExpress.XtraEditors.Controls.ButtonPressedEventArgs e)
  1013. {
  1014. ButtonEdit btn = (ButtonEdit)sender;
  1015. string sql = "select '新增' as 状态 union all select '使用' as 状态 union all select '停止' as 状态 WHERE 1=1";
  1016. //object obj = AppConfig.InvokeWebservice(AppConfig.BaseServiceUri, "WebBaseService", "BaseService", "GetHuaRongErpConnectString", new object[] { });
  1017. //if (obj == null)
  1018. //{
  1019. // ICSBaseSimpleCode.AppshowMessageBox(1, "ERP数据库连接取得失败!");
  1020. //}
  1021. DataTable data = DBHelper.ExecuteDataset(AppConfig.AppConnectString.ToString(), CommandType.Text, sql).Tables[0];
  1022. FormDataRefer reForm = new FormDataRefer();
  1023. reForm.FormTitle = "批次状态";
  1024. DataTable menuData = data;
  1025. reForm.DataSource = menuData;
  1026. reForm.MSelectFlag = false;
  1027. reForm.RowIndexWidth = 35;
  1028. reForm.HideCols.Add("ID");
  1029. reForm.FormWidth = 500;
  1030. reForm.FormHeight = 500;
  1031. //reForm.FilterKey = btn.Text;
  1032. //grvDetail.GetRowCellValue(grvDetail.FocusedRowHandle, grvDetail.FocusedColumn).ToString().Trim();
  1033. if (reForm.ShowDialog() == DialogResult.OK)
  1034. {
  1035. DataTable retData = reForm.ReturnData;
  1036. foreach (DataRow dr in retData.Rows)
  1037. {
  1038. if (grvDetail.FocusedColumn == colLOTStatus)
  1039. {
  1040. grvDetail.SetRowCellValue(grvDetail.FocusedRowHandle, colLOTStatus, dr["状态"].ToString());
  1041. }
  1042. }
  1043. }
  1044. }
  1045. /// <summary>
  1046. /// 一键分批 0817
  1047. /// </summary>
  1048. /// <param name="sender"></param>
  1049. /// <param name="e"></param>
  1050. private void allbtnlot_Click(object sender, EventArgs e)
  1051. {
  1052. }
  1053. private void btn_Click(object sender, EventArgs e)
  1054. {
  1055. if (grvDetail.RowCount>0)
  1056. {
  1057. ICSBaseSimpleCode.AppshowMessageBox("请先清理数据后进行切换");
  1058. return;
  1059. }
  1060. if (ls.Visible==false)
  1061. {
  1062. ls.Visible = true;
  1063. txtnum.Visible = true;
  1064. lp.Visible = false;
  1065. txtLOTQTY.Visible = false;
  1066. }
  1067. else
  1068. {
  1069. ls.Visible = false;
  1070. txtnum.Visible = false;
  1071. lp.Visible = true;
  1072. txtLOTQTY.Visible = true;
  1073. }
  1074. }
  1075. }
  1076. }