//编辑
        public void Edit(string DrawPlanGuid)
        {
            txtDrawPlanGuid.Text = DrawPlanGuid;

            DrawPlanManage DrawPlanManage = new DrawPlanManage();
            DataTable      dtl            = DrawPlanManage.GetDrawPlanByDrawPlanGuid(DrawPlanGuid);

            //加载主数据
            if (dtl.Rows.Count > 0)
            {
                txtDrawPlanID.Text = dtl.Rows[0]["DrawPlanID"].ToString();

                BeginDate.Text = DateTime.Parse(dtl.Rows[0]["DrawPlanDate"].ToString()).ToString("yyyy-MM-dd");
                txtRemark.Text = dtl.Rows[0]["Remark"].ToString();
            }

            //加载明细数据
            DataTable dtl2 = new DataTable();

            dtl2 = DrawPlanManage.GetDrawPlanDetailByDrawPlanGuid(DrawPlanGuid);
            gridControl1.DataSource = dtl2;



            //加载计算物料数据
            DataTable dtl3 = new DataTable();

            dtl3 = DrawPlanManage.GetDrawPlanCalcSumByDrawPlanGuid(DrawPlanGuid);
            gridControl2.DataSource = dtl3;

            SetRight();

            this.ShowDialog();
        }
        //修改1  增加对BOM层级的领料
        private void btnLevelDrawPlan_Click(object sender, EventArgs e)
        {
            if (cboLevel.Text.Trim() == "")
            {
                this.ShowMessage("请选择层级!");
                cboLevel.Focus();
                return;
            }


            try
            {
                this.Cursor = Cursors.WaitCursor;
                txtRemark.Focus();
                gridView1.UpdateCurrentRow();

                DrawPlanManage    DrawPlanManage    = new DrawPlanManage();
                MaterialBOMManage MaterialBOMManage = new MaterialBOMManage();
                bool   IsExist         = false;
                string strMaterialID   = "";
                string strMaterialName = "";
                //检查此客户订单产品是否已经BOM初始化子件情况了
                for (int i = 0; i < gridView1.RowCount; i++)
                {
                    DataRowView dr = (DataRowView)(gridView1.GetRow(i));

                    if (dr != null)
                    {
                        if (MaterialBOMManage.IsExistBOMByMaterialGuid(dr["MaterialGuID"].ToString()) == false)
                        {
                            IsExist         = true;
                            strMaterialID   = dr["MaterialID"].ToString();
                            strMaterialName = dr["MaterialName"].ToString();
                            break;
                        }
                    }
                }

                if (IsExist == true)
                {
                    this.ShowMessage("物料编号:" + strMaterialID + ",名称:" + strMaterialName + " 的料件没有BOM,无法计算!");
                    return;
                }



                //删除临时表中待计算的料件
                DrawPlanManage.DeleteSelectMaterial(txtDrawPlanGuid.Text);

                //先将选择的物料插入到临时表中,参与计算

                for (int i = 0; i < gridView1.RowCount; i++)
                {
                    DataRowView dr = (DataRowView)(gridView1.GetRow(i));

                    if (dr != null)
                    {
                        string  strDrawPlanGuID = txtDrawPlanGuid.Text;
                        string  strMaterialGuid = dr["MaterialGuID"].ToString();
                        decimal decMaterialSum  = 0;
                        if (dr["YCMaterialSum"].ToString().Trim() != "")
                        {
                            decMaterialSum = decimal.Parse(dr["YCMaterialSum"].ToString());
                        }

                        DrawPlanManage.InsertIntoSelectMaterial(strDrawPlanGuID, strMaterialGuid, decMaterialSum);
                    }
                }

                //开始计算
                DataTable dtl = DrawPlanManage.CalcMaterialDrawPlan3(txtDrawPlanGuid.Text, cboLevel.Text.Trim());

                gridControl2.DataSource = dtl;

                tabControl1.SelectedIndex = 1;

                this.Cursor = Cursors.Arrow;
            }
            catch (Exception err)
            {
                this.ShowMessage("计算出错,信息:" + err.Message);
                this.Cursor = Cursors.Arrow;
            }
        }
        private void SaveData()
        {
            if (BeginDate.Text.Trim() == "")
            {
                this.ShowMessage("请输入计算日期!");
                return;
            }

            txtRemark.Focus();
            gridView1.UpdateCurrentRow();

            DrawPlanManage DrawPlanManage = new DrawPlanManage();

            if (gridView1.RowCount > 0)
            {
                //主表数据
                DrawPlan DrawPlan = new DrawPlan();
                DrawPlan.DrawPlanGuid = txtDrawPlanGuid.Text;
                DrawPlan.DrawPlanID   = txtDrawPlanID.Text;
                DrawPlan.Remark       = txtRemark.Text;
                DrawPlan.DrawPlanDate = DateTime.Parse(BeginDate.Text);
                DrawPlan.CreateGuid   = SysParams.UserID;
                DrawPlan.CreateDate   = DateTime.Now;

                //明细表数据
                DrawPlanDetail        DrawPlanDetail = new DrawPlanDetail();
                List <DrawPlanDetail> list           = new List <DrawPlanDetail>();
                for (int i = 0; i < gridView1.RowCount; i++)
                {
                    DataRowView dr = (DataRowView)(gridView1.GetRow(i));

                    DrawPlanDetail                       = new DrawPlanDetail();
                    DrawPlanDetail.NoID                  = Guid.NewGuid().ToString();
                    DrawPlanDetail.ClientOrderid         = dr["ClientOrderID"].ToString();
                    DrawPlanDetail.ClientOrderDetailGuid = dr["ClientOrderDetailGuid"].ToString();
                    DrawPlanDetail.DrawPlanGuid          = txtDrawPlanGuid.Text;
                    DrawPlanDetail.MaterialGuid          = dr["MaterialGuID"].ToString();
                    if (dr["MaterialSum"].ToString().Trim() != "")
                    {
                        DrawPlanDetail.MaterialSum = decimal.Parse(dr["MaterialSum"].ToString());
                    }
                    else
                    {
                        DrawPlanDetail.MaterialSum = 0;
                    }

                    if (dr["YCMaterialSum"].ToString().Trim() != "")
                    {
                        DrawPlanDetail.YCMaterialSum = decimal.Parse(dr["YCMaterialSum"].ToString());
                    }
                    else
                    {
                        DrawPlanDetail.YCMaterialSum = 0;
                    }

                    list.Add(DrawPlanDetail);
                }

                //物料需求数据-明细
                DrawPlanCalcSumDetail        DrawPlanCalcSumDetail = new DrawPlanCalcSumDetail();
                List <DrawPlanCalcSumDetail> list2 = new List <DrawPlanCalcSumDetail>();
                for (int i = 0; i < gridView2.RowCount; i++)
                {
                    DataRowView dr = (DataRowView)(gridView2.GetRow(i));

                    DrawPlanCalcSumDetail              = new DrawPlanCalcSumDetail();
                    DrawPlanCalcSumDetail.NoID         = Guid.NewGuid().ToString();
                    DrawPlanCalcSumDetail.DrawPlanGuid = txtDrawPlanGuid.Text;
                    DrawPlanCalcSumDetail.MaterialGuid = dr["MaterialGuID"].ToString();

                    if (dr["RequirementSum"].ToString().Trim() != "")
                    {
                        DrawPlanCalcSumDetail.MaterialRequirementSum = decimal.Parse(dr["RequirementSum"].ToString());
                    }
                    else
                    {
                        DrawPlanCalcSumDetail.MaterialRequirementSum = 0;
                    }
                    //-----注意:此处暂时没为0,等库存算出来了需要更新此处代码.
                    DrawPlanCalcSumDetail.MaterialStockSum = decimal.Parse(dr["StorageSum"].ToString());


                    list2.Add(DrawPlanCalcSumDetail);
                }

                DrawPlanManage.SaveBill(DrawPlan, list, list2);


                //写日志
                SysLog.AddOperateLog(SysParams.UserName, "生产领料计划单保存", "保存", SysParams.UserName + "用户保存生产领料计划单,唯一号:" + txtDrawPlanGuid.Text + "生产领料计划单号:" + txtDrawPlanID.Text);


                frmDrawPlan.frmdrawplan.LoadData();

                this.ShowMessage("保存成功!");
            }
            else
            {
                this.ShowMessage("请选择客户订单!");
            }
        }