void btnOk_Click(object sender, EventArgs e)
        {
            try
            {
                //检查输入格式
                if (CheckStringEmpty() != true)
                {
                    ClientScript.RegisterClientScriptBlock(typeof(string), "ShowMessage", "<script>alert('请将数据填写完整,且合格数量只能是数字! ')</script>");
                    return;
                }
                //检查输入数据是否溢出
                if (CheckOverFlow() != true)
                {
                    ClientScript.RegisterClientScriptBlock(typeof(string), "ShowMessage", "<script>alert('合格数量不能超过质检前数量! ')</script>");
                    return;
                }

                using (MMSProDBDataContext db = new MMSProDBDataContext(ConfigurationManager.ConnectionStrings["mmsConString"].ConnectionString))
                {
                    var tp = from a in db.StorageInQualified
                             where a.StorageInID == Convert.ToInt32(Request.QueryString["StorageInID"]) && a.BatchIndex == Request.QueryString["QCBatch"].ToString()
                             select a;
                    if (tp.ToArray().Length > 0)
                    {
                        ClientScript.RegisterClientScriptBlock(typeof(string), "ShowMessage", "<script>alert('不能重复插入记录! ')</script>");
                        return;
                    }



                    for (int i = 0; i < this.spgviewQualityControl.Rows.Count; i++)
                    {
                        StorageInQualified SIQ = new StorageInQualified();
                        SIQ.StorageInID = Convert.ToInt32(Request.QueryString["StorageInID"]);

                        MaterialInfo mi = db.MaterialInfo.SingleOrDefault(u => u.MaterialID == Convert.ToInt32(this.spgviewQualityControl.Rows[i].Cells[this.spgviewQualityControl.Columns.Count - 2].Text.ToString()));
                        SIQ.MaterialID         = mi.MaterialID;
                        SIQ.SpecificationModel = this.spgviewQualityControl.Rows[i].Cells[4].Text.ToString();
                        SIQ.BatchIndex         = this.spgviewQualityControl.Rows[i].Cells[24].Text.ToString();
                        SIQ.Quantity           = Convert.ToDecimal(this.spgviewQualityControl.Rows[i].Cells[8].Text.ToString());
                        SIQ.CurUnit            = this.spgviewQualityControl.Rows[i].Cells[9].Text.ToString();
                        TextBox gentaojian = (TextBox)(this.spgviewQualityControl.Rows[i].Cells[10].Controls[0]);
                        SIQ.QuantityGentaojian = Convert.ToDecimal(gentaojian.Text.Trim());
                        TextBox metre = (TextBox)(this.spgviewQualityControl.Rows[i].Cells[11].Controls[0]);
                        SIQ.QuantityMetre = Convert.ToDecimal(metre.Text.Trim());
                        TextBox ton = (TextBox)(this.spgviewQualityControl.Rows[i].Cells[12].Controls[0]);
                        SIQ.QuantityTon = Convert.ToDecimal(ton.Text.Trim());
                        TextBox ti = (TextBox)(this.spgviewQualityControl.Rows[i].Cells[13].Controls[0]);
                        SIQ.InspectionReportNum = ti.Text.Trim();
                        SIQ.NumberQualified     = 0;
                        SIQ.UnitPrice           = Convert.ToDecimal(this.spgviewQualityControl.Rows[i].Cells[14].Text.ToString());
                        SIQ.Amount = Convert.ToDecimal(this.spgviewQualityControl.Rows[i].Cells[15].Text.ToString());

                        PileInfo pi = db.PileInfo.SingleOrDefault(u => u.PileCode == this.spgviewQualityControl.Rows[i].Cells[17].Text.ToString());
                        SIQ.PileID = pi.PileID;

                        SIQ.financeCode = this.spgviewQualityControl.Rows[i].Cells[18].Text.ToString();
                        SIQ.StorageTime = Convert.ToDateTime(this.spgviewQualityControl.Rows[i].Cells[19].Text.ToString());

                        //这里不唯一要出问题。

                        SIQ.SupplierID = Convert.ToInt32(this.spgviewQualityControl.Rows[i].Cells[25].Text.ToString());

                        var temp = from a in db.StorageInDetailed
                                   where a.StorageInID == Convert.ToInt32(Request.QueryString["StorageInID"])
                                   select new { a.MaterialsManager, a.WarehouseWorker };
                        var list = temp.ToList();
                        SIQ.MaterialsManager = list[i].MaterialsManager;
                        SIQ.WarehouseWorker  = list[i].WarehouseWorker;
                        var SevTime = db.ExecuteQuery <DateTime>("select  getdate()", new object[] { });
                        SIQ.InspectionTime = SevTime.First();
                        SIQ.Remark         = this.spgviewQualityControl.Rows[i].Cells[23].Text.ToString();
                        db.StorageInQualified.InsertOnSubmit(SIQ);
                        db.SubmitChanges();
                    }
                }
                Response.Redirect("QualifiedManage.aspx?StorageInID=" + Request.QueryString["StorageInID"] + "&&TaskStorageID=" + Request.QueryString["TaskStorageID"] + "&&QCBatch=" + Request.QueryString["QCBatch"] + " ");
            }
            catch (Exception ex)
            {
                MethodBase    mb      = MethodBase.GetCurrentMethod();
                LogToDBHelper lhelper = LogToDBHelper.Instance; lhelper.WriteLog(ex.Message, "错误", string.Format("{0}.{1}", mb.ReflectedType.Name, mb.Name));
                ClientScript.RegisterClientScriptBlock(typeof(string), "提示", string.Format("<script>alert('{0}')</script>", LogToDBHelper.LOG_MSG_INSERTERROR));
            }
        }
        void btnEdit_Click(object sender, EventArgs e)
        {
            try
            {
                //检查输入格式
                if (CheckStringEmpty() != true)
                {
                    ClientScript.RegisterClientScriptBlock(typeof(string), "ShowMessage", "<script>alert('请将数据填写完整,且合格数量只能是数字 ')</script>");
                    return;
                }

                //检查输入数据是否溢出
                if (CheckOverFlow() != true)
                {
                    ClientScript.RegisterClientScriptBlock(typeof(string), "ShowMessage", "<script>alert('合格数量不能超过质检前数量! ')</script>");
                    return;
                }

                using (MMSProDBDataContext db = new MMSProDBDataContext(ConfigurationManager.ConnectionStrings["mmsConString"].ConnectionString))
                {
                    var task = from a in db.TaskStorageIn
                               where a.StorageInID == Convert.ToInt32(Request.QueryString["StorageInID"]) && a.QCBatch == batchidx && a.TaskType == "质检" && a.InspectState == "驳回" && a.TaskState == "未完成"
                               select new { a.TaskCreaterID, a.InspectState };
                    //如果是回退到质检的调拨单
                    if (task.ToList().Count > 0)
                    {
                        //更新
                        var tep = from a in db.StorageInQualified
                                  where a.StorageInID == Convert.ToInt32(Request.QueryString["StorageInID"].ToString()) && a.BatchIndex == batchidx
                                  orderby a.StorageInQualifiedID ascending
                                  select new { a.StorageInQualifiedID };
                        var li = tep.ToList();

                        for (int i = 0; i < this.spgviewQualityControl.Rows.Count; i++)
                        {
                            StorageInQualified SIQ = new StorageInQualified();
                            SIQ = db.StorageInQualified.SingleOrDefault(u => u.StorageInQualifiedID == li[i].StorageInQualifiedID);

                            TextBox gentaojian = (TextBox)(this.spgviewQualityControl.Rows[i].Cells[10].Controls[0]);
                            SIQ.QuantityGentaojian = Convert.ToDecimal(gentaojian.Text.Trim());
                            TextBox metre = (TextBox)(this.spgviewQualityControl.Rows[i].Cells[11].Controls[0]);
                            SIQ.QuantityMetre = Convert.ToDecimal(metre.Text.Trim());
                            TextBox ton = (TextBox)(this.spgviewQualityControl.Rows[i].Cells[12].Controls[0]);
                            SIQ.QuantityTon = Convert.ToDecimal(ton.Text.Trim());
                            TextBox ti = (TextBox)(this.spgviewQualityControl.Rows[i].Cells[13].Controls[0]);
                            SIQ.InspectionReportNum = ti.Text.Trim();

                            db.SubmitChanges();


                            //DataTable dt = new DataTable();
                            //dt.Columns.Add("UserID", typeof(int));
                            //dt.Columns.Add("userName", typeof(string));
                            //dt.Columns.Add("Gender", typeof(bool));

                            //var temp = from u in dt.AsEnumerable()
                            //           where u.Field<bool>("Gender") == true
                            //           select u;
                        }



                        //旧任务
                        TaskStorageIn tsi = db.TaskStorageIn.SingleOrDefault(u => u.TaskStorageID == Convert.ToInt32(Request.QueryString["TaskStorageID"]));
                        tsi.TaskState    = "已完成";
                        tsi.InspectState = "已审核";
                        StorageIn si = db.StorageIn.SingleOrDefault(u => u.StorageInID == tsi.StorageInID);

                        //新任务
                        TaskStorageIn TSI = new TaskStorageIn();

                        TSI.TaskCreaterID = reEmpId(SPContext.Current.Web.CurrentUser.LoginName);
                        TSI.TaskTargetID  = tsi.TaskCreaterID;
                        if (TSI.TaskTargetID == 0)
                        {
                            ClientScript.RegisterClientScriptBlock(typeof(string), "ShowMessage", "<script>alert('不存在质检用户,请同步AD账户 ')</script>");
                            return;
                        }

                        TSI.StorageInID   = Convert.ToInt32(Request.QueryString["StorageInID"]);
                        TSI.StorageInType = "正常入库";
                        TSI.TaskTitle     = "交货通知单编号为:" + si.StorageInCode + "的" + tsi.QCBatch.ToString() + "物资已质检,请重新审核";
                        TSI.TaskState     = "未完成";
                        TSI.TaskDispose   = "未废弃";
                        TSI.TaskType      = "材料会计审核";
                        TSI.InspectState  = "未审核";
                        TSI.QCBatch       = tsi.QCBatch;
                        TSI.Remark        = "交货通知单编号为:" + si.StorageInCode + "的" + tsi.QCBatch.ToString() + "物资已重新质检";
                        var SevTime = db.ExecuteQuery <DateTime>("select  getdate()", new object[] { });
                        TSI.CreateTime = SevTime.First();
                        db.TaskStorageIn.InsertOnSubmit(TSI);
                        db.SubmitChanges();
                        Response.Redirect("../../default-old.aspx", false);
                    }

                    else
                    {
                        //更新数据
                        var tep = from a in db.StorageInQualified
                                  where a.StorageInID == Convert.ToInt32(Request.QueryString["StorageInID"].ToString()) && a.BatchIndex == batchidx
                                  orderby a.StorageInQualifiedID ascending
                                  select new { a.StorageInQualifiedID };
                        var li = tep.ToList();

                        for (int i = 0; i < this.spgviewQualityControl.Rows.Count; i++)
                        {
                            StorageInQualified SIQ = new StorageInQualified();
                            SIQ = db.StorageInQualified.SingleOrDefault(u => u.StorageInQualifiedID == li[i].StorageInQualifiedID);

                            TextBox gentaojian = (TextBox)(this.spgviewQualityControl.Rows[i].Cells[10].Controls[0]);
                            SIQ.QuantityGentaojian = Convert.ToDecimal(gentaojian.Text.Trim());
                            TextBox metre = (TextBox)(this.spgviewQualityControl.Rows[i].Cells[11].Controls[0]);
                            SIQ.QuantityMetre = Convert.ToDecimal(metre.Text.Trim());
                            TextBox ton = (TextBox)(this.spgviewQualityControl.Rows[i].Cells[12].Controls[0]);
                            SIQ.QuantityTon = Convert.ToDecimal(ton.Text.Trim());
                            TextBox ti = (TextBox)(this.spgviewQualityControl.Rows[i].Cells[13].Controls[0]);
                            SIQ.InspectionReportNum = ti.Text.Trim();



                            db.SubmitChanges();
                        }
                        Response.Redirect("QualifiedManage.aspx?StorageInID=" + Request.QueryString["StorageInID"] + "&&TaskStorageID=" + Request.QueryString["TaskStorageID"] + "&&QCBatch=" + batchidx + " ");
                    }
                }
            }
            catch (Exception ex)
            {
                MethodBase    mb      = MethodBase.GetCurrentMethod();
                LogToDBHelper lhelper = LogToDBHelper.Instance; lhelper.WriteLog(ex.Message, "错误", string.Format("{0}.{1}", mb.ReflectedType.Name, mb.Name));
                ClientScript.RegisterClientScriptBlock(typeof(string), "提示", string.Format("<script>alert('{0}')</script>", LogToDBHelper.LOG_MSG_UPDATEERROR));
            }
        }