|
- using MaiMuAOI.SysCtrl;
- using Models;
- using SqlSugar;
- 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 static System.Windows.Forms.VisualStyles.VisualStyleElement;
-
- namespace MaiMuAOI.SysUI.ProductAndStep
- {
- public partial class ProductClassesFrm : Form
- {
- Service.ClassesService service = new Service.ClassesService();
- List<Classes> lstClasses = new List<Classes>();
- ValType valType;
- private int Tag;
- private bool saveExit = false;
-
- public ProductClassesFrm(int tag, string subject = "类别设置", ValType _valType = ValType.字符串)
- {
- InitializeComponent();
- UIStyle.SetUIStyle(this);
- this.uiTitel1.FatherForm = this;
-
- this.Tag = tag;
- this.Text = subject;
- valType = _valType;
- dataGridView2.AutoGenerateColumns = false;
- //显示行号与列宽度自动调整
- dataGridView2.RowHeadersVisible = true;
- dataGridView2.RowHeadersWidthSizeMode = DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders;
- dataGridView2.RowPostPaint += (sender, e) =>
- {
- SysMgr.showRowNum_onDataGrid_RowPostPaint(this.dataGridView2, sender, e);
- };
- }
- private void InitDataView()
- {
- //dataGridView2.Rows.Clear();
- var exp1 = Expressionable.Create<Classes>()
- .And(m => m.Tag == Tag)
- //.AndIF(dateTimePicker2.Checked, it => it.CreateTime < dateTimePicker2.Value)
- .ToExpression();//注意 这一句 不能少
-
- lstClasses = service.GetList(exp1).OrderBy(m => m.Order).ToList();
- if (lstClasses.Count < 1)//wlq 大坑:这个因为如果绑定数据源【list】是不为null但长度是0的 ,一旦点击新增 后 点击行就会抛出 索引为-1的相关错误。这个微软不知道咋设计的
- {
- lstClasses.Insert(0, new Classes());
- dataGridView2.DataSource = lstClasses;
- dataGridView2.DataSource = null;
- lstClasses.RemoveAt(0);
- }
- dataGridView2.DataSource = lstClasses;// new BindingSource(lstClasses, null);
- //for(int i=0;i<lstClasses.Count;i++)
- //{
- // lstClasses[i].Order = i;
- // dataGridView2.Rows.Add(lstClasses[i].Id, lstClasses[i].Order, lstClasses[i].Name, lstClasses[i].Name);
- //}
- }
- private void ProductClassesFrm_Load(object sender, EventArgs e)
- {
- InitDataView();
- }
-
- private void tsbtnSave_Click(object sender, EventArgs e)
- {
- try
- {
- if (lstClasses.Where(m => string.IsNullOrWhiteSpace(m.Name)).Count() > 0)
- throw new Exception("请填写名称!");
-
- bool result;
- var lstInsert = lstClasses.Where(m => m.Id == 0).ToList();
- if (lstInsert.Count > 0)
- {
- result = service.InsertRange(lstInsert);
- if (!result)
- throw new Exception("保存失败!");
- }
- var lstUpdate = lstClasses.Where(m => m.Id > 0).ToList();
- if (lstUpdate.Count > 0)
- {
- result = service.UpdateRange(lstUpdate);
- if (!result)
- throw new Exception("保存失败!");
- }
-
-
- MessageBox.Show("保存成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
- saveExit = true;
- this.DialogResult = DialogResult.OK;
- this.Close();
- }
- catch (Exception ex)
- {
- MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
- }
- }
-
- private void tsbtnExit_Click(object sender, EventArgs e)
- {
- this.Close();
- }
-
- private void dataGridView2_CellContentClick(object sender, DataGridViewCellEventArgs e)
- {
- int Index = this.dataGridView2.CurrentRow.Index;//获取当前选中行的索引
- if (Index < this.dataGridView2.Rows.Count && this.dataGridView2.CurrentCell.Value.ToString() == "设置")
- {
-
- }
- }
-
- private void dataGridView2_CellEndEdit(object sender, DataGridViewCellEventArgs e)
- {
- try
- {
- var id = (int)dataGridView2.Rows[e.RowIndex].Cells["colId"].Value;
- var order = (int)dataGridView2.Rows[e.RowIndex].Cells["colOrder"].Value;
- var preValue = dataGridView2.Rows[e.RowIndex].Cells["colPreName"].Value.ToString();
- if (dataGridView2.Rows[e.RowIndex].Cells["colName"].Value == null || dataGridView2.Rows[e.RowIndex].Cells["colName"].Value.ToString() == "")
- {
- dataGridView2.Rows[e.RowIndex].Cells["colName"].Value = preValue;
- return;
- }
-
- var value = dataGridView2.Rows[e.RowIndex].Cells["colName"].Value.ToString();
- var count = lstClasses.Where(m => m.Id != id && m.Name == value.ToString()).Count();
- if (count > 0)
- {
- if (!string.IsNullOrWhiteSpace(preValue))
- dataGridView2.Rows[e.RowIndex].Cells["colName"].Value = preValue;
- else
- dataGridView2.Rows[e.RowIndex].Cells["colName"].Value = "";
- throw new Exception("已存在相同名称!");
- }
-
- //
- if (id == 0)
- {
- if (string.IsNullOrWhiteSpace(value))
- return;
-
- var m = lstClasses[lstClasses.Count - 1];
- lstClasses[lstClasses.Count - 1] = service.InsertReturnEntity(lstClasses[lstClasses.Count - 1]);
- //if (!result)
- // throw new Exception("保存失败!");
- }
- else
- {
- if (value.Equals(preValue))//未修改
- return;
-
- bool result = service.InsertOrUpdate(lstClasses[e.RowIndex]);
- if (!result)
- throw new Exception("保存失败!");
- }
- dataGridView2.Rows[e.RowIndex].Cells["colPreName"].Value = dataGridView2.Rows[e.RowIndex].Cells["colName"].Value;
- }
- catch (Exception ex)
- {
- MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
- }
- }
- private void tsbtnNew_Click(object sender, EventArgs e)
- {
- if (dataGridView2.EndEdit())
- {
- //int index=dataGridView2.Rows.Add();
- if (lstClasses.Count < 1 || lstClasses.Where(m => m.Id == 0).Count() < 1)
- {
- var model = new Classes()
- {
- Tag = this.Tag,
- Name = "",
- Order = lstClasses.Count,
- CreateUserCode = SysMgr.Instance.UserMgr.LoginUser.Code,
- ModifyUserCode = SysMgr.Instance.UserMgr.LoginUser.Code,
- };
- lstClasses.Add(model);
- dataGridView2.DataSource = null;
- dataGridView2.DataSource = lstClasses;
- dataGridView2.Rows[dataGridView2.Rows.Count - 1].Selected = true;
- dataGridView2.CurrentCell = dataGridView2.Rows[dataGridView2.Rows.Count - 1].Cells["colName"];
- this.dataGridView2.BeginEdit(true);
- }
-
-
- }
- }
- private void tsbtnDel_Click(object sender, EventArgs e)
- {
- try
- {
- if (!dataGridView2.EndEdit()) return;
- if (dataGridView2.SelectedRows.Count < 1)
- return;
-
- int index = dataGridView2.SelectedRows[0].Index;
- if (lstClasses[index].Id > 0)
- {
- if (!service.DeleteById(lstClasses[index].Id))
- throw new Exception("删除失败,此项可能已被使用!");
- }
- this.InitDataView();
- }
- catch (Exception ex)
- {
- MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
- }
- }
- private void dataGridView2_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
- {
- //var list = ((BindingSource)dataGridView2.DataSource).DataSource as List<Order>;
- for (int i = 0; i < dataGridView2.Rows.Count; i++)
- {
- dataGridView2.Rows[i].Cells["colPreName"].Value = dataGridView2.Rows[i].Cells["colName"].Value;
- }
- }
- }
- }
|