| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044 |
- using System;
- using System.Data;
- using System.Drawing;
- using System.Windows.Forms;
- using UAS_MES_NEW.DataOperate;
- using UAS_MES_NEW.Entity;
- using UAS_MES_NEW.PublicMethod;
- namespace UAS_MES_NEW.SMT
- {
- public partial class SMT_Feeding : Form
- {
- AutoSizeFormClass asc = new AutoSizeFormClass();
- DataHelper dh;
- DataTable dt;
- LogStringBuilder sql = new LogStringBuilder();
- RadioButton[] RadioButton;
- //判断用户是否执行过筛选
- bool Filtered = false;
- //勾选的RadioButton
- RadioButton CheckedRadio;
- //一些全局变量作为传值条件
- //站位表的物料编号
- string psl_prodcode;
- //站位表的替代料
- string psl_repcode;
- double barremain;
- string barcode;
- string forcastremain;
- string psltable = "";
- string bar_prodcode;
- //DevSmtLocation表主键
- string dsl_id;
- //DevSmtLocation表主键
- int dsl_remainqty;
- //DevSmtLocation表条码号
- string dsl_barcode;
- //制造单号的机台编号
- string ma_smtcode;
- SMT_MakeShift MShift;
- public SMT_Feeding()
- {
- InitializeComponent();
- }
- private void SMT上料_Load(object sender, EventArgs e)
- {
- de_table.Text = "全部";
- asc.controllInitializeSize(this);
- dh = new DataHelper();
- //机台编号
- de_code.FormName = Name;
- de_code.SetValueField = new string[] { "ma_code", "de_runstatus", "de_code", "de_table" };
- de_code.TableName = "device left join make on de_macode=ma_code";
- de_code.SelectField = "de_code # 设备编号,de_linecode # 线别编号,de_name # 设备名称,de_runstatus # 运行状态,ma_code # 工单号,de_table # 版面";
- de_code.Condition = "de_linecode='" + User.UserLineCode + "'";
- //工单号
- ma_code.TableName = "make left join product on ma_prodcode=pr_code";
- ma_code.SelectField = "ma_code # 工单号,ma_prodcode # 物料编号,ma_qty # 数量,ma_prodname # 物料名称,ma_wccode # 工作中心编号,ma_linecode # 工单线别,pr_spec # 产品规格";
- ma_code.FormName = Name;
- ma_code.SetValueField = new string[] { "ma_code", "ma_qty", "ma_prodspec", "ma_id", "ma_linecode", "ma_prodcode", "pr_spec" };
- RadioButton = new RadioButton[] { UpLoad, DownLoad, Shift, PickUp };
- }
- private void Input_KeyDown(object sender, KeyEventArgs e)
- {
- if (Keys.Enter == e.KeyData)
- {
- //点击过筛选按钮才允许
- if (Filtered)
- {
- switch (CheckedRadio.Name.ToUpper())
- {
- //上料
- case "UPLOAD":
- //首先录入面板号
- if (psl_location.Text == "")
- {
- sql.Clear();
- sql.Append("select psl_prodcode,psl_repcode,psl_table from productsmtlocation left join productsmt on ps_id=psl_psid ");
- sql.Append("left join make on ma_smtcode=ps_code where ma_code='" + ma_code.Text + "' and psl_location='" + Input.Text + "'");
- dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
- LogManager.DoLog("【" + Text + "】上料操作", sql.GetString());
- if (dt.Rows.Count > 0)
- {
- psltable = dt.Rows[0]["psl_table"].ToString();
- psl_prodcode = dt.Rows[0]["psl_prodcode"].ToString();
- psl_repcode = dt.Rows[0]["psl_repcode"].ToString();
- sql.Clear();
- sql.Append("select dsl_id,dsl_barcode from devSMTLocation left join make on ma_code=dsl_makecode and dsl_linecode=");
- sql.Append("ma_linecode where dSL_MAKECODE='" + ma_code.Text + "' and dsl_devcode ='" + de_code.Text + "' And");
- sql.Append(" dsl_location='" + Input.Text + "' and dsl_status = 0");
- dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
- if (dt.Rows.Count == 0)
- {
- psl_location.Text = Input.Text;
- OperateResult.AppendText(">>站位采集" + Input.Text + "成功,请采集物料" + psl_prodcode + " 的料卷号\n", Color.Green);
- }
- else
- {
- OperateResult.AppendText(">>站位已有料卷" + dt.Rows[0]["dsl_barcode"].ToString() + ",不允许重复上料\n", Color.Red);
- }
- Input.Text = "";
- }
- else
- {
- OperateResult.AppendText(">>站位错误,不存在上料排位表中\n", Color.Red);
- }
- }
- //采集料圈数量
- else if (bar_code.Text == "")
- {
- dt = (DataTable)dh.ExecuteSql("select bar_remain,nvl(bar_place,1) bar_place,bar_prodcode,bar_code,bar_forcastremain from barcode where bar_code='" + Input.Text + "' and bar_status=1", "select");
- //查询回来的有库存的话
- if (dt.Rows.Count > 0)
- {
- forcastremain = dt.Rows[0]["bar_forcastremain"].ToString();
- barremain = double.Parse(dt.Rows[0]["bar_remain"].ToString());
- barcode = dt.Rows[0]["bar_code"].ToString();
- //并且库存不为0
- //到此步骤已采集成功站位和料卷号
- if (dt.Rows[0]["bar_remain"].ToString() != "0")
- {
- if (dt.Rows[0]["bar_place"].ToString() == "1")
- {
- bar_prodcode = dt.Rows[0]["bar_prodcode"].ToString();
- //如果采集的料卷的物料编号和站位表的物料或者替代料相等
- if (bar_prodcode == psl_prodcode || psl_repcode.Contains(bar_prodcode))
- {
- if (forcastremain != "0" && forcastremain != "" && forcastremain != barremain.ToString())
- {
- bar_code.Text = Input.Text;
- bar_remain.Text = forcastremain;
- }
- else
- {
- bar_remain.Text = double.Parse(barremain.ToString()).ToString();
- //插入数据至devSMTLocation
- sql.Clear();
- sql.Append("insert into DEVSMTLocation(dsl_id,dsl_maid,dsl_makecode, dsl_mmdetno,dsl_location,dsl_prodcode,dsl_repcode,dsl_fespec,");
- sql.Append("dsl_getqty,dsl_remainqty,dsl_barcode,dsl_linecode,dsl_devcode,dsl_status,dsl_validtime,dsl_indate,dsl_smtid)");
- sql.Append(" select devSMTLocation_SEQ.nextval,ma_id,ma_code,'','" + psl_location.Text + "','" + bar_prodcode + "',");
- sql.Append("'" + psl_repcode + "',psl_feeder,'" + bar_remain.Text + "','" + bar_remain.Text + "',");
- sql.Append("'" + barcode + "',ma_linecode,'" + de_code.Text + "',0,sysdate,sysdate,ps_id from make left join productsmt on ma_smtcode=ps_code ");
- sql.Append("left join productsmtlocation on ps_id=psl_psid where ma_code='" + ma_code.Text + "' and psl_location='" + psl_location.Text + "' and rownum<=1");
- dh.ExecuteSql(sql.GetString(), "insert");
- //如果几台绑定的工单号未空的情况下更新成当前采集料的
- if (dh.getFieldDataByCondition("device", "de_macode", "de_code='" + de_code.Text + "'").ToString() == "")
- {
- dh.ExecuteSql("update device set de_macode='" + ma_code.Text + "' where de_code='" + de_code.Text + "'", "update");
- }
- //更新条码(barcode)状态在线上 bar_Place=工单号
- dh.ExecuteSql("update barcode set bar_Place='" + ma_code.Text + "' where bar_code='" + Input.Text + "' and bar_status=1", "update");
- OperateResult.AppendText(">>料卷采集成功,数量" + barremain + "\n", Color.Green);
- LoadGridData();
- CleanInf();
- }
- }
- else
- {
- OperateResult.AppendText(">>采集的物料号" + Input.Text + "不匹配\n", Color.Red);
- Input.Text = "";
- }
- }
- else
- {
- OperateResult.AppendText(">>料卷" + Input.Text + "已上线\n", Color.Red);
- Input.Text = "";
- }
- }
- else
- {
- OperateResult.AppendText(">> 料卷编号" + Input.Text + "错误,库存数量为0\n", Color.Green);
- Input.Text = "";
- }
- }
- else
- {
- OperateResult.AppendText(">>料卷编号" + Input.Text + "错误,不存在或者状态无效\n", Color.Red);
- Input.Text = "";
- }
- }
- else if (bar_code.Text != "" && psl_location.Text != "" && bar_remain.Text != "")
- {
- bar_remain.Text = double.Parse(barremain.ToString()).ToString();
- //插入数据至devSMTLocation
- sql.Clear();
- sql.Append("insert into DEVSMTLocation(dsl_id,dsl_maid,dsl_makecode, dsl_mmdetno,dsl_location,dsl_prodcode,dsl_repcode,dsl_fespec,");
- sql.Append("dsl_getqty,dsl_remainqty,dsl_barcode,dsl_linecode,dsl_devcode,dsl_status,dsl_validtime,dsl_indate,dsl_smtid)");
- sql.Append(" select devSMTLocation_SEQ.nextval,ma_id,ma_code,'','" + psl_location.Text + "','" + bar_prodcode + "',");
- sql.Append("'" + psl_repcode + "',psl_feeder,'" + bar_remain.Text + "','" + bar_remain.Text + "',");
- sql.Append("'" + barcode + "',ma_linecode,'" + de_code.Text + "',0,sysdate,sysdate,ps_id from make left join productsmt on ma_smtcode=ps_code ");
- sql.Append("left join productsmtlocation on ps_id=psl_psid where ma_code='" + ma_code.Text + "' and psl_location='" + psl_location.Text + "' and rownum<=1");
- dh.ExecuteSql(sql.GetString(), "insert");
- //如果几台绑定的工单号未空的情况下更新成当前采集料的
- if (dh.getFieldDataByCondition("device", "de_macode", "de_code='" + de_code.Text + "'").ToString() == "")
- {
- dh.ExecuteSql("update device set de_macode='" + ma_code.Text + "' where de_code='" + de_code.Text + "'", "update");
- }
- //更新条码(barcode)状态在线上 bar_Place=工单号
- dh.ExecuteSql("update barcode set bar_Place='" + ma_code.Text + "' where bar_code='" + Input.Text + "' and bar_status=1", "update");
- OperateResult.AppendText(">>料卷采集成功,数量" + barremain + "\n", Color.Green);
- LoadGridData();
- CleanInf();
- }
- break;
- //下料
- case "DOWNLOAD":
- sql.Clear();
- sql.Append("select dsl_location,dsl_barcode,dsl_remainqty,dsl_prodcode from devSMTLocation left join make on ma_code=dsl_makecode and ma_linecode=dsl_linecode ");
- sql.Append("where dsl_makecode='" + ma_code.Text + "' and dsl_devcode='" + de_code.Text + "' and (dsl_barcode='" + Input.Text + "' or ");
- sql.Append("dsl_location='" + Input.Text + "') and nvl(dsl_status,0)=0");
- dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
- if (dt.Rows.Count > 0)
- {
- string dsl_location = dt.Rows[0]["dsl_location"].ToString();
- string dsl_barcode = dt.Rows[0]["dsl_barcode"].ToString();
- string dsl_remainqty = dt.Rows[0]["dsl_remainqty"].ToString();
- string dsl_prodcode = dt.Rows[0]["dsl_prodcode"].ToString();
- dh.UpdateByCondition("DEVSMTLocation", "dsl_status=-1,dsl_invalidtime=sysdate", "dsl_location='" + dsl_location + "'");
- dh.UpdateByCondition("barcode", "bar_place=1,bar_forcastremain =" + dsl_remainqty, "bar_code='" + dsl_barcode + "'");
- OperateResult.AppendText(">>退料成功\n", Color.Green);
- //下料后判断当前的设备时候还有料存在
- sql.Clear();
- sql.Append("select dsl_makecode from device left join devSMTLocation ");
- sql.Append("on de_code=dsl_devcode where de_code='" + de_code.Text + "' and dsl_status=0 and dsl_makecode<>'" + ma_code.Text + "'");
- dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
- if (dt.Rows.Count == 0)
- {
- dh.ExecuteSql("update device set de_macode='' where de_code='" + de_code.Text + "'", "update");
- }
- LoadGridData();
- }
- else
- {
- OperateResult.AppendText(">>料卷号或者站位错误,无需退料\n", Color.Red);
- }
- break;
- //接料
- case "PICKUP":
- //查询站位是否存在
- if (psl_location.Text == "")
- {
- sql.Clear();
- sql.Append("select psl_prodcode,psl_repcode from productsmtlocation left join productsmt on ps_id=psl_psid left join make on ");
- sql.Append("ma_smtcode=ps_code where ma_code='" + ma_code.Text + "' and psl_location='" + Input.Text + "' ");
- dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
- if (dt.Rows.Count > 0)
- {
- psl_location.Text = Input.Text;
- Input.Text = "";
- //获取物料号和替代料
- psl_prodcode = dt.Rows[0]["psl_prodcode"].ToString();
- psl_repcode = dt.Rows[0]["psl_repcode"].ToString();
- OperateResult.AppendText(">>站位采集成功,请采集物料" + psl_prodcode + " 的料卷号\n", Color.Green);
- }
- else
- {
- OperateResult.AppendText(">>站位错误,不存在上料排位表中\n", Color.Red);
- }
- }
- else if (bar_code.Text == "")
- {
- dt = (DataTable)dh.ExecuteSql("select bar_remain,bar_forcastremain from barcode where bar_code='" + Input.Text + "' and bar_status=1", "select");
- barremain = double.Parse(dt.Rows[0]["bar_remain"].ToString());
- forcastremain = dt.Rows[0]["bar_remain"].ToString();
- if (dt.Rows.Count > 0)
- {
- //如果剩余的数量不为0的话
- if (dt.Rows[0]["bar_remain"].ToString() != "0")
- {
- sql.Clear();
- sql.Append("select * from devSMTLocation left join make on ma_code=dsl_makecode and ma_linecode=dsl_linecode where dsl_makecode='" + ma_code.Text + "'");
- sql.Append(" and dsl_devcode='" + de_code.Text + "' and dsl_location='" + psl_location.Text + "' and dsl_status=0");
- dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
- if (dt.Rows.Count > 0)
- {
- //上一条码的剩余数量
- int dsl_remainqty = int.Parse(dt.Rows[0]["dsl_remainqty"].ToString());
- string dsl_barcode = dt.Rows[0]["dsl_barcode"].ToString();
- string dsl_id = dt.Rows[0]["dsl_id"].ToString();
- dt = (DataTable)dh.ExecuteSql("select nvl(bar_place,1) bar_place,bar_remain,bar_prodcode from barcode where bar_code='" + Input.Text + "'", "select");
- if (dt.Rows.Count > 0)
- {
- if (dt.Rows[0]["bar_place"].ToString() == "1")
- {
- string bar_prodcode = dt.Rows[0]["bar_prodcode"].ToString();
- //本次切换的料卷剩余的
- barremain = int.Parse(dt.Rows[0]["bar_remain"].ToString());
- if (psl_prodcode == bar_prodcode || psl_repcode == bar_prodcode)
- {
- if (forcastremain != "0" && forcastremain != "" && forcastremain != barremain.ToString())
- {
- bar_code.Text = Input.Text;
- bar_remain.Text = forcastremain;
- }
- else
- {
- bar_remain.Text = barremain.ToString();
- //插入数据至devSMTLocation
- sql.Clear();
- sql.Append("insert into devSMTLocation(dsl_id,dsl_maid,dsl_makecode, dsl_mmdetno,dsl_location,dsl_prodcode,dsl_repcode,dsl_fespec,");
- sql.Append("dsl_getqty,dsl_remainqty,dsl_barcode,dsl_linecode,dsl_devcode,dsl_status,dsl_smtid,dsl_indate) select devSMTLocation_SEQ.nextval,");
- sql.Append("ma_id,ma_code,'','" + psl_location.Text + "','" + bar_prodcode + "',");
- sql.Append("'" + psl_repcode + "',psl_feeder,'" + bar_remain.Text + "','" + bar_remain.Text + "','" + Input.Text + "',");
- sql.Append("ma_linecode,'" + de_code.Text + "',0,ps_id,sysdate from make left join productsmt on ma_smtcode=ps_code ");
- sql.Append("left join productsmtlocation on ps_id=psl_psid where ma_code='" + ma_code.Text + "' ");
- sql.Append("and psl_location='" + psl_location.Text + "' and rownum<=1 ");
- dh.ExecuteSql(sql.GetString(), "insert");
- //更新站位原料卷号下线,bar_forcastremain 剩余数为0
- //dh.UpdateByCondition("barcode", "bar_place=1,bar_forcastremain=0", "bar_code='" + dsl_barcode + "'");
- //更新条码状态在线上 bar_Place=2
- dh.UpdateByCondition("barcode", "bar_place='" + ma_code.Text + "'", "bar_code='" + Input.Text + "'");
- LoadGridData();
- CleanInf();
- OperateResult.AppendText(">>采集成功\n", Color.Green);
- }
- Input.Text = "";
- }
- else
- {
- OperateResult.AppendText(">>采集的物料号" + Input.Text + "不匹配\n", Color.Red);
- Input.Text = "";
- }
- }
- else
- {
- OperateResult.AppendText(">>料卷" + Input.Text + "已经上料或者备料\n", Color.Red);
- Input.Text = "";
- }
- }
- else
- {
- OperateResult.AppendText(">>料卷编号" + Input.Text + "错误,不存在或者状态无效\n", Color.Red);
- Input.Text = "";
- }
- }
- else
- {
- OperateResult.AppendText(">>站位" + Input.Text + "错误,无此机台工单站位\n", Color.Red);
- Input.Text = "";
- }
- }
- else
- {
- OperateResult.AppendText(">>料卷编号" + Input.Text + "错误,库存数量为0\n", Color.Red);
- Input.Text = "";
- }
- }
- else
- {
- OperateResult.AppendText(">>料卷编号" + Input.Text + "错误,不存在或者状态无效\n", Color.Red);
- Input.Text = "";
- }
- }
- else if (bar_code.Text != "" && psl_location.Text != "" && bar_remain.Text != "")
- {
- bar_remain.Text = barremain.ToString();
- //插入数据至devSMTLocation
- sql.Clear();
- sql.Append("insert into devSMTLocation(dsl_id,dsl_maid,dsl_makecode, dsl_mmdetno,dsl_location,dsl_prodcode,dsl_repcode,dsl_fespec,");
- sql.Append("dsl_getqty,dsl_remainqty,dsl_barcode,dsl_linecode,dsl_devcode,dsl_status,dsl_smtid,dsl_indate) select devSMTLocation_SEQ.nextval,");
- sql.Append("ma_id,ma_code,'','" + psl_location.Text + "','" + bar_prodcode + "',");
- sql.Append("'" + psl_repcode + "',psl_feeder,'" + bar_remain.Text + "','" + bar_remain.Text + "','" + Input.Text + "',");
- sql.Append("ma_linecode,'" + de_code.Text + "',0,ps_id,sysdate from make left join productsmt on ma_smtcode=ps_code ");
- sql.Append("left join productsmtlocation on ps_id=psl_psid where ma_code='" + ma_code.Text + "' ");
- sql.Append("and psl_location='" + psl_location.Text + "' and rownum<=1 ");
- dh.ExecuteSql(sql.GetString(), "insert");
- //更新站位原料卷号下线,bar_forcastremain 剩余数为0
- //dh.UpdateByCondition("barcode", "bar_place=1,bar_forcastremain=0", "bar_code='" + dsl_barcode + "'");
- //更新条码状态在线上 bar_Place=2
- dh.UpdateByCondition("barcode", "bar_place='" + ma_code.Text + "'", "bar_code='" + Input.Text + "'");
- LoadGridData();
- CleanInf();
- OperateResult.AppendText(">>采集成功\n", Color.Green);
- }
- break;
- //换料
- case "SHIFT":
- if (psl_location.Text == "")
- {
- sql.Clear();
- sql.Append("select psl_prodcode,psl_repcode from productsmtlocation left join productsmt on ps_id=psl_psid left join make on ");
- sql.Append("ma_smtcode=ps_code where ma_code='" + ma_code.Text + "' and psl_location='" + Input.Text + "'");
- dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
- if (dt.Rows.Count > 0)
- {
- psl_location.Text = Input.Text;
- Input.Text = "";
- //获取物料号和替代料
- psl_prodcode = dt.Rows[0]["psl_prodcode"].ToString();
- psl_repcode = dt.Rows[0]["psl_repcode"].ToString();
- OperateResult.AppendText(">>站位采集成功,请采集物料" + psl_prodcode + " 的料卷号\n", Color.Green);
- }
- else
- {
- OperateResult.AppendText(">>站位错误,不存在上料排位表中\n", Color.Red);
- }
- }
- else if (bar_code.Text == "")
- {
- dt = (DataTable)dh.ExecuteSql("select bar_remain,bar_forcastremain from barcode where bar_code='" + Input.Text + "' and bar_status=1", "select");
- if (dt.Rows.Count > 0)
- {
- //如果剩余的数量不为0的话
- if (dt.Rows[0]["bar_remain"].ToString() != "0")
- {
- bar_remain.Text = dt.Rows[0]["bar_remain"].ToString();
- forcastremain = dt.Rows[0]["bar_forcastremain"].ToString();
- sql.Clear();
- sql.Append("select * from devSMTLocation left join make on ma_code=dsl_makecode and ma_linecode=dsl_linecode ");
- sql.Append("where dsl_makecode='" + ma_code.Text + "' and dsl_devcode='" + de_code.Text + "' and dsl_location='" + psl_location.Text + "'");
- sql.Append("and dsl_status=0 ");
- dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
- if (dt.Rows.Count > 0)
- {
- //上一条码的剩余数量
- dsl_remainqty = int.Parse(dt.Rows[0]["dsl_remainqty"].ToString());
- dsl_barcode = dt.Rows[0]["dsl_barcode"].ToString();
- dsl_id = dt.Rows[0]["dsl_id"].ToString();
- dt = (DataTable)dh.ExecuteSql("select nvl(bar_place,1) bar_place,bar_remain,bar_prodcode from barcode where bar_code='" + Input.Text + "'", "select");
- if (dt.Rows.Count > 0)
- {
- if (dt.Rows[0]["bar_place"].ToString() == "1")
- {
- string bar_prodcode = dt.Rows[0]["bar_prodcode"].ToString();
- //本次切换的料卷剩余的
- barremain = int.Parse(dt.Rows[0]["bar_remain"].ToString());
- if (psl_prodcode == bar_prodcode || psl_repcode == bar_prodcode)
- {
- if (forcastremain != "0" && forcastremain != "" && forcastremain != barremain.ToString())
- {
- bar_code.Text = Input.Text;
- bar_remain.Text = forcastremain;
- }
- else
- {
- //更新原料卷站位状态下料dsl_status=-1
- dh.ExecuteSql("Update devSMTLocation set dsl_status=-1 where dsl_id=" + dsl_id, "update");
- //更新站位原料卷号下线,bar_forcastremain 剩余数 dsl_remain
- dh.UpdateByCondition("barcode", "bar_forcastremain=" + dsl_remainqty + ",bar_place=1", "bar_code='" + dsl_barcode + "'");
- //将新条码数据插入至devSMTLocation
- sql.Clear();
- sql.Append("insert into devSMTLocation(dsl_id,dsl_maid,dsl_makecode, dsl_mmdetno,dsl_location,dsl_prodcode,dsl_repcode,dsl_fespec,dsl_indate,");
- sql.Append("dsl_getqty,dsl_remainqty,dsl_barcode,dsl_linecode,dsl_devcode,dsl_status,dsl_validtime,dsl_indate,dsl_smtid)");
- sql.Append(" select devSMTLocation_SEQ.nextval,ma_id,ma_code,'','" + psl_location.Text + "','" + bar_prodcode + "',");
- sql.Append("'" + psl_repcode + "',psl_feeder,sysdate,'" + bar_remain.Text + "','" + bar_remain.Text + "',");
- sql.Append("'" + Input.Text + "',ma_linecode,'" + de_code.Text + "',0,sysdate,sysdate,ps_id from make left join productsmt ");
- sql.Append("on ma_smtcode=ps_code left join productsmtlocation on ps_id=psl_psid where ma_code='" + ma_code.Text + "' and ");
- sql.Append("psl_location='" + psl_location.Text + "' and rownum<=1");
- dh.ExecuteSql(sql.GetString(), "insert");
- //更新新条码状态在线上 bar_Place=2
- dh.UpdateByCondition("barcode", "bar_Place='" + ma_code.Text + "'", "bar_code='" + Input.Text + "'");
- //更新原条码上料记录
- LoadGridData();
- CleanInf();
- OperateResult.AppendText(">>换料成功\n", Color.Green);
- }
- }
- else
- {
- OperateResult.AppendText(">>采集的物料号" + Input.Text + "不匹配\n", Color.Red);
- }
- }
- else
- {
- OperateResult.AppendText(">>料卷" + Input.Text + "已经上料或者备料\n", Color.Red);
- }
- }
- else
- {
- OperateResult.AppendText(">>料卷编号" + Input.Text + "错误,不存在或者状态无效\n", Color.Red);
- }
- }
- else
- {
- OperateResult.AppendText(">>站位" + Input.Text + "错误,无此机台工单站位\n", Color.Red);
- }
- }
- else
- {
- OperateResult.AppendText(">>料卷编号" + Input.Text + "错误,库存数量为0\n", Color.Red);
- }
- }
- else
- {
- OperateResult.AppendText(">>料卷编号" + Input.Text + "错误,不存在或者状态无效\n", Color.Red);
- }
- }
- else if (bar_code.Text != "" && psl_location.Text != "" && bar_remain.Text != "")
- {
- //更新原料卷站位状态下料dsl_status=-1
- dh.ExecuteSql("Update devSMTLocation set dsl_status=-1 where dsl_id=" + dsl_id, "update");
- //更新站位原料卷号下线,bar_forcastremain 剩余数 dsl_remain
- dh.UpdateByCondition("barcode", "bar_forcastremain=" + dsl_remainqty + ",bar_place=1", "bar_code='" + dsl_barcode + "'");
- //将新条码数据插入至devSMTLocation
- sql.Clear();
- sql.Append("insert into devSMTLocation(dsl_id,dsl_maid,dsl_makecode, dsl_mmdetno,dsl_location,dsl_prodcode,dsl_repcode,dsl_fespec,");
- sql.Append("dsl_getqty,dsl_remainqty,dsl_barcode,dsl_linecode,dsl_devcode,dsl_status,dsl_validtime,dsl_indate,dsl_smtid)");
- sql.Append(" select devSMTLocation_SEQ.nextval,ma_id,ma_code,'','" + psl_location.Text + "','" + bar_prodcode + "',");
- sql.Append("'" + psl_repcode + "',psl_feeder,'" + bar_remain.Text + "','" + bar_remain.Text + "',");
- sql.Append("'" + Input.Text + "',ma_linecode,'" + de_code.Text + "',0,sysdate,sysdate,ps_id from make left join productsmt ");
- sql.Append("on ma_smtcode=ps_code left join productsmtlocation on ps_id=psl_psid where ma_code='" + ma_code.Text + "' and ");
- sql.Append("psl_location='" + psl_location.Text + "' and rownum<=1");
- dh.ExecuteSql(sql.GetString(), "insert");
- //更新新条码状态在线上 bar_Place=2
- dh.UpdateByCondition("barcode", "bar_Place='" + ma_code.Text + "'", "bar_code='" + Input.Text + "'");
- //更新原条码上料记录
- LoadGridData();
- CleanInf();
- OperateResult.AppendText(">>换料成功\n", Color.Green);
- }
- break;
- }
- Input.Text = "";
- }
- else
- {
- MessageBox.Show("必须执行过筛选操作");
- }
- }
- }
- private void SMT上料_SizeChanged(object sender, EventArgs e)
- {
- asc.controlAutoSize(this);
- }
- /// <summary>
- /// 筛选按钮
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void Screen_Click(object sender, EventArgs e)
- {
- CleanInf();
- if (ma_code.Text != "" && de_code.Text != "")
- {
- sql.Clear();
- sql.Append("select dsl_makecode from device left join devsmtlocation ");
- sql.Append("on de_code=dsl_devcode where de_code='" + de_code.Text + "' and dsl_status=0 and dsl_makecode<>'" + ma_code.Text + "'");
- dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
- LogManager.DoLog("【" + Text + "】筛选操作", sql.GetString());
- //判断机台是否存在工单
- if (dt.Rows.Count > 0)
- {
- OperateResult.AppendText(">>机台号:" + de_code.Text + " ,存在工单:" + dt.Rows[0]["dsl_makecode"].ToString() + "的料卷未下料,请先下料!\n", Color.Red);
- return;
- }
- sql.Clear();
- sql.Append("select dsl_devcode from devsmtlocation where dsl_devcode<>'" + de_code.Text + "' and dsl_status=0 and dsl_makecode='" + ma_code.Text + "'");
- dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
- //判断工单是否已经在机台上线
- if (dt.Rows.Count > 0)
- {
- OperateResult.AppendText(">>工单号:" + ma_code.Text + " ,已上机台号:" + de_code.Text + "需要转线才能重新上其他机台!\n", Color.Red);
- return;
- }
- //判断岗位资源的线别和制造单的线别是否相等
- dt = (DataTable)dh.ExecuteSql("select ma_smtcode,ma_linecode from make where ma_code='" + ma_code.Text + "'", "select");
- ma_smtcode = dt.Rows[0]["ma_smtcode"].ToString();
- if (User.UserLineCode != dt.Rows[0]["ma_linecode"].ToString())
- {
- OperateResult.AppendText(">>岗位资源的线别必须等于制造单的线别\n", Color.Red);
- return;
- }
- LoadGridData();
- Filtered = true;
- Filter.Text = "已筛选";
- MakeShift.Visible = true;
- if (Filtered)
- {
- for (int i = 0; i < RadioButton.Length; i++)
- {
- switch (RadioButton[i].Name.ToUpper())
- {
- //上料
- case "UPLOAD":
- if (RadioButton[i].Checked)
- {
- CheckedRadio = RadioButton[i];
- OperateResult.AppendText(">>请采集站位\n", Color.Green);
- }
- if (!BaseUtil.ControlHasEvent(RadioButton[i], "EVENT_CHECKEDCHANGED"))
- {
- RadioButton[i].CheckedChanged += RadioCheckedChange;
- }
- break;
- //下料
- case "DOWNLOAD":
- if (RadioButton[i].Checked)
- {
- CheckedRadio = RadioButton[i];
- OperateResult.AppendText(">>请采集需要退料的料卷号或者站位\n", Color.Green);
- }
- if (!BaseUtil.ControlHasEvent(RadioButton[i], "EVENT_CHECKEDCHANGED"))
- {
- RadioButton[i].CheckedChanged += RadioCheckedChange;
- }
- break;
- //换料
- case "SHIFT":
- if (RadioButton[i].Checked)
- {
- CheckedRadio = RadioButton[i];
- OperateResult.AppendText(">>请采集需要换料的站位\n", Color.Green);
- }
- if (!BaseUtil.ControlHasEvent(RadioButton[i], "EVENT_CHECKEDCHANGED"))
- {
- RadioButton[i].CheckedChanged += RadioCheckedChange;
- }
- break;
- //接料
- case "PICKUP":
- if (RadioButton[i].Checked)
- {
- CheckedRadio = RadioButton[i];
- OperateResult.AppendText(">>请采集需要接料的站位\n", Color.Green);
- }
- if (!BaseUtil.ControlHasEvent(RadioButton[i], "EVENT_CHECKEDCHANGED"))
- {
- RadioButton[i].CheckedChanged += RadioCheckedChange;
- }
- break;
- }
- }
- }
- }
- else
- {
- MessageBox.Show("工单号和机台号不允许为空");
- }
- }
- private void RadioCheckedChange(object sender, EventArgs e)
- {
- if ((sender as RadioButton).Checked)
- {
- CleanInf();
- switch ((sender as RadioButton).Name.ToUpper())
- { //上料
- case "UPLOAD":
- OperateResult.AppendText(">>请采集站位\n", Color.Green);
- CheckedRadio = sender as RadioButton;
- break;
- //下料
- case "DOWNLOAD":
- OperateResult.AppendText(">>请采集需要退料的料卷号或者站位\n", Color.Green);
- CheckedRadio = sender as RadioButton;
- break;
- //换料
- case "SHIFT":
- OperateResult.AppendText(">>请采集需要换料的站位\n", Color.Green);
- CheckedRadio = sender as RadioButton;
- break;
- //接料
- case "PICKUP":
- OperateResult.AppendText(">>请采集需要接料的站位\n", Color.Green);
- CheckedRadio = sender as RadioButton;
- break;
- default:
- break;
- }
- }
- }
- /// <summary>
- /// 根据四个不同的RadioButton的勾选状态不同执行不同的逻辑
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void Confirm_Click(object sender, EventArgs e)
- {
- KeyEventArgs e2 = new KeyEventArgs(Keys.Enter);
- Input_KeyDown(sender, e2);
- }
- private void Start_Click(object sender, EventArgs e)
- {
- if (Filtered)
- {
- if (de_code.Text != "")
- {
- if (de_table.Text != "全部")
- {
- sql.Clear();
- sql.Append("select ps_id from productsmt left join productsmtlocation on ps_id=psl_psid where ps_code='" + ma_smtcode + "' and psl_table='" + de_table.Text + "'");
- dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
- if (dt.Rows.Count > 0)
- {
- string psl_psid = dt.Rows[0]["ps_id"].ToString();
- //1、刚开始启动的时候更新版面,单位用量
- sql.Clear();
- sql.Append("update devsmtlocation set dsl_baseqty=(select psl_baseqty from productsmtlocation where psl_psid='" + psl_psid + "' and psl_table='" + de_table.Text + "' ");
- sql.Append("and psl_location=dsl_location) where dsl_makecode='" + ma_code.Text + "' and dsl_linecode='" + User.UserLineCode + "' and dsl_devcode='" + de_code.Text + "' and dsl_status=0 ");
- dh.ExecuteSql(sql.GetString(), "update");
- //2、判断站位是否上齐料
- sql.Clear();
- sql.Append("SELECT wm_concat(psl_location) FROM Productsmtlocation where psl_psid='" + psl_psid + "' and psl_table='" + de_table.Text + "' ");
- sql.Append("and not exists (select 1 from devsmtlocation where dsl_makecode='" + ma_code.Text + "' and dsl_linecode='" + User.UserLineCode + "'");
- sql.Append("and dsl_devcode='" + de_code.Text + "' and dsl_devcode='" + de_code.Text + "' and dsl_status=0 and dsl_location=psl_location) and rownum<=20");
- dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
- if (dt.Rows[0][0].ToString() == "")
- {
- LogManager.DoLog("【" + Text + "】启用机台操作", dh.UpdateByCondition("device", "de_runstatus = '运行中',de_table='" + de_table.Text + "'", "de_code = '" + de_code.Text + "' and de_runstatus = '停止'"));
- de_code.RefreshDB(sender, e);
- MessageBox.Show("启用机台成功");
- }
- else
- {
- MessageBox.Show("站位" + dt.Rows[0][0].ToString() + "未上料");
- }
- }
- else
- {
- MessageBox.Show("该版面不存在于排位表中");
- }
- }
- else
- {
- MessageBox.Show("必须选择一个版面");
- }
- }
- else
- {
- MessageBox.Show("机台号不能为空!");
- }
- }
- else
- {
- MessageBox.Show("必须执行过筛选操作");
- }
- }
- private void DownLoadAll_Click(object sender, EventArgs e)
- {
- if (Filtered)
- {
- sql.Clear();
- sql.Append("select count(1) from devSmtLocation where dsl_makecode='" + ma_code.Text + "' and dsl_devcode='" + de_code.Text + "'");
- dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
- LogManager.DoLog("【" + Text + "】全部下料操作", sql.GetString());
- if (dt.Rows[0][0].ToString() != "0")
- {
- //更新在线料卷所在场所,剩余数
- sql.Clear();
- sql.Append("update barcode set bar_place='1',bar_forcastremain=(select dsl_remainqty from ");
- sql.Append("devsmtlocation where dsl_barcode=bar_code and dsl_makecode='" + ma_code.Text + "' and dsl_devcode='" + de_code.Text + "' and ");
- sql.Append("nvl(dsl_status,0)=0) where exists (select 1 from devsmtlocation where ");
- sql.Append("dsl_barcode=bar_code and dsl_makecode='" + ma_code.Text + "' and dsl_devcode='" + de_code.Text + "' and dsl_status=0)");
- dh.ExecuteSql(sql.GetString(), "update");
- //将信息插入MakeSMTLocation表中
- sql.Clear();
- sql.Append("insert into makeSMTLocation(msl_id,msl_maid,msl_makecode, msl_mmdetno,msl_location,msl_prodcode,msl_repcode,msl_fespec,msl_invalidtime,");
- sql.Append("msl_baseqty,msl_table,msl_needqty,msl_getqty,msl_remainqty,msl_barcode,msl_linecode,msl_devcode,msl_status,msl_validtime,msl_indate)");
- sql.Append("select makeSMTLocation_SEQ.nextval,dsl_maid,dsl_makecode,dsl_mmdetno,dsl_location,dsl_prodcode,dsl_repcode,dsl_fespec,sysdate,");
- sql.Append("dsl_baseqty,dsl_table,dsl_needqty,dsl_getqty,dsl_remainqty,dsl_barcode,dsl_linecode,dsl_devcode,-1,dsl_validtime,dsl_indate ");
- sql.Append("from devsmtlocation where dsl_makecode='" + ma_code.Text + "' and dsl_devcode='" + de_code.Text + "'");
- dh.ExecuteSql(sql.GetString(), "insert");
- //从DevSMTLocation中移除
- dh.ExecuteSql("delete from devsmtlocation where dsl_makecode='" + ma_code.Text + "' and dsl_devcode='" + de_code.Text + "'", "delete");
- LogManager.DoLog("【" + Text + "】全部下料操作", sql.GetString());
- //更新上料排位表状态为-1
- LogManager.DoLog("【" + Text + "】全部下料操作", sql.GetString());
- OperateResult.AppendText(">>" + Input.Text + "退料成功\n", Color.Green);
- dh.ExecuteSql("update device set de_macode='',de_table='' where de_code='" + de_code.Text + "'", "update");
- ma_code.Enabled = true;
- de_table.Enabled = true;
- LoadGridData();
- }
- else
- {
- OperateResult.AppendText(">>没有需要下料的料卷\n", Color.Red);
- LogManager.DoLog("【" + Text + "】没有需要下料的料卷");
- }
- }
- else
- {
- MessageBox.Show("必须执行过筛选操作");
- }
- }
- /// <summary>
- /// 工单切换
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void MakeShift_Click(object sender, EventArgs e)
- {
- MShift = new SMT_MakeShift();
- //给小窗口的确认按钮加一个事件
- MShift.Controls["Confirm"].Click += MakeShiftButtonClick;
- BaseUtil.SetFormCenter(MShift);
- MShift.ShowDialog();
- }
- private void MakeShiftButtonClick(object sender, EventArgs e)
- {
- //从工单切换窗口取得字符串
- string macode = MShift.Controls["ma_code"].Text;
- string maprodcode = MShift.Controls["ma_prodcode"].Text;
- string maid = MShift.Controls["ma_id"].Text;
- string maqty = MShift.Controls["ma_qty"].Text;
- string maline = MShift.Controls["ma_linecode"].Text;
- string masmtcode = MShift.Controls["ma_smtcode"].Text;
- sql.Clear();
- sql.Append("select dsl_smtid from devsmtlocation where dsl_devcode='" + de_code.Text + "' and ");
- sql.Append("NVL(dsl_status,0)=0 and dsl_makecode='" + ma_code.Text + "' and dsl_remainqty>0");
- dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
- if (dt.Rows.Count > 0)
- {
- //判断工单站位是否一致
- //原工单
- string dsl_smtid = dt.Rows[0]["dsl_smtid"].ToString();
- //新工单
- string psl_id1 = dh.getFieldDataByCondition("productsmt left join productsmtlocation on ps_id=psl_psid", "psl_psid", "ps_code='" + masmtcode + "'").ToString();
- sql.Clear();
- sql.Append("select psl_location from productsmtlocation where psl_psid=:dsl_smtid minus select psl_location from productsmtlocation where psl_psid=:psl_id1");
- dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select", dsl_smtid, psl_id1);
- if (dt.Rows.Count > 0)
- {
- OperateResult.AppendText(">>切换站位工单不一致\n", Color.Red);
- return;
- }
- sql.Clear();
- sql.Append("select psl_location from productsmtlocation where psl_psid=:dsl_smtid minus select psl_location from productsmtlocation where psl_psid=:psl_id1");
- dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select", psl_id1, dsl_smtid);
- if (dt.Rows.Count > 0)
- {
- OperateResult.AppendText(">>切换站位工单不一致\n", Color.Red);
- return;
- }
- sql.Clear();
- sql.Append("select a.psl_location,wm_concat(a.psl_prodcode||','||a.psl_repcode) a_prodcode,wm_concat(','||b.psl_prodcode||','");
- sql.Append("||b.psl_repcode) b_prodcode from productsmtlocation a left join productsmtlocation b on a.psl_location");
- sql.Append("=b.psl_location where a.psl_psid=:dsl_smtid and b.psl_psid=:psl_id1 group by a.psl_location");
- bool Break = false;
- dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select", dsl_smtid, psl_id1);
- for (int i = 0; i < dt.Rows.Count; i++)
- {
- string[] a_prodcode = dt.Rows[i]["a_prodcode"].ToString().Split(',');
- for (int j = 0; j < a_prodcode.Length; j++)
- {
- if (dt.Rows[i]["b_prodcode"].ToString().Contains("," + a_prodcode[i] + ","))
- {
- Break = true;
- break;
- }
- }
- if (Break)
- {
- break;
- }
- }
- if (!Break)
- {
- OperateResult.AppendText(">>工单物料不匹配\n", Color.Red);
- return;
- }
- sql.Clear();
- sql.Append("select count(1) cn from devsmtlocation where dsl_makecode='" + macode + "' and NVL(dsl_status,0)=0");
- dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
- if (dt.Rows[0][0].ToString() == "0")
- {
- if (User.UserLineCode == maline)
- {
- //该机台原工单中在线剩余数为0的料卷更新所在场所为下线
- sql.Clear();
- sql.Append("update barcode set bar_place=1,bar_forcastremain=0 where exists (select 1 from devsmtlocation ");
- sql.Append("where dsl_barcode=bar_code and dsl_makecode='" + ma_code.Text + "' and dsl_status=0 and nvl(dsl_remainqty,0)=0)");
- dh.ExecuteSql(sql.GetString(), "update");
- //将数据插入MakeSmtLoaction表中
- sql.Clear();
- sql.Append("insert into makeSMTLocation(msl_id,msl_maid,msl_makecode, msl_mmdetno,msl_location,msl_prodcode,msl_repcode,msl_fespec,msl_invalidtime,");
- sql.Append("msl_baseqty,msl_table,msl_needqty,msl_getqty,msl_remainqty,msl_barcode,msl_linecode,msl_devcode,msl_status,msl_validtime,msl_indate)");
- sql.Append("select makeSMTLocation_SEQ.nextval,dsl_maid,dsl_makecode,dsl_mmdetno,dsl_location,dsl_prodcode,dsl_repcode,dsl_fespec,sysdate,");
- sql.Append("dsl_baseqty,dsl_table,dsl_needqty,dsl_getqty,dsl_remainqty,dsl_barcode,dsl_linecode,dsl_devcode,-1,dsl_validtime,dsl_indate ");
- sql.Append("from devsmtlocation where dsl_makecode='" + ma_code.Text + "' and dsl_devcode='" + de_code.Text + "'");
- dh.ExecuteSql(sql.GetString(), "insert");
- //从DevSMTLocation中移除
- dh.ExecuteSql("delete from devsmtlocation where dsl_makecode='" + ma_code.Text + "' and dsl_devcode='" + de_code.Text + "'", "delete");
- //更新机台绑定的工单为空
- dh.UpdateByCondition("device", "de_macode='" + macode + "'", "de_code='" + de_code.Text + "'");
- MShift.Close();
- //重新加载数据
- de_code.RefreshDB(sender, e);
- MessageBox.Show("切换成功");
- }
- else
- {
- OperateResult.AppendText(">>切换的工单" + macode + "线别不一致\n", Color.Red);
- }
- }
- else
- {
- OperateResult.AppendText(">>切换的工单" + macode + "已在其他机台上料\n", Color.Red);
- }
- }
- else
- {
- OperateResult.AppendText(">>该机台工单无在线料卷无法切换\n", Color.Red);
- }
- }
- private void Pause_Click(object sender, EventArgs e)
- {
- if (de_code.Text != "")
- {
- dh.ExecuteSql("update device set de_runstatus='停止' where de_code='" + de_code.Text + "' and de_runstatus='运行中'", "update");
- LogManager.DoLog(Text + "暂停使用机台", "update device set de_runstatus='停止' where de_code='" + de_code.Text + "' and de_runstatus='运行中'");
- de_code.RefreshDB(sender, e);
- MessageBox.Show("停用机台成功");
- }
- else
- {
- MessageBox.Show("机台号不能为空!");
- }
- }
- private void Clean_Click(object sender, EventArgs e)
- {
- OperateResult.Clear();
- }
- private void LoadGridData()
- {
- sql.Clear();
- sql.Append("select v_location,v_table,v_prodcode,v_baseqty,v_baseqty*ma_qty v_needqty,v_feeder,v_barcode,v_remainqty,v_indate,v_nextbarcode, ");
- sql.Append("v_nextremainqty from make left join MES_SMTLOCATION_VIEW on MA_SMTCODE=V_SMTCODE where ma_code =:ma_code ");
- if (de_table.Text != "全部")
- {
- sql.Append(" and v_table =:v_table");
- }
- dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select", ma_code.Text, de_table.Text);
- BaseUtil.FillDgvWithDataTable(SMTInf, dt);
- }
- //清除采集信息
- private void CleanInf()
- {
- psl_location.Text = "";
- bar_code.Text = "";
- Input.Text = "";
- bar_remain.Text = "";
- }
- private void Clearpsl_location_Click(object sender, EventArgs e)
- {
- psl_location.Text = "";
- OperateResult.AppendText(">>请采集站位\n", Color.Green);
- }
- //Text事件触发界面赋值的方法
- private void de_macode_UserControlTextChanged(object sender, EventArgs e)
- {
- ma_code.TextBox_Leave(sender, e);
- //如果通过Leavl事件找到了数据
- if (ma_code.LeaveFindData)
- {
- if (de_code.Text != "" && ma_code.Text != "")
- {
- Screen_Click(sender, new EventArgs());
- }
- }
- }
- //机台号的EnTer事件,触发筛选
- private void de_code_TextKeyDown(object sender, KeyEventArgs e)
- {
- if (e.KeyCode == Keys.Enter)
- {
- if (de_code.Text != "" && ma_code.Text != "")
- {
- Screen_Click(sender, new EventArgs());
- }
- }
- }
- private void AddDataToDataTable(params object[] param)
- {
- DataTable copydata = (DataTable)(SMTInf.DataSource);
- DataRow dr = copydata.NewRow();
- for (int i = 0; i < copydata.Columns.Count; i++)
- {
- switch (copydata.Columns[i].DataType.ToString())
- {
- case "System.String":
- dr[i] = param[i].ToString();
- break;
- case "System.Decimal":
- dr[i] = (decimal)param[i];
- break;
- case "System.DateTime":
- if (param[i] == null)
- {
- dr[i] = DBNull.Value;
- }
- else
- {
- dr[i] = (DateTime)param[i];
- }
- break;
- default:
- break;
- }
- }
- copydata.Rows.Add(dr);
- }
- private void Clearbar_code_Click(object sender, EventArgs e)
- {
- bar_code.Text = "";
- }
- private void de_code_UserControlTextChanged(object sender, EventArgs e)
- {
- de_code.TextBox_Leave(sender, e);
- //如果工单号不为空并且找到了数据
- if (ma_code.Text != "" && de_code.LeaveFindData)
- {
- ma_code.Enabled = false;
- }
- if (de_table.Text != "全部")
- {
- de_table.Enabled = false;
- }
- }
- }
- }
|