/// <summary> /// 添加至明细记录(注:可多行选择) /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Tmadd_Click(object sender, EventArgs e) { try { //定义‘_adddt’临时表的行数 var addcount = 0; if (gvsearchdtl.RowCount == 0) { throw new Exception("没有查询结果,不能添加"); } //获取临时表 var temp = dbList.Get_Searchdt(); foreach (DataGridViewRow row in gvsearchdtl.SelectedRows) { var newrow = temp.NewRow(); newrow[0] = row.Cells[0].Value; //FMATERIALID newrow[1] = row.Cells[1].Value; //物料编码 newrow[2] = row.Cells[2].Value; //物料名称 newrow[3] = row.Cells[4].Value; //规格型号 newrow[4] = row.Cells[6].Value; //密度(KG/L) temp.Rows.Add(newrow); } //若_adddt为空,即返回0 addcount = _adddt?.Rows.Count ?? 0; //若_addit为空的话,就将temp.Clone() 给它 if (_adddt == null) { _adddt = temp.Clone(); } //若_adddt+temp.rowscount得出的总行数>10行时,即提示异常 if (addcount + temp.Rows.Count > 10) { throw new Exception("添加行数已超过10行,不能继续"); } //判断若需要添加的记录,已在_adddt存在,即提示异常 if (!CheckRecord(temp)) { throw new Exception("已添加,不能再次进行添加"); } //将要添加的记录添加至‘添加明细记录’GridView内 gvdtl.DataSource = AddsoucetoDt(temp); //控制GridView单元格显示方式 ControlGridViewisShow(1); //若添加成功,执行以下操作 //按详细情况将对应的生成按钮显示 CheckShowButton(); //按情况将对应‘生成’按钮设置为可用 if (GlobalClasscs.Fun.FunctionName == "N") { btngennew.Enabled = true; } else { btngenerate.Enabled = true; } } catch (Exception ex) { MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); } }