using ComponentFactory.Krypton.Toolkit; using NXWMS.Client.Code.Extends; using NXWMS.Client.Model.AppModels.Condition.Base; using NXWMS.Client.Model.AppModels.Result; using NXWMS.Client.Model.AppModels.Result.Base; using NXWMS.Client.Model.CoreModels; using NXWMS.Client.String.Enums; using NXWMS.Commons; using NXWMS.Services; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace NXWMS.Forms.Base { public partial class frmMateriel : KryptonForm { /// /// 界面最后执行操作 /// private EnumOperation _LastOperation; /// /// 客户端字段排序列表 /// private List _clientFieldOrderList; /// /// 物品类型列表 /// private List _materielTypeList; public frmMateriel() { InitializeComponent(); InitData(); InitControl(); } private int _selectIndex; private int _selectId; protected override CreateParams CreateParams { get { CreateParams cp = base.CreateParams; cp.ExStyle |= 0x02000000; return cp; } } /// /// 数据初始化 /// private void InitData() { var materielTypeResult = BaseServices.materielTypeService.GetList(new MaterielTypeSearchCondition { IsUsed = true,ItemSQL="MATERIEL_TYPE_CODE,MATERIEL_TYPE_NAME" }); if (materielTypeResult.Status == OperateStatus.Success) { _materielTypeList = materielTypeResult.Data.RowData.ToList(); } _clientFieldOrderList = new List(); _clientFieldOrderList.Add(new ClientFieldOrderResult { FieldName = "MATERIEL_CODE", FieldDesc = "物品编码" }); _clientFieldOrderList.Add(new ClientFieldOrderResult { FieldName = "MATERIEL_NAME", FieldDesc = "物品名称" }); _clientFieldOrderList.Add(new ClientFieldOrderResult { FieldName = "MATERIEL_TYPE", FieldDesc = "物品类型编码" }); _clientFieldOrderList.Add(new ClientFieldOrderResult { FieldName = "MaterielTypeName", FieldDesc = "物品类型名称" }); _clientFieldOrderList.Add(new ClientFieldOrderResult { FieldName = "LENGTH", FieldDesc = "长(cm" }); _clientFieldOrderList.Add(new ClientFieldOrderResult { FieldName = "WIDE", FieldDesc = "宽(cm)" }); _clientFieldOrderList.Add(new ClientFieldOrderResult { FieldName = "HEIGHT", FieldDesc = "高(cm" }); _clientFieldOrderList.Add(new ClientFieldOrderResult { FieldName = "VOLUME", FieldDesc = "体积" }); _clientFieldOrderList.Add(new ClientFieldOrderResult { FieldName = "WEIGHT", FieldDesc = "重量(KG)" }); _clientFieldOrderList.Add(new ClientFieldOrderResult { FieldName = "UNIT_PRICE", FieldDesc = "单价" }); _clientFieldOrderList.Add(new ClientFieldOrderResult { FieldName = "UnitName", FieldDesc = "单位" }); _clientFieldOrderList.Add(new ClientFieldOrderResult { FieldName = "SPECS_MODEL", FieldDesc = "规格型号" }); _clientFieldOrderList.Add(new ClientFieldOrderResult { FieldName = "MAX_STOCK", FieldDesc = "最大库存" }); _clientFieldOrderList.Add(new ClientFieldOrderResult { FieldName = "MIN_STOCK", FieldDesc = "最小库存" }); _clientFieldOrderList.Add(new ClientFieldOrderResult { FieldName = "EFFECTIVE_TIME", FieldDesc = "有效期" }); _clientFieldOrderList.Add(new ClientFieldOrderResult { FieldName = "DELAY_EFFECTIVE_TIME", FieldDesc = "默认延长有效时长(天)" }); _clientFieldOrderList.Add(new ClientFieldOrderResult { FieldName = "OUTBOUND_EFFECTIVE_TIME", FieldDesc = "出库有效期" }); _clientFieldOrderList.Add(new ClientFieldOrderResult { FieldName = "MATERIEL_PACKAGE_CODE", FieldDesc = "默认物料包装条码" }); _clientFieldOrderList.Add(new ClientFieldOrderResult { FieldName = "DESCRIBE", FieldDesc = "描述" }); _clientFieldOrderList.Add(new ClientFieldOrderResult { FieldName = "UsedFlagName", FieldDesc = "使用标识" }); _clientFieldOrderList.Add(new ClientFieldOrderResult { FieldName = "CreateName", FieldDesc = "创建人" }); _clientFieldOrderList.Add(new ClientFieldOrderResult { FieldName = "CREATE_TIME", FieldDesc = "创建时间" }); _clientFieldOrderList.Add(new ClientFieldOrderResult { FieldName = "UpdateName", FieldDesc = "更新人" }); _clientFieldOrderList.Add(new ClientFieldOrderResult { FieldName = "UPDATE_TIME", FieldDesc = "更新时间" }); //_pageIndex = 1; //_pageSize = 20; } /// /// 控件初始化 /// private void InitControl() { CheckForIllegalCrossThreadCalls = false; dataGridView.CellClick += new DataGridViewCellEventHandler(dataGridView_CellClick); dataGridView.BuildDataGridView(CommonUtil.GetFieldOrderDic(_clientFieldOrderList), false); cmbSearchMaterielType.DataSource = _materielTypeList; cmbSearchMaterielType.DisplayMember = "MATERIEL_TYPE_Name"; cmbSearchMaterielType.ValueMember = "MATERIEL_TYPE_CODE"; cmbSearchMaterielType.SelectedIndex = -1; //_pageIndex = 1; //_pageSize = 20; } private void dataGridView_CellClick(object sender, DataGridViewCellEventArgs e) { if (e.RowIndex >= 0 && e.ColumnIndex == 0) { if (this.dataGridView.Rows[e.RowIndex].Cells[e.ColumnIndex].Value == null) { if (!_CheckRowIdList.Where(s => s == dataGridView.Rows[e.RowIndex].Cells[_PrimaryKey].Value.ToString()).Any()) { _CheckRowIdList.Add(dataGridView.Rows[e.RowIndex].Cells[_PrimaryKey].Value.ToString()); } this.dataGridView.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = 1; } else if (dataGridView.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString() == "1") { if (_CheckRowIdList.Where(s => s == dataGridView.Rows[e.RowIndex].Cells[_PrimaryKey].Value.ToString()).Any()) { _CheckRowIdList.Remove(dataGridView.Rows[e.RowIndex].Cells[_PrimaryKey].Value.ToString()); } this.dataGridView.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = 0; } else { if (!_CheckRowIdList.Where(s => s == dataGridView.Rows[e.RowIndex].Cells[_PrimaryKey].Value.ToString()).Any()) { _CheckRowIdList.Add(dataGridView.Rows[e.RowIndex].Cells[_PrimaryKey].Value.ToString()); } this.dataGridView.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = 1; } } } private void btnSearch_Click(object sender, EventArgs e) { var loadfrm = new frmLoading(); loadfrm.Show(); var message = loadfrm.EventCalExec(LoadSearch, this.pageTool.PageIndex, this.pageTool.PageSize); if (!string.IsNullOrWhiteSpace(message)) { KryptonMessageBox.Show($"查询失败!\r\n{message}", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information); } } private string LoadSearch(int pageIndex, int pageSize) { var result = BaseServices.materielService.GetList(new MaterielSearchCondition { OperationUserId = AppConfig.UserLoginResult.UserInfo.UserId, EffectiveBeginTime = dtpSearchBeginTime.Value, EffectiveEndTime = dtpSearchEndTime.Value, MaterielInfo = txtSearchMaterielInfo.Text, MaterielType = cmbSearchMaterielType.SelectedValue.GetObjectToString(), SpecsModel = txtSearchSpecsModel.Text, UnitCode = txtSearchUnit.SelectedValue.GetObjectToString(), IsUsed = chkSearchUse.Checked, PageIndex = pageIndex, PageSize = pageSize }); if (result.Status == OperateStatus.Success) { dataGridView.Columns.Clear(); this.pageTool.DataCount = result.Data.TotalCount; if (result.Data.RowData.Any()) { dataGridView.DataSource = result.Data.RowData.ToList(); } else { dataGridView.BuildDataGridView(CommonUtil.GetFieldOrderDic(_clientFieldOrderList), false); } dataGridView.BuildDataGridView(CommonUtil.GetFieldOrderDic(_clientFieldOrderList)); return string.Empty; } else { return result.Message; } } private void btnAdd_Click(object sender, EventArgs e) { var frm = new ChildFrm.FrmMaterielEdit(); frm.MaterielTypeList = this._materielTypeList; frm.operation = EnumOperation.Add; frm.Id = this._selectId; frm.InitControl(); if (frm.ShowDialog()==DialogResult.OK) { this.btnSearch_Click(null, null); } } private void SelectInit() { _selectIndex = dataGridView.SelectedRows[0].Index; if (_selectIndex >= 0) { _selectId = Convert.ToInt32(dataGridView.Rows[_selectIndex].Cells[_PrimaryKey].Value); } } private void btnEdit_Click(object sender, EventArgs e) { dataGridView_CellDoubleClick(null, null); } /// /// 选择行主键列表 /// private List _CheckRowIdList = new List(); /// /// 当前页面操作的主键 /// private string _PrimaryKey = "MATERIEL_ID"; private void btnRemove_Click(object sender, EventArgs e) { if (_CheckRowIdList.Count == 0) { return; } if (KryptonMessageBox.Show($"确认删除选中数据?", "提示信息", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.Yes) { _LastOperation = EnumOperation.Remove; var editResult = BaseServices.materielService.Deleted(new MaterielCondition { OperationUserId = AppConfig.UserLoginResult.UserInfo.UserId, Ids = string.Join(",", _CheckRowIdList) }); if (editResult.Status == OperateStatus.Success) { KryptonMessageBox.Show($"操作成功!", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information); btnSearch_Click(null, null); } } } private void dataGridView_CellDoubleClick(object sender, DataGridViewCellEventArgs e) { SelectInit(); if (_selectIndex >= 0) { var frm = new ChildFrm.FrmMaterielEdit(); frm.operation = EnumOperation.Edit; frm.MaterielTypeList = this._materielTypeList; frm.Id = this._selectId; frm.InitControl(); frm.tableLayoutPanelInput.SetGroupControls(dataGridView, dataGridView.Rows[_selectIndex]); if (frm.ShowDialog()==DialogResult.OK) { this.btnSearch_Click(null, null); this.dataGridView.ClearSelection(); } } } private Point mouse_offset; private void groupOperation_MouseDown(object sender, MouseEventArgs e) { mouse_offset = new Point(-e.X, -e.Y); } private void groupOperation_MouseMove(object sender, MouseEventArgs e) { ((Control)sender).Cursor = Cursors.Arrow; if (e.Button == MouseButtons.Left) { Point mousePos = MousePosition; mousePos.Offset(mouse_offset.X, mouse_offset.Y); ((Control)sender).Location = ((Control)sender).Parent.PointToClient(mousePos); Application.DoEvents(); } } private void btnSearchExport_Click(object sender, EventArgs e) { this.dataGridView.DataGridViewExport(); } private void dataGridView_RowStateChanged(object sender, DataGridViewRowStateChangedEventArgs e) { // e.Row.HeaderCell.Value = string.Format("{0}", (_pageIndex - 1) * _pageSize + e.Row.Index + 1); } private void pageTool_OnPageChange(int PageIndex, int PageSzie) { this.btnSearch_Click(null, null); } private void btnSearchImport_Click(object sender, EventArgs e) { } } }