Browse Source

外箱号自定义标签修改

章政 7 years ago
parent
commit
2c15c6e62a

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

@@ -1154,7 +1154,7 @@
             // 
             this.SingleLabelPrint.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
             this.SingleLabelPrint.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
-            this.SingleLabelPrint.Location = new System.Drawing.Point(80, 152);
+            this.SingleLabelPrint.Location = new System.Drawing.Point(80, 156);
             this.SingleLabelPrint.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
             this.SingleLabelPrint.Name = "SingleLabelPrint";
             this.SingleLabelPrint.Size = new System.Drawing.Size(68, 26);
@@ -1240,7 +1240,7 @@
             // MidLabelPrint
             // 
             this.MidLabelPrint.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
-            this.MidLabelPrint.Location = new System.Drawing.Point(82, 152);
+            this.MidLabelPrint.Location = new System.Drawing.Point(82, 156);
             this.MidLabelPrint.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
             this.MidLabelPrint.Name = "MidLabelPrint";
             this.MidLabelPrint.Size = new System.Drawing.Size(68, 26);
@@ -1322,7 +1322,7 @@
             // 
             this.label10.AutoSize = true;
             this.label10.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
-            this.label10.Location = new System.Drawing.Point(84, 129);
+            this.label10.Location = new System.Drawing.Point(83, 130);
             this.label10.Name = "label10";
             this.label10.Size = new System.Drawing.Size(32, 17);
             this.label10.TabIndex = 90;
@@ -1350,7 +1350,7 @@
             // OutboxCapacity
             // 
             this.OutboxCapacity.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
-            this.OutboxCapacity.Location = new System.Drawing.Point(44, 128);
+            this.OutboxCapacity.Location = new System.Drawing.Point(39, 127);
             this.OutboxCapacity.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
             this.OutboxCapacity.Name = "OutboxCapacity";
             this.OutboxCapacity.Size = new System.Drawing.Size(38, 23);
@@ -1365,7 +1365,7 @@
             // OutBoxLabelPrint
             // 
             this.OutBoxLabelPrint.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
-            this.OutBoxLabelPrint.Location = new System.Drawing.Point(91, 154);
+            this.OutBoxLabelPrint.Location = new System.Drawing.Point(91, 158);
             this.OutBoxLabelPrint.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
             this.OutBoxLabelPrint.Name = "OutBoxLabelPrint";
             this.OutBoxLabelPrint.Size = new System.Drawing.Size(76, 26);

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

@@ -46,6 +46,10 @@ namespace UAS_LabelMachine
         /// </summary>
         Document OutBoxDoc;
         /// <summary>
+        /// 唛头文件
+        /// </summary>
+        Document FootDoc;
+        /// <summary>
         /// Loading窗口
         /// </summary>
         SetLoadingWindow stw;
@@ -66,9 +70,6 @@ namespace UAS_LabelMachine
 
         //主表数据源
         DataTable LabelInfDataTable;
-
-        //缓存单盘数据数据的DataTable
-        DataTable SingleBoxCacheData;
         /// <summary>
         /// 存放单盘的ID
         /// </summary>
@@ -78,10 +79,6 @@ namespace UAS_LabelMachine
         /// </summary>
         List<string> SingleBoxArgument = new List<string>();
         /// <summary>
-        /// 中盒缓存数据
-        /// </summary>
-        DataTable MidBoxCacheData;
-        /// <summary>
         /// 存放中盒的ID和盒号
         /// </summary>
         Dictionary<string, string> MidIDAndOutboxcode = new Dictionary<string, string>();
@@ -167,9 +164,6 @@ namespace UAS_LabelMachine
             dh = SystemInf.dh;
             CheckForIllegalCrossThreadCalls = false;
             pi_inoutno.Focus();
-            //将本地读取的打印机设置进Combox,并选中默认打印机
-            MidBoxCacheData = new DataTable();
-            SingleBoxCacheData = new DataTable();
 
             Point pt = new Point();
             //禁止所有列的排序
@@ -225,6 +219,8 @@ namespace UAS_LabelMachine
                 MidDoc.Close();
             if (OutBoxDoc != null)
                 OutBoxDoc.Close();
+            if (FootDoc != null)
+                FootDoc.Close();
             form.FormClosed += LabelFormClose;
             form.ShowDialog();
         }
@@ -354,6 +350,7 @@ namespace UAS_LabelMachine
             //获取ID
             string[] PIBID = dh.GetSEQ("prodiobarcode_seq", CodeCount);
             string pib_outboxcode2 = "";
+            string CustOutBoxCode = "";
             if (OutBoxNum.Text == "新增")
             {
                 string maxoutbox = dh.getFieldDataByCondition("prodiobarcode", "max(pib_outboxcode2)", "pib_inoutno='" + pi_inoutno.Text + "'").ToString();
@@ -369,6 +366,8 @@ namespace UAS_LabelMachine
             }
             else
             {
+                //如果不是新增插入当前外箱的自定义编号
+                CustOutBoxCode = dh.getFieldDataByCondition("prodiobarcode", "pib_custoutboxcode", "pib_inoutno='" + pi_inoutno.Text + "' and pib_outboxcode2='" + OutBoxNum.Text + "'").ToString();
                 pib_outboxcode2 = OutBoxNum.Text;
             }
             //计算当前采集数量
@@ -389,22 +388,33 @@ namespace UAS_LabelMachine
                     serialcode = "0" + serialcode;
                 }
                 CustBarCode.Add(SinglePrefix + serialcode + SingleSuffix);
+                SingleMaxNum = SingleMaxNum + 1;
+                //添加外箱号
                 if (OutPrefix != "")
                 {
-                    serialcode = BaseUtil.DToAny(OutMaxNum, OutRadix);
-                    for (int j = serialcode.ToString().Length; j < OutNumLength; j++)
+                    if (OutBoxNum.Text == "新增")
+                    {
+                        string Outserialcode = BaseUtil.DToAny(OutMaxNum, OutRadix);
+                        for (int j = Outserialcode.ToString().Length; j < OutNumLength; j++)
+                        {
+                            Outserialcode = "0" + Outserialcode;
+                        }
+                        CustOutBarCode.Add(OutPrefix + Outserialcode + OutSuffix);
+                    }
+                    else
                     {
-                        serialcode = "0" + serialcode;
+                        CustOutBarCode.Add(CustOutBoxCode);
                     }
-                    CustOutBarCode.Add(OutPrefix + serialcode + OutSuffix);
-                    SingleMaxNum = SingleMaxNum + 1;
-                    OutMaxNum = OutMaxNum + 1;
                 }
                 else
                 {
                     CustOutBarCode.Add("");
                 }
             }
+            if (OutBoxNum.Text == "新增")
+            {
+                OutMaxNum = OutMaxNum + 1;
+            }
             sql.Clear();
             sql.Append("insert into prodiobarcode(PIB_ID,PIB_PRODCODE,PIB_INDATE,PIB_INOUTNO,PIB_PIID,PIB_PDNO, PIB_PDID,PIB_PICLASS,");
             sql.Append("PIB_BARCODE,PIB_CUSTBARCODE,PIB_QTY,PIB_OUTBOXCODE1,pib_datecode,pib_lotno,PIB_OUTBOXCODE2,pib_custoutboxcode,PIB_IFPRINT,PIB_ORDERCODE,PIB_CUSTPO) ");
@@ -414,7 +424,10 @@ namespace UAS_LabelMachine
             dh.BatchInsert(sql.ToString(), new string[] { "PIB_ID", "PIB_CUSTBARCODE", "pib_custoutboxcode" }, PIBID, CustBarCode.ToArray(), CustOutBarCode.ToArray());
             //更新流水号
             dh.UpdateByCondition("RULEMAXNUM", "rmn_maxnumber='" + (SingleMaxNum + CodeCount) + "'", "rmn_nrcode='" + pi_cardcode.Text + "' and rmn_type='Single' and rmn_prefix='" + SinglePrefix + "'");
-            dh.UpdateByCondition("RULEMAXNUM", "rmn_maxnumber='" + (OutMaxNum + CodeCount) + "'", "rmn_nrcode='" + pi_cardcode.Text + "' and rmn_type='Out' and rmn_prefix='" + OutPrefix + "'");
+            if (OutBoxNum.Text == "新增")
+            {
+                dh.UpdateByCondition("RULEMAXNUM", "rmn_maxnumber='" + (OutMaxNum) + "'", "rmn_nrcode='" + pi_cardcode.Text + "' and rmn_type='Out' and rmn_prefix='" + OutPrefix + "'");
+            }
             LoadGridData(new object(), new EventArgs());
             //加载完数据之后进行容量的判断
             if (LabelInfDataTable.Select("pib_outboxcode2='" + OutBoxNum.Text + "'").Length > OutboxCapacity.Value)
@@ -507,6 +520,7 @@ 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 ");
@@ -544,7 +558,6 @@ 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");
-                //SingleLabelParam.Merge(Attach);
                 SingleSQL = "select * from ";
                 for (int i = 0; i < SingleLabelParam.Rows.Count; i++)
                 {
@@ -598,8 +611,6 @@ namespace UAS_LabelMachine
                     else
                         MidSQL += "(" + MidLabelParam.Rows[i]["lp_sql"].ToString() + ")";
                 }
-
-                MidLabelParam.Merge(Attach);
             }
             //缓存中盒参数
             sql.Clear();
@@ -647,6 +658,10 @@ namespace UAS_LabelMachine
                         OutSQL += "(" + OutLabelParam.Rows[i]["lp_sql"].ToString() + ")";
                 }
             }
+            if (FootDoc != null)
+                FootDoc.Close();
+            BaseUtil.GetLabelUrl(DataHelper.FTPAdress, "唛头.lab", System.DateTime.Now);
+            FootDoc = lbl.Documents.Open(ftpOperater.DownLoadTo + "唛头.lab");
             //缓存外箱参数
             ComBoxClickChangeLabelDoc = true;
         }
@@ -675,16 +690,10 @@ namespace UAS_LabelMachine
                     GetBarCodeRule("Out", out OutPrefix, out OutSuffix, out OutMaxNum, out OutNumLength, out OutRadix);
                     //重新输入单号后清除缓存
                     MidBoxArgument.Clear();
-                    MidBoxCacheData.Clear();
-                    BaseUtil.CleanDataTable(MidBoxCacheData);
                     SingleBoxArgument.Clear();
-                    SingleBoxCacheData.Clear();
-                    BaseUtil.CleanDataTable(SingleBoxCacheData);
                     MidIDAndOutboxcode.Clear();
                     SingleID.Clear();
                     Input.Focus();
-                    //获取外箱数据
-                    Attach = (DataTable)dh.ExecuteSql("select lap_param lp_name,lap_value lp_sql  from LabelAttachPARAMETER where lap_custcode='" + pi_cardcode.Text + "'", "select");
                     thread = new Thread(GetInOutInfAndLabelFile);
                     stw = new SetLoadingWindow(thread, "正在获取打印标签");
                     BaseUtil.SetFormCenter(stw);
@@ -730,7 +739,7 @@ namespace UAS_LabelMachine
                 {
                     if (!SingleID.Contains(LabelInf.Rows[i].Cells["pib_id1"].Value.ToString()))
                         SingleID.Add(LabelInf.Rows[i].Cells["pib_id1"].Value.ToString());
-                    if (LabelInf.Rows[i].Cells["Choose"].FormattedValue.ToString() == "True" && LabelInf.Rows[i].Cells["pib_ifprint"].FormattedValue.ToString() != "True")
+                    if (LabelInf.Rows[i].Cells["Choose"].FormattedValue.ToString().ToLower() == "true" && LabelInf.Rows[i].Cells["pib_ifprint"].FormattedValue.ToString() != "true")
                     {
                         //如果不存在中盒号则进行添加
                         if (!MidIDAndOutboxcode.ContainsValue(LabelInf.Rows[i].Cells["pib_outboxcode1"].Value.ToString()))
@@ -744,11 +753,6 @@ namespace UAS_LabelMachine
                     MessageBox.Show("选择的行未勾选采集或者已打印", "提示");
                     return;
                 }
-                //打印的时候如果不存在数据开始缓存
-                //if (SingleBoxCacheData.Rows.Count == 0)
-                //    GetSingleBoxData();
-                //if (MidBoxCacheData.Rows.Count == 0)
-                //    GetMidBoxData();
                 for (int i = 0; i < LabelInf.RowCount; i++)
                 {
                     if (i + 1 < LabelInf.RowCount)
@@ -767,7 +771,7 @@ namespace UAS_LabelMachine
                 for (int i = 0; i < LabelInf.RowCount; i++)
                 {
                     //勾选了并且未打印
-                    if (LabelInf.Rows[i].Cells["Choose"].FormattedValue.ToString() == "True" && LabelInf.Rows[i].Cells["pib_ifprint"].FormattedValue.ToString() != "True")
+                    if (LabelInf.Rows[i].Cells["Choose"].FormattedValue.ToString().ToLower() == "true" && LabelInf.Rows[i].Cells["pib_ifprint"].FormattedValue.ToString().ToLower() != "true")
                     {
                         CheckedRowCount = CheckedRowCount + 1;
                         //以标签模板的参数为基准,循环取数
@@ -820,8 +824,6 @@ namespace UAS_LabelMachine
                     }
                 }
                 dh.BatchInsert("update prodiobarcode set pib_printdate=sysdate where pib_id=:pib_id", new string[] { "pib_id" }, SingleID.ToArray());
-                MidBoxCacheData.Clear();
-                BaseUtil.CleanDataTable(MidBoxCacheData);
                 if (CheckedRowCount == 0)
                     MessageBox.Show("未勾选打印明细!", "提示");
                 outboxcode1.Clear();
@@ -833,161 +835,6 @@ namespace UAS_LabelMachine
             }
         }
 
-        /// <summary>
-        /// 缓存单盘的数据
-        /// </summary>
-        private void GetSingleBoxData()
-        {
-            SingleBoxArgument.Clear();
-            SingleBoxCacheData.Clear();
-            BaseUtil.CleanDataTable(SingleBoxCacheData);
-            if (SingleDoc == null)
-                return;
-            for (int i = 0; i < LabelInf.Rows.Count; i++)
-            {
-                if (!SingleID.Contains(LabelInf.Rows[i].Cells["pib_id1"].Value.ToString()))
-                    SingleID.Add(LabelInf.Rows[i].Cells["pib_id1"].Value.ToString());
-                //如果不存在中盒号则进行添加
-                if (!MidIDAndOutboxcode.ContainsValue(LabelInf.Rows[i].Cells["pib_outboxcode1"].Value.ToString()))
-                    MidIDAndOutboxcode.Add(LabelInf.Rows[i].Cells["pib_id1"].Value.ToString(), LabelInf.Rows[i].Cells["pib_outboxcode1"].Value.ToString());
-            }
-            //id数组
-            string[] pib_id_arr = SingleID.ToArray();
-            //将所有的列存在在这里
-            List<DataTable> AllSingleBoxCacheData = new List<DataTable>();
-            //每五百条拼接一次条件
-            //手动添加ID列
-            DataColumn datacolumn = new DataColumn("pib_id");
-            if (!SingleBoxCacheData.Columns.Contains("pib_id"))
-                SingleBoxCacheData.Columns.Add(datacolumn);
-            //获取打印的SQL
-            for (int j = 0; j < SingleDoc.Variables.FreeVariables.Count; j++)
-            {
-                //将维护的模板参数和模板本身的参数名称进行比对
-                for (int k = 0; k < SingleLabelParam.Rows.Count; k++)
-                {
-                    if (SingleDoc.Variables.FreeVariables.Item(j + 1).Name == SingleLabelParam.Rows[k]["lp_name"].ToString())
-                    {
-                        DataColumn dc = new DataColumn(SingleDoc.Variables.FreeVariables.Item(j + 1).Name);
-                        SingleBoxCacheData.Columns.Add(dc);
-                        SingleBoxArgument.Add(SingleDoc.Variables.FreeVariables.Item(j + 1).Name);
-                        string sql = SingleLabelParam.Rows[k]["lp_sql"].ToString();
-                        sql = sql.Substring(0, sql.IndexOf("{"));
-                        sql = sql.Substring(0, sql.LastIndexOf("="));
-                        DataTable temp = dh.getFieldsDatasByCondition(sql.Replace(" from ", " ,pib_id PIBID from ") + " in (select pib_id from PRODIOBARCODE where pib_inoutno='" + pi_inoutno.Text + "') ORDER by pib_id");
-                        temp.Columns[0].ColumnName = SingleDoc.Variables.FreeVariables.Item(j + 1).Name;
-                        AllSingleBoxCacheData.Add(temp);
-                    }
-                }
-            }
-            DataTable[] Temp = AllSingleBoxCacheData.ToArray();
-            //将所有数据写入到CacheData中
-            if (Temp.Length > 0)
-                for (int i = 0; i < Temp[0].Rows.Count; i++)
-                {
-                    DataRow dr = SingleBoxCacheData.NewRow();
-                    dr["pib_id"] = pib_id_arr[i];
-                    //由于之前加了一个ID列,导致j从1开始
-                    for (int j = 1; j < SingleBoxCacheData.Columns.Count; j++)
-                    {
-                        dr[Temp[j - 1].Columns[0].ColumnName] = (Temp[j - 1].Select("PIBID=" + pib_id_arr[i]))[0][0];
-                    }
-                    SingleBoxCacheData.Rows.Add(dr);
-                }
-        }
-
-        /// <summary>
-        /// 缓存中盒的数据
-        /// </summary>
-        private void GetMidBoxData()
-        {
-            if (MidDoc == null)
-                return;
-            StringBuilder pib_condition_string = new StringBuilder();
-            StringBuilder pib_qtycondition_string = new StringBuilder();
-            for (int i = 0; i < LabelInf.Rows.Count; i++)
-            {
-                //如果不存在中盒号则进行添加
-                if (!MidIDAndOutboxcode.ContainsValue(LabelInf.Rows[i].Cells["pib_outboxcode1"].Value.ToString()))
-                {
-                    MidIDAndOutboxcode.Add(LabelInf.Rows[i].Cells["pib_id1"].Value.ToString(), LabelInf.Rows[i].Cells["pib_outboxcode1"].Value.ToString());
-                }
-            }
-            //id数组
-            string[] pib_id_arr = MidIDAndOutboxcode.Keys.ToArray();
-            string[] pib_outbox_arr = MidIDAndOutboxcode.Values.ToArray();
-            if (pib_id_arr.Length == 0)
-            {
-                MessageBox.Show("未勾选打印明细", "提示");
-                return;
-            }
-            //记录一个ID用来取中盒的数量
-            string pib_id = pib_id_arr[0];
-            //id个数
-            //将所有的列存在在这里
-            List<DataTable> AllMidBoxCacheData = new List<DataTable>();
-            //每五百条拼接一次条件
-            //手动添加ID列
-            DataColumn IDColumn = new DataColumn("pib_id");
-            DataColumn OutBoxColumn = new DataColumn("pib_outboxcode1");
-            if (!MidBoxCacheData.Columns.Contains("pib_id"))
-                MidBoxCacheData.Columns.Add(IDColumn);
-            if (!MidBoxCacheData.Columns.Contains("pib_outboxcode1"))
-                MidBoxCacheData.Columns.Add(OutBoxColumn);
-            if (MidLabelCombox.SelectedValue == null)
-            {
-                return;
-            }
-            string la_id = MidLabelCombox.SelectedValue.ToString().Split('#')[0];
-            for (int j = 0; j < MidDoc.Variables.FreeVariables.Count; j++)
-            {
-                //将维护的模板参数和模板本身的参数名称进行比对
-                for (int k = 0; k < MidLabelParam.Rows.Count; k++)
-                {
-                    if (MidDoc.Variables.FreeVariables.Item(j + 1).Name == MidLabelParam.Rows[k]["lp_name"].ToString())
-                    {
-                        DataColumn dc = new DataColumn(MidDoc.Variables.FreeVariables.Item(j + 1).Name);
-                        MidBoxCacheData.Columns.Add(dc);
-                        MidBoxArgument.Add(MidDoc.Variables.FreeVariables.Item(j + 1).Name);
-                        string sql = MidLabelParam.Rows[k]["lp_sql"].ToString();
-                        //如果打印的含有数量
-                        if (sql.ToLower().Contains("pib_qty"))
-                        {
-                            sql = sql.Substring(0, sql.IndexOf("{")) + pib_id + sql.Substring(sql.IndexOf("}") + 1);
-                            sql = sql.Substring(0, sql.LastIndexOf("=")) + " in (select distinct pib_outboxcode1 from PRODIOBARCODE where pib_inoutno='" + pi_inoutno.Text + "')" + sql.Substring(sql.LastIndexOf("}") + 1);
-                        }
-                        else
-                        {
-                            sql = sql.Substring(0, sql.IndexOf("{"));
-                            sql = sql.Substring(0, sql.LastIndexOf("="));
-                            sql = sql + " in (select distinct pib_outboxcode1 from PRODIOBARCODE where pib_inoutno='" + pi_inoutno.Text + "')" + " and pib_inoutno='" + pi_inoutno.Text + "' order by to_number(pib_outboxcode1)";
-                        }
-                        DataTable temp = dh.getFieldsDatasByCondition(sql);
-                        temp.Columns[0].ColumnName = MidDoc.Variables.FreeVariables.Item(j + 1).Name;
-                        AllMidBoxCacheData.Add(temp);
-                    }
-                }
-            }
-            DataTable[] Temp = AllMidBoxCacheData.ToArray();
-            //将所有数据写入到CacheData中
-            if (Temp.Length > 0)
-            {
-                for (int i = 0; i < pib_id_arr.Length; i++)
-                {
-                    DataRow dr = MidBoxCacheData.NewRow();
-                    dr["pib_id"] = pib_id_arr[i];
-                    dr["pib_outboxcode1"] = pib_outbox_arr[i];
-                    //由于之前加了一个ID列和箱号,导致j从2开始
-                    for (int j = 2; j < MidBoxCacheData.Columns.Count; j++)
-                    {
-                        //选出勾选的中盒号
-                        dr[Temp[j - 2].Columns[0].ColumnName] = Temp[j - 2].Select("PIB_OUTBOXCODE1='" + pib_outbox_arr[i] + "'")[0][0];
-                    }
-                    MidBoxCacheData.Rows.Add(dr);
-                }
-            }
-        }
-
         private void SingleLabelPrint_Click(object sender, EventArgs e)
         {
             if (SingleLabelCombox.Text != "")
@@ -1070,8 +917,6 @@ namespace UAS_LabelMachine
                     }
                 }
                 MidBoxArgument.Clear();
-                MidBoxCacheData.Clear();
-                BaseUtil.CleanDataTable(MidBoxCacheData);
                 List<int> MidOutBoxCode = new List<int>();
                 List<int> MidOutBoxCodeIndex = new List<int>();
                 string la_id = MidLabelCombox.SelectedValue.ToString().Split('#')[0];
@@ -1085,14 +930,11 @@ namespace UAS_LabelMachine
                         MidOutBoxCodeIndex.Add(i);
                     }
                 }
-                GetMidBoxData();
                 for (int i = 0; i < MidOutBoxCodeIndex.Count; i++)
                 {
                     MidBoxCodePrint(la_id, MidOutBoxCodeIndex[i]);
                 }
                 MidBoxArgument.Clear();
-                MidBoxCacheData.Clear();
-                BaseUtil.CleanDataTable(MidBoxCacheData);
                 return;
             }
             bool FindMidLabel = false;
@@ -1150,7 +992,7 @@ namespace UAS_LabelMachine
             {
                 for (int i = 0; i < LabelInf.RowCount; i++)
                 {
-                    if (LabelInf.Rows[i].Cells["Choose"].FormattedValue.ToString() == "True")
+                    if (LabelInf.Rows[i].Cells["Choose"].FormattedValue.ToString().ToLower() == "true")
                     {
                         string outboxcode2 = LabelInf.Rows[i].Cells["pib_outboxcode2"].Value.ToString();
                         //富为使用包装单的逻辑
@@ -1223,35 +1065,18 @@ namespace UAS_LabelMachine
                 string pib_id = LabelInf.Rows[rowindex].Cells["pib_id1"].Value.ToString();
                 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
                 {
-                    //获取打印执行的SQL
-                    if (sql.IndexOf("{") == 0)
-                    {
-                        MidDoc.Variables.FreeVariables.Item(ParamName).Value = dh.GetLabelParam(sql).ToString();
-                        LogManager.DoLog("打印参数【" + MidDoc.Variables.FreeVariables.Item(ParamName).Name + "】赋值," + "取值SQL:" + dt.Rows[k]["lp_sql"].ToString() + ",取到值" + MidDoc.Variables.FreeVariables.Item(ParamName).Value);
-                    }
-                    else
+                    MidDoc.Variables.FreeVariables.Item(ParamName).Value = dt.Rows[0][k].ToString();
+                    if (MidDoc.Variables.FreeVariables.Item(ParamName).Value == "")
                     {
-                        DataRow[] dr = MidBoxCacheData.Select("pib_outboxcode1='" + pib_outboxcode1 + "'");
-                        if (arg.Contains(MidDoc.Variables.FreeVariables.Item(ParamName).Name))
-                        {
-                            if (dr.Length > 0)
-                            {
-                                MidDoc.Variables.FreeVariables.Item(ParamName).Value = dr[0][MidDoc.Variables.FreeVariables.Item(ParamName).Name].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);
+                        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)
                 {
@@ -1387,7 +1212,7 @@ namespace UAS_LabelMachine
             ArrayList<string> DeleteID = new ArrayList<string>();
             for (int i = 0; i < LabelInf.RowCount; i++)
             {
-                if (LabelInf.Rows[i].Cells["Choose"].FormattedValue.ToString() == "True")
+                if (LabelInf.Rows[i].Cells["Choose"].FormattedValue.ToString().ToLower() == "true")
                     DeleteID.Add(LabelInf.Rows[i].Cells["pib_id1"].Value.ToString());
             }
             //勾选了删除的明细之后
@@ -1718,7 +1543,8 @@ namespace UAS_LabelMachine
                 io = new ItemObject(pib_outboxcode2, pib_outboxcode2);
                 OutBoxNum.Items.Add(io);
             }
-            OutBoxNum.SelectedIndex = OutBoxNum.Items.Count - 1;
+            if (OutBoxNum.Text == "新增")
+                OutBoxNum.SelectedIndex = OutBoxNum.Items.Count - 1;
         }
 
         /// <summary>
@@ -1835,7 +1661,8 @@ namespace UAS_LabelMachine
 
         private void GridPrcode_CellClick(object sender, DataGridViewCellEventArgs e)
         {
-            GridPrcode.Rows[e.RowIndex].Selected = true;
+            if (e.RowIndex >= 0)
+                GridPrcode.Rows[e.RowIndex].Selected = true;
         }
 
         private void DCCheck_Leave(object sender, EventArgs e)
@@ -1876,7 +1703,15 @@ namespace UAS_LabelMachine
 
         private void PrintFooter_Click(object sender, EventArgs e)
         {
-
+            DataTable dt = (DataTable)dh.ExecuteSql("select pib_outboxcode2,max(pib_id) pib_id from prodiobarcode where pib_inoutno='" + pi_inoutno.Text + "' group by pib_outboxcode2 order by pib_outboxcode2", "select");
+            string SQL = "select pib_outboxcode2||'/'||(select max(pib_outboxcode2) from prodiobarcode where pib_inoutno={pib_inoutno}) from prodiobarcode  where pib_id={pib_id}";
+            for (int i = 0; i < dt.Rows.Count; i++)
+            {
+                DataTable dt1 = (DataTable)dh.ExecuteSql(SQL.Replace("{pib_inoutno}", "'" + pi_inoutno.Text + "'").Replace("{pib_id}", dt.Rows[i]["pib_id"].ToString()), "select");
+                FootDoc.Variables.FreeVariables.Item("唛头").Value = dt1.Rows[0][0].ToString();
+                FootDoc.Printer.SwitchTo(SingleLabelPrinter.Text);
+                FootDoc.PrintDocument();
+            }
         }
 
         private void Input_KeyUp(object sender, KeyEventArgs e)