Pārlūkot izejas kodu

钢网内容,自定义标签内容调整

callm 4 gadi atpakaļ
vecāks
revīzija
f64ac6621d

+ 33 - 35
UAS_MES_MAXMADE/FunctionCode/Make/Make_CustomLabelPrint.cs

@@ -1,4 +1,5 @@
 using LabelManager2;
+using Seagull.BarTender.Print;
 using System;
 using System.Collections;
 using System.Collections.Generic;
@@ -26,8 +27,6 @@ namespace UAS_MES_NEW.Make
 
         AutoSizeFormClass asc = new AutoSizeFormClass();
 
-        ApplicationClass lbl;
-
         Thread InitPrint;
         //存放产品信息
         DataTable dt;
@@ -38,12 +37,13 @@ namespace UAS_MES_NEW.Make
         //记录当前的步骤数
         int currentIndex = 0;
 
-        Document doc;
-
         FileInfo info;
+        Engine engine;
 
         //ftpOperater ftp;
 
+        LabelFormatDocument format;
+
         StringBuilder sb = new StringBuilder();
 
         bool canPrint = false;
@@ -69,12 +69,11 @@ namespace UAS_MES_NEW.Make
         {
             try
             {
-                lbl = new ApplicationClass();
-                BaseUtil.WriteLbl();
+                engine = new Engine(true);
             }
             catch (Exception ex)
             {
-                OperateResult.AppendText("未正确安装BarTender软件\n", Color.Red);
+                OperateResult.AppendText(ex.Message + ex.StackTrace, Color.Red);
             }
         }
 
@@ -155,25 +154,23 @@ namespace UAS_MES_NEW.Make
                         string filechangetime = PrintFile.LastWriteTime.ToString();
                         if (filechangetime != filelastwritetime)
                         {
-                            lbl.Quit();
-                            lbl = new ApplicationClass();
-                            BaseUtil.WriteLbl();
+                            engine = new Engine(true);
                             filechangetime = PrintFile.LastWriteTime.ToString("yyyy-MM-dd HH:mm:ss");
                             string update = "la_lastwritetime = to_date((regexp_substr('" + filechangetime + "','\\d+.+\\d+')),'yyyy-mm-dd hh24:mi:ss')";
                             dh.UpdateByCondition("label", update, "la_id = '" + listA.Rows[PrintLabel.SelectedIndex]["la_id"].ToString() + "'");
                         }
-                        doc = lbl.Documents.Open(listA.Rows[PrintLabel.SelectedIndex]["la_url"].ToString(), true);
+                        format = engine.Documents.Open(listA.Rows[PrintLabel.SelectedIndex]["la_url"].ToString());
                     }
-                    //将值赋到doc对应的变量
-                    for (int i = 0; i < doc.Variables.FormVariables.Count; i++)
+                    //将值赋到format对应的变量
+                    for (int i = 0; i < format.SubStrings.Count; i++)
                     {
                         //找到对应的变量名
-                        if (doc.Variables.FormVariables.Item(i + 1).Name == paramsInfo.Rows[currentIndex - 1]["lp_name"].ToString())
+                        if (format.SubStrings[i].Name == paramsInfo.Rows[currentIndex - 1]["lp_name"].ToString())
                         {
                             //如果当时采集行的 lp_valuetype=’INPUT’,并且lp_sql 为空,则直接将采集的值赋给标签打印
                             if (paramsInfo.Rows[currentIndex - 1]["lp_valuetype"].ToString() == "INPUT" && paramsInfo.Rows[currentIndex - 1]["lp_sql"].ToString() == "")
                             {
-                                doc.Variables.FormVariables.Item(i + 1).Value = inputText.Text;
+                                format.SubStrings[i].Value = inputText.Text;
                             }
                             else
                             {
@@ -185,10 +182,10 @@ namespace UAS_MES_NEW.Make
                                     string x = mch.Value.Trim();
                                     sql = sql.Replace(x, "'" + inputText.Text + "'");
                                 }
-                                doc.Variables.FormVariables.Item(i + 1).Value = dh.GetLabelParam(sql).ToString();
-                                sb.AppendLine("打印参数【" + doc.Variables.FormVariables.Item(i + 1).Name + "】赋值," + "取值SQL:" + sql + ",取到值" + doc.Variables.FormVariables.Item(i + 1).Value);
+                                format.SubStrings[i].Value = dh.GetLabelParam(sql).ToString();
+                                sb.AppendLine("打印参数【" + format.SubStrings[i].Name + "】赋值," + "取值SQL:" + sql + ",取到值" + format.SubStrings[i].Value);
                             }
-                            inputValues[currentIndex - 1] = doc.Variables.FormVariables.Item(i + 1).Value;
+                            inputValues[currentIndex - 1] = format.SubStrings[i].Value;
                         }
                     }
                     if (currentIndex == paramsInfo.Rows.Count)
@@ -198,11 +195,12 @@ namespace UAS_MES_NEW.Make
                         //打印
                         LogManager.DoLog(sb.ToString());
                         //保存本次赋值进行打印
-                        doc.Printer.SwitchTo(Printer.Text);
-                        doc.PrintDocument(int.Parse(PrintNum.Text));
-                        for (int i = 0; i < doc.Variables.FormVariables.Count; i++)
+                        format.PrintSetup.PrinterName = Printer.Text;
+                        format.PrintSetup.IdenticalCopiesOfLabel = int.Parse(PrintNum.Text);
+                        format.Print();
+                        for (int i = 0; i < format.SubStrings.Count; i++)
                         {
-                            doc.Variables.FormVariables.Item(i + 1).Value = null;
+                            format.SubStrings[i].Value = null;
                         }
                         //讲文件最后写入时间改成数据库中拿到的时间
                         //记录打印日志
@@ -229,7 +227,7 @@ namespace UAS_MES_NEW.Make
             {
                 return;
             }
-            paramsInfo = (DataTable)dh.ExecuteSql("select lp_detno, lp_name, lp_valuetype,lp_sql from label left join labelparameter on lp_laid=la_id where la_code='" + listA.Rows[PrintLabel.SelectedIndex]["la_code"].ToString() + "'and LA_TEMPLATETYPE = '自定义' order by lp_detno asc", "select");
+            paramsInfo = (DataTable)dh.ExecuteSql("select lp_detno, lp_name, lp_valuetype,lp_sql from label left join labelparameter on lp_laid=la_id where la_code='" + listA.Rows[PrintLabel.SelectedIndex]["la_code"].ToString() + "'and LA_TEMPLATETYPE = '自定义' order by to_number(lp_detno) asc", "select");
             if (paramsInfo.Rows.Count > 0)
             {
                 //根据查询出来的参数,一次提示用户, “<<SN001 “, 
@@ -254,7 +252,7 @@ namespace UAS_MES_NEW.Make
 
         private void Make_CustomLabelPrint_FormClosing(object sender, FormClosingEventArgs e)
         {
-            BaseUtil.ClosePrint(lbl);
+
         }
 
         private void pr_code_Leave(object sender, EventArgs e)
@@ -276,36 +274,36 @@ namespace UAS_MES_NEW.Make
                 string filechangetime = PrintFile.LastWriteTime.ToString();
                 if (filechangetime != filelastwritetime)
                 {
-                    lbl.Quit();
-                    lbl = new ApplicationClass();
+                    engine = new Engine(true);
                     BaseUtil.WriteLbl();
                     filechangetime = PrintFile.LastWriteTime.ToString("yyyy-MM-dd HH:mm:ss");
                     string update = "la_lastwritetime = to_date((regexp_substr('" + filechangetime + "','\\d+.+\\d+')),'yyyy-mm-dd hh24:mi:ss')";
                     dh.UpdateByCondition("label", update, "la_id = '" + listA.Rows[PrintLabel.SelectedIndex]["la_id"].ToString() + "'");
                 }
-                doc = lbl.Documents.Open(listA.Rows[PrintLabel.SelectedIndex]["la_url"].ToString(), true);
+                format = engine.Documents.Open(listA.Rows[PrintLabel.SelectedIndex]["la_url"].ToString());
                 sb = new StringBuilder();
-                //将值赋到doc对应的变量
-                for (int i = 0; i < doc.Variables.FormVariables.Count; i++)
+                //将值赋到format对应的变量
+                for (int i = 0; i < format.SubStrings.Count; i++)
                 {
                     for (int j = 0; j < paramsInfo.Rows.Count; j++)
                     {
                         //找到对应的变量名
-                        if (doc.Variables.FormVariables.Item(i + 1).Name == paramsInfo.Rows[j]["lp_name"].ToString())
+                        if (format.SubStrings[i].Name == paramsInfo.Rows[j]["lp_name"].ToString())
                         {
                             //直接赋值
-                            doc.Variables.FormVariables.Item(i + 1).Value = inputValues[j];
+                            format.SubStrings[i].Value = inputValues[j];
                         }
                     }
                 }
                 //打印
                 LogManager.DoLog(sb.ToString());
                 //保存本次赋值进行打印
-                doc.Printer.SwitchTo(Printer.Text);
-                doc.PrintDocument(int.Parse(PrintNum.Text));
-                for (int i = 0; i < doc.Variables.FormVariables.Count; i++)
+                format.PrintSetup.PrinterName = Printer.Text;
+                format.PrintSetup.IdenticalCopiesOfLabel = int.Parse(PrintNum.Text);
+                format.Print();
+                for (int i = 0; i < format.SubStrings.Count; i++)
                 {
-                    doc.Variables.FormVariables.Item(i + 1).Value = null;
+                    format.SubStrings[i].Value = null;
                 }
                 //讲文件最后写入时间改成数据库中拿到的时间
                 //记录打印日志

+ 55 - 53
UAS_MES_MAXMADE/FunctionCode/Make/Make_SMTStencil.cs

@@ -105,7 +105,7 @@ namespace UAS_MES_NEW.Make
             {
                 MessageBox.Show("工单号不能为空");
             }
-            int WaringCount =int.Parse(dh.GetConfig("WaringCount", "Stencil").ToString());
+            int WaringCount = int.Parse(dh.GetConfig("WaringCount", "Stencil").ToString());
             DataTable dt = (DataTable)dh.ExecuteSql("select ST_USESTATUS,st_version,nvl(st_maxusecount,0)st_maxusecount,nvl(st_usecount,0)st_usecount from Stencil where st_code='" + SU_DEVCODE.Text + "' and st_statuscode='AUDITED'", "select");
             string status = "";
             string version = "";
@@ -115,7 +115,7 @@ namespace UAS_MES_NEW.Make
             {
                 status = dt.Rows[0]["ST_USESTATUS"].ToString();
                 version = dt.Rows[0]["st_version"].ToString();
-                st_maxusecount =int.Parse( dt.Rows[0]["st_maxusecount"].ToString());
+                st_maxusecount = int.Parse(dt.Rows[0]["st_maxusecount"].ToString());
                 st_usecount = int.Parse(dt.Rows[0]["st_usecount"].ToString());
                 if (status == "在线" || status == "报废"/* || status == "在仓"*/)
                 {
@@ -131,7 +131,7 @@ namespace UAS_MES_NEW.Make
             //使用次数预警
             if (st_maxusecount - st_usecount < WaringCount)
             {
-                string close = MessageBox.Show(this.ParentForm, "钢网已使用"+ st_usecount+",距离使用上限还有"+(st_maxusecount - st_usecount)+"次", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question).ToString();
+                string close = MessageBox.Show(this.ParentForm, "钢网已使用" + st_usecount + ",距离使用上限还有" + (st_maxusecount - st_usecount) + "次", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question).ToString();
                 if (close != "Yes")
                 {
                     return;
@@ -140,17 +140,17 @@ namespace UAS_MES_NEW.Make
             //限制钢网使用的产品
             String pr_spec = dh.getFieldDataByCondition("product", "pr_spec", "pr_code = '" + ma_prodcode.Text + "'").ToString();
             String st_vendcode = dh.getFieldDataByCondition("STENCIL", "nvl(st_vendcode,'aabbcc')", "st_code = '" + SU_DEVCODE.Text + "'").ToString();
-            if (!pr_spec.Contains(st_vendcode))
-            {
-                MessageBox.Show("钢网编号" + SU_DEVCODE.Text + "不能在产品" + ma_prodcode.Text + "中使用");
-                return;
-            }
-            //dt = (DataTable)dh.ExecuteSql("select 1 from STENILCANUSEPRO where sp_stcode='" + SU_DEVCODE.Text + "' and sp_prodcode='" + ma_prodcode.Text + "'", "select");
-            //if (dt.Rows.Count == 0)
+            //if (!pr_spec.Contains(st_vendcode))
             //{
             //    MessageBox.Show("钢网编号" + SU_DEVCODE.Text + "不能在产品" + ma_prodcode.Text + "中使用");
             //    return;
             //}
+            dt = (DataTable)dh.ExecuteSql("select 1 from STENILCANUSEPRO where sp_stcode='" + SU_DEVCODE.Text + "' and sp_prodcode='" + ma_prodcode.Text + "'", "select");
+            if (dt.Rows.Count == 0)
+            {
+                MessageBox.Show("钢网编号" + SU_DEVCODE.Text + "不能在产品" + ma_prodcode.Text + "中使用");
+                return;
+            }
             //一条线只能在线一个钢网
             dt = (DataTable)dh.ExecuteSql("select su_stcode from stenciluse where su_linecode='" + li_code.Text + "' and su_status='在线'", "select");
             if (dt.Rows.Count > 0)
@@ -197,44 +197,44 @@ namespace UAS_MES_NEW.Make
             if (ST_ENSIONA.Text != "" && ST_ENSIONB.Text != "" && ST_ENSIONC.Text != "" && ST_ENSIOND.Text != "" && ST_ENSIONE.Text != "")
             {
                 if (SU_RETURNIFCLEAN.Checked)
-            {
-                DataTable dt = (DataTable)dh.ExecuteSql("select ST_USESTATUS,St_USECOUNT from Stencil where st_code='" + SU_DEVCODE1.Text + "' and st_statuscode='AUDITED'", "select");
-                if (dt.Rows.Count > 0)
                 {
-                    string status = dt.Rows[0]["ST_USESTATUS"].ToString();
-                    if (status == "在仓" || status == "借出")
+                    DataTable dt = (DataTable)dh.ExecuteSql("select ST_USESTATUS,St_USECOUNT from Stencil where st_code='" + SU_DEVCODE1.Text + "' and st_statuscode='AUDITED'", "select");
+                    if (dt.Rows.Count > 0)
                     {
-                        MessageBox.Show("当前钢网" + SU_DEVCODE.Text + "未在线,无需归还");
-                        return;
+                        string status = dt.Rows[0]["ST_USESTATUS"].ToString();
+                        if (status == "在仓" || status == "在仓")
+                        {
+                            MessageBox.Show("当前钢网" + SU_DEVCODE.Text + "未在线,无需归还");
+                            return;
+                        }
+                        if (status == "报废")
+                        {
+                            MessageBox.Show("当前钢网" + SU_DEVCODE.Text + "处于" + status + "状态,无法退回");
+                            return;
+                        }
                     }
-                    if (status == "报废")
+                    else
                     {
-                        MessageBox.Show("当前钢网" + SU_DEVCODE.Text + "处于" + status + "状态,无法退回");
-                        return;
+                        MessageBox.Show("钢网编号" + SU_DEVCODE1.Text + "不存在或者未审核");
                     }
-                }
-                else
-                {
-                    MessageBox.Show("钢网编号" + SU_DEVCODE1.Text + "不存在或者未审核");
-                }
-                string St_USECOUNT = dt.Rows[0]["St_USECOUNT"].ToString();
-                dt = (DataTable)dh.ExecuteSql("select em_name from employee where em_code='" + em_code1.Text + "'", "select");
-                if (dt.Rows.Count > 0)
-                {
-                    if (int.Parse(st_combinenumber.Text) >= 0)
+                    string St_USECOUNT = dt.Rows[0]["St_USECOUNT"].ToString();
+                    dt = (DataTable)dh.ExecuteSql("select em_name from employee where em_code='" + em_code1.Text + "'", "select");
+                    if (dt.Rows.Count > 0)
                     {
-                        sql.Clear();
-                        sql.Append("update StencilUse set SU_ENSIONA='" + ST_ENSIONA.Text + "',SU_ENSIONB='" + ST_ENSIONB.Text + "',SU_ENSIONC='" + ST_ENSIONC.Text + "',SU_ENSIOND='" + ST_ENSIOND.Text + "',SU_ENSIONE='" + ST_ENSIONE.Text + "', su_cleannums=nvl(su_cleannums,0)+1, SU_BACKDATE=sysdate,su_returnman='" + dt.Rows[0]["em_name"].ToString() + "',su_returnmancode='" + em_code1.Text + "',");
-                        sql.Append("SU_THISUSETIMES='" + (st_combinenumber.Text == "" ? "0" : st_combinenumber.Text) + "',SU_STATUS='借出',su_usecount=" + (St_USECOUNT == "" ? "0" : St_USECOUNT) + "+" + st_combinenumber.Text);
-                        sql.Append(",SU_RETURNIFCLEAN='" + (SU_RETURNIFCLEAN.Checked ? "-1" : "0") + "' where su_id=(select max(su_id) from stenciluse where su_stcode='" + SU_DEVCODE1.Text + "' and su_status='在线')");
-                        dh.ExecuteSql(sql.ToString(), "update");
-                        sql.Clear();
-                        sql.Append("update Stencil set st_cleannums=nvl(st_cleannums,0)+1,ST_ENSIONA='" + ST_ENSIONA.Text + "',ST_ENSIONB='" + ST_ENSIONB.Text + "',ST_ENSIONC='" + ST_ENSIONC.Text + "',ST_ENSIOND='" + ST_ENSIOND.Text + "',ST_ENSIONE='" + ST_ENSIONE.Text + "',St_USECOUNT=nvl(St_USECOUNT,0)+" + (st_combinenumber.Text == "" ? "0" : st_combinenumber.Text) + ",ST_USESTATUS='借出' where st_code='" + SU_DEVCODE1.Text + "'");
-                        dh.ExecuteSql(sql.ToString(), "update");
-                        MessageBox.Show("钢网" + SU_DEVCODE1.Text + "退回成功!");
-                        SU_DEVCODE1.Text = "";
-                        st_combinenumber.Text = "";
-                        em_code1.Text = "";
+                        if (int.Parse(st_combinenumber.Text) >= 0)
+                        {
+                            sql.Clear();
+                            sql.Append("update StencilUse set SU_ENSIONA='" + ST_ENSIONA.Text + "',SU_ENSIONB='" + ST_ENSIONB.Text + "',SU_ENSIONC='" + ST_ENSIONC.Text + "',SU_ENSIOND='" + ST_ENSIOND.Text + "',SU_ENSIONE='" + ST_ENSIONE.Text + "', su_cleannums=nvl(su_cleannums,0)+1, SU_BACKDATE=sysdate,su_returnman='" + dt.Rows[0]["em_name"].ToString() + "',su_returnmancode='" + em_code1.Text + "',");
+                            sql.Append("SU_THISUSETIMES='" + (st_combinenumber.Text == "" ? "0" : st_combinenumber.Text) + "',SU_STATUS='在仓',su_usecount=" + (St_USECOUNT == "" ? "0" : St_USECOUNT) + "+" + st_combinenumber.Text);
+                            sql.Append(",SU_RETURNIFCLEAN='" + (SU_RETURNIFCLEAN.Checked ? "-1" : "0") + "' where su_id=(select max(su_id) from stenciluse where su_stcode='" + SU_DEVCODE1.Text + "' and su_status='在线')");
+                            dh.ExecuteSql(sql.ToString(), "update");
+                            sql.Clear();
+                            sql.Append("update Stencil set st_cleannums=nvl(st_cleannums,0)+1,ST_ENSIONA='" + ST_ENSIONA.Text + "',ST_ENSIONB='" + ST_ENSIONB.Text + "',ST_ENSIONC='" + ST_ENSIONC.Text + "',ST_ENSIOND='" + ST_ENSIOND.Text + "',ST_ENSIONE='" + ST_ENSIONE.Text + "',St_USECOUNT=nvl(St_USECOUNT,0)+" + (st_combinenumber.Text == "" ? "0" : st_combinenumber.Text) + ",ST_USESTATUS='在仓' where st_code='" + SU_DEVCODE1.Text + "'");
+                            dh.ExecuteSql(sql.ToString(), "update");
+                            MessageBox.Show("钢网" + SU_DEVCODE1.Text + "退回成功!");
+                            SU_DEVCODE1.Text = "";
+                            st_combinenumber.Text = "";
+                            em_code1.Text = "";
                             ST_ENSIONA.Text = "";
                             ST_ENSIONB.Text = "";
                             ST_ENSIONC.Text = "";
@@ -243,27 +243,27 @@ namespace UAS_MES_NEW.Make
                             SU_RETURNIFCLEAN.Checked = false;
                             Return.Enabled = false;
                             Confirm.PerformClick();
+                        }
+                        else
+                        {
+                            MessageBox.Show("加工小板数必须大于等于0");
+                        }
                     }
                     else
                     {
-                        MessageBox.Show("加工小板数必须大于等于0");
+                        MessageBox.Show("人员编号" + em_code1.Text + "不存在");
                     }
                 }
                 else
                 {
-                    MessageBox.Show("人员编号" + em_code1.Text + "不存在");
+                    MessageBox.Show("请确认是否清洗钢网");
                 }
             }
-            else
-            {
-                MessageBox.Show("请确认是否清洗钢网");
-            }
-        }
             else
             {
                 MessageBox.Show("请维护完成的测试参数");
             }
-}
+        }
 
         private void Radio_CheckedChanged(object sender, EventArgs e)
         {
@@ -318,6 +318,7 @@ namespace UAS_MES_NEW.Make
         {
             if (e.KeyCode == Keys.Enter)
             {
+                SU_DEVCODE.Text = SU_DEVCODE.Text.Replace(" ", "");
                 DataTable dt = (DataTable)dh.ExecuteSql("select st_usestatus,st_table from stencil where st_code='" + SU_DEVCODE.Text + "' and st_statuscode='AUDITED'", "select");
                 if (dt.Rows.Count == 0)
                 {
@@ -345,6 +346,7 @@ namespace UAS_MES_NEW.Make
         {
             if (e.KeyCode == Keys.Enter)
             {
+                SU_DEVCODE1.Text = SU_DEVCODE1.Text.Replace(" ", "");
                 DataTable dt = (DataTable)dh.ExecuteSql("select case when nvl(ST_COMBINENUMBER,1)=0 then 1 else nvl(ST_COMBINENUMBER,1) end from STENCIL where st_code='" + SU_DEVCODE1.Text + "' and st_statuscode='AUDITED'", "select");
                 if (dt.Rows.Count > 0)
                 {
@@ -363,7 +365,7 @@ namespace UAS_MES_NEW.Make
                 }
 
 
-                 dt = (DataTable)dh.ExecuteSql("select nvl(st_usecount,0)st_usecount,case when nvl(ST_COMBINENUMBER,1)=0 then 1 else nvl(ST_COMBINENUMBER,1) end from STENCIL where st_code='" + SU_DEVCODE1.Text + "' and st_statuscode='AUDITED'", "select");
+                dt = (DataTable)dh.ExecuteSql("select nvl(st_usecount,0)st_usecount,case when nvl(ST_COMBINENUMBER,1)=0 then 1 else nvl(ST_COMBINENUMBER,1) end from STENCIL where st_code='" + SU_DEVCODE1.Text + "' and st_statuscode='AUDITED'", "select");
                 if (dt.Rows.Count == 0)
                 {
                     MessageBox.Show("钢网编号" + SU_DEVCODE1.Text + "不存在或者未审核");
@@ -450,9 +452,9 @@ namespace UAS_MES_NEW.Make
                     MessageBox.Show("钢网" + SU_DEVCODE1.Text + "已处于报废状态");
                     return;
                 }
-                if (dt.Rows[0]["st_usestatus"].ToString() != "借出")
+                if (dt.Rows[0]["st_usestatus"].ToString() != "在仓")
                 {
-                    MessageBox.Show("报废钢网必须" + SU_DEVCODE1.Text + "处于借出状态");
+                    MessageBox.Show("报废钢网必须" + SU_DEVCODE1.Text + "处于在仓状态");
                     return;
                 }
                 string closetab_confirm = MessageBox.Show(this.ParentForm, "报废后不可撤销,是否确认报废", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question).ToString();