Make_OutBoxSnCheck.cs 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. using System;
  2. using System.Data;
  3. using System.Drawing;
  4. using System.Windows.Forms;
  5. using UAS_MES_NEW.DataOperate;
  6. using UAS_MES_NEW.Entity;
  7. using UAS_MES_NEW.PublicForm;
  8. using UAS_MES_NEW.PublicMethod;
  9. namespace UAS_MES_NEW.Make
  10. {
  11. public partial class Make_OutBoxSnCheck : Form
  12. {
  13. AutoSizeFormClass asc = new AutoSizeFormClass();
  14. DataHelper dh;
  15. LogStringBuilder sql;
  16. DataTable dt;
  17. DataTable Dbfind;
  18. public Make_OutBoxSnCheck()
  19. {
  20. InitializeComponent();
  21. }
  22. private void Make_LabelCheck_Load(object sender, EventArgs e)
  23. {
  24. asc.controllInitializeSize(this);
  25. //聚焦SN号
  26. pa_outboxcode.Focus();
  27. //打开界面提示用户:请输入SN
  28. OperateResult.AppendText(">>请采集箱号\n", Color.Black);
  29. sql = new LogStringBuilder();
  30. dh = SystemInf.dh;
  31. LockMakeCode.GetMakeCodeCtl(ma_code);
  32. ma_code.SetLockCheckBox(LockMakeCode);
  33. //工单号放大镜配置
  34. ma_code.TableName = "make left join product on ma_prodcode=pr_code";
  35. ma_code.SelectField = "ma_code # 工单号,pr_code # 产品编号,pr_detail # 产品名称";
  36. ma_code.FormName = Name;
  37. ma_code.SetValueField = new string[] { "ma_code", "pr_code", "pr_detail" };
  38. ma_code.Condition = "ma_statuscode='STARTED'";
  39. ma_code.DbChange += Ma_code_DbChange;
  40. }
  41. private void Ma_code_DbChange(object sender, EventArgs e)
  42. {
  43. Dbfind = ma_code.ReturnData;
  44. BaseUtil.SetFormValue(this.Controls, Dbfind);
  45. //获取工单的其他信息
  46. sql.Clear();
  47. sql.Append("select ma_code,nvl(mcd_okqty,0) mcd_okqty,ma_prodcode as pr_code ,pr_detail,");
  48. sql.Append("pr_spec,ma_qty - nvl(mcd_inqty, 0) mcd_remainqty from make left join makecraftdetail on ");
  49. sql.Append("mcd_maid=ma_id left join product on pr_code=ma_prodcode where ma_code='" + ma_code.Text + "' and mcd_stepcode='" + User.CurrentStepCode + "'");
  50. dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
  51. if (dt.Rows.Count > 0)
  52. {
  53. BaseUtil.SetFormValue(this.Controls, dt);
  54. }
  55. }
  56. private void Make_LabelCheck_SizeChanged(object sender, EventArgs e)
  57. {
  58. asc.controlAutoSize(this);
  59. }
  60. private void sncode_KeyDown(object sender, KeyEventArgs e)
  61. {
  62. //判断是enter事件
  63. if (e.KeyCode == Keys.Enter)
  64. {
  65. if (sncode.Text == "")
  66. {
  67. OperateResult.AppendText("<<输入不能为空\n", Color.Red);
  68. return;
  69. }
  70. if (ma_code.Text == "")
  71. {
  72. OperateResult.AppendText("<<工单号不能为空\n", Color.Red);
  73. return;
  74. }
  75. string outboxcode = dh.getFieldDataByCondition("PACKAGEDETAIL_offline", "pd_outboxcode", "pd_barcode='" + sncode.Text + "'").ToString();
  76. if (!CancelCollection.Checked)
  77. {
  78. if (outboxcode != "")
  79. {
  80. OperateResult.AppendText("<<条码" + sncode.Text + "已采集到箱号" + outboxcode + "\n", Color.Red);
  81. return;
  82. }
  83. dh.ExecuteSql("insert into PACKAGEDETAIL_offline(PD_ID, PD_OUTBOXCODE, PD_BARCODE, PD_MAKECODE, PD_BUILDDATE)" +
  84. "values(PACKAGEDETAIL_offline_seq.nextval,'" + pa_outboxcode.Text + "','" + sncode.Text + "','" + ma_code.Text + "',sysdate)", "insert");
  85. }
  86. else
  87. {
  88. if (outboxcode == "")
  89. {
  90. OperateResult.AppendText("<<条码" + sncode.Text + "未采集\n", Color.Red);
  91. return;
  92. }
  93. if (outboxcode != pa_outboxcode.Text)
  94. {
  95. OperateResult.AppendText("<<条码" + sncode.Text + "已归属到箱号" + outboxcode + ",不允许在当前箱号取消\n", Color.Red);
  96. return;
  97. }
  98. dh.ExecuteSql("delete from PACKAGEDETAIL_offline where pd_outboxcode='" + pa_outboxcode.Text + "' and pd_barcode='" + sncode.Text + "'", "insert");
  99. }
  100. dt = (DataTable)dh.ExecuteSql("select pd_barcode from PACKAGEDETAIL_offline where pd_outboxcode='" + pa_outboxcode.Text + "'", "select");
  101. if (dt.Rows.Count > 0)
  102. {
  103. BaseUtil.FillDgvWithDataTable(CheckSnDGV, dt);
  104. sncode.Focus();
  105. }
  106. else
  107. {
  108. OperateResult.AppendText("<<箱号" + pa_outboxcode.Text + "不存在\n", Color.Red);
  109. }
  110. }
  111. }
  112. private void pa_outboxcode_KeyDown(object sender, KeyEventArgs e)
  113. {
  114. if (e.KeyCode == Keys.Enter)
  115. {
  116. dt = (DataTable)dh.ExecuteSql("select pd_barcode from PACKAGEDETAIL_offline where pd_outboxcode='" + pa_outboxcode.Text + "'", "select");
  117. if (dt.Rows.Count > 0)
  118. {
  119. BaseUtil.FillDgvWithDataTable(CheckSnDGV, dt);
  120. sncode.Focus();
  121. }
  122. else
  123. {
  124. OperateResult.AppendText("<<箱号" + pa_outboxcode.Text + "不存在\n", Color.Red);
  125. }
  126. }
  127. }
  128. }
  129. }