| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147 |
- using System;
- using System.Collections.Generic;
- using System.Data;
- using System.Drawing;
- using System.Text;
- using System.Windows.Forms;
- using UAS_MES_NEW.CustomControl.CustomCheckBox;
- using UAS_MES_NEW.CustomControl.RichText;
- using UAS_MES_NEW.CustomControl.TextBoxWithIcon;
- using UAS_MES_NEW.DataOperate;
- using UAS_MES_NEW.Entity;
- using UAS_MES_NEW.PublicMethod;
- namespace UAS_MES_NEW.Make
- {
- public partial class Make_MakeMaterialCheck : Form
- {
- DataHelper dh;
- LogStringBuilder sql = new LogStringBuilder();
- DataTable dt;
- AutoSizeFormClass asc = new AutoSizeFormClass();
- /// <summary>
- /// 已核对行标记的背景色
- /// </summary>
- readonly Color CheckColor = Color.LightGreen;
- public Make_MakeMaterialCheck()
- {
- InitializeComponent();
- }
- private void Make_MakeMaterialCheck_Load(object sender, EventArgs e)
- {
- asc.controllInitializeSize(this);
- dh = SystemInf.dh;
- //工单号放大镜配置
- ma_code.TableName = "make left join product on ma_prodcode=pr_code";
- ma_code.SelectField = "ma_code # 工单号,ma_prodcode # 产品编号,ma_qty # 工单数量,pr_detail # 产品名称";
- ma_code.FormName = Name;
- ma_code.DBTitle = "工单查询";
- ma_code.SetValueField = new string[] { "ma_code" };
- ma_code.DbChange += Ma_code_DBChange;
- ma_code.UserControlTextChanged += ma_code_UserControlTextChanged;
- ma_code.Focus();
- }
- private void Make_MakeMaterialCheck_SizeChanged(object sender, EventArgs e)
- {
- asc.controlAutoSize(this);
- }
- /// <summary>
- /// 工单号被清空时,清空列表与统计
- /// </summary>
- private void ma_code_UserControlTextChanged(object sender, EventArgs e)
- {
- if (ma_code.Text == "")
- {
- BaseUtil.CleanDGVData(MakeMaterialDGV);
- UpdateCounts();
- }
- }
- /// <summary>
- /// 工单选定后查询物料清单填充DGV
- /// </summary>
- private void Ma_code_DBChange(object sender, EventArgs e)
- {
- sql.Clear();
- sql.Append("select mm_prodcode,pr_detail,pr_spec from make");
- sql.Append(" left join makematerial on mm_code=ma_code");
- sql.Append(" left join product on pr_code=mm_prodcode");
- sql.Append(" where ma_code='" + ma_code.Text + "'");
- dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
- BaseUtil.FillDgvWithDataTable(MakeMaterialDGV, dt);
- UpdateCounts();
- OperateResult.AppendText(">>工单" + ma_code.Text + "物料清单加载完成,共" + dt.Rows.Count + "行\n", Color.Black);
- input.Focus();
- }
- /// <summary>
- /// 输入料号回车核对:匹配到的行标记绿色背景
- /// </summary>
- private void input_KeyDown(object sender, KeyEventArgs e)
- {
- if (e.KeyCode != Keys.Enter)
- return;
- e.SuppressKeyPress = true;
- if (ma_code.Text == "")
- {
- OperateResult.AppendText(">>请先选择工单\n", Color.Red, input);
- return;
- }
- string prodcode = input.Text.Trim().ToUpper();
- if (prodcode == "")
- {
- OperateResult.AppendText(">>请输入物料编号\n", Color.Red, input);
- return;
- }
- bool found = false;
- int newChecked = 0;
- for (int i = 0; i < MakeMaterialDGV.Rows.Count; i++)
- {
- string rowCode = MakeMaterialDGV.Rows[i].Cells["mm_prodcode"].Value == null ? "" : MakeMaterialDGV.Rows[i].Cells["mm_prodcode"].Value.ToString().Trim().ToUpper();
- if (rowCode == prodcode)
- {
- found = true;
- //已标记过的行不重复计数
- if (MakeMaterialDGV.Rows[i].DefaultCellStyle.BackColor != CheckColor)
- {
- MakeMaterialDGV.Rows[i].DefaultCellStyle.BackColor = CheckColor;
- newChecked++;
- }
- }
- }
- if (!found)
- {
- OperateResult.AppendText(">>物料" + prodcode + "不在当前工单的物料清单中\n", Color.Red, input);
- return;
- }
- if (newChecked == 0)
- OperateResult.AppendText(">>物料" + prodcode + "已核对过,不允许重复核对\n", Color.Black, input);
- else
- OperateResult.AppendText(">>物料" + prodcode + "核对成功,本次核对" + newChecked + "行\n", Color.Green, input);
- UpdateCounts();
- input.Clear();
- input.Focus();
- }
- /// <summary>
- /// 刷新底部统计:物料总数取DGV行数,已核对取绿色背景行数
- /// </summary>
- private void UpdateCounts()
- {
- int checkedCount = 0;
- for (int i = 0; i < MakeMaterialDGV.Rows.Count; i++)
- {
- if (MakeMaterialDGV.Rows[i].DefaultCellStyle.BackColor == CheckColor)
- checkedCount++;
- }
- total_label.Text = "物料总数: " + MakeMaterialDGV.Rows.Count;
- checked_label.Text = "已核对行数: " + checkedCount;
- }
- }
- }
|