Browse Source

修改BUG

章政 7 years ago
parent
commit
4c455dba61

+ 0 - 2
UAS-出货标签管理(泽天)/UAS_出货标签管理.Designer.cs

@@ -1030,8 +1030,6 @@
             // SingleLabelAutoPrint
             // 
             this.SingleLabelAutoPrint.AutoSize = true;
-            this.SingleLabelAutoPrint.Checked = true;
-            this.SingleLabelAutoPrint.CheckState = System.Windows.Forms.CheckState.Checked;
             this.SingleLabelAutoPrint.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
             this.SingleLabelAutoPrint.Location = new System.Drawing.Point(8, 95);
             this.SingleLabelAutoPrint.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);

+ 87 - 71
UAS-出货标签管理(泽天)/UAS_出货标签管理.cs

@@ -5,17 +5,14 @@ using System.Windows.Forms;
 using System.Text.RegularExpressions;
 using System.Text;
 using System.Collections.Generic;
-using System.Linq;
 using System.Diagnostics;
 using LabelManager2;
 using UAS_LabelMachine.PublicMethod;
 using UAS_LabelMachine.Entity;
-using UAS_特殊解析规则;
 using UAS_LabelMachine.PublicForm;
 using System.Threading;
 using System.IO;
 using System.Globalization;
-using System.Threading.Tasks;
 
 namespace UAS_LabelMachine
 {
@@ -136,6 +133,8 @@ namespace UAS_LabelMachine
 
         private bool EnablePrint = true;
 
+        string[] PIBID;
+
         public UAS_出货标签打印(string Master)
         {
             InitializeComponent();
@@ -351,7 +350,7 @@ namespace UAS_LabelMachine
             }
             string pib_barcode = Data.ContainsKey("SERIAL") ? Data["SERIAL"] : "";
             //获取ID
-            string[] PIBID = dh.GetSEQ("prodiobarcode_seq", CodeCount);
+            PIBID = dh.GetSEQ("prodiobarcode_seq", CodeCount);
             string pib_outboxcode2 = "";
             string CustOutBoxCode = "";
             if (OutBoxNum.Text == "新增")
@@ -385,13 +384,20 @@ namespace UAS_LabelMachine
             List<string> CustOutBarCode = new List<string>();
             for (int i = 0; i < CodeCount; i++)
             {
-                string serialcode = BaseUtil.DToAny(SingleMaxNum, SingleRadix);
-                for (int j = serialcode.ToString().Length; j < SingleNumLength; j++)
+                if (SingleRadix > 0)
+                {
+                    string serialcode = BaseUtil.DToAny(SingleMaxNum, SingleRadix);
+                    for (int j = serialcode.ToString().Length; j < SingleNumLength; j++)
+                    {
+                        serialcode = "0" + serialcode;
+                    }
+                    CustBarCode.Add(SinglePrefix + serialcode + SingleSuffix);
+                    SingleMaxNum = SingleMaxNum + 1;
+                }
+                else
                 {
-                    serialcode = "0" + serialcode;
+                    CustBarCode.Add("");
                 }
-                CustBarCode.Add(SinglePrefix + serialcode + SingleSuffix);
-                SingleMaxNum = SingleMaxNum + 1;
                 //添加外箱号
                 if (OutPrefix != "")
                 {
@@ -440,7 +446,10 @@ namespace UAS_LabelMachine
             }
             if (SingleLabelAutoPrint.Checked)
             {
-                AutoPrintSingleLabel(PIBID);
+                thread = new Thread(AutoPrintSingleLabel);
+                stw = new SetLoadingWindow(thread, "正在打印单盘标签");
+                BaseUtil.SetFormCenter(stw);
+                stw.ShowDialog();
             }
             //采集后重新计数,自动跳到下一行
             collectqty = (LabelInfDataTable.Compute("sum(pib_qty)", "pib_prodcode='" + CurrentPrCode + "' and pib_pdno='" + CurrentPDNO + "'").ToString());
@@ -452,12 +461,8 @@ namespace UAS_LabelMachine
                 {
                     string outqty = GridPrcode.Rows[i].Cells["pd_outqty"].Value.ToString();
                     string collectnum = GridPrcode.Rows[i].Cells["CollectedNum"].Value.ToString();
-                    if (int.Parse(outqty) > int.Parse(collectnum == "" ? "0" : collectnum))
-                    {
-                        GridPrcode.Rows[i].Selected = true;
-                    }
                     //采集之前的行,如后续行有物料编号相同的并且编号较大的跳到这样
-                    if (GridPrcode.Rows[i].Cells["pd_prodcode"].Value.ToString() == CurrentPrCode)
+                    if (GridPrcode.Rows[i].Cells["pd_prodcode"].Value.ToString() == CurrentPrCode && int.Parse(outqty) > int.Parse(collectnum == "" ? "0" : collectnum))
                     {
                         if (int.Parse(GridPrcode.Rows[i].Cells["pd_pdno"].Value.ToString()) > int.Parse(CurrentPDNO))
                         {
@@ -466,33 +471,35 @@ namespace UAS_LabelMachine
                         }
                     }
                 }
+                for (int i = GridPrcode.Rows.Count - 1; i >= 0; i--)
+                {
+                    string outqty = GridPrcode.Rows[i].Cells["pd_outqty"].Value.ToString();
+                    string collectnum = GridPrcode.Rows[i].Cells["CollectedNum"].Value.ToString();
+                    if (int.Parse(outqty) > int.Parse(collectnum == "" ? "0" : collectnum))
+                    {
+                        GridPrcode.Rows[i].Selected = true;
+                    }
+                }
             }
             OutBoxNum_Click(new object(), new EventArgs());
         }
 
-        private void AutoPrintSingleLabel(string[] pib_id)
+        private void AutoPrintSingleLabel()
         {
             if (EnablePrint)
             {
                 //用标签本身的变量作为最外层的循环条件去匹配;
                 string[] arg = SingleBoxArgument.ToArray();
                 StringBuilder ParamLog = new StringBuilder();
-                for (int i = 0; i < pib_id.Length; i++)
+                for (int i = 0; i < PIBID.Length; i++)
                 {
                     //将维护的模板参数和模板本身的参数名称进行比对
-                    DataTable dt = (DataTable)dh.ExecuteSql(SingleSQL.Replace("{pib_id}", "'" + pib_id[i] + "'"), "select");
+                    DataTable dt = (DataTable)dh.ExecuteSql(SingleSQL.Replace("{pib_id}", "'" + PIBID[i] + "'"), "select");
                     for (int k = 0; k < SingleLabelParam.Rows.Count; k++)
                     {
                         string ParamName = SingleLabelParam.Rows[k]["lp_name"].ToString();
-
                         SingleDoc.Variables.FreeVariables.Item(ParamName).Value = dt.Rows[0][k].ToString();
-                        if (SingleDoc.Variables.FreeVariables.Item(ParamName).Value == "")
-                        {
-                            DataRow[] drow = Attach.Select("lp_name='" + SingleDoc.Variables.FreeVariables.Item(ParamName).Name + "'");
-                            if (drow.Length > 0)
-                                SingleDoc.Variables.FreeVariables.Item(ParamName).Value = drow[0]["lp_sql"].ToString();
-                        }
-                        ParamLog.AppendLine("pib_id:" + pib_id[i] + ",SingleDoc打印参数【" + SingleDoc.Variables.FreeVariables.Item(ParamName).Name + "】赋值," + "取到值" + SingleDoc.Variables.FreeVariables.Item(ParamName).Value);
+                        ParamLog.AppendLine("pib_id:" + PIBID[i] + ",SingleDoc打印参数【" + SingleDoc.Variables.FreeVariables.Item(ParamName).Name + "】赋值," + "取到值" + SingleDoc.Variables.FreeVariables.Item(ParamName).Value);
                     }
                     LogManager.DoLog(ParamLog.ToString());
                     //保存参数打印
@@ -528,7 +535,6 @@ namespace UAS_LabelMachine
         /// </summary>
         private void GetInOutInfAndLabelFile()
         {
-            Attach = (DataTable)dh.ExecuteSql("select lap_param lp_name,lap_value lp_sql from LABELATTACHPARAMETER where lap_custcode='" + pi_cardcode.Text + "'", "select");
             ComBoxClickChangeLabelDoc = false;
             sql.Clear();
             sql.Append("select to_char(nvl(cl_date,sysdate),'YYYY-MM-DD HH24:Mi:SS') cl_date,cl_labelname,cl_isdefault,la_id||'#'||cl_labelurl||'#'||to_char(cl_date,'YYYY-MM-DD HH24:Mi:SS')  la_id,cl_custcode from customerlabel left join prodinout on pi_cardcode=cl_custcode ");
@@ -566,14 +572,23 @@ namespace UAS_LabelMachine
                     }
                 }
                 SingleLabelParam = (DataTable)dh.ExecuteSql("select lp_name,lp_sql from label left join LABELPARAMETER on la_id= lp_laid where la_id=" + SingleLabelCombox.SelectedValue.ToString().Split('#')[0] + " and lp_name in(" + ParamCondition + ") order by lp_detno", "select");
+                Attach = (DataTable)dh.ExecuteSql("select lap_param lp_name,lap_value lp_sql from LABELATTACHPARAMETER where lap_custcode='" + pi_cardcode.Text + "' and lap_param in(" + ParamCondition + ")", "select");
                 SingleSQL = "select * from ";
                 for (int i = 0; i < SingleLabelParam.Rows.Count; i++)
                 {
-                    if (i != SingleLabelParam.Rows.Count - 1)
+                    if (i != SingleLabelParam.Rows.Count - 1 || Attach.Rows.Count > 0)
                         SingleSQL += "(" + SingleLabelParam.Rows[i]["lp_sql"].ToString() + "),";
                     else
                         SingleSQL += "(" + SingleLabelParam.Rows[i]["lp_sql"].ToString() + ")";
                 }
+                for (int i = 0; i < Attach.Rows.Count; i++)
+                {
+                    if (i != Attach.Rows.Count - 1)
+                        SingleSQL += "(select '" + Attach.Rows[i]["lp_sql"].ToString() + "' from dual),";
+                    else
+                        SingleSQL += "(select '" + Attach.Rows[i]["lp_sql"].ToString() + "' from dual)";
+                }
+                SingleLabelParam.Merge(Attach);
             }
             sql.Clear();
             sql.Append("select to_char(nvl(cl_date,sysdate),'YYYY-MM-DD HH24:Mi:SS') cl_date,cl_labelname,cl_isdefault,la_id||'#'||cl_labelurl||'#'||to_char(cl_date,'YYYY-MM-DD HH24:Mi:SS')  la_id,cl_custcode from customerlabel left join prodinout on pi_cardcode=cl_custcode ");
@@ -611,14 +626,23 @@ namespace UAS_LabelMachine
                     }
                 }
                 MidLabelParam = (DataTable)dh.ExecuteSql("select lp_name,lp_sql from label left join LABELPARAMETER on la_id= lp_laid where la_id=" + MidLabelCombox.SelectedValue.ToString().Split('#')[0] + " and lp_name in(" + ParamCondition + ")  order by lp_detno", "select");
+                Attach = (DataTable)dh.ExecuteSql("select lap_param lp_name,lap_value lp_sql from LABELATTACHPARAMETER where lap_custcode='" + pi_cardcode.Text + "' and lap_param in(" + ParamCondition + ")", "select");
                 MidSQL = "select * from ";
                 for (int i = 0; i < MidLabelParam.Rows.Count; i++)
                 {
-                    if (i != MidLabelParam.Rows.Count - 1)
+                    if (i != MidLabelParam.Rows.Count - 1 && Attach.Rows.Count > 0)
                         MidSQL += "(" + MidLabelParam.Rows[i]["lp_sql"].ToString() + "),";
                     else
                         MidSQL += "(" + MidLabelParam.Rows[i]["lp_sql"].ToString() + ")";
                 }
+                for (int i = 0; i < Attach.Rows.Count; i++)
+                {
+                    if (i != Attach.Rows.Count - 1)
+                        MidSQL += "(select '" + Attach.Rows[i]["lp_sql"].ToString() + "' from dual),";
+                    else
+                        MidSQL += "(select '" + Attach.Rows[i]["lp_sql"].ToString() + "' from dual)";
+                }
+                MidLabelParam.Merge(Attach);
             }
             //缓存中盒参数
             sql.Clear();
@@ -657,6 +681,7 @@ namespace UAS_LabelMachine
                     }
                 }
                 OutLabelParam = (DataTable)dh.ExecuteSql("select lp_name,lp_sql from label left join LABELPARAMETER on la_id= lp_laid where la_id=" + OutBoxCombox.SelectedValue.ToString().Split('#')[0] + " and lp_name in(" + ParamCondition + ")  order by lp_detno", "select");
+                Attach = (DataTable)dh.ExecuteSql("select lap_param lp_name,lap_value lp_sql from LABELATTACHPARAMETER where lap_custcode='" + pi_cardcode.Text + "' and lap_param in(" + ParamCondition + ")", "select");
                 OutSQL = "select * from ";
                 for (int i = 0; i < OutLabelParam.Rows.Count; i++)
                 {
@@ -665,11 +690,28 @@ namespace UAS_LabelMachine
                     else
                         OutSQL += "(" + OutLabelParam.Rows[i]["lp_sql"].ToString() + ")";
                 }
+                for (int i = 0; i < Attach.Rows.Count; i++)
+                {
+                    if (i != Attach.Rows.Count - 1)
+                        OutSQL += "(select '" + Attach.Rows[i]["lp_sql"].ToString() + "' from dual),";
+                    else
+                        OutSQL += "(select '" + Attach.Rows[i]["lp_sql"].ToString() + "' from dual)";
+                }
+                OutLabelParam.Merge(Attach);
+            }
+            if (!File.Exists(ftpOperater.DownLoadTo + "唛头.lab"))
+            {
+                BaseUtil.GetLabelUrl(DataHelper.FTPAdress, "唛头.lab", System.DateTime.Now);
+                if (FootDoc != null)
+                    FootDoc.Close();
+                FootDoc = lbl.Documents.Open(ftpOperater.DownLoadTo + "唛头.lab");
+            }
+            else
+            {
+                if (FootDoc != null)
+                    FootDoc.Close();
+                FootDoc = lbl.Documents.Open(ftpOperater.DownLoadTo + "唛头.lab");
             }
-            if (FootDoc != null)
-                FootDoc.Close();
-            BaseUtil.GetLabelUrl(DataHelper.FTPAdress, "唛头.lab", System.DateTime.Now);
-            FootDoc = lbl.Documents.Open(ftpOperater.DownLoadTo + "唛头.lab");
             //缓存外箱参数
             ComBoxClickChangeLabelDoc = true;
         }
@@ -803,14 +845,7 @@ namespace UAS_LabelMachine
                                 for (int k = 0; k < SingleLabelParam.Rows.Count; k++)
                                 {
                                     string ParamName = SingleLabelParam.Rows[k]["lp_name"].ToString();
-
                                     SingleDoc.Variables.FreeVariables.Item(ParamName).Value = dt.Rows[0][k].ToString();
-                                    if (SingleDoc.Variables.FreeVariables.Item(ParamName).Value == "")
-                                    {
-                                        DataRow[] drow = Attach.Select("lp_name='" + SingleDoc.Variables.FreeVariables.Item(ParamName).Name + "'");
-                                        if (drow.Length > 0)
-                                            SingleDoc.Variables.FreeVariables.Item(ParamName).Value = drow[0]["lp_sql"].ToString();
-                                    }
                                     ParamLog.AppendLine("pib_id:" + pib_id + ",SingleDoc打印参数【" + SingleDoc.Variables.FreeVariables.Item(ParamName).Name + "】赋值," + "取到值" + SingleDoc.Variables.FreeVariables.Item(ParamName).Value);
                                 }
                                 LogManager.DoLog(ParamLog.ToString());
@@ -1090,23 +1125,8 @@ namespace UAS_LabelMachine
                     string pib_outboxcode1 = LabelInf.Rows[rowindex].Cells["pib_outboxcode1"].Value.ToString();
                     DataTable dt = (DataTable)dh.ExecuteSql(MidSQL.Replace("{pib_id}", pib_id).Replace("{pib_outboxcode1}", pib_outboxcode1), "select");
                     //获取打印执行的SQL
-                    string sql = MidLabelParam.Rows[k]["lp_sql"].ToString();
-                    try
-                    {
-                        MidDoc.Variables.FreeVariables.Item(ParamName).Value = dt.Rows[0][k].ToString();
-                        if (MidDoc.Variables.FreeVariables.Item(ParamName).Value == "")
-                        {
-                            DataRow[] drow = Attach.Select("lp_name='" + MidDoc.Variables.FreeVariables.Item(ParamName).Name + "'");
-                            if (drow.Length > 0)
-                                MidDoc.Variables.FreeVariables.Item(ParamName).Value = drow[0]["lp_sql"].ToString();
-                        }
-                        LogManager.DoLog("打印参数【" + MidDoc.Variables.FreeVariables.Item(ParamName).Name + "】赋值," + "取值SQL:" + sql + ",取到值" + MidDoc.Variables.FreeVariables.Item(ParamName).Value);
-                    }
-                    catch (Exception)
-                    {
-                        LogManager.DoLog("SQL维护不正确,请检查SQL语句\n" + sql);
-                        return;
-                    }
+                    MidDoc.Variables.FreeVariables.Item(ParamName).Value = dt.Rows[0][k].ToString();
+                    LogManager.DoLog("打印参数【" + MidDoc.Variables.FreeVariables.Item(ParamName).Name + "】赋值," + "取值SQL:" + sql + ",取到值" + MidDoc.Variables.FreeVariables.Item(ParamName).Value);
                 }
                 //保存参数打印
                 MidDoc.Printer.SwitchTo(MidLabelPrinter.Text);
@@ -1169,12 +1189,6 @@ namespace UAS_LabelMachine
                                 }
                                 MidDoc.Variables.FreeVariables.Item(ParamName).Value = dh.GetLabelParam(sql).ToString();
                             }
-                            if (MidDoc.Variables.FreeVariables.Item(ParamName).Value == "")
-                            {
-                                DataRow[] drow = Attach.Select("lp_name='" + MidDoc.Variables.FreeVariables.Item(ParamName).Name + "'");
-                                if (drow.Length > 0)
-                                    MidDoc.Variables.FreeVariables.Item(ParamName).Value = drow[0]["lp_sql"].ToString();
-                            }
                             LogManager.DoLog("打印参数【" + MidDoc.Variables.FreeVariables.Item(ParamName).Name + "】赋值," + "取值SQL:" + sql + ",取到值" + MidDoc.Variables.FreeVariables.Item(ParamName).Value);
                         }
                     }
@@ -1211,12 +1225,6 @@ namespace UAS_LabelMachine
                         //获取对应行的pib_id
                         string ParamName = OutLabelParam.Rows[k]["lp_name"].ToString();
                         OutBoxDoc.Variables.FreeVariables.Item(ParamName).Value = dt.Rows[0][k].ToString();
-                        if (OutBoxDoc.Variables.FreeVariables.Item(ParamName).Value == "")
-                        {
-                            DataRow[] drow = Attach.Select("lp_name='" + OutBoxDoc.Variables.FreeVariables.Item(ParamName).Name + "'");
-                            if (drow.Length > 0)
-                                OutBoxDoc.Variables.FreeVariables.Item(ParamName).Value = drow[0]["lp_sql"].ToString();
-                        }
                         LogManager.DoLog("打印参数【" + OutBoxDoc.Variables.FreeVariables.Item(ParamName).Name + "】赋值," + ",取到值" + OutBoxDoc.Variables.FreeVariables.Item(ParamName).Value);
                     }
                     //保存参数打印
@@ -1280,6 +1288,7 @@ namespace UAS_LabelMachine
         /// <param name="e"></param>
         private void LoadGridData(object sender, EventArgs e)
         {
+            AllChecked = false;
             sql.Clear();
             sql.Append("select pd_custprodcode,pd_custprodspec,pd_pocode,pib_madein,pib_custbarcode,pib_custoutboxcode,pib_id,pib_datecode1,pib_pdid,pib_piid,");
             sql.Append("pib_pdno,pib_prodcode,nvl(nvl(pd_brand,pib_brand),pr_brand)pib_brand,pr_vendprodcode,pib_lotno,pib_datecode,pib_qty,pr_spec,");
@@ -1661,8 +1670,13 @@ namespace UAS_LabelMachine
             string ID = GridPrcode.Rows[e.RowIndex].Cells["pjd_id"].Value.ToString();
             dh.UpdateByCondition("PRODJOINVENDDETAIL", "pjd_zxbzs_user='" + Value + "'", "pjd_id='" + ID + "'");
             //删除对应物料的明细
-            string CurrentPrCode = GridPrcode.Rows[e.RowIndex].Cells["pd_prodcode"].Value.ToString();
-            string CurrentPDNO = GridPrcode.Rows[e.RowIndex].Cells["pd_pdno"].Value.ToString();
+            CurrentPrCode = GridPrcode.Rows[e.RowIndex].Cells["pd_prodcode"].Value.ToString();
+            CurrentZXBZ = GridPrcode.Rows[e.RowIndex].Cells["pjd_zxbzs_user"].Value.ToString();
+            CurrentUnit = GridPrcode.Rows[e.RowIndex].Cells["pr_unit"].Value.ToString();
+            CurrentPDNO = GridPrcode.Rows[e.RowIndex].Cells["pd_pdno"].Value.ToString();
+            CurrentPrCount = GridPrcode.Rows[e.RowIndex].Cells["pd_outqty"].Value.ToString();
+            CurrentBrand = GridPrcode.Rows[e.RowIndex].Cells["pd_brand"].Value.ToString();
+            GridPrcode.Rows[e.RowIndex].Selected = true;
             dh.ExecuteSql("delete from prodiobarcode where pib_inoutno='" + pi_inoutno.Text + "' and pib_pdno='" + CurrentPDNO + "' and pib_prodcode='" + CurrentPrCode + "'", "delete");
             LoadGridData(sender, new EventArgs());
         }
@@ -1687,7 +1701,9 @@ namespace UAS_LabelMachine
         private void GridPrcode_CellClick(object sender, DataGridViewCellEventArgs e)
         {
             if (e.RowIndex >= 0)
+            {
                 GridPrcode.Rows[e.RowIndex].Selected = true;
+            }
         }
 
         private void DCCheck_Leave(object sender, EventArgs e)