private void btn_save_Click(object sender, EventArgs e) { if (dgv1.RowCount < 1) { return; } if (ProjectId == 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(); try { 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) //{ // 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["需求原因"].Value == null) { 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 } for (int i = 0; i < rowcou; i++) { #region 循环保存数据 string Rationid = dgv1.Rows[i].Cells["Ration_id"].Value.ToString(); string contractno = cmb_site.SelectedValue.ToString(); string Partno = dgv1.Rows[i].Cells["零件号"].Value.ToString(); Decimal Reqqty = Decimal.Parse(dgv1.Rows[i].Cells["需求数量"].Value.ToString()); DateTime ReqDate = Convert.ToDateTime(dgv1.Rows[i].Cells["需求日期"].Value.ToString()); //string purpose = txt_purpose.Text.Trim().ToString(); string blockId = cmb_block.SelectedValue.ToString(); string ReasonCode = dgv1.Rows[i].Cells["需求原因"].Value.ToString(); //string DesignCode = txt_designcode.Text.Trim().ToString(); string ReqNo = dgv1.Rows[i].Cells["MEO_ERP"].Value.ToString(); string remark = dgv1.Rows[i].Cells["备注"].Value.ToString(); //string isInventory = chb_useInv.Checked == true ? "是" : "否"; string Partname = dgv1.Rows[i].Cells["零件描述"].Value.ToString(); string zyname = dgv1.Rows[i].Cells["dt_zy"].Value.ToString(); string qyname = dgv1.Rows[i].Cells["dt_qy"].Value.ToString(); string fxname = dgv1.Rows[i].Cells["dt_fx"].Value.ToString(); string zlname = dgv1.Rows[i].Cells["dt_zl"].Value.ToString(); Ration mp = new Ration(); mp.PROJECT_ID = ProjectId; mp.RATION_ID = Convert.ToInt32(Rationid); mp.PART_NO = Partno; mp.ISSUED_QTY = decimal.Round(Reqqty, 2); mp.ISSUED_DATE = ReqDate; //mp.IF_INVENTORY = isInventory; //mp.PURPOSE = purpose; mp.BLOCK_ID = blockId; mp.REASON_CODE = ReasonCode; //mp.DESIGN_CODE = DesignCode; mp.REMARK = remark; mp.INFORMATION = remark; mp.CONTRACT = contractno; mp.CREATER = User.cur_user; mp.PART_NAME = Partname; mp.ECPROJECTID = ecprojectid; mp.PART_ZONE = qyname; mp.PART_FX = fxname; mp.PART_DISCIPLINE = zyname; mp.PART_TYPE = zlname; XmlOper.setXML("Block", blockId); if (Rationid != "0") { //mp.RATION_ID = Convert.ToInt32(lbl_rationid.Text); int n = mp.Update(); } else { int n = mp.Add(); } #endregion } MessageBox.Show("保存成功!!!"); } catch (Exception err) { MessageBox.Show("错误原因:" + err.Message, "错误提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information); } // QuerydataBind(); }