/// <summary>
        /// 从行记录中提取物品对象信息
        /// </summary>
        /// <param name="row">行记录</param>
        /// <returns>提取的物品信息</returns>
        private View_S_MaterialListReturnedInTheDepot GetGoodsInfo(DataGridViewRow row)
        {
            if (row == null)
            {
                return(null);
            }

            View_S_MaterialListReturnedInTheDepot goods = new View_S_MaterialListReturnedInTheDepot();

            if (row.Cells["返修状态"].Value != null && row.Cells["返修状态"].Value.ToString() != "")
            {
                goods.返修状态 = (bool)row.Cells["返修状态"].Value;
            }

            goods.序号     = (long)row.Cells["序号"].Value;
            goods.退库单号   = (string)row.Cells["退库单号"].Value;
            goods.物品ID   = (int)row.Cells["物品ID"].Value;
            goods.图号型号   = (string)row.Cells["图号型号"].Value;
            goods.物品名称   = (string)row.Cells["物品名称"].Value;
            goods.规格     = (string)row.Cells["规格"].Value;
            goods.供应商    = (string)row.Cells["供应商"].Value;
            goods.供方批次号  = (string)row.Cells["供方批次号"].Value;
            goods.批次号    = (string)row.Cells["批次号"].Value;
            goods.退库数    = (decimal)row.Cells["退库数"].Value;
            goods.单位     = (string)row.Cells["单位"].Value;
            goods.材料类别编码 = (string)row.Cells["材料类别编码"].Value;
            goods.材料类别名称 = (string)row.Cells["材料类别名称"].Value;
            goods.货架     = (string)row.Cells["货架"].Value;
            goods.列      = (string)row.Cells["列"].Value;
            goods.层      = (string)row.Cells["层"].Value;
            goods.备注     = (string)row.Cells["备注"].Value;

            return(goods);
        }
        /// <summary>
        /// 刷新控件
        /// </summary>
        void RefreshControl()
        {
            ClearControl();

            if (dataGridView1.CurrentRow != null)
            {
                View_S_MaterialListReturnedInTheDepot goods = GetGoodsInfo(dataGridView1.CurrentRow);

                if (goods.返修状态.ToString() == "")
                {
                    cmbProductStatus.SelectedIndex = -1;
                }
                else
                {
                    if ((bool)goods.返修状态)
                    {
                        cmbProductStatus.Text = "已返修";
                    }
                    else
                    {
                        cmbProductStatus.Text = "待返修";
                    }
                }

                txtCode.Text            = goods.图号型号;
                txtCode.Tag             = goods.物品ID;
                txtName.Text            = goods.物品名称;
                txtSpec.Text            = goods.规格;
                txtProvider.Text        = goods.供应商;
                txtProviderBatchNo.Text = goods.供方批次号;

                if (!GlobalObject.GeneralFunction.IsNullOrEmpty(goods.批次号))
                {
                    txtBatchNo.Text = goods.批次号;
                }

                numReturnedCount.Value = (decimal)goods.退库数;

                txtUnit.Text         = goods.单位;
                txtMaterialType.Text = goods.材料类别名称;
                txtMaterialType.Tag  = goods.材料类别编码;
                txtShelf.Text        = goods.货架;
                txtColumn.Text       = goods.列;
                txtLayer.Text        = goods.层;
                txtRemark.Text       = goods.备注;
            }
        }
        private void dataGridView1_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
        {
            for (int i = 0; i < dataGridView1.Rows.Count; i++)
            {
                View_S_MaterialListReturnedInTheDepot curGoods = GetGoodsInfo(dataGridView1.Rows[i]);

                if (i != dataGridView1.Rows.Count - 1)
                {
                    View_S_MaterialListReturnedInTheDepot nextGoods = GetGoodsInfo(dataGridView1.Rows[i + 1]);

                    if (curGoods.图号型号 == nextGoods.图号型号 && curGoods.物品名称 == nextGoods.物品名称)
                    {
                        dataGridView1.Rows[i].DefaultCellStyle.ForeColor     = Color.Blue;
                        dataGridView1.Rows[i + 1].DefaultCellStyle.ForeColor = Color.Blue;
                    }
                }
            }
        }
        private void btnUpdate_Click(object sender, EventArgs e)
        {
            if (dataGridView1.SelectedRows.Count == 0)
            {
                MessageDialog.ShowPromptMessage("请选择要修改的记录后再进行此操作");
                return;
            }
            else if (dataGridView1.SelectedRows.Count > 1)
            {
                MessageDialog.ShowPromptMessage("只能选择要修改的一条记录后再进行此操作");
                return;
            }

            if (!CheckDataItem())
            {
                return;
            }

            S_MaterialListReturnedInTheDepot      goods     = new S_MaterialListReturnedInTheDepot();
            View_S_MaterialListReturnedInTheDepot viewGoods = GetGoodsInfo(dataGridView1.SelectedRows[0]);

            goods.ID      = viewGoods.序号;
            goods.Bill_ID = m_billNo;

            if (txtCode.Tag != null && (int)txtCode.Tag != 0)
            {
                goods.GoodsID = (int)txtCode.Tag;
            }
            else
            {
                goods.GoodsID = viewGoods.物品ID;
            }

            goods.Provider        = txtProvider.Text;
            goods.ProviderBatchNo = txtProviderBatchNo.Text;
            goods.BatchNo         = txtBatchNo.Text;
            goods.ReturnedAmount  = numReturnedCount.Value;
            goods.Remark          = txtRemark.Text;

            //产品状态 设置 2012.3.30 by cjb
            if (cmbProductStatus.Text.Trim() != "")
            {
                if (cmbProductStatus.Text.Trim() == "已返修")
                {
                    goods.RepairStatus = true;
                }
                else
                {
                    goods.RepairStatus = false;
                }
            }

            if (m_operateMode == CE_BusinessOperateMode.仓库核实)
            {
                goods.ShelfArea    = txtShelf.Text;
                goods.ColumnNumber = txtColumn.Text;
                goods.LayerNumber  = txtLayer.Text;
            }
            else
            {
                goods.ColumnNumber = "";
                goods.LayerNumber  = "";
                goods.ShelfArea    = "";
            }


            if (!m_goodsServer.UpdateGoods(goods, out m_error))
            {
                MessageDialog.ShowErrorMessage(m_error);
                return;
            }

            GetCodeInfoFromForm();
            m_queryGoodsInfo = m_goodsServer.GetGoods(m_billNo);
            RefreshDataGridView(m_queryGoodsInfo);
            PositioningRecord(m_goodsCode, m_goodsName, m_spec);
        }