1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009 |
- using System;
- using System.Data;
- using System.Drawing;
- using System.Text;
- using System.Threading;
- 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;
- }
- }
- }
- }
|