using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using UAS_MES.DataOperate; using UAS_MES.Entity; using UAS_MES.PublicMethod; namespace UAS_MES.Warehouse { public partial class Warehouse_FinishedProductOut : Form { DataTable dbfind; AutoSizeFormClass asc = new AutoSizeFormClass(); LogStringBuilder sql = new LogStringBuilder(); DataTable dt; DataHelper dh; DataTable dta; DataTable dtpi; DataTable dtform; DataTable dtms; Warehouse_NewPiInOut newpi; public Warehouse_FinishedProductOut() { InitializeComponent(); } private void Warehouse_FinishedProductOut_Load(object sender, EventArgs e) { pi_inoutno.TableName = "prodinout"; pi_inoutno.DBTitle = "出货单查询"; pi_inoutno.SelectField = "pi_id # ID,pi_title # 客户名称,pi_inoutno # 出货单号,pi_type # 出货类型"; pi_inoutno.SetValueField = new string[] { "pi_title", "pi_inoutno", "pi_id", "pi_type" }; pi_inoutno.FormName = Name; pi_inoutno.Condition = "pi_pdastatus<>'已出库' and pi_class='出货单'"; pi_inoutno.DbChange += Pi_inoutno_DbChange; dh = new DataHelper(); asc.controllInitializeSize(this); } private void Pi_inoutno_DbChange(object sender, EventArgs e) { dbfind = pi_inoutno.ReturnData; BaseUtil.SetFormValue(this.Controls, dbfind); LoadFormData(); LoadGridData(); } /// /// j加载Form数据 /// private void LoadFormData() { BaseUtil.CleanControls(panel1.Controls); sql.Clear(); sql.Append("select pi_id,pi_title,pi_inoutno,pi_type from prodinout where pi_inoutno = '" + pi_inoutno.Text + "'"); dtpi = (DataTable)dh.ExecuteSql(sql.GetString(), "select"); if (dtpi.Rows.Count > 0) { BaseUtil.SetFormValue(this.Controls, dtpi); } sql.Clear(); sql.Append("select nvl((select sum(pd_outqty) from prodiodetail where pd_piid="+pi_id.Text+"),0)outqty,nvl((select count(1)cn from prodiomac where pim_inoutno=pd_inoutno),0) getqty "); sql.Append(" from prodiodetail where pd_piid='" + pi_id.Text + "' "); dtform = (DataTable)dh.ExecuteSql(sql.GetString(), "select"); if (dtform.Rows.Count > 0) { int boxqtycount = 0; BaseUtil.SetFormValue(this.Controls, dtform); ungetqty.Text = (int.Parse(dtform.Rows[0]["outqty"].ToString()) - int.Parse(dtform.Rows[0]["getqty"].ToString())).ToString(); sql.Clear(); sql.Append("select pim_type,pim_outboxcode from prodiomac where pim_inoutno='"+pi_inoutno.Text+ "' and NVL(PIM_OUTBOXCODE,' ')<>' ' AND pim_type ='BOX' GROUP BY pim_outboxcode,pim_type"); DataTable dtout = (DataTable)dh.ExecuteSql(sql.GetString(),"select"); boxqtycount += dtout.Rows.Count; boxqtycount += int.Parse(dh.getFieldDataByCondition("package", "nvl(sum(pa_packageqty),0)", " pa_outboxcode in (select pim_outboxcode from prodiomac where pim_inoutno='" + pi_inoutno.Text + "' and NVL(PIM_OUTBOXCODE,' ')<>' ' AND pim_type ='PALLET' GROUP BY pim_outboxcode)").ToString()); boxqty.Text = boxqtycount.ToString(); } if (pi_type.Text == "按订单出货") { pi_type_check.Checked = true; } else { pi_type_check.Checked = false; } } /// /// 加载Grid数据 /// private void LoadGridData() { sql.Clear(); sql.Append("select pim_outboxcode,pim_mac,pim_prodcode,pr_detail,pr_spec from prodiomac "); sql.Append("left join product on pr_code=pim_prodcode where pim_inoutno='" + pi_inoutno.Text + "'"); DataTable dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select"); BaseUtil.FillDgvWithDataTable(InOutDetailDGV, dt); } private void Warehouse_FinishedProductOut_SizeChanged(object sender, EventArgs e) { asc.controlAutoSize(this); } private void NewProdInOut_Click(object sender, EventArgs e) { newpi = new Warehouse_NewPiInOut(); newpi.Controls["Confirm"].Click += newpi_clck; BaseUtil.SetFormCenter(newpi); newpi.ShowDialog(); } private void newpi_clck(object sender, EventArgs e) { pi_inoutno.Text = newpi.pi_inoutno_text; LoadFormData(); LoadGridData(); newpi.Close(); } private void ProdDetail_Click(object sender, EventArgs e) { Warehouse_ProdDetail newpd = new Warehouse_ProdDetail(pi_inoutno.Text,pi_id.Text); BaseUtil.SetFormCenter(newpd); newpd.ShowDialog(); } private void ConfirmOut_Click(object sender, EventArgs e) { String dialog = MessageBox.Show("是否确认出货", "提示", MessageBoxButtons.OKCancel).ToString(); if (dialog != "OK") { OperateResult.AppendText("取消确认出货\n", Color.Black); return; } else { sql.Clear(); sql.Append("select nvl(pi_pdastatus,'未备货')pi_pdastatus,pi_id,pi_type from prodinout where pi_inoutno='" + pi_inoutno.Text + "'"); dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select"); if (dt.Rows.Count > 0) { if (dt.Rows[0]["pi_pdastatus"].ToString() == "已出库") { OperateResult.AppendText("出货单" + pi_inoutno.Text + "已经出库,无需重复确认\n", Color.Red); return; } else if (dt.Rows[0]["pi_pdastatus"].ToString() == "未备货") { OperateResult.AppendText("出货单" + pi_inoutno.Text + "尚未备货,无法确认出货\n", Color.Red); return; } else if (dt.Rows[0]["pi_type"].ToString() == "按订单出货" && dt.Rows[0]["pi_pdastatus"].ToString() == "备货中") { OperateResult.AppendText("出货单" + pi_inoutno.Text + "未完成备货,无法确认出货\n", Color.Red); return; } else { List ExeSQL = new List(); ExeSQL.Add("update package set pa_status=2 where exists (select 1 from prodiomac where pim_inoutno='" + pi_inoutno.Text + "' and pim_outboxcode=pa_outboxcode and ((pim_type='PALLET' AND PA_TYPE=3) OR (PIM_TYPE='BOX' AND PA_TYPE IN(1,2)))) AND PA_OUTNO='" + pi_inoutno.Text + "'"); ExeSQL.Add("update prodinout set pi_pdastatus='已出库' where pi_inoutno='" + pi_inoutno.Text + "'"); ExeSQL.Add("insert into messagelog(ml_id,ml_date,ml_man,ml_content,ml_result,ml_search)values(messagelog_seq.nextval,sysdate,'" + User.UserName + "','确认出货','确认出货成功','ProdInOut!Sale|pi_id=" + pi_id.Text + "')"); dh.ExecuteSQLTran(ExeSQL.ToArray()); OperateResult.AppendText("出货单" + pi_inoutno.Text + "出库成功\n", Color.Black,pi_inoutno); BaseUtil.CleanDataGridView(InOutDetailDGV); BaseUtil.CleanControls(panel1.Controls); } } else { OperateResult.AppendText("出货单" + pi_inoutno.Text + "不存在\n", Color.Red, pi_inoutno); return; } } } private void input_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter) { if (input.Text == "") { OperateResult.AppendText("录入信息不能为空\n", Color.Red, input); return; } sql.Clear(); sql.Append("select nvl(pi_pdastatus,'未备货')pi_pdastatus,pi_type from prodinout where pi_inoutno='" + pi_inoutno.Text + "'"); dta = (DataTable)dh.ExecuteSql(sql.GetString(), "select"); if (dta.Rows.Count > 0) { if (!cancel.Checked) { if (palletBtn.Checked) { sql.Clear(); sql.Append("select pa_outboxcode,pa_status,nvl(pa_downstatus,0)pa_downstatus,pa_outno from package where pa_outboxcode='" + input.Text + "' and pa_type=3"); dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select"); if (dt.Rows.Count > 0) { if (!checkinput(dt, "栈板号")) return; } else { OperateResult.AppendText("栈板号" + input.Text + "不存在,请重新输入\n", Color.Red, input); return; } if (!checkinsertprodiomac("栈板号")) return; } else if (bigboxBtn.Checked) { string outboxcode = dh.getFieldDataByCondition("makeserial","ms_outboxcode","ms_sncode = '"+input.Text+"'").ToString(); if (outboxcode != "") { input.Text = outboxcode; } sql.Clear(); sql.Append("select pa_outboxcode,pa_status,nvl(pa_downstatus,0)pa_downstatus,pa_outno, pa_mothercode from package where pa_outboxcode='" + input.Text + "' and pa_type in(1,2)"); dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select"); if (dt.Rows.Count > 0) { if (dt.Rows[0]["pa_mothercode"].ToString() != "") { OperateResult.AppendText("箱号" + input.Text + "已经装大箱或者栈板,不允许单独出货\n", Color.Red, input); return; } if (!checkinput(dt, "箱号")) return; } else { OperateResult.AppendText("箱号" + input.Text + "不存在,请重新输入\n", Color.Red, input); return; } if (!checkinsertprodiomac("箱号")) return; //更新箱号对应的出货单号 dh.UpdateByCondition("package", "pa_outno = '" + pi_inoutno.Text + "'", "pa_outboxcode = '" + input.Text + "'"); } else if (serBtn.Checked) { string ms_id = dh.getFieldDataByCondition("makeserial", "max(ms_id)ms_id", "ms_sncode='" + input.Text + "'").ToString(); if (ms_id == "") { OperateResult.AppendText("序列号" + input.Text + "不存在,请重新输入\n", Color.Red, input); return; } else { sql.Clear(); sql.Append("select ms_status,nvl(ms_downstatus,0)ms_downstatus,ms_outboxcode,nvl(ms_iostatus,1)ms_iostatus,ms_prodcode,ms_salecode from makeserial where ms_id='" + ms_id + "'"); dtms = (DataTable)dh.ExecuteSql(sql.GetString(), "select"); if (dtms.Rows[0]["ms_status"].ToString() != "2") { OperateResult.AppendText("序列号" + input.Text + "未完工,不允许出货\n", Color.Red, input); return; } if (dtms.Rows[0]["ms_outboxcode"].ToString() != "") { OperateResult.AppendText("序列号" + input.Text + "有外箱号,不允许单独出货\n", Color.Red, input); return; } if (dtms.Rows[0]["ms_downstatus"].ToString() != "0") { OperateResult.AppendText("序列号" + input.Text + "处于下地状态,不允许出货\n", Color.Red, input); return; } if (dtms.Rows[0]["ms_iostatus"].ToString() != "0") { OperateResult.AppendText("序列号" + input.Text + "已经被出货单:" + dh.getFieldDataByCondition("makeserial left JOIN prodiomac on pim_mac=ms_sncode", "pim_inoutno", "ms_id='" + ms_id + "' order by pim_indate desc").ToString() + "出货\n", Color.Red, input); return; } if (dta.Rows[0]["pi_type"].ToString() == "按订单出货") { sql.Clear(); sql.Append("select cn,outqty,outqty-nvl((select count(1) from prodiomac where pim_inoutno='" + pi_inoutno.Text + "' and pim_prodcode='" + dtms.Rows[0]["ms_prodcode"].ToString() + "'),0)ungetqty from"); sql.Append("(select nvl(sum(pd_outqty),0) outqty ,count(1)cn from prodiodetail where pd_piid=" + pi_id.Text + " and pd_ordercode='" + dtms.Rows[0]["ms_salecode"].ToString() + "' and pd_prodcode='" + dtms.Rows[0]["ms_prodcode"].ToString() + "')"); dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select"); if (dt.Rows[0]["cn"].ToString() == "0") { OperateResult.AppendText("序列号" + input.Text + "所属产品:" + dtms.Rows[0]["ms_prodcode"].ToString() + ",合同号:" + dtms.Rows[0]["ms_salecode"].ToString() + ",不在出货单" + pi_inoutno.Text + "中\n", Color.Red, input); return; } else if (int.Parse(dt.Rows[0]["cn"].ToString()) > 0 && int.Parse(dt.Rows[0]["ungetqty"].ToString()) <= 0) { OperateResult.AppendText("出货单产品" + dtms.Rows[0]["ms_prodcode"].ToString() + "+合同" + dtms.Rows[0]["ms_salecode"].ToString() + ",已经完成出货采集\n", Color.Red, input); return; } updatesn(ms_id); } else if (dta.Rows[0]["pi_type"].ToString() == "自由出货") { updatesn(ms_id); } } } else { OperateResult.AppendText("未选择录入数据类型\n", Color.Red,input); return; } LoadFormData(); LoadGridData(); if (dta.Rows[0]["pi_type"].ToString() == "按订单出货") { if (int.Parse(dtform.Rows[0]["outqty"].ToString()) > int.Parse(dtform.Rows[0]["getqty"].ToString())) { dh.UpdateByCondition("prodinout", "pi_pdastatus='备货中'", "pi_inoutno='" + pi_inoutno.Text + "'"); OperateResult.AppendText("出货单" + pi_inoutno.Text + "备货成功\n", Color.Black,input); } else { dh.UpdateByCondition("prodinout", "pi_pdastatus='已备货'", "pi_inoutno='" + pi_inoutno.Text + "'"); OperateResult.AppendText("出货单" + pi_inoutno.Text + "已完成备货\n", Color.Black,input); return; } } else if (dta.Rows[0]["pi_type"].ToString() == "自由出货") { dh.UpdateByCondition("prodinout", "pi_pdastatus='备货中'", "pi_inoutno='" + pi_inoutno.Text + "'"); OperateResult.AppendText("出货单" + pi_inoutno.Text + "备货成功\n", Color.Black,input); } } else { if (dta.Rows[0]["pi_pdastatus"].ToString() == "已出库") { OperateResult.AppendText("出货单" + pi_inoutno.Text + "已经出库不允许取消备货\n", Color.Red); return; } else if (dta.Rows[0]["pi_pdastatus"].ToString() == "未备货") { OperateResult.AppendText("出货单" + pi_inoutno.Text + "尚未备货,无法取消\n", Color.Red); return; } if (palletBtn.Checked) { sql.Clear(); sql.Append("select * from prodiomac where pim_inoutno='"+ pi_inoutno.Text + "' and pim_outboxcode='"+input.Text+"' and pim_type='PALLET'"); dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select"); if (dt.Rows.Count > 0) { dh.ExecuteSql("delete from prodiomac where pim_inoutno='" + pi_inoutno.Text + "' and pim_outboxcode='" + input.Text + "' and pim_type='PALLET'", "delete"); dh.UpdateByCondition("package", "pa_outno=''", "pa_outboxcode='"+input.Text+ "'"); OperateResult.AppendText("栈板号" + input.Text + "取消备货成功\n", Color.Black,input); } else { OperateResult.AppendText("栈板号" + input.Text + "不在备货数据中\n", Color.Red,input); return; } } else if (bigboxBtn.Checked) { string outboxcode = dh.getFieldDataByCondition("makeserial", "ms_outboxcode", "ms_sncode = '" + input.Text + "'").ToString(); if (outboxcode != "") { input.Text = outboxcode; } sql.Clear(); sql.Append("select * from prodiomac where pim_inoutno='" + pi_inoutno.Text + "' and pim_outboxcode='" + input.Text + "' and pim_type='BOX'"); dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select"); if (dt.Rows.Count > 0) { dh.ExecuteSql("delete from prodiomac where pim_inoutno='" + pi_inoutno.Text + "' and pim_outboxcode='" + input.Text + "' and pim_type='BOX'", "delete"); dh.UpdateByCondition("package", "pa_outno=''", "pa_outboxcode='" + input.Text + "'"); OperateResult.AppendText("箱号" + input.Text + "取消备货成功\n", Color.Black, input); } else { OperateResult.AppendText("箱号" + input.Text + "不在备货数据中\n", Color.Red, input); return; } } else if (serBtn.Checked) { sql.Clear(); sql.Append("select pim_type,pim_outboxcode,pim_prodcode from prodiomac where pim_inoutno='" + pi_inoutno.Text + "' and pim_mac='" + input.Text + "'"); dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select"); if (dt.Rows.Count > 0) { if (dt.Rows[0]["pim_type"].ToString() != "" && dt.Rows[0]["pim_outboxcode"].ToString() != "") { OperateResult.AppendText("序列号" + input.Text + "已通过箱号或栈板号" + dt.Rows[0]["pim_outboxcode"].ToString() + "备货,无法单独取消\n", Color.Red, input); return; } else { dh.ExecuteSql("delete from prodiomac where pim_inoutno='" + pi_inoutno.Text + "' and pim_mac='" + input.Text + "'", "delete"); dh.UpdateByCondition("makeserial", "ms_iostatus=1", "ms_sncode='"+input.Text+"' and ms_prodcode='"+ dt.Rows[0]["pim_prodcode"].ToString() + "' and ms_iostatus=2"); OperateResult.AppendText("序列号" + input.Text + "取消备货成功\n", Color.Black, input); } } else { OperateResult.AppendText("序列号" + input.Text + "不在备货数据中\n", Color.Red, input); return; } } else { OperateResult.AppendText("未选择录入数据类型\n", Color.Red, input); return; } LoadFormData(); LoadGridData(); } } else { OperateResult.AppendText("出货单" + pi_inoutno.Text + "不存在\n", Color.Red, pi_inoutno); return; } } } private void updatesn(string ms_id) { //更新操作 sql.Clear(); sql.Append("insert into prodiomac(pim_id,pim_inoutno,pim_piid,pim_prodcode,pim_mac,pim_indate,pim_inman,pim_type)"); sql.Append("values(prodiomac_seq.nextval,'" + pi_inoutno.Text + "','" + pi_id.Text + "','" + dtms.Rows[0]["ms_prodcode"].ToString() + "','" + input.Text + "',sysdate,'" + User.UserCode + "',' ')"); dh.ExecuteSql(sql.GetString(), "insert"); dh.UpdateByCondition("makeserial", "ms_iostatus=2", " ms_id='" + ms_id + "'"); } //插入prodiomac表 private void insertprodiomac(string type) { string pib_type = ""; if (type == "栈板号") { pib_type = "PALLET"; } else if(type == "箱号") { pib_type = "BOX"; } sql.Clear(); sql.Append("insert into prodiomac(pim_id,pim_inoutno,pim_piid,pim_prodcode,pim_mac,pim_indate,pim_inman,pim_type,pim_outboxcode)"); sql.Append("select prodiomac_seq.nextval,'" + pi_inoutno.Text + "','" + pi_id.Text + "',v_prodcode,v_barcode,sysdate,'" + User.UserCode + "','"+ pib_type + "','" + input.Text + "' from mes_package_view where v_outboxcode='" + input.Text + "'"); dh.ExecuteSql(sql.GetString(), "insert"); } private Boolean checkinsertprodiomac(string type) { sql.Clear(); sql.Append("select wm_concat(v_barcode)data,count(1)cn from mes_package_view left join makeserial on ms_sncode=v_barcode and ms_makecode=v_makecode where v_outboxcode='" + input.Text + "' and nvl(ms_status,0)<>2 and rownum<20"); dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select"); if (dt.Rows[0]["data"].ToString() != "" && int.Parse(dt.Rows[0]["cn"].ToString()) > 0) { OperateResult.AppendText(type + input.Text + "内序列号未完工,序列号:" + dt.Rows[0]["data"].ToString() + "\n", Color.Red, input); return false; } if (dta.Rows[0]["pi_type"].ToString() == "按订单出货") { sql.Clear(); sql.Append("select ms_prodcode,ms_salecode,cn from (select ms_prodcode,ms_salecode,count(1)cn from mes_package_view left join makeserial on ms_sncode=v_barcode and ms_makecode=v_makecode where v_outboxcode='" + input.Text + "' "); sql.Append(" group by ms_prodcode,ms_salecode) left join (select pd_ordercode,pd_prodcode,outqty-nvl((select count(1) from prodiomac where pim_inoutno='" + pi_inoutno.Text + "' and pim_prodcode=pd_prodcode),0)ungetqty"); sql.Append(" from (select pd_ordercode,pd_prodcode,sum(pd_outqty)outqty from prodiodetail where pd_piid=" + pi_id.Text + " group by pd_prodcode,pd_ordercode)) on ms_prodcode=pd_prodcode and ms_salecode=pd_ordercode where nvl(pd_prodcode,' ')<>' ' or nvl(pd_ordercode,' ')<>' ' or cn>nvl(ungetqty,0)"); dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select"); if (!(int.Parse(dt.Rows[0]["cn"].ToString()) > 0)) { OperateResult.AppendText(type + input.Text + "内的序列号中的物料+订单不在出货单中或者栈板内中序列号的数量大于剩余出货数,栈板内物料号:" + dt.Rows[0]["ms_prodcode"].ToString() + ",订单号:" + dt.Rows[0]["ms_salecode"].ToString() + ",数量:" + dt.Rows[0]["cn"].ToString() + "\n", Color.Red, input); return false; } else { //插入prodiomac表 insertprodiomac(type); return true; } } else if (dta.Rows[0]["pi_type"].ToString() == "自由出货") { insertprodiomac(type); return true; } return true; } private Boolean checkinput(DataTable dt, string type) { if (dt.Rows[0]["pa_outno"].ToString() != "") { OperateResult.AppendText(type + input.Text + "已经被出货单:" + dt.Rows[0]["pa_outno"].ToString() + "采集,请重新输入\n", Color.Red, input); return false; } if (dt.Rows[0]["pa_status"].ToString() == "0") { OperateResult.AppendText(type + input.Text + "未封装,请重新输入\n", Color.Red, input); return false; } else if (dt.Rows[0]["pa_status"].ToString() == "2") { OperateResult.AppendText(type + input.Text + "已出库,请重新输入\n", Color.Red, input); return false; } if (dt.Rows[0]["pa_downstatus"].ToString() != "0") { OperateResult.AppendText(type + input.Text + "处于下地状态,若需出货,请先取消下地\n", Color.Red, input); return false; } return true; } private void Clean_Click(object sender, EventArgs e) { sql.Clear(); sql.Append("select nvl(pi_pdastatus,'未备货')pi_pdastatus,pi_id from prodinout where pi_inoutno='" + pi_inoutno.Text + "'"); dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select"); if (dt.Rows.Count > 0) { if (dt.Rows[0]["pi_pdastatus"].ToString() == "已出库") { OperateResult.AppendText("出货单" + pi_inoutno.Text + "已经出库,不允许取消明细\n", Color.Red); return; } else if (dt.Rows[0]["pi_pdastatus"].ToString() == "未备货") { OperateResult.AppendText("出货单" + pi_inoutno.Text + "尚未备货,无法取消明细\n", Color.Red); return; } List ExeSQL = new List(); ExeSQL.Add("update makeserial set ms_iostatus=1 where exists (select 1 from prodiomac where pim_inoutno='" + pi_inoutno.Text + " ' and pim_mac=ms_sncode and pim_prodcode=ms_prodcode and nvl(pim_outboxcode,' ')=' ') and ms_status=2"); ExeSQL.Add("update package set pa_outno = '' where exists (select 1 from prodiomac where pim_inoutno='" + pi_inoutno.Text + "' and pim_outboxcode=pa_outboxcode and ((pim_type='PALLET' AND PA_TYPE=3) OR (PIM_TYPE='BOX' AND PA_TYPE IN(1,2)))) AND PA_OUTNO='" + pi_inoutno.Text + "'"); ExeSQL.Add("delete from prodiomac where pim_inoutno='" + pi_inoutno.Text + "'"); ExeSQL.Add("update prodinout set pi_pdastatus='未备货' where pi_inoutno='" + pi_inoutno.Text + "'"); ExeSQL.Add("insert into messagelog(ml_id,ml_date,ml_man,ml_content,ml_result,ml_search)values(messagelog_seq.nextval,sysdate,'" + User.UserName + "','清除全部备货明细','清除备货明细成功','ProdInOut!Sale|pi_id=" + pi_id.Text + "')"); dh.ExecuteSQLTran(ExeSQL.ToArray()); OperateResult.AppendText("出货单" + pi_inoutno.Text + "取消明细成功\n", Color.Black,input); } else { OperateResult.AppendText("出货单" + pi_inoutno.Text + "不存在\n", Color.Red, pi_inoutno); return; } LoadFormData(); LoadGridData(); } } }