锐腾搅拌上料功能
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.

593 lines
25 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.Base.Config.AppConfig;
  10. using System.Data.Linq;
  11. using System.Linq;
  12. using ICSSoft.Base.Language.Tool;
  13. using System.Reflection;
  14. using ICSSoft.Base.Config.DBHelper;
  15. using ICSSoft.Base.ReferForm;
  16. using ICSSoft.Base.Report;
  17. using ICSSoft.Base.ReferForm.AppReferForm;
  18. using ICSSoft.Frame.Data.Entity;
  19. using ICSSoft.Frame.Data.BLL;
  20. namespace ICSSoft.Frame.APP
  21. {
  22. public partial class FormICSMOAdd : DevExpress.XtraEditors.XtraForm
  23. {
  24. String guid = "";
  25. FormICSMOUIModel modelmo;
  26. int flag;
  27. int MOTYPE;
  28. bool isSplit = false;
  29. #region 构造函数
  30. public FormICSMOAdd()
  31. {
  32. InitializeComponent();
  33. flag = 0;
  34. chargeFormState("Add");
  35. }
  36. public FormICSMOAdd(String moid)
  37. {
  38. //ChechIsSplit(moid);
  39. InitializeComponent();
  40. guid = moid;
  41. chargeFormState("Edit");
  42. SearchMOInfo(guid);
  43. flag = 1;
  44. }
  45. #endregion
  46. private void ChechIsSplit(string moid)
  47. {
  48. string mocode = string.Empty; ;
  49. string MOSEQ = string.Empty;
  50. string sql = @" SELECT MOCODE,MOSEQ FROM ICSMO WHERE ID='" + moid + "' ";
  51. sql = string.Format(sql);
  52. DataTable data = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0];
  53. if (data != null && data.Rows.Count > 0)
  54. {
  55. mocode = data.Rows[0][0].ToString();
  56. MOSEQ = data.Rows[0][1].ToString();
  57. }
  58. string _sql = @"
  59. SELECT COUNT(*) AS num FROM
  60. ICSITEMLot b
  61. WHERE b.TransNO='" + mocode + "' AND B.TransLine='" + MOSEQ + "' ";
  62. _sql = string.Format(_sql);
  63. DataTable _data = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, _sql).Tables[0];
  64. if (_data != null || _data.Rows.Count > 0)
  65. {
  66. isSplit = true;
  67. }
  68. if (isSplit)
  69. {
  70. ICSBaseSimpleCode.AppshowMessageBox("已经分批过的不能进行修改");
  71. return;
  72. }
  73. }
  74. //NC工单状态: -1=作废,0=待批准,1=已批准,2=进行中,3=完成,4=已报告,5=关闭,
  75. //ewm_wo.bill_status 0=自由态,1=未审核,2=审核中,3=审核通过,4=审核未通过,5=已确认,6=关闭,
  76. private void chargeFormState(string state)
  77. {
  78. switch (state)
  79. {
  80. case "Add":
  81. txtMOCODE.Properties.ReadOnly = false;
  82. break;
  83. case "Edit":
  84. ICSMO model = ICSMOBLL.select(guid, AppConfig.AppConnectString);
  85. DataTable ds = ICSMOBLL.GetDetail(model.MOCODE, model.MOSEQ, AppConfig.AppConnectString);
  86. if (ds.Rows.Count > 0)
  87. {
  88. if (model.MOTYPE == "0")
  89. {
  90. txtMOCODE.Properties.ReadOnly = true;
  91. txtMOMEMO.Enabled = false;
  92. //txtMOPLANQTY.Enabled = false;//delete by summer 2020.06.08
  93. txtMODESC.Enabled = false;
  94. //txtCUSORDERNO.Enabled = false;//delete by summer 2020.06.08
  95. txtMOPLANSTARTDATE.Enabled = false;
  96. txtMOPLANENDDATE.Enabled = false;
  97. txtMODOWNDATE.Enabled = false;
  98. txtITEMCODE.Properties.ReadOnly = true;
  99. txtMOSTATUS.Enabled = false;
  100. txtMOVER.Enabled = false;
  101. //txtMOUSER.Enabled = false;//delete by summer 2020.06.08
  102. //txtMoRoute.Enabled = false;
  103. txtMoRoute.Enabled = true;
  104. }
  105. else
  106. {
  107. //txtMoRoute.Enabled = false;
  108. txtMoRoute.Enabled = true;
  109. txtMOCODE.Properties.ReadOnly = true;
  110. txtITEMCODE.Properties.ReadOnly = true;
  111. }
  112. }
  113. else if (model.MOTYPE == "0")
  114. {
  115. txtMOCODE.Properties.ReadOnly = true;
  116. txtMOMEMO.Enabled = false;
  117. //txtMOPLANQTY.Enabled = false;//delete by summer 2020.06.08
  118. txtMODESC.Enabled = false;
  119. //txtCUSORDERNO.Enabled = false;//delete by summer 2020.06.08
  120. txtMOPLANSTARTDATE.Enabled = false;
  121. txtMOPLANENDDATE.Enabled = false;
  122. txtMODOWNDATE.Enabled = false;
  123. txtITEMCODE.Properties.ReadOnly = true;
  124. txtMOSTATUS.Enabled = false;
  125. txtMOVER.Enabled = false;
  126. //txtMOUSER.Enabled = false;//delete by summer 2020.06.08
  127. }
  128. else
  129. {
  130. txtMOCODE.Properties.ReadOnly = true;
  131. txtITEMCODE.Properties.ReadOnly = true;
  132. }
  133. #region add by summer 2020.06.08
  134. txtMOPLANQTY.Enabled = false;
  135. txtCUSORDERNO.Enabled = false;
  136. txtMOUSER.Enabled = false;
  137. #endregion
  138. break;
  139. }
  140. }
  141. private void SearchMOInfo(string guid)
  142. {
  143. //校验工单是否分批,分批不允许修改途程
  144. modelmo = ICSMOBLL.SearchMOInfoByCode(guid, AppConfig.AppConnectString);
  145. txtMOSEQ.Text = modelmo.MOSEQ;
  146. lblRWTip.Text = modelmo.EATTRIBUTE2 == "1" ? "(正常工单)" : "(返工工单)";
  147. txtMOCODE.Text = modelmo.MOCODE;
  148. txtMOMEMO.Text = modelmo.MOMEMO;
  149. txtMOTYPE.Text = modelmo.MOTYPE;//此处表示NC工单行状态
  150. txtMODESC.Text = modelmo.MODESC;
  151. txtMOVER.Text = modelmo.MOVER;//批次号
  152. txtCUSITEMCODE.Text = modelmo.CUSITEMCODE;//物料表,客户料号(助记码)
  153. txtMOPLANQTY.Text = Convert.ToString(modelmo.MOPLANQTY);
  154. txtMOPLANSTARTDATE.Text = Convert.ToString(modelmo.MOPLANSTARTDATE);
  155. txtMOPLANENDDATE.Text = Convert.ToString(modelmo.MOPLANENDDATE);
  156. txtFACTORY.Text = modelmo.FACTORY;
  157. txtCUSORDERNO.Text = modelmo.ORDERNO;
  158. //txtCUSORDERNO.Text = modelmo.CUSORDERNO;//delete by summer 2020.06.08
  159. //txtMOUSER.Text = modelmo.MOUSER;
  160. txtMODOWNDATE.Text = Convert.ToString(modelmo.MODOWNDATE);
  161. txtMOSTATUS.Text = modelmo.MOSTATUS;
  162. //txtISCONINPUT.Text=modelmo.ISCONINPUT;
  163. if (modelmo.ISCONINPUT.Equals("是"))
  164. txtISCONINPUT.Checked = true;
  165. else
  166. txtISCONINPUT.Checked = false;
  167. txtMOPENDINGCAUSE.Text = modelmo.MOPENDINGCAUSE;
  168. txtOFFMOQTY.Text = Convert.ToString(modelmo.OFFMOQTY);
  169. txtMOBOM.Text = modelmo.MOBOM;
  170. txtMORemark.Text = modelmo.MORemark;
  171. txtTuhao.Text = modelmo.EATTRIBUTE1;
  172. txtITEMCODE.Text = modelmo.ITEMCODE;
  173. }
  174. #region 关闭 退出
  175. private void btnClose_Click(object sender, EventArgs e)
  176. {
  177. this.Close();
  178. }
  179. #endregion
  180. #region 移动窗体
  181. private const int WM_NCHITTEST = 0x84;
  182. private const int HTCLIENT = 0x1;
  183. private const int HTCAPTION = 0x2;
  184. //首先必须了解Windows的消息传递机制,当有鼠标活动消息时,
  185. //系统发送WM_NCHITTEST 消息给窗体作为判断消息发生地的根据。 nchittest
  186. //假如你点击的是标题栏,窗体收到的消息值就是 HTCAPTION ,
  187. //同样地,若接受到的消息是 HTCLIENT,说明用户点击的是客户区,也就是鼠标消息发生在客户区。
  188. //重写窗体,使窗体可以不通过自带标题栏实现移动
  189. protected override void WndProc(ref Message m)
  190. {
  191. //当重载窗体的 WndProc 方法时,可以截获 WM_NCHITTEST 消息并改些该消息,
  192. //当判断鼠标事件发生在客户区时,改写改消息,发送 HTCAPTION 给窗体,
  193. //这样,窗体收到的消息就时 HTCAPTION ,在客户区通过鼠标来拖动窗体就如同通过标题栏来拖动一样。
  194. //注意:当你重载 WndProc 并改写鼠标事件后,整个窗体的鼠标事件也就随之改变了。
  195. switch (m.Msg)
  196. {
  197. case WM_NCHITTEST:
  198. base.WndProc(ref m);
  199. if ((int)m.Result == HTCLIENT)
  200. m.Result = (IntPtr)HTCAPTION;
  201. return;
  202. }
  203. //拦截双击标题栏、移动窗体的系统消息
  204. if (m.Msg != 0xA3)
  205. {
  206. base.WndProc(ref m);
  207. }
  208. }
  209. #endregion
  210. #region 新增 修改
  211. private void save_Click(object sender, EventArgs e)
  212. {
  213. try
  214. {
  215. if (MessageBox.Show("是否保存?", "保存提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Asterisk, MessageBoxDefaultButton.Button1) != DialogResult.OK)
  216. {
  217. return;
  218. }
  219. #region 判断是否为空
  220. if (txtMOCODE.Text.Trim() == "")
  221. {
  222. ICSBaseSimpleCode.AppshowMessageBox("生产订单号不能为空");
  223. return;
  224. }
  225. //if (txtMOTYPE.Text.Trim() == "")
  226. //{
  227. // ICSBaseSimpleCode.AppshowMessageBox("工单类型不能为空");
  228. // return;
  229. //}
  230. if (txtMOPLANQTY.Text.Trim() == "")
  231. {
  232. ICSBaseSimpleCode.AppshowMessageBox("计划产出量不能为空");
  233. return;
  234. }
  235. if (txtMOPLANSTARTDATE.Text.Trim() == "")
  236. {
  237. ICSBaseSimpleCode.AppshowMessageBox("预计开工日期不能为空");
  238. return;
  239. }
  240. if (txtMOPLANENDDATE.Text.Trim() == "")
  241. {
  242. ICSBaseSimpleCode.AppshowMessageBox("预计完工日期不能为空");
  243. return;
  244. }
  245. bool bijiao = (DateTime.Compare(Convert.ToDateTime(txtMOPLANSTARTDATE.Text), Convert.ToDateTime(txtMOPLANENDDATE.Text)) < 0) ? true : false;
  246. if (!bijiao)
  247. {
  248. ICSBaseSimpleCode.AppshowMessageBox("预计开工日期应该小于预计完工日期");
  249. return;
  250. }
  251. if (txtMODOWNDATE.Text.Trim() == "")
  252. {
  253. ICSBaseSimpleCode.AppshowMessageBox("开立日期不能为空");
  254. return;
  255. }
  256. if (txtMOSTATUS.Text.Trim() == "")
  257. {
  258. ICSBaseSimpleCode.AppshowMessageBox("生产状态不能为空");
  259. return;
  260. }
  261. #region 20200414新增校验途程是否存在
  262. if (txtMoRoute.Text.Trim() == "")
  263. {
  264. ICSBaseSimpleCode.AppshowMessageBox("工艺路线不能为空");
  265. return;
  266. }
  267. #endregion
  268. if (txtITEMCODE.Text.Trim() == "")
  269. {
  270. ICSBaseSimpleCode.AppshowMessageBox("产品料号不能为空");
  271. return;
  272. }
  273. //if (txtMOBOM.Text.Trim() == "")
  274. //{
  275. // ICSBaseSimpleCode.AppshowMessageBox("工单BOM版本不能为空");
  276. // return;
  277. //}
  278. //if (txtMORemark.Text.Trim() == "")
  279. //{
  280. // ICSBaseSimpleCode.AppshowMessageBox("工单备注不能为空");
  281. // return;
  282. //}
  283. #endregion
  284. if (flag == 0)
  285. {
  286. bool b = ICSMOBLL.IsIncluding(txtMOCODE1.Text.Trim(), AppConfig.AppConnectString);
  287. if (!b)
  288. {
  289. ICSBaseSimpleCode.AppshowMessageBox("已经存在");
  290. return;
  291. }
  292. }
  293. FormICSMOUIModel mo = new FormICSMOUIModel();
  294. #region 赋值
  295. mo.ID = guid;
  296. mo.MOCODE = txtMOCODE.Text;
  297. mo.MOMEMO = txtMOMEMO.Text;
  298. //mo.MOTYPE = txtMOTYPE.Text;
  299. mo.MODESC = txtMODESC.Text;
  300. mo.MOTYPE = "1";//工单类型默认为1
  301. mo.MOPLANQTY = Convert.ToDecimal(txtMOPLANQTY.Text);
  302. mo.MOPLANSTARTDATE = Convert.ToDateTime(txtMOPLANSTARTDATE.Text);
  303. mo.MOPLANENDDATE = Convert.ToDateTime(txtMOPLANENDDATE.Text);
  304. mo.FACTORY = txtFACTORY.Text;
  305. mo.CUSORDERNO = txtCUSORDERNO.Text;
  306. mo.MOUSER = txtMOUSER.Text;
  307. mo.MODOWNDATE = Convert.ToDateTime(txtMODOWNDATE.Text);
  308. mo.MOSTATUS = txtMOSTATUS.Text;
  309. //mo.ISCONINPUT = txtISCONINPUT.Text;
  310. if (txtISCONINPUT.Checked)
  311. mo.ISCONINPUT = "是";
  312. else
  313. mo.ISCONINPUT = "否";
  314. //mo.
  315. mo.ITEMCODE = txtITEMCODE.Text;
  316. mo.MOPENDINGCAUSE = txtMOPENDINGCAUSE.Text;
  317. mo.OFFMOQTY = Convert.ToDecimal(txtOFFMOQTY.Text.Equals("") ? "0" : txtOFFMOQTY.Text);
  318. mo.MOBOM = txtMOBOM.Text;
  319. mo.MORemark = txtMORemark.Text;
  320. mo.MOVER = txtMOVER.Text; //批次号
  321. mo.MOUSER = txtMOUSER.Text; //MOUSER存储项目号
  322. #endregion
  323. ICSMOBLL.Add(mo, txtMoRoute.Text.Trim(), AppConfig.AppConnectString);
  324. if (flag == 0)
  325. {
  326. ICSBaseSimpleCode.AppshowMessageBox("增加成功");
  327. this.Close();
  328. this.DialogResult = DialogResult.Yes;
  329. }
  330. else if (flag == 1)
  331. {
  332. ICSBaseSimpleCode.AppshowMessageBox("修改成功");
  333. this.Close();
  334. this.DialogResult = DialogResult.Yes;
  335. }
  336. }
  337. catch (Exception ex)
  338. {
  339. MessageBox.Show(ex.Message);
  340. }
  341. }
  342. #endregion
  343. #region 取消
  344. private void can_Click(object sender, EventArgs e)
  345. {
  346. this.Close();
  347. }
  348. #endregion
  349. private void txtITEMCODE_ButtonClick(object sender, DevExpress.XtraEditors.Controls.ButtonPressedEventArgs e)
  350. {
  351. if (flag == 0)
  352. {
  353. txtMoRoute.DataSource = null;
  354. ButtonEdit btn = (ButtonEdit)sender;
  355. string sql = @"select ID,INVCODE as [产品料号],INVNAME as [存货名称] from ICSINVENTORY WHERE WorkPoint='" + AppConfig.WorkPointCode + "' ";
  356. sql = string.Format(sql);
  357. DataTable data = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0];
  358. FormDataRefer reForm = new FormDataRefer();
  359. reForm.FormTitle = "产品信息";
  360. DataTable menuData = data;
  361. reForm.DataSource = menuData;
  362. reForm.MSelectFlag = false;
  363. reForm.RowIndexWidth = 35;
  364. reForm.HideCols.Add("ID");
  365. reForm.FormWidth = 800;
  366. reForm.FormHeight = 600;
  367. reForm.FilterKey = btn.Text;
  368. if (reForm.ShowDialog() == DialogResult.OK)
  369. {
  370. DataTable retData = reForm.ReturnData;
  371. foreach (DataRow dr in retData.Rows)
  372. {
  373. txtITEMCODE.Text = dr["存货编码"].ToString();
  374. }
  375. }
  376. }
  377. }
  378. private void txtITEMCODE_EditValueChanged(object sender, EventArgs e)
  379. {
  380. //string sql = @"select ROUTECODE from ICSITEM2ROUTE where ITEMCODE='" + txtITEMCODE.Text.Trim() + "' and WorkPoint='" + AppConfig.WorkPointCode + "'";
  381. //sql = string.Format(sql);
  382. //DataTable data = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0];
  383. //if (data.Rows.Count > 0)
  384. //{
  385. // foreach (DataRow dr in data.Rows)
  386. // {
  387. // txtMoRoute.Items.Add(dr[0].ToString());
  388. // }
  389. // string sqlone = @"select ROUTECODE from ICSITEM2ROUTE where ITEMCODE='" + txtITEMCODE.Text.Trim() + "' and ISREF='是' and WorkPoint='" + AppConfig.WorkPointCode + "'";
  390. // sqlone = string.Format(sqlone);
  391. // DataTable dataone = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sqlone).Tables[0];
  392. // if (dataone.Rows.Count > 0)
  393. // txtMoRoute.Text = dataone.Rows[0]["ROUTECODE"].ToString();
  394. //}
  395. if (lblRWTip.Text == "(返工工单)" && Convert.ToDecimal(txtMOPLANQTY.Text) < 100)
  396. {
  397. string sql0 = @"
  398. select
  399. A.ROUTECODE,A.ISREF
  400. FROM ICSITEM2ROUTE A
  401. LEFT JOIN dbo.ICSROUTE B ON B.ROUTECODE=A.ROUTECODE AND B.WorkPoint=A.WorkPoint
  402. WHERE A.ITEMCODE='{0}' and A.WorkPoint='{1}' AND B.ROUTETYPE='Rework'";
  403. sql0 = string.Format(sql0, txtITEMCODE.Text.Trim(), AppConfig.WorkPointCode);
  404. DataTable data0 = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql0).Tables[0];
  405. if (data0.Rows.Count == 0)
  406. {
  407. throw new Exception("此为返工工单,但是物料: " + txtITEMCODE.Text.Trim() + ",没有绑定返工工艺工时,请在工时维护界面使用 '工艺工时一键导入' 功能,重新导入工时");
  408. }
  409. }
  410. string sql = @"
  411. select
  412. A.ROUTECODE,A.ISREF
  413. FROM ICSITEM2ROUTE A
  414. LEFT JOIN dbo.ICSROUTE B ON B.ROUTECODE=A.ROUTECODE AND B.WorkPoint=A.WorkPoint
  415. WHERE A.ITEMCODE='{0}' and A.WorkPoint='{1}'";
  416. if (lblRWTip.Text == "(返工工单)" || Convert.ToDecimal(txtMOPLANQTY.Text) >= 100)
  417. {
  418. sql += " AND B.ROUTETYPE<>'Rework'";
  419. }
  420. sql = string.Format(sql, txtITEMCODE.Text.Trim(), AppConfig.WorkPointCode);
  421. DataTable data = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0];
  422. if (data.Rows.Count == 0)
  423. {
  424. throw new Exception("物料: " + txtITEMCODE.Text.Trim() + ",没有关联工艺路线");
  425. }
  426. txtMoRoute.DisplayMember = "ROUTECODE"; //显示名称
  427. txtMoRoute.ValueMember = "ROUTECODE"; //value 值
  428. txtMoRoute.DataSource = data.DefaultView;
  429. string sql2 = @"select ROUTECODE from ICSMO2ROUTE where MOCODE='" + txtMOCODE.Text + "' and WorkPoint='" + AppConfig.WorkPointCode + "'";
  430. sql2 = string.Format(sql2);
  431. DataTable data2 = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql2).Tables[0];
  432. if (data2.Rows.Count != 0)
  433. {
  434. txtMoRoute.SelectedValue = data2.Rows[0][0];
  435. txtMoRoute.Text = data2.Rows[0][0].ToString();
  436. }
  437. else
  438. {
  439. DataRow[] drs = data.Select("ISREF = '1'");
  440. if (drs.Count() != 0)
  441. {
  442. txtMoRoute.SelectedValue = drs[0]["ROUTECODE"];
  443. txtMoRoute.Text = drs[0]["ROUTECODE"].ToString();
  444. }
  445. }
  446. // //校验工单是否分批,分批不允许修改途程
  447. // string _sql = @"
  448. // SELECT COUNT(*) AS num FROM
  449. // ICSITEMLot b
  450. // WHERE b.TransNO='" + txtMOCODE.Text + "' AND B.TransLine='" + txtMOSEQ.Text + "' ";
  451. // _sql = string.Format(_sql);
  452. // DataTable _data = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, _sql).Tables[0];
  453. // if (_data != null || _data.Rows.Count > 0)
  454. // {
  455. // //this.txtMoRoute.Enabled = false;
  456. // }
  457. }
  458. private void txtMOCODE_ButtonClick(object sender, DevExpress.XtraEditors.Controls.ButtonPressedEventArgs e)
  459. {
  460. if (flag == 0)
  461. {
  462. txtMoRoute.DataSource = null;
  463. ButtonEdit btn = (ButtonEdit)sender;
  464. string sql = @"select ID,a.MOCODE as [生产订单号],a.MOMEMO as [工单备注],a.MODESC as [工单描述],
  465. a.MOPLANQTY as [], a.CUSORDERNO as [],a.MOPLANSTARTDATE as [],a.MOPLANENDDATE as [],
  466. a.MODOWNDATE as [],a.MOUSER as [],a.MOVER as [],a.ITEMCODE as [],a.EATTRIBUTE1 as [],c.ROUTECODE as [线] from ICSMO a
  467. inner join ICSMO2ROUTE b on a.MOCODE=b.MOCODE inner join ICSITEM2ROUTE c on a.ITEMCODE=c.ITEMCODE and b.ROUTECODE=c.ROUTECODE
  468. where MOTYPE='0' ";
  469. sql = string.Format(sql);
  470. DataTable data = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0];
  471. FormDataRefer reForm = new FormDataRefer();
  472. reForm.FormTitle = "生产订单号";
  473. DataTable menuData = data;
  474. reForm.DataSource = menuData;
  475. reForm.MSelectFlag = false;
  476. reForm.RowIndexWidth = 35;
  477. reForm.HideCols.Add("ID");
  478. reForm.FormWidth = 800;
  479. reForm.FormHeight = 600;
  480. reForm.FilterKey = btn.Text;
  481. if (reForm.ShowDialog() == DialogResult.OK)
  482. {
  483. DataTable retData = reForm.ReturnData;
  484. foreach (DataRow dr in retData.Rows)
  485. {
  486. txtMOCODE.Text = dr["生产订单号"].ToString();
  487. txtMOMEMO.Text = dr["工单备注"].ToString();
  488. txtMODESC.Text = dr["工单描述"].ToString();
  489. txtMOPLANQTY.Text = dr["计划产出量"].ToString();
  490. txtCUSORDERNO.Text = dr["客户订单号"].ToString();
  491. txtMOPLANSTARTDATE.Text = dr["预计开工日期"].ToString();
  492. txtMOPLANENDDATE.Text = dr["预计完工日期"].ToString();
  493. txtMODOWNDATE.Text = dr["开立日期"].ToString();
  494. txtMOUSER.Text = dr["开立人员"].ToString();
  495. txtITEMCODE.Text = dr["存货编码"].ToString();
  496. txtMoRoute.Text = dr["工艺路线"].ToString();
  497. txtMOVER.Text = dr["批次号"].ToString();
  498. txtTuhao.Text = dr["图号"].ToString();
  499. }
  500. }
  501. }
  502. }
  503. //DataTable dtRouteOP = null;
  504. private void txtMoRoute_SelectedIndexChanged(object sender, EventArgs e)
  505. {
  506. //DataView dv = dtRouteOP.DefaultView;
  507. //dv.RowFilter = "ROUTECODE='"+route+"'";
  508. string route = txtMoRoute.Text;
  509. if (route == "")
  510. {
  511. return;
  512. }
  513. string sql = "SELECT A.ROUTECODE,A.OPCODE,A.OPSEQ,B.OPDESC FROM ICSROUTE2OP A INNER JOIN dbo.ICSOP B ON A.OPCODE=B.OPCODE AND A.WORKPOINT=B.WorkPoint WHERE ROUTECODE='" + route + "' AND A.WORKPOINT='" + AppConfig.WorkPointCode + "' ORDER BY A.OPSEQ";
  514. DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0];
  515. gridRouteOP.DataSource = dt;
  516. }
  517. //private void txtITEMCODE_KeyPress(object sender, KeyPressEventArgs e)
  518. //{
  519. // if (e.KeyChar != (char)Keys.Back)
  520. // {
  521. // e.Handled = true;
  522. // }
  523. //}
  524. //private void txtITEMCODE_KeyDown(object sender, KeyEventArgs e)
  525. //{
  526. // if (flag == 0)
  527. // {
  528. // this.txtITEMCODE.Text = "";
  529. // this.txtITEMCODE.Tag = null;
  530. // }
  531. //}
  532. }
  533. }