Пример #1
0
        /// <summary>
        /// 打开物料清单页面
        /// </summary>
        private void tsbReceiveList_Click(object sender, EventArgs e)
        {
            ReceiveMaterialEntity receiveMaterial = new ReceiveMaterialEntity();

            foreach (IViewContent viewContent in WorkbenchSingleton.Workbench.ViewContentCollection)
            {
                if (viewContent.TitleName == StringParser.Parse("${res:FanHai.Hemera.Addins.ReceiveMaterialListCtrl.Title}"))
                {
                    viewContent.WorkbenchWindow.SelectWindow();
                    return;
                }
            }
            ReceiveMaterialListViewContent vc = new ReceiveMaterialListViewContent();

            WorkbenchSingleton.Workbench.ShowView(vc);
        }
Пример #2
0
        /// <summary>
        /// 绑定供应商名称。
        /// </summary>
        private void BindSupplierName()
        {
            ReceiveMaterialEntity entity = new ReceiveMaterialEntity();
            DataSet ds = entity.GetSuppliers();

            if (string.IsNullOrEmpty(entity.ErrorMsg))
            {
                this.lueSupplierName.Properties.DataSource    = ds.Tables[0];
                this.lueSupplierName.Properties.DisplayMember = "NAME";
                this.lueSupplierName.Properties.ValueMember   = "NAME";
            }
            else
            {
                this.lueSupplierName.Properties.DataSource = null;
                this.lueSupplierName.EditValue             = string.Empty;
            }
        }
Пример #3
0
        /// <summary>
        /// 绑定转换效率。
        /// </summary>
        private void BindEfficiency()
        {
            ReceiveMaterialEntity entity = new ReceiveMaterialEntity();
            DataSet ds = entity.GetEfficiency();

            if (string.IsNullOrEmpty(entity.ErrorMsg))
            {
                this.lueEfficiency.Properties.DataSource    = ds.Tables[0];
                this.lueEfficiency.Properties.DisplayMember = "EFFICIENCY_NAME";
                this.lueEfficiency.Properties.ValueMember   = "EFFICIENCY_NAME";
            }
            else
            {
                this.lueEfficiency.Properties.DataSource = null;
                this.lueEfficiency.EditValue             = string.Empty;
            }
        }
Пример #4
0
        /// <summary>
        /// 绑定产品ID号。
        /// </summary>
        private void BindProId()
        {
            ReceiveMaterialEntity entity = new ReceiveMaterialEntity();
            DataSet ds = entity.GetProdId();

            if (string.IsNullOrEmpty(entity.ErrorMsg))
            {
                this.lueProId.Properties.DataSource    = ds.Tables[0];
                this.lueProId.Properties.DisplayMember = "PRODUCT_CODE";
                this.lueProId.Properties.ValueMember   = "PRODUCT_CODE";
            }
            else
            {
                this.lueProId.Properties.DataSource = null;
                this.lueProId.EditValue             = string.Empty;
            }
        }
Пример #5
0
        /// <summary>
        /// 窗体载入事件。
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void ReceiveMaterialListCtrl_Load(object sender, EventArgs e)
        {
            ReceiveMaterialEntity receiveMaterial = new ReceiveMaterialEntity();

            this.paramTable = receiveMaterial.CreatParamTable();
            this.paramTable.Rows.Add();
            this.paramTable.Rows[0]["STORE_NAME"] = PropertyService.Get(PROPERTY_FIELDS.STORES);
            BindReceiveMaterialList(this.paramTable);

            BindFactoryRoom();
            BindProId();
            BindSupplierName();
            BindEfficiency();

            this.deReceiveMaterialStart.DateTime = DateTime.Now.AddDays(-30);
            this.deReceiveMaterialEnd.DateTime   = DateTime.Now;
        }
Пример #6
0
        /// <summary>
        /// 绑定领料线边仓库位
        /// </summary>
        private void BindIssueStore()
        {
            string roomName = this.lueFactoryRoom.Text;

            this.lueIssueStore.Properties.Items.Clear();
            ReceiveMaterialEntity entity = new ReceiveMaterialEntity();
            DataTable             dt     = entity.GetIssueStores(roomName);

            if (dt != null)
            {
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    string store = Convert.ToString(dt.Rows[i][0]);
                    this.lueIssueStore.Properties.Items.Add(store);
                }
            }
            this.lueIssueStore.SelectedIndex = 0;
        }
Пример #7
0
        /// <summary>
        /// 根据领料项目号自动填充工单号、等级和供应商名称。
        /// </summary>
        /// 领料日期(6) 电池供应商简码(3) 电池片效率(4) 电池片等级(1~2)- 电池片对角线(3)- 工单号(9)
        private void AutoInputValueByMaterialLot()
        {
            string val = txtMaterialLot.Text.Trim().ToUpper();
            ReceiveMaterialEntity entity = new ReceiveMaterialEntity();
            DataSet dsReturn             = entity.GetReceiveMaterialLotInfo(val);

            if (!string.IsNullOrEmpty(entity.ErrorMsg))
            {
                MessageService.ShowMessage(entity.ErrorMsg, StringParser.Parse("${res:Global.SystemInfo}"));
            }
            else
            {
                if (dsReturn.Tables[0].Rows.Count > 0)
                {
                    DataTable dtReturn     = dsReturn.Tables[0];
                    string    workOrder    = Convert.ToString(dtReturn.Rows[0]["AUFNR"]);
                    string    grade        = Convert.ToString(dtReturn.Rows[0]["GRADE"]);
                    string    supplierCode = Convert.ToString(dtReturn.Rows[0]["SUPPLIER_CODE"]);
                    string    efficiency   = Convert.ToString(dtReturn.Rows[0]["EFFICIENCY"]);
                    //string proId = Convert.ToString(dtReturn.Rows[0]["PRO_ID"]);
                    string supplierName = Convert.ToString(dtReturn.Rows[0]["LLIEF"]);
                    string materialCode = Convert.ToString(dtReturn.Rows[0]["MATNR"]);
                    string materialDesc = Convert.ToString(dtReturn.Rows[0]["MATXT"]);
                    string materialKey  = Convert.ToString(dtReturn.Rows[0]["MATERIAL_KEY"]);
                    this.lueWorkOrderNo.EditValue = workOrder;
                    //this.lueProId.EditValue = proId;
                    this.lueEfficiency.EditValue     = efficiency;
                    this.teGrade.Text                = grade;
                    this.lueSupplierName.EditValue   = supplierName;
                    this.teSupplierCode.Text         = supplierCode;
                    this.lueMaterialCode.EditValue   = materialKey;
                    this.txtMaterialDescription.Text = materialDesc;

                    DisableControl();
                }
                else
                {
                    string[] items = val.Split('-');
                    this.lueWorkOrderNo.EditValue = items[2];                           //工单号
                }
            }
        }
Пример #8
0
        /// <summary>
        /// 确定按钮事件。
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnOK_Click(object sender, EventArgs e)
        {
            string materialCode        = this.cmbMaterialCode.Text;
            string materialDescription = this.txtMaterialDescription.Text;

            //不是数据库中已经存在原材料编码。
            if (!this.txtMaterialDescription.Properties.ReadOnly)
            {
                if (materialCode.Length != 10)
                {
                    MessageService.ShowMessage("原材料编码必须为10码。", "提示");
                    this.cmbMaterialCode.Select();
                    return;
                }
                if (materialCode.CompareTo("200") < 0)
                {
                    MessageService.ShowMessage("原材料编码必须是大于200的字符串。", "提示");
                    this.cmbMaterialCode.Select();
                    return;
                }
                if (string.IsNullOrEmpty(materialDescription))
                {
                    MessageService.ShowMessage("原材料描述不能为空。", "提示");
                    this.txtMaterialDescription.Select();
                    return;
                }
            }
            //向数据库中添加工单BOM的自备料
            ReceiveMaterialEntity entity = new ReceiveMaterialEntity();

            entity.CreateWOBomOwnMaterial(this._orderNumber, materialCode, materialDescription);
            if (string.IsNullOrEmpty(entity.ErrorMsg))
            {
                this.DialogResult = DialogResult.OK;
                this.Close();
            }
            else
            {
                MessageService.ShowError(entity.ErrorMsg);
            }
        }
Пример #9
0
        /// <summary>
        /// 进行单元格编辑时的事件方法。
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void gdvMaterialDefault_CustomRowCellEditForEditing(object sender, DevExpress.XtraGrid.Views.Grid.CustomRowCellEditEventArgs e)
        {
            if (e.Column.FieldName == "OnlineWarehouse")//正在编辑线上仓名称。
            {
                this.Param_LineStore.Items.Clear();
                string strWorkOrder    = this.gdvMaterialDefault.GetRowCellValue(e.RowHandle, "AUFNR").ToString();
                string strMaterialCode = this.gdvMaterialDefault.GetRowCellValue(e.RowHandle, "MATNR").ToString();
                string strStores       = PropertyService.Get(PROPERTY_FIELDS.STORES);

                ReceiveMaterialEntity entity = new ReceiveMaterialEntity();
                DataTable             dt     = entity.GetStoreByMaterialCode(strWorkOrder, strMaterialCode, strStores);
                if (entity.ErrorMsg == string.Empty)//成功获取线上仓数据。
                {
                    //重新绑定线上仓名称控件。
                    foreach (DataRow dr in dt.Rows)
                    {
                        this.Param_LineStore.Items.Add(dr["STORE_NAME"]);
                    }
                }
            }
        }
Пример #10
0
        /// <summary>
        /// 绑定物料代码。
        /// </summary>
        private void BindMaterialCode()
        {
            ReceiveMaterialEntity entity = new ReceiveMaterialEntity();
            DataSet ds = entity.GetMaterials();

            if (string.IsNullOrEmpty(entity.ErrorMsg))
            {
                this._dtMaterial = ds.Tables[0];
                this.cmbMaterialCode.Properties.Items.Clear();
                foreach (DataRow dr in this._dtMaterial.Rows)
                {
                    string materialCode = Convert.ToString(dr["MATERIAL_CODE"]);
                    if (!string.IsNullOrEmpty(materialCode))
                    {
                        this.cmbMaterialCode.Properties.Items.Add(materialCode);
                    }
                }
            }
            else
            {
                MessageService.ShowError(entity.ErrorMsg);
            }
        }
Пример #11
0
        /// <summary>
        /// 绑定物料编码。
        /// </summary>
        private void BindMaterialCode()
        {
            string orderNumber = this.lueWorkOrderNo.Text;

            this.lueMaterialCode.EditValue   = string.Empty;
            this.txtMaterialDescription.Text = string.Empty;
            ReceiveMaterialEntity entity = new ReceiveMaterialEntity();
            DataSet ds = entity.GetMaterials(orderNumber);

            if (string.IsNullOrEmpty(entity.ErrorMsg))
            {
                this.lueMaterialCode.Properties.DataSource    = ds.Tables[0];
                this.lueMaterialCode.Properties.DisplayMember = "MATERIAL_CODE";
                this.lueMaterialCode.Properties.ValueMember   = "MATERIAL_KEY";
                this.lueMaterialCode.ItemIndex = 0;
            }
            else
            {
                this.lueMaterialCode.Properties.DataSource = null;
                this.lueMaterialCode.EditValue             = string.Empty;
                this.txtMaterialDescription.Text           = string.Empty;
            }
        }
Пример #12
0
        /// <summary>
        /// 抓去SAP中间数据库的数据信息导入到MES对应的物料表中
        /// CREATOR=当前登录用户员工,
        /// CREATE_TIME=当前时间,CREATE_TIMEZONE=当前时区,
        /// EDITOR=当前登录用户员工,EDIT_TIME=当前时间,EDIT_TIMEZONE=当前时区。
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void tsbRefresMaterial_Click(object sender, EventArgs e)
        {
            Hashtable hashTable = new Hashtable();

            hashTable.Add("ISRECEIVED", 0);
            hashTable.Add("CREATOR", PropertyService.Get(PROPERTY_FIELDS.USER_NAME));
            hashTable.Add("CREATE_TIMEZONE", PropertyService.Get(PROPERTY_FIELDS.TIMEZONE));
            hashTable.Add("EDITOR", PropertyService.Get(PROPERTY_FIELDS.USER_NAME));
            hashTable.Add("EDIT_TIMEZONE", PropertyService.Get(PROPERTY_FIELDS.TIMEZONE));
            DataTable tableParam = FanHai.Hemera.Share.Common.CommonUtils.ParseToDataTable(hashTable);

            ReceiveMaterialEntity receiveMaterial = new ReceiveMaterialEntity();

            receiveMaterial.RefreshReceiveMaterial(tableParam);
            if (receiveMaterial.ErrorMsg == "")
            {
                MessageService.ShowMessage("刷新成功。", "提示");
                BindMaterialDetail();
            }
            else
            {
                MessageService.ShowError(receiveMaterial.ErrorMsg);
            }
        }
Пример #13
0
        /// <summary>
        /// 保存按钮。
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void tsbSave_Click(object sender, EventArgs e)
        {
            //判断是否通过验证。
            if (!this.Validate())
            {
                return;
            }
            string factoryRoomKey = Convert.ToString(this.lueFactoryRoom.EditValue);
            string operationName  = this.lueOperation.Text;
            string storeKey       = Convert.ToString(this.lueStoreName.EditValue);

            string materialLot         = this.txtMaterialLot.Text.Trim().ToUpper();
            string orderNumber         = Convert.ToString(this.lueWorkOrderNo.Text);
            string proId               = Convert.ToString(this.lueProId.Text);
            string efficiency          = Convert.ToString(this.lueEfficiency.Text);
            string grade               = Convert.ToString(this.teGrade.Text);
            string supplierName        = Convert.ToString(this.lueSupplierName.Text);
            string supplierCode        = this.teSupplierCode.Text.Trim();
            string materialKey         = Convert.ToString(this.lueMaterialCode.EditValue);
            string materialCode        = this.lueMaterialCode.Text.Trim();
            string materialDescription = this.txtMaterialDescription.Text.Trim();
            string issueQty            = this.txtIssueQty.Text.Trim();
            string memo = Convert.ToString(this.meMemo.Text);

            string issueNo = this.txtIssueNo.Text.Trim();

            if (string.IsNullOrEmpty(issueNo))
            {
                issueNo = DateTime.Now.ToString("yyyyMMddHHmmss");
            }
            string supplierLot = this.txtSupplierLot.Text.Trim();
            string issueStore  = Convert.ToString(this.lueIssueStore.EditValue);
            string unit        = this.txtUnit.Text;
            string userName    = this.txtOperatorNumber.Text;
            string timeZone    = PropertyService.Get(PROPERTY_FIELDS.TIMEZONE);
            string shiftName   = Convert.ToString(this.lueShiftName.EditValue);

            if (string.IsNullOrEmpty(shiftName))
            {
                //MessageService.ShowMessage("没有进行排班,请先排班。", "提示");
                MessageService.ShowMessage(StringParser.Parse("${res:FanHai.Hemera.Addins.ManualReceiveMaterialCtrl.msg.0001}"), StringParser.Parse("${res:Global.SystemInfo}"));

                this.lueShiftName.Focus();
                return;
            }
            if (string.IsNullOrEmpty(factoryRoomKey))
            {
                //MessageService.ShowMessage("车间名称必须选择。", "提示");
                MessageService.ShowMessage(StringParser.Parse("${res:FanHai.Hemera.Addins.ManualReceiveMaterialCtrl.msg.0002}"), StringParser.Parse("${res:Global.SystemInfo}"));
                this.lueFactoryRoom.Focus();
                return;
            }
            if (string.IsNullOrEmpty(operationName))
            {
                //MessageService.ShowMessage("工序名称必须选择。", "提示");
                MessageService.ShowMessage(StringParser.Parse("${res:FanHai.Hemera.Addins.ManualReceiveMaterialCtrl.msg.0003}"), StringParser.Parse("${res:Global.SystemInfo}"));
                this.lueOperation.Focus();
                return;
            }
            if (string.IsNullOrEmpty(storeKey))
            {
                //MessageService.ShowMessage("线上仓名称必须选择。", "提示");
                MessageService.ShowMessage(StringParser.Parse("${res:FanHai.Hemera.Addins.ManualReceiveMaterialCtrl.msg.0004}"), StringParser.Parse("${res:Global.SystemInfo}"));
                this.lueStoreName.Focus();
                return;
            }

            if (string.IsNullOrEmpty(materialLot))
            {
                //MessageService.ShowMessage("领料项目号必须输入。", "提示");
                MessageService.ShowMessage(StringParser.Parse("${res:FanHai.Hemera.Addins.ManualReceiveMaterialCtrl.msg.0005}"), StringParser.Parse("${res:Global.SystemInfo}"));
                this.txtMaterialLot.Focus();
                return;
            }
            if (string.IsNullOrEmpty(orderNumber))
            {
                //MessageService.ShowMessage("工单号必须输入。", "提示");
                MessageService.ShowMessage(StringParser.Parse("${res:FanHai.Hemera.Addins.ManualReceiveMaterialCtrl.msg.0006}"), StringParser.Parse("${res:Global.SystemInfo}"));
                this.lueWorkOrderNo.Focus();
                return;
            }
            if (string.IsNullOrEmpty(proId))
            {
                //MessageService.ShowMessage("产品ID号必须输入。", "提示");
                MessageService.ShowMessage(StringParser.Parse("${res:FanHai.Hemera.Addins.ManualReceiveMaterialCtrl.msg.0007}"), StringParser.Parse("${res:Global.SystemInfo}"));
                this.lueProId.Focus();
                return;
            }
            if (string.IsNullOrEmpty(efficiency))
            {
                //MessageService.ShowMessage("转换效率必须输入。", "提示");
                MessageService.ShowMessage(StringParser.Parse("${res:FanHai.Hemera.Addins.ManualReceiveMaterialCtrl.msg.0008}"), StringParser.Parse("${res:Global.SystemInfo}"));
                this.lueEfficiency.Focus();
                return;
            }
            if (string.IsNullOrEmpty(grade))
            {
                //MessageService.ShowMessage("等级必须输入。", "提示");
                MessageService.ShowMessage(StringParser.Parse("${res:FanHai.Hemera.Addins.ManualReceiveMaterialCtrl.msg.0009}"), StringParser.Parse("${res:Global.SystemInfo}"));
                this.teGrade.Focus();
                return;
            }
            if (string.IsNullOrEmpty(supplierName))
            {
                //MessageService.ShowMessage("原材料供应商必须输入。", "提示");
                MessageService.ShowMessage(StringParser.Parse("${res:FanHai.Hemera.Addins.ManualReceiveMaterialCtrl.msg.0010}"), StringParser.Parse("${res:Global.SystemInfo}"));
                this.lueSupplierName.Focus();
                return;
            }
            if (string.IsNullOrEmpty(supplierCode))
            {
                //MessageService.ShowMessage("供应商编号必须输入。", "提示");
                MessageService.ShowMessage(StringParser.Parse("${res:FanHai.Hemera.Addins.ManualReceiveMaterialCtrl.msg.0011}"), StringParser.Parse("${res:Global.SystemInfo}"));
                this.teSupplierCode.Focus();
                return;
            }
            if (string.IsNullOrEmpty(materialKey))
            {
                //MessageService.ShowMessage("原材料编码必须输入。", "提示");
                MessageService.ShowMessage(StringParser.Parse("${res:FanHai.Hemera.Addins.ManualReceiveMaterialCtrl.msg.0012}"), StringParser.Parse("${res:Global.SystemInfo}"));
                this.lueMaterialCode.Focus();
                return;
            }
            if (string.IsNullOrEmpty(issueQty))
            {
                //MessageService.ShowMessage("数量必须输入。", "提示");
                MessageService.ShowMessage(StringParser.Parse("${res:FanHai.Hemera.Addins.ManualReceiveMaterialCtrl.msg.0013}"), StringParser.Parse("${res:Global.SystemInfo}"));
                this.txtIssueQty.Focus();
                return;
            }
            if (!ValidMaterialLotIsMatch())
            {
                return;
            }

            ReceiveMaterialEntity entity = new ReceiveMaterialEntity();

            try
            {
                Hashtable ht = new Hashtable();
                ht.Add("FACTORYROOM_KEY", factoryRoomKey);
                ht.Add("OPERATION_NAME", operationName);
                ht.Add("STORE_KEY", storeKey);
                ht.Add("MATERIAL_LOT", materialLot);
                ht.Add("ORDER_NUMBER", orderNumber);
                ht.Add("PRO_ID", proId);
                ht.Add("EFFICIENCY", efficiency);
                ht.Add("GRADE", grade);
                ht.Add("SUPPLIER_NAME", supplierName);
                ht.Add("SUPPLIER_CODE", supplierCode);
                ht.Add("MATERIAL_KEY", materialKey);
                ht.Add("MATERIAL_CODE", materialCode);
                ht.Add("MATERIAL_DESCRIPTION", materialDescription);
                ht.Add("ISSUE_QTY", issueQty);
                ht.Add("MEMO", memo);
                ht.Add("ISSUE_NO", issueNo);
                ht.Add("SUPPLIER_LOT", supplierLot);
                ht.Add("ISSUE_STORE", issueStore);
                ht.Add("UNIT", unit);
                ht.Add("USER_NAME", userName);
                ht.Add("TIME_ZONE", timeZone);
                ht.Add("SHIFT_NAME", shiftName);
                ht.Add("OEM", string.Empty);
                //ht.Add("IsUpdateOldReceiveMaterialInfo", IsUpdateOldReceiveMaterialInfo);
                ht.Add("IsUpdateOldReceiveMaterialInfo", true);
                entity.ManualSaveReceiveMaterial(ht);
                if (!string.IsNullOrEmpty(entity.ErrorMsg))
                {
                    MessageBox.Show(entity.ErrorMsg);
                }
                else
                {
                    //MessageService.ShowMessage("保存成功。", "提示");
                    MessageService.ShowMessage(StringParser.Parse("${res:FanHai.Hemera.Addins.ManualReceiveMaterialCtrl.msg.0014}"), StringParser.Parse("${res:Global.SystemInfo}"));
                    ResetTextValue();
                    this.txtMaterialLot.Focus();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
Пример #14
0
        /// <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("必须选择一条数据!");
            }
        }