/// <summary> /// 来料接收 /// </summary> private void tsbReceiveMaterial_Click(object sender, EventArgs e) { ReceiveMaterialEntity receiveMaterial = new ReceiveMaterialEntity(); if (lueShiftName.Text == "") { MessageBox.Show("班次信息不能为空!"); } if (txtOperatorNumber.Text == "") { MessageBox.Show("员工号不能为空!"); } #region 把视图上显示的数据填充到Table中 int count = 0; this.gdvMaterialDefault.RefreshData(); DataTable dataTable = CreatTable(); for (int i = 0; i < gdvMaterialDefault.RowCount; i++) { bool bSelected = false; string isSelected = gdvMaterialDefault.GetRowCellValue(i, "IsSelected").ToString(); if (!bool.TryParse(isSelected, out bSelected)) { bSelected = false; } if (bSelected) //如果被选中 { //SAP_ISSURE_KEY //W.MBLNR AS 来料单号, //W.MATNR AS 物料规格, //W.MATXT AS 物料描述, //W.CHARG AS 物料批号 //W.AUFNR AS 工单号码, //W.ERFME AS 计量单位, //W.ERFMG AS 实领数量, //W.LLIEF AS 批次供应商 string strRowId = gdvMaterialDefault.GetRowCellValue(i, "ROWNUM").ToString(); string strSap_issureKey = gdvMaterialDefault.GetRowCellValue(i, "SAP_ISSURE_KEY").ToString(); string strOrderNumber = gdvMaterialDefault.GetRowCellValue(i, "AUFNR").ToString(); string strMATNR = gdvMaterialDefault.GetRowCellValue(i, "MATNR").ToString(); string strCHARG = gdvMaterialDefault.GetRowCellValue(i, "CHARG").ToString(); string strMATXT = gdvMaterialDefault.GetRowCellValue(i, "MATXT").ToString(); string strAUFNR = gdvMaterialDefault.GetRowCellValue(i, "AUFNR").ToString(); string strERFME = gdvMaterialDefault.GetRowCellValue(i, "ERFME").ToString(); string strERFMG = gdvMaterialDefault.GetRowCellValue(i, "ERFMG").ToString(); string strLLIEF = gdvMaterialDefault.GetRowCellValue(i, "LLIEF").ToString(); string strOperation = gdvMaterialDefault.GetRowCellValue(i, "Operation").ToString(); string strOnlineWarehouse = gdvMaterialDefault.GetRowCellValue(i, "OnlineWarehouse").ToString(); //工序线边仓不能为空 if (strOperation == "" || strOnlineWarehouse == "") { string erroMessage = string.Format("必须为序号为{0}的记录设置工序名称和线上仓名称!", strRowId); MessageBox.Show(erroMessage); return; } string factoryNumber = receiveMaterial.GetFactoryByOrderNumber(strOrderNumber); string factoryOnline = receiveMaterial.GetFactoryByStore(strOnlineWarehouse); //判断工单信息和仓位信息对应的工厂是否一致 if (factoryNumber != factoryOnline) { string erroMessage = string.Format("不能将序号{0}的物料接收到指定的线边仓!", strRowId); MessageBox.Show(erroMessage); return; } dataTable.Rows.Add(); dataTable.Rows[count]["SAP_ISSURE_KEY"] = gdvMaterialDefault.GetRowCellValue(i, "SAP_ISSURE_KEY").ToString();; dataTable.Rows[count]["MBLNR"] = gdvMaterialDefault.GetRowCellValue(i, "MBLNR").ToString(); dataTable.Rows[count]["MATNR"] = gdvMaterialDefault.GetRowCellValue(i, "MATNR").ToString(); dataTable.Rows[count]["CHARG"] = gdvMaterialDefault.GetRowCellValue(i, "CHARG").ToString(); dataTable.Rows[count]["MATXT"] = gdvMaterialDefault.GetRowCellValue(i, "MATXT").ToString(); dataTable.Rows[count]["AUFNR"] = gdvMaterialDefault.GetRowCellValue(i, "AUFNR").ToString(); dataTable.Rows[count]["ERFME"] = gdvMaterialDefault.GetRowCellValue(i, "ERFME").ToString(); dataTable.Rows[count]["ERFMG"] = gdvMaterialDefault.GetRowCellValue(i, "ERFMG").ToString(); dataTable.Rows[count]["LLIEF"] = gdvMaterialDefault.GetRowCellValue(i, "LLIEF").ToString(); dataTable.Rows[count]["Operation"] = gdvMaterialDefault.GetRowCellValue(i, "Operation").ToString(); dataTable.Rows[count]["OnlineWarehouse"] = gdvMaterialDefault.GetRowCellValue(i, "OnlineWarehouse").ToString(); dataTable.Rows[count]["SHIFT_NAME"] = lueShiftName.Text; dataTable.Rows[count]["OPERATOR"] = PropertyService.Get(PROPERTY_FIELDS.USER_NAME); dataTable.Rows[count]["EDIT_TIMEZONE"] = PropertyService.Get(PROPERTY_FIELDS.TIMEZONE); count++; } } #endregion if (dataTable.Rows.Count > 0) { receiveMaterial.ReceiveLineMaterial(dataTable); if (receiveMaterial.ErrorMsg == "") { MessageBox.Show("信息保存成功!"); BindMaterialDetail(); } else { MessageService.ShowError(receiveMaterial.ErrorMsg); } } else { MessageBox.Show("必须选择一条数据!"); } }