using ComponentFactory.Krypton.Toolkit; using NXWMS.Client.Code.Extends; using NXWMS.Client.Interface.Instock; using NXWMS.Client.Model.AppModels.Condition; using NXWMS.Client.Model.AppModels.Condition.Base; using NXWMS.Client.Model.AppModels.Condition.Common; using NXWMS.Client.Model.AppModels.Condition.Instock; using NXWMS.Client.Model.AppModels.Result; using NXWMS.Client.Model.AppModels.Result.Base; using NXWMS.Client.Model.AppModels.Result.Common; using NXWMS.Client.Model.AppModels.Result.Instock; using NXWMS.Client.Model.CoreModels; using NXWMS.Client.WebApiService.Routers.Instock; using NXWMS.Commons; using NXWMS.Forms.Instock.frmInstockChild; 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.Text.RegularExpressions; using System.Web.UI.WebControls; using System.Windows.Forms; namespace NXWMS.Forms.Instock { /// /// 到货通知单窗体 /// public partial class frmWmsInArrival : KryptonForm { /// /// 窗体构造函数 /// public frmWmsInArrival() { InitializeComponent(); // 获取窗体的全类名 _CrrentClassName = System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.FullName; } #region 全局变量 /// /// 客户端字段排序列表(到货通知单主表) /// private List _clientFieldOrderList; /// /// 客户端字段排序列表(到货通知单明细表) /// private List _clientFieldOrderDtlList; /// /// 当前窗体类名 /// private string _CrrentClassName; /// /// 到货通知单主键ID,用于记录主表选中行的主键信息。 /// 目前由于 加载控件不能传递具有参数的函数,所以临时使用全局变量。 /// ToDo:后续修改优化加载控件的实现方式,支持传递具有参数的函数。 /// 孙亚龙 舍弃于2020年9月7日 /// //string arrivalId = string.Empty; /// /// 用于控制明细表数据的加载时机。 /// 由于主表DataGridView数据加载时,会默认触发选中项更改事件。这时候加载明细表数据会发生异常。 /// 使用全局变量,控制明细表的数据的加载时机,只能在主表数据全部初始化完成后,并且选中了一行主表数据的时候。 /// bool isControlArrivalDtlShow = false; /// /// 定义委托 /// 用于执行刷新页面数据的函数 /// public delegate void dlgRefreshFrmHost(); /// /// 定义委托变量 /// 用于绑定刷新页面数据的函数 /// public static dlgRefreshFrmHost RefreshFrmHost; #region 分页控件 /// /// 每页标签 /// KryptonLabel lbEveryPage; /// /// 每页记录数列表控件 /// KryptonComboBox cmbEveryPageRecordNum; /// /// 记录标签 /// KryptonLabel lbRecordsNum; /// /// 分割线 /// KryptonSeparator separator; /// /// 首页按钮 /// KryptonButton btFirstPage; /// /// 上一页按钮 /// KryptonButton btPrePage; /// /// 当前页标签 /// KryptonLabel lbCurrentPage; /// /// 总页数标签 /// KryptonLabel lbTotalPage; /// /// 数据记录总数标签 /// KryptonLabel lbTotalDataRecords; /// /// 下一页按钮 /// KryptonButton btNextPage; /// /// 尾页按钮 /// KryptonButton btLastPage; /// /// 分割线 /// KryptonSeparator separator1; /// /// 页码标签控件 /// KryptonLabel lbPageNum; /// /// 页码列表控件 /// KryptonComboBox cmbPageNumEnum; /// /// 分割线 /// KryptonSeparator separator2; /// /// 跳转页码按钮 /// KryptonButton btGotoPage; #endregion #endregion #region 初始化数据 private bool isIniData; /// /// 窗体加载事件函数 /// /// /// private void frmWmsInArrival_Load(object sender, EventArgs e) { this.isIniData = true; #region 获取主、明细表的显示列信息 //获取到货通知单主表数据源配置 var result = ConfigServices.configService.GetDataViewOrderList(new ClientFieldOrderCondition { SourceCode = $"{_CrrentClassName}" }); if (result.Status == OperateStatus.Success) { _clientFieldOrderList = result.Data; } //获取到货通知单明细表表数据源配置 var resultDtl = ConfigServices.configService.GetDataViewOrderList(new ClientFieldOrderCondition { SourceCode = $"{_CrrentClassName}_Dtl" }); if (resultDtl.Status == OperateStatus.Success) { _clientFieldOrderDtlList = resultDtl.Data; } #endregion InitComboBoxItemData(); dtp_startTime.Value = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd 00:00:00")); dtp_endTime.Value = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd 23:59:59")); dtp_startTime.Checked = false; dtp_endTime.Checked = false; //InitPageControl(); RefreshFrmHost = new dlgRefreshFrmHost(RefreshArrivalSearchData); #region 分页按钮 //btFirstPage.Enabled = false; //btPrePage.Enabled = false; //btNextPage.Enabled = false; //btLastPage.Enabled = false; //btGotoPage.Enabled = false; #endregion this.isIniData = false; } /// /// 初始化下拉列表数据 /// private void InitComboBoxItemData() { /* ToDo:后续把下拉列表转为 后台获取数据,目前是写死的。 */ List results = new List(); #region 单据类型 results = BasDictionaryUtil.basDictionaryResultLst.FindAll(x => x.DICTIONARY_CODE == "ArrivalTypeDesc"); if (results.Count > 0) { cmb_arrivalType.Items.Clear(); cmb_arrivalType.Items.Add(new ListItem { Value = "", Text = "请选择", }); foreach (var item in results) { cmb_arrivalType.Items.Add(new ListItem { Value = item.DICTIONARY_ITEM_CODE, Text = item.DICTIONARY_ITEM_NAME, }); } cmb_arrivalType.SelectedIndex = 0; } else { KryptonMessageBox.Show("未找到到货通知单类型的字典项数据!"); } #endregion #region 单据状态 results = BasDictionaryUtil.basDictionaryResultLst.FindAll(x => x.DICTIONARY_CODE == "ArrivalOrderStatusDesc"); if (results.Count > 0) { cmb_arrivalStatus.Items.Clear(); cmb_arrivalStatus.Items.Add(new ListItem { Value = "", Text = "请选择", }); foreach (var item in results) { cmb_arrivalStatus.Items.Add(new ListItem { Value = item.DICTIONARY_ITEM_CODE, Text = item.DICTIONARY_ITEM_NAME, }); } cmb_arrivalStatus.SelectedIndex = 0; } else { KryptonMessageBox.Show("未找到到货通知单状态的字典项数据!"); } #endregion #region 仓库信息 var warehouseResult = BaseServices.warehouseService.GetList(new WarehouseSearchCondition { IsUsed = true, ItemSQL = "WAREHOUSE_CODE,WAREHOUSE_NAME" }); if (warehouseResult.Status == OperateStatus.Success) { cmb_targetWarehouse.Items.Clear(); cmb_targetWarehouse.Items.Add(new ListItem { Value = "", Text = "请选择", }); foreach (WarehouseResult item in warehouseResult.Data.RowData.ToList()) { cmb_targetWarehouse.Items.Add(new ListItem { Value = item.WAREHOUSE_CODE, Text = item.WAREHOUSE_NAME, }); } cmb_targetWarehouse.SelectedIndex = 0; } else { cmb_targetWarehouse.Items.Clear(); KryptonMessageBox.Show(warehouseResult.Message); } #endregion #region 供应商信息 var result = BaseServices.supplierService.GetList(new SupplierSearchCondition { IsUsed = true, PageIndex = 1, PageSize = 10000 }); if (result.Status == OperateStatus.Success) { cmb_supplierMsg.Items.Clear(); cmb_supplierMsg.Items.Add(new ListItem { Value = "", Text = "请选择", }); foreach (SupplierResult item in result.Data.RowData.ToList()) { cmb_supplierMsg.Items.Add(new ListItem { Value = item.SUPPLIER_CODE, Text = item.SUPPLIER_NAME, }); } cmb_supplierMsg.SelectedIndex = 0; } else { cmb_supplierMsg.Items.Clear(); KryptonMessageBox.Show(result.Message); } #endregion } #endregion #region 查询到货通知单数据 /// /// 查询按钮事件函数 /// /// /// private void btnSearch_Click(object sender, EventArgs e) { var loadfrm = new frmLoading(); loadfrm.Show(); var message = loadfrm.EventCalExec(LoadWmsInArrivalData); // setButtonEnable(); } /// /// 刷新到货通知单的查询数据 /// private void RefreshArrivalSearchData() { var loadfrm = new frmLoading(); loadfrm.Show(); var message =loadfrm.EventCalExec(LoadWmsInArrivalData); if (!string.IsNullOrWhiteSpace(message)) { KryptonMessageBox.Show($"查询失败!\r\n{message}", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information); } } /// /// 调用服务端接口,请求到货通知单主表数据 /// /// private string LoadWmsInArrivalData() { var result = WmsInstockService.wmsInArrivalService.GetWmsInArrivalListForPage(new WmsInArrivalSearchMd { ArrivalNoMsg = tb_arrivalNo.Text, SourceNoMsg = tb_sourceNo.Text, PurchaseStaffMsg = tb_purchaseStaffMsg.Text, MaterialMsg = tb_materialMsg.Text, ArrivalTypeMsg = ((ListItem)cmb_arrivalType.SelectedItem).Value, ArrivalStatus = ((ListItem)cmb_arrivalStatus.SelectedItem).Value, SupplierMsg = ((ListItem)cmb_supplierMsg.SelectedItem).Value, WarehouseMsg = ((ListItem)cmb_targetWarehouse.SelectedItem).Value, StartCreateTime = dtp_startTime.Checked ? dtp_startTime.Value.ToString() : null, EndCreateTime = dtp_endTime.Checked ? dtp_endTime.Value.ToString() : null, PageNum = this.pageToolbar1.PageIndex, //Convert.ToInt32(lbCurrentPage.Tag), EveryPageQty = this.pageToolbar1.PageSize// Convert.ToInt32(cmbEveryPageRecordNum.Text), }); if (result.Status == OperateStatus.Success) { dgv_WmsInArrival.Columns.Clear(); dgv_WmsInArrivalDtl.DataSource = null; //arrivalId = string.Empty; isControlArrivalDtlShow = false; dgv_WmsInArrival.DataSource = result.Data; dgv_WmsInArrival.BuildDataGridView(_clientFieldOrderList.GetFieldOrderDic()); dgv_WmsInArrival.ClearSelection(); isControlArrivalDtlShow = true; SetStatusCellBackColor(dgv_WmsInArrival, "ARRIVAL_STATUS_NAME"); #region 分页赋值 this.pageToolbar1.DataCount = result.DataCount; //if (result.Data.Count > 0) //{ // lbTotalPage.Tag = result.DataCount % Convert.ToInt32(cmbEveryPageRecordNum.Text) != 0 ? result.DataCount / Convert.ToInt32(cmbEveryPageRecordNum.Text) + 1 : result.DataCount / Convert.ToInt32(cmbEveryPageRecordNum.Text); // cmbPageNumEnum.Items.Clear(); // cmbPageNumEnum.Text = lbCurrentPage.Tag.ToString(); // for (int i = 0; i < Convert.ToInt32(lbTotalPage.Tag); i++) // { // cmbPageNumEnum.Items.Add(i + 1); // } // lbCurrentPage.Text = "第" + Convert.ToInt32(lbCurrentPage.Tag) + "页"; // lbTotalPage.Text = "共" + Convert.ToInt32(lbTotalPage.Tag) + "页"; // lbTotalDataRecords.Text = "总计:" + result.DataCount + "条数据记录"; //} //else //{ // lbCurrentPage.Text = "第" + Convert.ToInt32(lbCurrentPage.Tag) + "页"; // //lbCurrentPage.Tag = 1; // //lbTotalPage.Tag = 0; // //lbTotalPage.Text = "共0页"; // lbTotalDataRecords.Text = "总计:0条数据记录"; // cmbPageNumEnum.Items.Clear(); // cmbPageNumEnum.Text = string.Empty; //} #endregion tb_arrivalNo.Focus(); return string.Empty; } else { tb_arrivalNo.Focus(); return result.Message; } } #endregion #region 查询到货通知单明细表数据 /// /// 到货通知单主表选中行事件 /// /// /// private void dgv_WmsInArrival_SelectionChanged(object sender, EventArgs e) { if (dgv_WmsInArrival.SelectedRows.Count > 0 && isControlArrivalDtlShow) { //int rowIndec = dgv_WmsInArrival.CurrentCell.RowIndex; //int columnIndex = dgv_WmsInArrival.CurrentCell.RowIndex; //arrivalId = dgv_WmsInArrival.SelectedRows[0].Cells[1].Value.ToString(); int mainTableId = Convert.ToInt32(dgv_WmsInArrival.SelectedRows[0].Cells[1].Value); var loadfrm = new frmLoading(); loadfrm.Show(); var message = loadfrm.EventCalExecExt1(LoadWmsInArrivalDtlData, mainTableId); if (!string.IsNullOrWhiteSpace(message)) { KryptonMessageBox.Show($"查询失败!\r\n{message}", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information); } } } /// /// 调用服务端接口,请求到货通知单明细表数据 /// /// private string LoadWmsInArrivalDtlData(int mainTableId) { //if (string.IsNullOrEmpty(arrivalId)) //{ // return "请选择记录!"; //} var result = WmsInstockService.wmsInArrivalService.GetWmsInArrivalDtlListForId(new WmsInArrivalResult { ARRIVAL_ID = Convert.ToInt32(mainTableId), REMARKS1 = "查询已删除明细数据" }); if (result.Status == OperateStatus.Success) { dgv_WmsInArrivalDtl.Columns.Clear(); dgv_WmsInArrivalDtl.DataSource = result.Data.WmsInArrivalDtlList; dgv_WmsInArrivalDtl.BuildDataGridView(_clientFieldOrderDtlList.GetFieldOrderDic(), true, false); dgv_WmsInArrivalDtl.ClearSelection(); SetStatusCellBackColor(dgv_WmsInArrivalDtl, "ARRIVAL_DTL_STATUS_NAME"); return string.Empty; } else { return result.Message; } } #endregion #region 到货通知单增、删、改、重置条件操作 /// /// 新增到货通知单事件函数 /// /// /// private void btnAdd_Click(object sender, EventArgs e) { frmChildAddWmsInArrival frm = new frmChildAddWmsInArrival(); frm.ShowDialog(); } /// /// 编辑到货通知单事件 /// /// /// private void btnEdit_Click(object sender, EventArgs e) { int rowsSelectedNum = 0; string arrivalId = string.Empty; int rowSelectIndex = 0; foreach (DataGridViewRow item in dgv_WmsInArrival.Rows) { DataGridViewCheckBoxCell checkCell = (DataGridViewCheckBoxCell)item.Cells[0]; object obj = checkCell.EditedFormattedValue; if (Convert.ToBoolean(obj)) { rowsSelectedNum++; arrivalId = item.Cells[1].Value.ToString(); rowSelectIndex = item.Index; } } if (rowsSelectedNum > 0) { if (rowsSelectedNum == 1) { int arrivalStatus = Convert.ToInt32(dgv_WmsInArrival.Rows[rowSelectIndex].Cells["ARRIVAL_STATUS"].Value); if (arrivalStatus == (int)ArrivalStatus.初始创建) { frmChildEditWmsInArrival frm = new frmChildEditWmsInArrival(); frm.ArrivalId = arrivalId; frm.ShowDialog(); } else if (arrivalStatus < (int)ArrivalStatus.已完成) { KryptonMessageBox.Show($"第【{rowSelectIndex + 1}】行的到货通知单不处于【初始创建】状态,无法再次进行编辑!"); } else if (arrivalStatus == (int)ArrivalStatus.强制完成) { KryptonMessageBox.Show($"第【{rowSelectIndex + 1}】行的到货通知单已被【强制完成】,无法再次进行编辑!"); } else if (arrivalStatus == (int)ArrivalStatus.已删除) { KryptonMessageBox.Show($"第【{rowSelectIndex + 1}】行的到货通知单【已被删除】,无法再次进行编辑!"); } else if (arrivalStatus == (int)ArrivalStatus.已完成) { KryptonMessageBox.Show($"第【{rowSelectIndex + 1}】行的到货通知单【已完成】,无法再次进行编辑!"); } else { KryptonMessageBox.Show($"第【{rowSelectIndex + 1}】行的到货通知单状态【{arrivalStatus}】是未知的,无法进行编辑!"); } } else { KryptonMessageBox.Show("不能对勾选的多行数据进行编辑,请重新勾选一行数据!"); } } else { KryptonMessageBox.Show("请勾选要编辑的数据行!"); } } /// /// 删除到货通知单按钮事件 /// /// /// private void btnRemove_Click(object sender, EventArgs e) { int rowsSelected = 0; string arrivalId = string.Empty; Dictionary dic_IndexAndArrivalStatus = new Dictionary(); foreach (DataGridViewRow item in dgv_WmsInArrival.Rows) { DataGridViewCheckBoxCell checkCell = (DataGridViewCheckBoxCell)item.Cells[0]; object obj = checkCell.EditedFormattedValue; if (Convert.ToBoolean(obj)) { rowsSelected++; arrivalId += item.Cells[1].Value.ToString() + ","; int arrivalStatus = Convert.ToInt32(item.Cells["ARRIVAL_STATUS"].Value); dic_IndexAndArrivalStatus.Add(item.Index, arrivalStatus); } } if (rowsSelected > 0) { DialogResult dr = KryptonMessageBox.Show("确定要删除所勾选的到货通知单数据吗?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question); if (dr == DialogResult.OK) { foreach (var item in dic_IndexAndArrivalStatus) { if (item.Value == (int)ArrivalStatus.初始创建) { } else if (item.Value < (int)ArrivalStatus.已完成) { KryptonMessageBox.Show($"不能对第【{item.Key + 1}】行不处于【初始创建】状态的到货通知单,执行删除操作!"); return; } else if (item.Value == (int)ArrivalStatus.强制完成) { KryptonMessageBox.Show($"不能对第【{item.Key + 1}】行处于【强制完成】状态的到货通知单,执行删除操作!"); return; } else if (item.Value == (int)ArrivalStatus.已删除) { KryptonMessageBox.Show($"不能对第【{item.Key + 1}】行处于【已删除】状态的到货通知单,执行删除操作!"); return; } else if (item.Value == (int)ArrivalStatus.已完成) { KryptonMessageBox.Show($"不能对第【{item.Key + 1}】行处于【已完成】状态的到货通知单,执行删除操作!"); return; } else { KryptonMessageBox.Show($"不能对第【{item.Key + 1}】行处于未知状态【{item.Value}】的到货通知单,执行删除操作!"); return; } } arrivalId = arrivalId.Substring(0, arrivalId.Length - 1); var result = WmsInstockService.wmsInArrivalService.DeleteWmsInArrivalData(new WmsInArrivalResult { ARRIVAL_NO = arrivalId, UPDATE_BY = AppConfig.UserLoginResult.UserInfo.UserId }); if (result.Status == OperateStatus.Success) { KryptonMessageBox.Show(result.Message); RefreshArrivalSearchData(); } else { KryptonMessageBox.Show(result.Message); } } } else { KryptonMessageBox.Show("请勾选要删除的到货通知单数据行!"); } } /// /// 重置查询条件 /// /// /// private void btnReset_Click(object sender, EventArgs e) { tb_arrivalNo.Text = ""; tb_sourceNo.Text = ""; tb_materialMsg.Text = ""; tb_purchaseStaffMsg.Text = ""; cmb_arrivalStatus.SelectedIndex = 0; cmb_arrivalType.SelectedIndex = 0; cmb_supplierMsg.SelectedIndex = 0; cmb_targetWarehouse.SelectedIndex = 0; dtp_startTime.Value = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd 00:00:00")); dtp_startTime.Checked = false; dtp_endTime.Value = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd 23:59:59")); dtp_endTime.Checked = false; } #endregion #region 导入、导出、打印到货通知单数据 /// /// 导出到货通知单数据 /// /// /// private void btnExport_Click(object sender, EventArgs e) { List arrIdList = new List(); foreach (DataGridViewRow item in dgv_WmsInArrival.Rows) { DataGridViewCheckBoxCell checkCell = (DataGridViewCheckBoxCell)item.Cells[0]; object obj = checkCell.EditedFormattedValue; if (Convert.ToBoolean(obj)) { arrIdList.Add(item.Cells[1].Value.ToString()); } } if (arrIdList.Count > 0) { List wmsInArrivalList = new List(); foreach (string item in arrIdList) { var result = WmsInstockService.wmsInArrivalService.GetWmsInArrivalDtlListForId(new WmsInArrivalResult { ARRIVAL_ID = Convert.ToInt32(item) }); if (result.Status == OperateStatus.Success) { wmsInArrivalList.Add(result.Data); } } NxExcelHelper.ExportToExcel(GetWmsArrivalExportExcelData(wmsInArrivalList), "到货通知单数据"); } else { KryptonMessageBox.Show("请勾选要导出的数据行!"); } } private DataTable GetWmsArrivalExportExcelData(List wmsInArrivalList) { DataTable dt = new DataTable(); #region 准备导出列名 DataColumn dc = new DataColumn("到货通知单号"); dt.Columns.Add(dc); dc = new DataColumn("参考单号"); dt.Columns.Add(dc); dc = new DataColumn("单据类型"); dt.Columns.Add(dc); dc = new DataColumn("采购单号"); dt.Columns.Add(dc); dc = new DataColumn("采购人员"); dt.Columns.Add(dc); dc = new DataColumn("采购时间"); dt.Columns.Add(dc); dc = new DataColumn("仓库编码"); dt.Columns.Add(dc); dc = new DataColumn("仓库名称"); dt.Columns.Add(dc); dc = new DataColumn("预计到货时间"); dt.Columns.Add(dc); dc = new DataColumn("实际到货时间"); dt.Columns.Add(dc); dc = new DataColumn("物料类型编码"); dt.Columns.Add(dc); dc = new DataColumn("物料类型名称"); dt.Columns.Add(dc); dc = new DataColumn("物料编码"); dt.Columns.Add(dc); dc = new DataColumn("物料名称"); dt.Columns.Add(dc); dc = new DataColumn("物料条码"); dt.Columns.Add(dc); dc = new DataColumn("规格"); dt.Columns.Add(dc); dc = new DataColumn("单位"); dt.Columns.Add(dc); dc = new DataColumn("批次号"); dt.Columns.Add(dc); dc = new DataColumn("到货数量"); dt.Columns.Add(dc); dc = new DataColumn("已收货数量"); dt.Columns.Add(dc); dc = new DataColumn("供应商编码"); dt.Columns.Add(dc); dc = new DataColumn("供应商名称"); dt.Columns.Add(dc); dc = new DataColumn("生产日期"); dt.Columns.Add(dc); dc = new DataColumn("失效日期"); dt.Columns.Add(dc); #endregion foreach (WmsInArrivalResult arrivalMd in wmsInArrivalList) { foreach (WmsInArrivalDtlResult arrivalDtlMd in arrivalMd.WmsInArrivalDtlList) { DataRow dr = dt.NewRow(); dr["到货通知单号"] = arrivalMd.ARRIVAL_NO; dr["参考单号"] = arrivalMd.SOURCE_BILL_NO; dr["单据类型"] = arrivalMd.ARRIVAL_TYPE_NAME; dr["采购单号"] = arrivalMd.PURCHASE_ORDER_NO; dr["采购人员"] = arrivalMd.PURCHASE_STAFF; dr["采购时间"] = arrivalMd.PURCHASE_TIME; dr["仓库编码"] = arrivalMd.WAREHOUSE_CODE; dr["仓库名称"] = arrivalMd.WAREHOUSE_NAME; dr["预计到货时间"] = arrivalMd.EXPECT_ARRIVAL_TIME; dr["实际到货时间"] = arrivalMd.ACTUAL_ARRIVAL_TIME; dr["物料类型编码"] = arrivalDtlMd.MATERIEL_TYPE_CODE; dr["物料类型名称"] = arrivalDtlMd.MATERIEL_TYPE_NAME; dr["物料编码"] = arrivalDtlMd.MATERIEL_CODE; dr["物料名称"] = arrivalDtlMd.MATERIEL_NAME; dr["物料条码"] = arrivalDtlMd.MATERIEL_BARCODE; dr["规格"] = arrivalDtlMd.MATERIEL_SPEC; dr["单位"] = arrivalDtlMd.UNIT_CODE; dr["批次号"] = arrivalDtlMd.BATCH_NO; dr["到货数量"] = arrivalDtlMd.ARRIVAL_QTY; dr["已收货数量"] = arrivalDtlMd.RECEIPT_QTY; dr["供应商编码"] = arrivalDtlMd.SUPPLIER_CODE; dr["供应商名称"] = arrivalDtlMd.SUPPLIER_NAME; dr["生产日期"] = arrivalDtlMd.PRODUCT_DATE; dr["失效日期"] = arrivalDtlMd.EXP_DATE; dt.Rows.Add(dr); } } return dt; } /// /// Excel导入到货通知单数据 /// /// /// private void btnImport_Click(object sender, EventArgs e) { } /// /// 打印到货通知单 /// /// /// private void btnPrint_Click(object sender, EventArgs e) { } #endregion #region DatatGridView 事件 /// /// 设置DatatGridView的第一列复选框的背景色 /// /// /// private void dgv_WmsInArrival_CellContentClick(object sender, DataGridViewCellEventArgs e) { #region 由于删除,导出可能存在多行勾选,所以注释掉下面的代码 // 由于删除,导出可能存在多行勾选,所以注释掉下面的代码 //if (e.ColumnIndex == 0) //{ // DataGridViewCheckBoxCell checkCell = (DataGridViewCheckBoxCell)dgv_WmsInArrival.CurrentCell; // if (Convert.ToBoolean(checkCell.EditedFormattedValue)) // { // foreach (DataGridViewRow item in dgv_WmsInArrival.Rows) // { // if (!item.IsNewRow && item != dgv_WmsInArrival.CurrentRow) // { // item.Cells[0].Value = false; // } // } // } //} #endregion if (e.ColumnIndex == 0) { DataGridViewCheckBoxCell checkCell = (DataGridViewCheckBoxCell)dgv_WmsInArrival.CurrentCell; if (Convert.ToBoolean(checkCell.EditedFormattedValue)) { dgv_WmsInArrival.CurrentCell.Style.BackColor = Color.FromArgb(51, 153, 255); } else { dgv_WmsInArrival.CurrentCell.Style.BackColor = Color.Transparent; } } } /// /// 设置状态列的背景色 /// /// dataGridView控件 /// 状态列的列名称 private void SetStatusCellBackColor(KryptonDataGridView dataGridView, string columnName) { foreach (DataGridViewRow item in dataGridView.Rows) { string arrivalDtlStatus = item.Cells[columnName].Value.ToString(); switch (Enum.Parse(typeof(ArrivalStatus), arrivalDtlStatus)) { case ArrivalStatus.初始创建: //item.Cells[columnName].Style.ForeColor = Color.White; item.Cells[columnName].Style.BackColor = Color.FromArgb(214, 228, 243); break; case ArrivalStatus.已生成收货单: //item.Cells[columnName].Style.ForeColor = Color.White; item.Cells[columnName].Style.BackColor = Color.LightYellow; break; case ArrivalStatus.收货中: //item.Cells[columnName].Style.ForeColor = Color.White; item.Cells[columnName].Style.BackColor = Color.LightGreen; break; case ArrivalStatus.已完成: //item.Cells[columnName].Style.ForeColor = Color.White; item.Cells[columnName].Style.BackColor = Color.LightGray; break; case ArrivalStatus.强制完成: //item.Cells[columnName].Style.ForeColor = Color.White; item.Cells[columnName].Style.BackColor = Color.DarkGray; break; case ArrivalStatus.已删除: //item.Cells[columnName].Style.ForeColor = Color.White; item.Cells[columnName].Style.BackColor = Color.FromArgb(255, 69, 0); break; default: break; } } } private void dgv_WmsInArrival_DataError(object sender, DataGridViewDataErrorEventArgs e) { } private void dgv_WmsInArrivalDtl_DataError(object sender, DataGridViewDataErrorEventArgs e) { } #endregion #region 鼠标右键单击事件 private void 刷新ToolStripMenuItem_Click(object sender, EventArgs e) { if (dgv_WmsInArrival.Rows.Count > 0) { RefreshArrivalSearchData(); } } private void 刷新ToolStripMenuItem1_Click(object sender, EventArgs e) { if (dgv_WmsInArrivalDtl.Rows.Count > 0) { if (dgv_WmsInArrival.SelectedRows.Count > 0 && isControlArrivalDtlShow) { //arrivalId = dgv_WmsInArrival.SelectedRows[0].Cells[1].Value.ToString(); int mainTableId = Convert.ToInt32(dgv_WmsInArrival.SelectedRows[0].Cells[1].Value); var loadfrm = new frmLoading(); loadfrm.Show(); loadfrm.EventCalExecExt1(LoadWmsInArrivalDtlData, mainTableId); } } } #endregion private void pageToolbar1_OnPageChange(int PageIndex, int PageSzie) { this.btnSearch_Click(null, null); } } }