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 frmSupplier : KryptonForm { /// /// 界面最后执行操作 /// private EnumOperation _LastOperation; /// /// 客户端字段排序列表 /// private List _clientFieldOrderList; public frmSupplier() { InitializeComponent(); InitData(); InitControl(); } protected override CreateParams CreateParams { get { CreateParams cp = base.CreateParams; cp.ExStyle |= 0x02000000; return cp; } } private int _selectIndex; private int _selectId; /// /// 数据初始化 /// private void InitData() { _clientFieldOrderList = new List(); _clientFieldOrderList.Add(new ClientFieldOrderResult { FieldName = "SUPPLIER_CODE", FieldDesc = "供应商编号" }); _clientFieldOrderList.Add(new ClientFieldOrderResult { FieldName = "SUPPLIER_NAME", FieldDesc = "供应商名称" }); _clientFieldOrderList.Add(new ClientFieldOrderResult { FieldName = "SUPPLIER_TYPE", FieldDesc = "供应商类型" }); _clientFieldOrderList.Add(new ClientFieldOrderResult { FieldName = "PROVINCE", FieldDesc = "省" }); _clientFieldOrderList.Add(new ClientFieldOrderResult { FieldName = "CITY", FieldDesc = "市" }); _clientFieldOrderList.Add(new ClientFieldOrderResult { FieldName = "AREA", FieldDesc = "区" }); _clientFieldOrderList.Add(new ClientFieldOrderResult { FieldName = "STREET", FieldDesc = "街道" }); _clientFieldOrderList.Add(new ClientFieldOrderResult { FieldName = "ROUTE", FieldDesc = "路线" }); _clientFieldOrderList.Add(new ClientFieldOrderResult { FieldName = "POSTAL_CODE", FieldDesc = "邮政编码" }); _clientFieldOrderList.Add(new ClientFieldOrderResult { FieldName = "ADDRESS", FieldDesc = "地址" }); _clientFieldOrderList.Add(new ClientFieldOrderResult { FieldName = "UsedFlagName", FieldDesc = "使用标识" }); _clientFieldOrderList.Add(new ClientFieldOrderResult { FieldName = "CONTRACT", FieldDesc = "联系人" }); _clientFieldOrderList.Add(new ClientFieldOrderResult { FieldName = "CONTRACT_PHONE", 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 = "更新时间" }); } 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 List _CheckRowIdList = new List(); /// /// 当前页面操作的主键 /// private string _PrimaryKey = "SUPPLIER_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.supplierService.Deleted(new SupplierCondition { OperationUserId = AppConfig.UserLoginResult.UserInfo.UserId, Ids = string.Join(",", _CheckRowIdList) }); if (editResult.Status == OperateStatus.Success) { KryptonMessageBox.Show($"操作成功!", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information); //groupOperation.Visible = false; btnSearch_Click(null, null); } } } /// /// 控件初始化 /// private void InitControl() { CheckForIllegalCrossThreadCalls = false; //groupOperation.GotFocus += new EventHandler(groupOperation_GostFocus); dataGridView.CellClick += new DataGridViewCellEventHandler(dataGridView_CellClick); dataGridView.BuildDataGridView(CommonUtil.GetFieldOrderDic(_clientFieldOrderList), false); //TODO 0805 以下所有配置都需要从数据库或者其它地方读取,这里暂时写死,后期加上配置表,联动查询 var fieldList = new List().GetFieldValueCodeList(); cmbSearchSupplierType.DataSource = fieldList; cmbSearchSupplierType.DisplayMember = "Name"; cmbSearchSupplierType.ValueMember = "Code"; cmbSearchSupplierType.SelectedIndex = -1; //cmbSupplierType.DataSource = fieldList; //cmbSupplierType.DisplayMember = "Name"; //cmbSupplierType.ValueMember = "Code"; //cmbSupplierType.SelectedIndex = -1; fieldList = new List(); fieldList.Add(new FieldValue { Code = "江苏省", Name = "江苏省" }); cmbSearchProvince.DataSource = fieldList; cmbSearchProvince.DisplayMember = "Name"; cmbSearchProvince.ValueMember = "Code"; cmbSearchProvince.SelectedIndex = -1; //cmbProvince.DataSource = fieldList; //cmbProvince.DisplayMember = "Name"; //cmbProvince.ValueMember = "Code"; //cmbProvince.SelectedIndex = -1; fieldList = new List(); fieldList.Add(new FieldValue { Code = "无锡市", Name = "无锡市" }); cmbSearchCity.DataSource = fieldList; cmbSearchCity.DisplayMember = "Name"; cmbSearchCity.ValueMember = "Code"; cmbSearchCity.SelectedIndex = -1; //cmbCity.DataSource = fieldList; //cmbCity.DisplayMember = "Name"; //cmbCity.ValueMember = "Code"; //cmbCity.SelectedIndex = -1; fieldList = new List(); fieldList.Add(new FieldValue { Code = "锡山区", Name = "锡山区" }); //cmbArea.DataSource = fieldList; //cmbArea.DisplayMember = "Name"; //cmbArea.ValueMember = "Code"; //cmbArea.SelectedIndex = -1; _pageIndex = 1; _pageSize = 20; } private void groupOperation_GostFocus(object sender, EventArgs e) { //groupOperation.Values.Heading = _LastOperation.Display(); ////groupOperation.Values.Image = Image.FromFile(_LastOperation.ImagePath()); //groupOperation.Text = $"{ _LastOperation.Display()}数据"; //lbStatusMessage.Visible = true; } private void btnAdd_Click(object sender, EventArgs e) { var frm = new ChildFrm.FrmSupplierEdit(); frm.operation = EnumOperation.Add; frm.InitControl(); if (frm.ShowDialog()==DialogResult.OK) { this.btnSearch_Click(null, null); } //if (!groupOperation.Visible) //{ // _selectId = 0; // tableLayoutPanelInput.SetGroupControlsEmpty(dataGridView); // richDescibe.Text = ""; // _LastOperation = EnumOperation.Add; // txtSupplierCode.Enabled = true; // groupOperation.Visible = true; // groupOperation.Focus(); //} } private void btnEdit_Click(object sender, EventArgs e) { dataGridView_CellDoubleClick(null, null); } private void dataGridView_CellDoubleClick(object sender, DataGridViewCellEventArgs e) { SelectInit(); if (_selectIndex >= 0) { var frm = new ChildFrm.FrmSupplierEdit(); frm.operation = EnumOperation.Add; frm.Id = this._selectId; frm.InitControl(); frm.tableLayoutPanelInput.SetGroupControls(dataGridView, dataGridView.Rows[_selectIndex]); if (frm.ShowDialog() == DialogResult.OK) { this.btnSearch_Click(null, null); } //_LastOperation = EnumOperation.Edit; //tableLayoutPanelInput.SetGroupControls(dataGridView, dataGridView.Rows[_selectIndex]); //richDescibe.Text = dataGridView.Rows[_selectIndex].Cells["DESCRIBE"].Value == null ? "" : // dataGridView.Rows[_selectIndex].Cells["DESCRIBE"].Value.ToString(); //txtSupplierCode.Enabled = false; //groupOperation.Visible = true; //groupOperation.Focus(); } } private void SelectInit() { _selectIndex = dataGridView.SelectedRows[0].Index; if (_selectIndex >= 0) { _selectId = Convert.ToInt32(dataGridView.Rows[_selectIndex].Cells[_PrimaryKey].Value); } } private void btnSearch_Click(object sender, EventArgs e) { _pageIndex = 1; var loadfrm = new frmLoading(); loadfrm.Show(); var message = loadfrm.EventCalExec(LoadSearch, this.pageTool.PageIndex, this.pageTool.PageSize); pageTool.DataCount = _totalCount; if (!string.IsNullOrWhiteSpace(message)) { KryptonMessageBox.Show($"查询失败!\r\n{message}", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information); } } private int _pageSize; private int _pageIndex; private int _totalCount; private string LoadSearch(int pageIndex, int pageSize) { var result = BaseServices.supplierService.GetList(new SupplierSearchCondition { OperationUserId = AppConfig.UserLoginResult.UserInfo.UserId, City = cmbSearchCity.SelectedValue.GetObjectToString(), SupplierCode = txtSearchSupplierCode.Text, SupplierName = txtSearchSupplierName.Text, SupplierType = cmbSearchSupplierType.SelectedValue.GetObjectToString(), Province = cmbSearchProvince.SelectedValue.GetObjectToString(), IsUsed = chkSearchUse.Checked, PageIndex = pageIndex, PageSize = pageSize }); if (result.Status == OperateStatus.Success) { _totalCount = result.Data.TotalCount; _pageIndex = pageIndex; _pageSize = pageSize; if (result.Data.RowData.Any()) { dataGridView.Columns.Clear(); dataGridView.DataSource = result.Data.RowData.ToList(); dataGridView.BuildDataGridView(CommonUtil.GetFieldOrderDic(_clientFieldOrderList)); } else { if (dataGridView.DataSource != null) { dataGridView.DataSource = new List(); } dataGridView.BuildDataGridView(CommonUtil.GetFieldOrderDic(_clientFieldOrderList), false); } return string.Empty; } else { return result.Message; } } private void btnSearchExport_Click(object sender, EventArgs e) { this.dataGridView.DataGridViewExport($"{AppConfig.CurrentMenu.FirstOrDefault().MenuName}列表" + DateTime.Now.ToString("yyyyMMddHH")); } //private void btnSave_Click(object sender, EventArgs e) //{ // if (string.IsNullOrWhiteSpace(txtSupplierCode.Text)) // { // KryptonMessageBox.Show($"请输入客户编码!", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information); // return; // } // switch (_LastOperation) // { // case EnumOperation.Add: // var addResult = BaseServices.supplierService.Add(new SupplierCondition // { // OperationUserId = AppConfig.UserLoginResult.UserInfo.UserId, // IsUsed = chkUse.Checked, // SupplierType = cmbSupplierType.SelectedValue == null ? "" : // cmbSupplierType.SelectedValue.ToString(), // Describe = richDescibe.Text, // Address = txtAddress.Text, // Area = cmbArea.Text, // City = cmbCity.Text, // Contract = txtContract.Text, // ContractPhone = txtContractPhone.Text, // SupplierCode = txtSupplierCode.Text, // SupplierName = txtSupplierName.Text, // PostalCode = txtPostalCode.Text, // Province = cmbProvince.Text, // Route = txtRoute.Text, // Street = cmbStreet.Text, // }); // if (addResult.Status == OperateStatus.Success) // { // KryptonMessageBox.Show($"操作成功!", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information); // InitControl(); // groupOperation.Visible = false; // btnSearch_Click(null, null); // dataGridView.ClearSelection(); // } // else // { // KryptonMessageBox.Show($"操作失败!\r\n{addResult.Message}", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information); // } // break; // case EnumOperation.Edit: // var editResult = BaseServices.supplierService.Edit(new SupplierCondition // { // OperationUserId = AppConfig.UserLoginResult.UserInfo.UserId, // IsUsed = chkUse.Checked, // SupplierType = cmbSupplierType.SelectedValue == null ? "" : // cmbSupplierType.SelectedValue.ToString(), // Describe = richDescibe.Text, // Address = txtAddress.Text, // Area = cmbArea.Text, // City = cmbCity.Text, // Contract = txtContract.Text, // ContractPhone = txtContractPhone.Text, // SupplierCode = txtSupplierCode.Text, // SupplierName = txtSupplierName.Text, // PostalCode = txtPostalCode.Text, // Province = cmbProvince.Text, // Route = txtRoute.Text, // Street = cmbStreet.Text, // Id = _selectId // }); // if (editResult.Status == OperateStatus.Success) // { // KryptonMessageBox.Show($"操作成功!", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information); // InitControl(); // groupOperation.Visible = false; // btnSearch_Click(null, null); // dataGridView.ClearSelection(); // } // else // { // KryptonMessageBox.Show($"操作失败!\r\n{editResult.Message}", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information); // } // break; // } //} private void btnExit_Click(object sender, EventArgs e) { if (KryptonMessageBox.Show($"确认退出 {_LastOperation.Display()}数据操作?", "提示信息", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.Yes) { //groupOperation.Visible = false; } else { //groupOperation.Visible = true; //groupOperation.Focus(); } } 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 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) { } } }