private void btn_save_Click(object sender, EventArgs e) { string Site = cmb_site.SelectedValue.ToString(); if (Site == string.Empty) { MessageBox.Show("请选择域"); return; } int rowcou = dgv1.RowCount; if (rowcou == 0) { MessageBox.Show("请选择所要申请的材料", "操作提示"); return; } rowcou = dgv1.RowCount; //for (int i = 0; i < rowcou; i++) //{ // if (dgv1.Rows[i].Cells["序号"].Value == null) // { // MessageBox.Show("第" + (i + 1) + "行请填写材料", "提示"); // return; // } //} SetRowNo(); for (int i = 0; i < rowcou; i++) { #region 检查必填项以及数据的合法性 string rowid = dgv1.Rows[i].Cells["行"].Value.ToString(); if (dgv1.Rows[i].Cells["申请数量"].Value != null) { if (!BaseClass.validateNum(dgv1.Rows[i].Cells["申请数量"].Value.ToString().Trim())) { MessageBox.Show("第 " + rowid + " 行申请数量请填写数字", "提示"); dgv1.Rows[i].Selected = true; return; } if (dgv1.Rows[i].Cells["申请数量"].Value.ToString().Trim().Contains("-")) { MessageBox.Show("第 " + rowid + " 行申请数量为负,请检查", "提示"); dgv1.Rows[i].Selected = true; return; } } else { MessageBox.Show("第 " + rowid + " 行请填写申请数量", "提示"); //dgv1.Rows[i].Selected = true; dgv1.CurrentCell = dgv1.Rows[i].Cells["申请数量"]; return; } if (dgv1.Rows[i].Cells["MEO_ERP"].Value != null) { if (!BaseClass.validateNum(dgv1.Rows[i].Cells["MEO_ERP"].Value.ToString().Trim())) { MessageBox.Show("第 " + rowid + " 行MEO号请填写数字", "提示"); dgv1.Rows[i].Selected = true; return; } } else { //if (MEOID != "0") //{ // MessageBox.Show("第 " + rowid + " 行请填写MEO号", "提示"); // //dgv1.Rows[i].Selected = true; // dgv1.CurrentCell = dgv1.Rows[i].Cells["MEO_ERP"]; // return; //} } if (dgv1.Rows[i].Cells["需求日期"].Value == null) { MessageBox.Show("第 " + rowid + " 行请填写需求日期", "提示"); dgv1.Rows[i].Selected = true; return; } if (dgv1.Rows[i].Cells["需求原因"].Value == null) { MessageBox.Show("第 " + rowid + " 行请填写需求原因", "提示"); dgv1.Rows[i].Selected = true; return; } if (dgv1.Rows[i].Cells["需求日期"].Value != null) { if (Convert.ToDateTime(dgv1.Rows[i].Cells["需求日期"].Value.ToString()) < DateTime.Today) { MessageBox.Show("第 " + rowid + " 行需求日期不能小于当前日期", "提示"); dgv1.Rows[i].Selected = true; return; } } if (dgv1.Rows[i].Cells["MEO_ERP"].Value != null) { string partno = dgv1.Rows[i].Cells["零件号"].Value.ToString(); if (MEOsub.meomssExistERP(dgv1.Rows[i].Cells["MEO_ERP"].Value.ToString(), partno) == 0) { MessageBox.Show("第 " + rowid + " 行ERP中的MEO号不存在", "提示"); dgv1.Rows[i].Selected = true; return; } } #endregion } MEOmain MM_MEO = new MEOmain(); string contractno = cmb_site.SelectedValue.ToString(); MM_MEO.CONTRACT = contractno; string drawinfor = txt_designcode.Text.Trim(); MM_MEO.SYSTEM_ID = Str_Area; if (meolist.DISCIPLINEID != cmb_discipline.SelectedValue.ToString()) { MM_MEO.REQUIRE_NO = MakeMEOManual(int.Parse(cmb_discipline.SelectedValue.ToString())); } MM_MEO.INFORMATION = drawinfor; MM_MEO.CREATER = User.cur_user; MM_MEO.PARTTYPE_ID = Str_FX; MM_MEO.DISCIPLINEID = cmb_discipline.SelectedValue.ToString(); MM_MEO.PROJECT_ID = ProjectId; MM_MEO.ECPROJECTID = ProjectSystem.FindProjectid(ProjectId).ToString(); MM_MEO.ERP_DISCIPLINE = Str_Discipline; MM_MEO.ERP_PARTTYPE = ActivityName; #region 新增保存MEO if (MEOID == "0") { int mmreqid = MM_MEO.REQUIRE_Add(); if (mmreqid > 0) { #region 保存MEO从表 for (int i = 0; i < rowcou; i++) { //string partid = dgv1.Rows[i].Cells["序号"].Value.ToString(); string partno = dgv1.Rows[i].Cells["零件号"].Value.ToString(); string unitmeas = dgv1.Rows[i].Cells["单位"].Value.ToString(); string part_desc = dgv1.Rows[i].Cells["零件描述"].Value.ToString(); string reqdate = dgv1.Rows[i].Cells["需求日期"].Value.ToString(); string reqreason = dgv1.Rows[i].Cells["需求原因"].Value.ToString(); string preQty = dgv1.Rows[i].Cells["申请数量"].Value.ToString().Trim(); decimal fpreQty = decimal.Parse(preQty); MEOsub MM_submeo = new MEOsub(); MM_submeo.REQUIRE_QTY = decimal.Round(fpreQty, 2); //MM_submeo.PART_ID = int.Parse(partid); MM_submeo.REQUIRE_DATE = Convert.ToDateTime(reqdate); MM_submeo.REASON_CODE = reqreason; MM_submeo.CREATER = User.cur_user; MM_submeo.REQUIRE_ID = mmreqid; MM_submeo.PROJECT_ID = ProjectId; MM_submeo.PART_NO = partno; MM_submeo.UNIT_MEAS = unitmeas; MM_submeo.PART_NAME = part_desc; MM_submeo.REQUIRELINE_Add(); } MEOID = mmreqid.ToString(); MessageBox.Show("保存MEO成功!", "提示"); return; #endregion } else { MessageBox.Show("保存失败!", "提示"); return; } } #endregion #region 更新保存MEO if (MEOID != "0") { MM_MEO.REQUIRE_ID = int.Parse(MEOID); MM_MEO.REQUIRE_Update(); MM_MEO.MEODelete(int.Parse(MEOID)); #region 更新保存MEO从表 for (int i = 0; i < rowcou; i++) { string partno = dgv1.Rows[i].Cells["零件号"].Value.ToString(); string partname = dgv1.Rows[i].Cells["零件描述"].Value.ToString(); string reqdate = dgv1.Rows[i].Cells["需求日期"].Value.ToString(); string reqreason = dgv1.Rows[i].Cells["需求原因"].Value.ToString(); string preQty = dgv1.Rows[i].Cells["申请数量"].Value.ToString().Trim(); string meonoerp = ""; string remark = dgv1.Rows[i].Cells["remark"].Value.ToString(); if (dgv1.Rows[i].Cells["MEO_ERP"].Value != null) { meonoerp = dgv1.Rows[i].Cells["MEO_ERP"].Value.ToString().Trim(); } decimal fpreQty = decimal.Parse(preQty); MEOsub MM_submeo = new MEOsub(); MM_submeo.REQUIRE_QTY = decimal.Round(fpreQty, 2); //MM_submeo.PART_ID = int.Parse(partid); MM_submeo.REQUIRE_DATE = Convert.ToDateTime(reqdate); MM_submeo.REASON_CODE = reqreason; MM_submeo.CREATER = User.cur_user; MM_submeo.REQUIRE_ID = int.Parse(MEOID); MM_submeo.PROJECT_ID = ProjectId; MM_submeo.MEO_ERP = meonoerp; MM_submeo.PART_NO = partno; MM_submeo.PART_NAME = partname; MM_submeo.REMARK = remark; MM_submeo.REQUIRELINE_Add(); } MessageBox.Show("保存MEO成功!", "提示"); #endregion } #endregion // QuerydataBind(); }