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

565 lines
26 KiB

5 months ago
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Data;
  4. using System.Windows.Forms;
  5. using DevExpress.XtraEditors;
  6. using ICSSoft.Base.Config.AppConfig;
  7. using ICSSoft.Base.Config.DBHelper;
  8. using ICSSoft.Base.ReferForm.AppReferForm;
  9. using ICSSoft.Frame.Data.Entity;
  10. using ICSSoft.Frame.Data.BLL;
  11. namespace ICSSoft.Frame.APP
  12. {
  13. public partial class FormICSHeatTreatmentAddNew : DevExpress.XtraEditors.XtraForm
  14. {
  15. int flag;
  16. string ID;
  17. string Transno;
  18. string EQPCode;
  19. string OpCode;
  20. string Type="";
  21. ICSITEMLot modelinfo;
  22. ICSOpFile entity = new ICSOpFile();
  23. private DataTable dtNewRcards = null;
  24. #region 构造函数
  25. public FormICSHeatTreatmentAddNew()
  26. {
  27. InitializeComponent();
  28. flag = 0;
  29. }
  30. public FormICSHeatTreatmentAddNew(string id, string transno,string eqpcode,string opcode)
  31. {
  32. InitializeComponent();
  33. flag = 1;
  34. ID = id;
  35. EQPCode = eqpcode;
  36. Transno = transno;
  37. OpCode = opcode;
  38. }
  39. public FormICSHeatTreatmentAddNew(string id,string eqpcode,string opcode,string type,string transno)
  40. {
  41. InitializeComponent();
  42. flag = 2;
  43. ID = id;
  44. EQPCode = eqpcode;
  45. OpCode = opcode;
  46. Type = type;
  47. Transno = transno;
  48. SearchInfo(ID);
  49. }
  50. #endregion
  51. #region 查询数据
  52. private void SearchInfo(string guid)
  53. {
  54. string sql = @"SELECT a.LotNO,a.ItemCode,c.INVNAME,c.INVSTD,a.LOTQTY,c.INVUOM,
  55. CONVERT(NUMERIC(10,3),(a.LOTQTY*a.EATTRIBUTE3)) AS num,c.INVEXPORTIMPORT,a.VenderLotNO as VenderLotNo,
  56. a.TransNO as MOCODE,a.TransLine as MOSEQ,d.EQPCode as EQPCODE,d.EATTRIBUTE3 as EQPName,d.EATTRIBUTE4 as OpCode
  57. FROM ICSITEMLot a
  58. LEFT JOIN ICSMO b ON a.TransNO=b.MOCODE AND a.TransLine=b.MOSEQ
  59. LEFT JOIN ICSINVENTORY c ON a.ItemCode=c.INVCODE
  60. LEFT JOIN (select b.LOTNOs,a.EQPCode,a.EATTRIBUTE3,a.EATTRIBUTE4
  61. from
  62. (
  63. SELECT LOTNOs=CONVERT(xml,'<root><v>'+REPLACE(LOTNOs, ';','</v><v>')+'</v></root>'),EQPCode,EATTRIBUTE3,EATTRIBUTE4
  64. FROM ICSOpFile
  65. WHERE id ='{0}')a
  66. outer apply
  67. (select LOTNOs=C.v.value('.','nvarchar(100)') from a.LOTNOs.nodes('/root/v')C(v))b) d ON a.LotNO=d.LOTNOs
  68. WHERE a.LotNO in (select b.LOTNOs
  69. from
  70. (
  71. SELECT LOTNOs=CONVERT(xml,'<root><v>'+REPLACE(LOTNOs, ';','</v><v>')+'</v></root>')
  72. FROM ICSOpFile
  73. WHERE id ='{0}')a
  74. outer apply
  75. (select LOTNOs=C.v.value('.','nvarchar(100)') from a.LOTNOs.nodes('/root/v')C(v))b) AND a.TYPE=''";
  76. sql = string.Format(sql, guid);
  77. DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString.ToString(), CommandType.Text, sql).Tables[0];
  78. if (dt != null)
  79. {
  80. gridControl1.DataSource = dt;
  81. gridView4.BestFitColumns();
  82. dtNewRcards = dt;
  83. }
  84. }
  85. #endregion
  86. #region 关闭 退出
  87. private void btnClose_Click(object sender, EventArgs e)
  88. {
  89. this.Close();
  90. }
  91. #endregion
  92. #region 移动窗体
  93. private const int WM_NCHITTEST = 0x84;
  94. private const int HTCLIENT = 0x1;
  95. private const int HTCAPTION = 0x2;
  96. //首先必须了解Windows的消息传递机制,当有鼠标活动消息时,
  97. //系统发送WM_NCHITTEST 消息给窗体作为判断消息发生地的根据。 nchittest
  98. //假如你点击的是标题栏,窗体收到的消息值就是 HTCAPTION ,
  99. //同样地,若接受到的消息是 HTCLIENT,说明用户点击的是客户区,也就是鼠标消息发生在客户区。
  100. //重写窗体,使窗体可以不通过自带标题栏实现移动
  101. protected override void WndProc(ref Message m)
  102. {
  103. //当重载窗体的 WndProc 方法时,可以截获 WM_NCHITTEST 消息并改些该消息,
  104. //当判断鼠标事件发生在客户区时,改写改消息,发送 HTCAPTION 给窗体,
  105. //这样,窗体收到的消息就时 HTCAPTION ,在客户区通过鼠标来拖动窗体就如同通过标题栏来拖动一样。
  106. //注意:当你重载 WndProc 并改写鼠标事件后,整个窗体的鼠标事件也就随之改变了。
  107. switch (m.Msg)
  108. {
  109. case WM_NCHITTEST:
  110. base.WndProc(ref m);
  111. if ((int)m.Result == HTCLIENT)
  112. m.Result = (IntPtr)HTCAPTION;
  113. return;
  114. }
  115. //拦截双击标题栏、移动窗体的系统消息
  116. if (m.Msg != 0xA3)
  117. {
  118. base.WndProc(ref m);
  119. }
  120. }
  121. #endregion
  122. #region 保存
  123. private void save_Click(object sender, EventArgs e)
  124. {
  125. entity.MUSER = AppConfig.UserId;
  126. entity.MUSERName = AppConfig.UserName;
  127. entity.MTIME = Convert.ToDateTime(AppConfig.GetSeverDateTime("yyyy-MM-dd hh:mm:ss").ToString());
  128. try
  129. {
  130. List<ICSOpFile> modelList = new List<ICSOpFile>();
  131. ICSOpFile model = new ICSOpFile();
  132. if (txtEQPCode.Text.Trim() == "")
  133. {
  134. ICSBaseSimpleCode.AppshowMessageBox("设备号不能为空!!!");
  135. return;
  136. }
  137. if (txtCostCenter.Text.Trim() == "")
  138. {
  139. ICSBaseSimpleCode.AppshowMessageBox("工序不能为空!!!");
  140. return;
  141. }
  142. if (!string.IsNullOrWhiteSpace(ID)&&gridView4.RowCount <= 0)
  143. {
  144. ICSBaseSimpleCode.AppshowMessageBox("产品跟踪单信息不能为空!!!");
  145. return;
  146. }
  147. if (dtNewRcards.Rows.Count > 0)
  148. {
  149. #region 表中有值
  150. for (int i = 0; i < dtNewRcards.Rows.Count; i++)
  151. {
  152. if (model.LOTNOs != null)
  153. {
  154. model.LOTNOs += gridView4.GetRowCellValue(i, colLotNO).ToString() + ";";
  155. if (!model.MOCODE.Contains(dtNewRcards.Rows[i]["MOCODE"].ToString()))
  156. {
  157. model.MOCODE += gridView4.GetRowCellValue(i, colMOCODE).ToString() + ";";
  158. }
  159. if (!model.MOSEQ.Contains(dtNewRcards.Rows[i]["MOSEQ"].ToString()))
  160. {
  161. model.MOSEQ += gridView4.GetRowCellValue(i, colMOSEQ).ToString() + ";";
  162. }
  163. if (!model.EQPCode.Contains(dtNewRcards.Rows[i]["EQPCODE"].ToString()))
  164. {
  165. model.EQPCode += gridView4.GetRowCellValue(i, colEQPCode).ToString() + ";";
  166. }
  167. if (!model.EATTRIBUTE2.Contains(dtNewRcards.Rows[i]["VenderLotNo"].ToString()))
  168. {
  169. model.EATTRIBUTE2 += gridView4.GetRowCellValue(i, gridColumn11).ToString() + ";";
  170. }
  171. if (!model.EATTRIBUTE3.Contains(dtNewRcards.Rows[i]["EQPName"].ToString()))
  172. {
  173. model.EATTRIBUTE3 += gridView4.GetRowCellValue(i, colEQPName).ToString() + ";";
  174. }
  175. if (!model.EATTRIBUTE4.Contains(dtNewRcards.Rows[i]["OpCode"].ToString()))
  176. {
  177. model.EATTRIBUTE4 += gridView4.GetRowCellValue(i, colOpCode).ToString() + ";";
  178. }
  179. }
  180. else
  181. {
  182. model.MOCODE += gridView4.GetRowCellValue(i, colMOCODE).ToString() + ";";
  183. model.MOSEQ += gridView4.GetRowCellValue(i, colMOSEQ).ToString() + ";";
  184. model.EQPCode += gridView4.GetRowCellValue(i, colEQPCode).ToString() + ";";
  185. model.EATTRIBUTE2 += gridView4.GetRowCellValue(i, gridColumn11).ToString() + ";";
  186. model.EATTRIBUTE3 += gridView4.GetRowCellValue(i, colEQPName).ToString() + ";";
  187. model.LOTNOs += gridView4.GetRowCellValue(i, colLotNO).ToString() + ";";
  188. model.EATTRIBUTE4 += gridView4.GetRowCellValue(i, colOpCode).ToString() + ";";
  189. }
  190. }
  191. #endregion
  192. }
  193. else
  194. {
  195. model.EQPCode = txtEQPCode.Text.Trim();
  196. model.EATTRIBUTE3= txtEQPName.Text.Trim();
  197. model.EATTRIBUTE4 = txtCostCenter.Text.Trim();
  198. }
  199. if (flag == 2)
  200. {
  201. model.ID = ID;
  202. }
  203. else
  204. {
  205. model.ID = AppConfig.GetGuid();
  206. }
  207. model.MUSER = AppConfig.UserId;
  208. model.MUSERName = AppConfig.UserName;
  209. model.MTIME = AppConfig.GetSeverDateTime("yyyy-MM-dd HH:mm:ss");
  210. model.WorkPoint = AppConfig.WorkPointCode;
  211. model.EATTRIBUTE5 = txtNum.Text;
  212. modelList.Add(model);
  213. if (modelList.Count <= 0)
  214. {
  215. ICSBaseSimpleCode.AppshowMessageBox("请选择数据!!!");
  216. return;
  217. }
  218. if (flag == 0 || Type.Equals("炉号"))
  219. {
  220. ICSHeatTreatmentBLL.AddList(modelList,Transno, AppConfig.AppConnectString);
  221. if (flag == 2)
  222. {
  223. ICSBaseSimpleCode.AppshowMessageBox("炉号修改成功!!!");
  224. }
  225. else
  226. {
  227. ICSBaseSimpleCode.AppshowMessageBox("炉号新增成功!!!");
  228. }
  229. this.Close();
  230. this.DialogResult = DialogResult.Yes;
  231. }
  232. else if (flag == 1 || Type.Equals("试样号"))
  233. {
  234. ICSHeatTreatmentBLL.AddSample(modelList, ID, Transno,flag, AppConfig.AppConnectString);
  235. if (flag == 2)
  236. {
  237. ICSBaseSimpleCode.AppshowMessageBox("试样号修改成功!!!");
  238. }
  239. else
  240. {
  241. ICSBaseSimpleCode.AppshowMessageBox("试样号新增成功!!!");
  242. }
  243. this.Close();
  244. this.DialogResult = DialogResult.Yes;
  245. }
  246. }
  247. catch (Exception ex)
  248. {
  249. ICSBaseSimpleCode.AppshowMessageBox(ex.Message);
  250. }
  251. }
  252. #endregion
  253. #region 取消
  254. private void can_Click(object sender, EventArgs e)
  255. {
  256. this.Close();
  257. }
  258. #endregion
  259. #region 页面加载
  260. private void FormICSItenLotAdd_Load(object sender, EventArgs e)
  261. {
  262. init();
  263. load();
  264. //新增试样号,设备号不可选
  265. if (!string.IsNullOrEmpty(EQPCode))
  266. {
  267. txtEQPCode.Text = EQPCode;
  268. txtEQPCode.Enabled = false;
  269. txtCostCenter.Text = OpCode;
  270. txtCostCenter.Enabled = false;
  271. }
  272. txtEQPCode.Focus();
  273. loadNum();
  274. }
  275. #endregion
  276. #region 初始化查询条件
  277. private void init()
  278. {
  279. #region 设备
  280. string sql = @"select EQPCode as 设备号,EQPName as 设备名称
  281. from ICSEquipment";
  282. DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString.ToString(), CommandType.Text, sql).Tables[0];
  283. txtEQPCode.Properties.ValueMember = "设备号";
  284. txtEQPCode.Properties.DisplayMember = "设备号";
  285. txtEQPCode.Properties.DataSource = dt;
  286. txtEQPCode.Properties.NullText = "";//空时的值
  287. txtEQPCode.Properties.ImmediatePopup = true;//输入值是否马上弹出窗体
  288. txtEQPCode.Properties.ValidateOnEnterKey = true;//回车确认
  289. txtEQPCode.Properties.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.Standard;//要使用户可以输入,这里须设为Standard
  290. txtEQPCode.Properties.AllowNullInput = DevExpress.Utils.DefaultBoolean.True; //可用Ctrl + Delete清空选择內容
  291. //自适应宽度
  292. txtEQPCode.Properties.BestFitMode = DevExpress.XtraEditors.Controls.BestFitMode.BestFitResizePopup;
  293. #endregion
  294. #region 成本中心
  295. string sqlop = "select OPCODE as 代码,opdesc as 描述 from ICSOP where OpFrom='热处理'";
  296. DataTable dtop = DBHelper.ExecuteDataset(AppConfig.AppConnectString.ToString(), CommandType.Text, sqlop).Tables[0];
  297. txtCostCenter.Properties.ValueMember = "代码";
  298. txtCostCenter.Properties.DisplayMember = "代码";
  299. txtCostCenter.Properties.DataSource = dtop;
  300. txtCostCenter.Properties.NullText = "";//空时的值
  301. txtCostCenter.Properties.ImmediatePopup = true;//输入值是否马上弹出窗体
  302. txtCostCenter.Properties.ValidateOnEnterKey = true;//回车确认
  303. txtCostCenter.Properties.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.Standard;//要使用户可以输入,这里须设为Standard
  304. txtCostCenter.Properties.AllowNullInput = DevExpress.Utils.DefaultBoolean.True; //可用Ctrl + Delete清空选择內容
  305. //自适应宽度
  306. txtCostCenter.Properties.BestFitMode = DevExpress.XtraEditors.Controls.BestFitMode.BestFitResizePopup;
  307. #endregion
  308. }
  309. #endregion
  310. #region 加载方法
  311. private void load()
  312. {
  313. if (flag == 0 || flag == 1)
  314. {
  315. string sql = @"SELECT '' as isSelect,a.LotNO,a.ItemCode,b.INVNAME,b.INVSTD,a.LOTQTY,b.INVUOM,CONVERT(NUMERIC(10,3),(a.LOTQTY*a.EATTRIBUTE3)) AS num,b.INVEXPORTIMPORT
  316. ,c.MOCODE,a.VenderLotNO as VenderLotNo,c.MOVER,a.EATTRIBUTE1 as EQPCODE,a.EATTRIBUTE2 as EQPName,c.MOSEQ,'' as OpCode
  317. FROM ICSITEMLot a
  318. INNER JOIN ICSINVENTORY b ON a.ItemCode=b.INVCODE
  319. LEFT JOIN ICSMO c ON a.TransNO=c.MOCODE AND a.TransLine=c.MOSEQ
  320. WHERE 1!=1
  321. ORDER BY a.LotNO";
  322. DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString.ToString(), CommandType.Text, sql).Tables[0];
  323. dtNewRcards = dt;
  324. }
  325. else
  326. {
  327. SearchInfo(ID);
  328. }
  329. }
  330. #endregion
  331. #region 设备号改变
  332. private void txtEQPCode_EditValueChanged(object sender, EventArgs e)
  333. {
  334. try
  335. {
  336. string Code = txtEQPCode.Text.ToString();
  337. string sql = @"select EQPCode as 设备号,EQPName as 设备名称
  338. from ICSEquipment
  339. WHERE EQPCode='{0}'";
  340. sql = string.Format(sql, Code);
  341. DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString.ToString(), CommandType.Text, sql).Tables[0];
  342. if (dt != null && dt.Rows.Count > 0)
  343. {
  344. txtEQPName.Text = dt.Rows[0]["设备名称"].ToString();
  345. }
  346. //txtCostCenter.Focus();
  347. }
  348. catch (Exception ex)
  349. {
  350. ICSBaseSimpleCode.AppshowMessageBox(ex.ToString());
  351. }
  352. }
  353. #endregion
  354. #region 删除
  355. private void repositoryItemButtonEdit1_ButtonClick(object sender, DevExpress.XtraEditors.Controls.ButtonPressedEventArgs e)
  356. {
  357. //gridView4.DeleteRow(gridView4.FocusedRowHandle);
  358. //gridView4.RefreshEditor(true);
  359. DataRow[] drs = dtNewRcards.Select("LotNO='" + gridView4.GetRowCellValue(gridView4.FocusedRowHandle, colLotNO).ToString() + "'");
  360. foreach (DataRow dr in drs)
  361. {
  362. dtNewRcards.Rows.Remove(dr);
  363. }
  364. if (gridView4.RowCount <= 0)
  365. {
  366. txtCostCenter.Properties.ReadOnly = true;
  367. txtEQPCode.Properties.ReadOnly = true;
  368. }
  369. loadNum();
  370. }
  371. #endregion
  372. #region 绑定数据
  373. private void DataBind(string lotno, string invcode, string invname, string invuom, string invstd, string num, string invexportimport,string mover,
  374. string mocode,string moseq,string eqpcode,string venderlotno ,string eqpname,string center)
  375. {
  376. //带出产品跟踪单信息
  377. DevExpress.Utils.WaitDialogForm _wait = new DevExpress.Utils.WaitDialogForm("正在查找...请稍等...");
  378. try
  379. {
  380. _wait.Show();
  381. if (gridView4.RowCount > 0)
  382. {
  383. DataRow[] isRow = dtNewRcards.Select("LotNO= '" + lotno + "'");
  384. if (isRow == null || isRow.Length <= 0)
  385. {
  386. DataRow row = dtNewRcards.NewRow();
  387. row["LotNO"] = lotno;
  388. row["ItemCode"] = invcode;
  389. row["INVNAME"] = invname;
  390. row["INVUOM"] = invuom;
  391. row["INVSTD"] = invstd;
  392. row["num"] = num;
  393. row["INVEXPORTIMPORT"] = mover;
  394. row["MOCODE"] = mocode;
  395. row["MOSEQ"] = moseq;
  396. row["EQPCODE"] = eqpcode;
  397. row["VenderLotNo"] = venderlotno;
  398. row["EQPName"] = eqpname;
  399. row["OpCode"] = center;
  400. dtNewRcards.Rows.InsertAt(row, 0);
  401. gridControl1.DataSource = dtNewRcards;
  402. gridView4.BestFitColumns();
  403. txtLotNo.Focus();
  404. txtLotNo.SelectAll();
  405. }
  406. else
  407. {
  408. ICSBaseSimpleCode.AppshowMessageBox("产品跟踪单已扫描,不能重复扫描!");
  409. txtLotNo.Focus();
  410. txtLotNo.SelectAll();
  411. _wait.Close();
  412. return;
  413. }
  414. }
  415. else
  416. {
  417. DataTable dtNewRcard = new DataTable();
  418. dtNewRcard.Columns.Add("LotNO", typeof(string));//产品跟踪单号
  419. dtNewRcard.Columns.Add("ItemCode", typeof(string));//存货编码
  420. dtNewRcard.Columns.Add("INVNAME", typeof(string));//存货名称
  421. dtNewRcard.Columns.Add("INVUOM", typeof(string));//单位
  422. dtNewRcard.Columns.Add("INVSTD", typeof(string));//规格型号
  423. dtNewRcard.Columns.Add("num", typeof(string));//重量
  424. dtNewRcard.Columns.Add("INVEXPORTIMPORT", typeof(string));//辅助单位
  425. dtNewRcard.Columns.Add("MOCODE", typeof(string));//工单
  426. dtNewRcard.Columns.Add("MOSEQ", typeof(string));//工单行
  427. dtNewRcard.Columns.Add("EQPCODE", typeof(string));//设备
  428. dtNewRcard.Columns.Add("VenderLotNo", typeof(string));//批次号
  429. dtNewRcard.Columns.Add("EQPName", typeof(string));//设备名
  430. dtNewRcard.Columns.Add("OpCode", typeof(string));//工序
  431. DataRow row = dtNewRcard.NewRow();
  432. row["LotNO"] = lotno;
  433. row["ItemCode"] = invcode;
  434. row["INVNAME"] = invname;
  435. row["INVUOM"] = invuom;
  436. row["INVSTD"] = invstd;
  437. row["num"] = num;
  438. row["INVEXPORTIMPORT"] = invexportimport;
  439. row["VenderLotNo"] = venderlotno;
  440. row["MOCODE"] = mocode;
  441. row["MOSEQ"] = moseq;
  442. row["EQPCODE"] = eqpcode;
  443. row["VenderLotNo"] = venderlotno;
  444. row["EQPName"] = eqpname;
  445. row["OpCode"] = center;
  446. dtNewRcard.Rows.Add(row);
  447. gridControl1.DataSource = dtNewRcard;
  448. dtNewRcards = dtNewRcard;
  449. gridView4.BestFitColumns();
  450. txtLotNo.Focus();
  451. txtLotNo.SelectAll();
  452. txtCostCenter.Properties.ReadOnly = true;
  453. txtEQPCode.Properties.ReadOnly = true;
  454. }
  455. _wait.Close();
  456. }
  457. catch (Exception ex)
  458. {
  459. MessageBox.Show("异常:" + ex.Message, "异常", MessageBoxButtons.OK, MessageBoxIcon.Error);
  460. _wait.Close();
  461. }
  462. }
  463. #endregion
  464. #region 扫描产品跟踪单号
  465. private void txtLotNo_KeyPress(object sender, KeyPressEventArgs e)
  466. {
  467. if (e.KeyChar != 13)
  468. {
  469. return;
  470. }
  471. if (txtEQPCode.Text == "")
  472. {
  473. ICSBaseSimpleCode.AppshowMessageBox("设备编号不能为空,请选择设备!");
  474. return;
  475. }
  476. if (txtCostCenter.Text=="")
  477. {
  478. ICSBaseSimpleCode.AppshowMessageBox("工序不能为空,请选择工序!");
  479. return;
  480. }
  481. if (txtLotNo.Text == "")
  482. {
  483. ICSBaseSimpleCode.AppshowMessageBox("产品跟踪单号不能为空!");
  484. return;
  485. }
  486. string sql = @"SELECT a.LotNO,a.ItemCode,c.INVNAME,c.INVSTD,a.LOTQTY,c.INVUOM,
  487. CONVERT(NUMERIC(10,3),(a.LOTQTY*a.EATTRIBUTE3)) AS num,c.INVEXPORTIMPORT,a.VenderLotNO as VenderLotNo,
  488. a.TransNO as ,a.TransLine as ,c.INVNAME as ,b.MOPLANQTY as ,
  489. c.INVSTD as ,b.MOVER as ,b.MOTYPE as
  490. FROM ICSITEMLot a
  491. LEFT JOIN ICSMO b ON a.TransNO=b.MOCODE AND a.TransLine=b.MOSEQ
  492. LEFT JOIN ICSINVENTORY c ON a.ItemCode=c.INVCODE
  493. WHERE a.LotNO='{0}' AND a.TYPE=''";
  494. sql = string.Format(sql, txtLotNo.Text);
  495. DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString.ToString(), CommandType.Text, sql).Tables[0];
  496. if (dt != null && dt.Rows.Count > 0)
  497. {
  498. txtMOCode.Text = dt.Rows[0]["工单号"].ToString();
  499. txtMORow.Text = dt.Rows[0]["生产订单行号"].ToString();
  500. txtiQuantity.Text = dt.Rows[0]["工单数量"].ToString();
  501. txtMoverCode.Text = dt.Rows[0]["VenderLotNo"].ToString();
  502. txtMOType.Text = dt.Rows[0]["工单类型"].ToString();
  503. txtCode.Text = dt.Rows[0]["ItemCode"].ToString();//存货编码
  504. txtcInvName.Text = dt.Rows[0]["存货名称"].ToString();
  505. txtcInvStd.Text = dt.Rows[0]["规格型号"].ToString();
  506. DataBind(txtLotNo.Text, dt.Rows[0]["ItemCode"].ToString(), dt.Rows[0]["INVNAME"].ToString(),
  507. dt.Rows[0]["INVUOM"].ToString(), dt.Rows[0]["INVSTD"].ToString(), dt.Rows[0]["num"].ToString(),
  508. dt.Rows[0]["INVEXPORTIMPORT"].ToString(), dt.Rows[0]["零件号"].ToString(), dt.Rows[0]["工单号"].ToString(), dt.Rows[0]["生产订单行号"].ToString(),
  509. txtEQPCode.Text,dt.Rows[0]["VenderLotNo"].ToString(),txtEQPName.Text,txtCostCenter.Text
  510. );
  511. loadNum();
  512. }
  513. else
  514. {
  515. ICSBaseSimpleCode.AppshowMessageBox("产品跟踪单号不存在!");
  516. txtLotNo.Focus();
  517. txtLotNo.SelectAll();
  518. return;
  519. }
  520. }
  521. #endregion
  522. #region 工序
  523. private void txtCostCenter_EditValueChanged(object sender, EventArgs e)
  524. {
  525. //txtLotNo.Focus();
  526. //txtLotNo.SelectAll();
  527. }
  528. #endregion
  529. #region 统计跟踪单个数
  530. private void loadNum()
  531. {
  532. try
  533. {
  534. txtNum.Text = gridView4.RowCount.ToString();
  535. }
  536. catch (Exception ex)
  537. {
  538. MessageBox.Show("异常:" + ex.Message, "异常", MessageBoxButtons.OK, MessageBoxIcon.Error);
  539. }
  540. }
  541. #endregion
  542. }
  543. }