using ButcherManage.BO; using ButcherManage.BO.Enums; using ButcherManage.BO.LocalBL; using ButcherManage.BO.Utils; using ButcherManage.Dialogs; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using WinFormControl; namespace ButcherManage.HotPickSelector_ { public partial class HotPickSelector : Form, IWithRoleForm { #region IWithRoleForm public List RoleName { get { return new List { (short)设备类别.烫毛分线 }; } } public Form Generate() { return this; } #endregion List list; List records; DateTime date = DateTime.Today; HotPick current; public HotPickSelector() { InitializeComponent(); } protected override void OnLoad(EventArgs e) { base.OnLoad(e); datePicker.Text = date.ToString("yyyy-MM-dd"); BindGrid(); FillNumberPad(); } void RefreshRecordGrid()//bindgrid、numberclick { if (current == null) return; records = HotPickBL.GetSecondOrderDetails(current.ID); var row = records.Count % 5; if (records.Count % 5 == 0) { records.Add(new HotPick_Detail() { SecondOrder_ID = current.ID }); row = 0; } BindRecorGrid(); BindLabel(); recordGrid.Rows[records.Count / 5].Cells[row].Selected = true; } void BindLabel() { countLbl.Text = records.Where(x => x.Number > 0).Count().ToString(); numberLbl.Text = records.Sum(x => x.Number).ToString(); hotNumLbl.Text = list.Sum(x => x.HotFadeNumber).ToString(); } private void BindGrid()//onload、query、finish { list = HotPickBL.GetSecondOrderList(date).OrderBy(x => x.Order).OrderBy(x => x.Finish).ToList(); orderGrid.DataSource = list; current = list.FirstOrDefault(); foreach (DataGridViewRow row in orderGrid.Rows) { if ((bool)row.Cells["L_Finish"].Value) row.Cells[orderGrid.Columns.Count - 1] = new DataGridViewTextBoxCell(); } orderGrid.Refresh(); orderLbl.Text = current == null ? "0" : current.Order.ToString(); RefreshRecordGrid(); } private void FillNumberPad() { for (var i = 1; i < 10; i++) CreateBtn(i.ToString()); } void CreateBtn(string content) { var btn = new NButton() { Width = 100, Height = 60, Text = content, Font = new Font("宋体", 15), Margin = new Padding(18, 10, 18, 20), PlaySound = true }; btn.Click += NumberBtnClick; numPad.Controls.Add(btn); } private void NumberBtnClick(object sender, EventArgs e) { if (current == null) { NMessageBox.ShowDialog("没有待处理的数据"); return; } var number = int.Parse((sender as NButton).Text); var cell = recordGrid.CurrentCell; if (cell.Value == null && number == 0) return; var idx = cell.RowIndex * 5 + cell.ColumnIndex; var detail = new HotPick_Detail(); if (idx > records.Count - 1) { if (cell.RowIndex != records.Count / 5 || cell.ColumnIndex != records.Count % 5) cell = recordGrid.Rows[records.Count / 5].Cells[records.Count % 5]; detail.SecondOrder_ID = current.ID; detail.Number = number; records.Add(detail); } else { detail = records[idx]; detail.Number = number; } HotPickBL.Insert(detail, current); cell.Value = number; var row = records.Count % 5; if (records[records.Count - 1].Number == null) row -= 1; if (records.Count % 5 == 0) { records.Add(new HotPick_Detail() { SecondOrder_ID = current.ID }); row = 0; BindRecorGrid(); } recordGrid.Rows[records.Count / 5].Cells[row].Selected = true; var v = records.Sum(x => x.Number ?? 0); orderGrid.CurrentRow.Cells["L_HotFadeNumber"].Value = v; current.HotFadeNumber = v; BindLabel(); } void BindRecorGrid() { recordGrid.DataSource = EntityExpand.Build(records); recordGrid.Refresh(); } private void colseBtn_Click(object sender, EventArgs e) { Close(); } private void orderGrid_CellClick(object sender, DataGridViewCellEventArgs e) { if (e.RowIndex < 0) return; var id = (long)orderGrid.CurrentRow.Cells[1].Value; if (id == current.OrderDetail_ID) return; current = list.First(x => x.OrderDetail_ID == id); orderLbl.Text = current.Order.ToString(); RefreshRecordGrid(); } private void orderGrid_CellContentClick(object sender, DataGridViewCellEventArgs e) { if (e.ColumnIndex != orderGrid.Columns.Count - 1 || e.RowIndex == -1) return; HotPickBL.SetFinish(current); BindGrid(); } private void datePicker_MouseDown(object sender, MouseEventArgs e) { var cs = new CalendarSelecter(); if (cs.ShowDialog() == true) { date = cs.Result; datePicker.Text = date.ToString("yyyy-MM-dd"); } } private void queryBtn_Click(object sender, EventArgs e) { BindGrid(); } private void orderGrid_RowPrePaint(object sender, DataGridViewRowPrePaintEventArgs e) { DataGridViewRow dgrSingle = orderGrid.Rows[e.RowIndex]; var v = (bool)dgrSingle.Cells["L_Finish"].Value; if (v) dgrSingle.DefaultCellStyle.BackColor = Color.YellowGreen; } } }