Procházet zdrojové kódy

Merge branch 'master' of ssh://10.10.101.21/source/mes-client

Hcsy před 8 roky
rodič
revize
7933a3272a

+ 1 - 1
UAS-MES/FunctionCode/Make/Make_PalletCollection.Designer.cs

@@ -76,7 +76,7 @@
             this.pa_outboxcode_label.Name = "pa_outboxcode_label";
             this.pa_outboxcode_label.Size = new System.Drawing.Size(72, 27);
             this.pa_outboxcode_label.TabIndex = 102;
-            this.pa_outboxcode_label.Text = "板号";
+            this.pa_outboxcode_label.Text = "板号";
             // 
             // pa_totalqty_label
             // 

+ 0 - 1326
UAS-出货标签管理/TextFile1.txt

@@ -1,1326 +0,0 @@
-using System;
-using System.Data;
-using System.Drawing;
-using System.Windows.Forms;
-using System.Text.RegularExpressions;
-using System.Text;
-using System.Collections.Generic;
-using System.Linq;
-using LabelManager2;
-using UAS_出货标签管理.CustomControl.GroupBoxWithBorder;
-using UAS_出货标签管理.PublicMethod;
-using UAS_出货标签管理.Entity;
-using UAS_特殊解析规则;
-
-namespace UAS_出货标签管理
-{
-    public partial class 贴标机条码打印 : Form
-    {
-        AutoSizeFormClass asc = new AutoSizeFormClass();
-
-        DataHelper dh;
-
-        DataTable dt;
-
-        StringBuilder sql = new StringBuilder();
-
-        /*CodeSoft新建打印机引擎*/
-        ApplicationClass lbl;
-        /*单盘打印文件*/
-        Document SingleDoc;
-        /*中盒打印文件*/
-        Document MidDoc;
-        /*外箱打印文件*/
-        Document OutBoxDoc;
-
-        //当前品牌
-        string Brand;
-        string PI_ID;
-        //当前扫描的项目
-        int CurrentItemIndex = 0;
-        //当前扫描的所在行
-        int CurrentRowIndex = 0;
-        //最大的出入口单号
-        int MaxOutBoxCode = 1;
-        /*正则表达式用于项目匹配*/
-        Regex reg;
-        /*标识供应商物料编号采集是否通过*/
-        bool CollectVeProdCodePass;
-
-        bool CollectQTYPass;
-
-        bool logout = false;
-
-        /*用于存放采集项目的Grid信息*/
-        Dictionary<string, Dictionary<string, string>> SiItem;
-
-        /*需要重绘的Cell*/
-        Dictionary<DataGridViewCell, bool> PaintCell = new Dictionary<DataGridViewCell, bool>();
-        //使用二位数组进行排序
-        ArrayList<ArrayList<string>> ScanData;
-        ArrayList<string> GetData;
-
-        public 贴标机条码打印()
-        {
-            InitializeComponent();
-        }
-
-        protected override void WndProc(ref Message m)
-        {
-            //拦截双击标题栏、移动窗体的系统消息  
-            if (m.Msg != 0xA3)
-            {
-                base.WndProc(ref m);
-            }
-        }
-
-        private void 贴标机条码打印_Load(object sender, EventArgs e)
-        {
-            asc.controllInitializeSize(this);
-            LogManager.DoLog("程序启动,登陆人员" + User.UserName);
-            dh = new DataHelper();
-            pi_inoutno.Focus();
-            //将本地读取的打印机设置进Combox,并选中默认打印机
-
-            sg_code.FormName = Name;
-            sg_code.SetValueField = new string[] { "sg_code" };
-            sg_code.SelectField = "sg_code # 策略编号 ,sg_name # 策略名称,sg_brand # 品牌,sg_separator # 分隔符";
-            sg_code.TableName = "scangroup";
-
-            pr_code.FormName = Name;
-            pr_code.SetValueField = new string[] { "pr_code", "pib_id" };
-            pr_code.TableName = "prodiodetail ";
-            pr_code.SelectField = "pd_pdno # 行号,pd_prodcode # 物料编号";
-
-            ChooseAll.ChooseAll(LabelInf);
-            CollectionUnit.Text = "盘";
-            Point pt = new Point();
-            int ScreenHeight = Screen.GetWorkingArea(pt).Width;
-            //如果分辨率大的设置的字体对应的变大 
-            if (ScreenHeight > 1366)
-            {
-                foreach (Control ctl in Controls)
-                {
-                    if (ctl is CheckBox || ctl is Label || ctl is RadioButton)
-                    {
-                        ctl.Font = new Font("微软雅黑", 10.5F, FontStyle.Regular, GraphicsUnit.Point, 134);
-                    }
-                    if (ctl is GroupBoxWithBorder)
-                    {
-                        GroupBoxWithBorder gb = ctl as GroupBoxWithBorder;
-                        for (int i = 0; i < gb.Controls.Count; i++)
-                        {
-                            if (gb.Controls[i] is CheckBox || gb.Controls[i] is Label || gb.Controls[i] is RadioButton)
-                            {
-                                gb.Controls[i].Font = new Font("微软雅黑", 10.5F, FontStyle.Regular, GraphicsUnit.Point, 134);
-                            }
-                        }
-                    }
-                }
-            }
-            //设置获取当前屏幕大小自动全屏但是保留任务栏
-            Rectangle ScreenArea = Screen.GetWorkingArea(this);
-            Top = 0;
-            Left = 0;
-            Width = ScreenArea.Width;
-            Height = ScreenArea.Height;
-            asc.controlAutoSize(this);
-            //实例化打印进程
-            try
-            {
-                lbl = new ApplicationClass();
-            }
-            catch (Exception)
-            {
-                MessageBox.Show("未安装CodeSoft软件或者版本不正确");
-            }
-        }
-
-        private void 贴标机条码打印_SizeChanged(object sender, EventArgs e)
-        {
-            asc.controlAutoSize(this);
-        }
-
-        private void GenerateBarCode_Click(object sender, EventArgs e)
-        {
-            生成条码 form = new 生成条码(pi_inoutno.Text);
-            form.FormClosed += LoadGridData;
-            BaseUtil.SetFormCenter(form);
-            form.ShowDialog();
-        }
-
-        private void CollectionSetting_Click(object sender, EventArgs e)
-        {
-            采集策略 form = new 采集策略(sg_code.Text);
-            form.FormClosed += sg_code_UserControlTextChanged;
-            BaseUtil.SetFormCenter(form);
-            form.ShowDialog();
-        }
-
-        private void LabelMaintain_Click(object sender, EventArgs e)
-        {
-            客户标签维护 form = new 客户标签维护();
-            BaseUtil.SetFormCenter(form);
-            form.ShowDialog();
-        }
-
-        /// <summary>
-        /// 保存明细
-        /// </summary>
-        /// <param name="sender"></param>
-        /// <param name="e"></param>
-        private void SaveGrid_Click(object sender, EventArgs e)
-        {
-            DataTable savedt = LabelInf.DataSource as DataTable;
-            if (LabelInf.DataSource != null && savedt.GetChanges() != null)
-            {
-                dh.UpDateTableByCondition((LabelInf.DataSource as DataTable).GetChanges(), "ProdioBarCode", "pib_id");
-                MessageBox.Show("保存成功!");
-            }
-        }
-
-        //放大镜选择后出发的事件
-        private void sg_code_UserControlTextChanged(object sender, EventArgs e)
-        {
-            //取已启用的的按照采集次序排序
-            dt = (DataTable)dh.ExecuteSql("select si_item,si_detno,sg_separator,si_kind,si_expression,si_index,si_indexstring,si_length from scanitem left join scangroup on si_sgid=sg_id where sg_code='" + sg_code.Text + "' and si_enable<>0 order by si_detno", "select");
-            BaseUtil.FillDgvWithDataTable(Si_ItemDGV, dt);
-            if (dt.Rows.Count > 0)
-            {
-                sg_separator.Text = dt.Rows[0]["sg_separator"].ToString();
-            }
-            //按DetNo排列之后的采集项
-            ScanData = new ArrayList<ArrayList<string>>();
-            //每个采集项目的子项
-            GetData = new ArrayList<string>();
-            //将数据添加进一个List的二维数组中
-            for (int i = 0; i < Si_ItemDGV.RowCount; i++)
-            {
-                //如果不包含这个则添加进数组
-                if (!GetData.Contains(Si_ItemDGV.Rows[i].Cells["si_item"].Value.ToString()))
-                {
-                    GetData.Add(Si_ItemDGV.Rows[i].Cells["si_item"].Value.ToString());
-                }
-                //如果和后一个的采集次序相同
-                if (((i + 1) < Si_ItemDGV.RowCount) && Si_ItemDGV.Rows[i].Cells["si_detno"].Value.ToString() == Si_ItemDGV.Rows[i + 1].Cells["si_detno"].Value.ToString())
-                {
-                    GetData.Add(Si_ItemDGV.Rows[i + 1].Cells["si_item"].Value.ToString());
-                }
-                else {
-                    ScanData.Add(GetData);
-                    //添加完一次数据需要一个新的List
-                    GetData = new ArrayList<string>();
-                }
-            }
-            RemindUser();
-            if (ScanData.ToArray().Length > 0)
-            {
-                object[] arr = (ScanData.ToArray()[0] as ArrayList<string>).ToArray();
-                if (arr.Contains("MPN"))
-                {
-                    AutoMatch.CheckState = CheckState.Checked;
-                    AutoMatch.Enabled = true;
-                }
-                else {
-                    AutoMatch.CheckState = CheckState.Unchecked;
-                    AutoMatch.Enabled = false;
-                }
-            }
-        }
-
-        //输入框Enter事件
-        private void Input_KeyDown(object sender, KeyEventArgs e)
-        {
-            if (e.KeyCode == Keys.Enter)
-            {
-                if (Input.Text == "")
-                {
-                    BaseUtil.ShowError("采集的数据不能为空");
-                }
-                CollectData();
-            }
-        }
-
-        /// <summary>
-        /// 设置自动匹配的数据的行号
-        /// </summary>
-        /// <returns></returns>
-        private void SetAutoMatchRow()
-        {
-            //采集策略的第一组数据
-            string[] arr = Input.Text.Split(sg_separator.Text.ToCharArray()).ToArray();
-            bool FindAutoMatch = false;
-            for (int i = 0; i < LabelInf.RowCount; i++)
-            {
-                for (int j = 0; j < arr.Length; j++)
-                {
-                    if (LabelInf.Rows[i].Cells["pr_vendprodcode"].Value.ToString() == MatchStr(arr[j].ToString(), "MPN") && LabelInf.Rows[i].Cells["pib_ifpick"].FormattedValue.ToString() != "True")
-                    {
-                        CurrentRowIndex = i;
-                        FindAutoMatch = true;
-                        break;
-                    }
-                }
-                if (FindAutoMatch)
-                {
-                    break;
-                }
-            }
-        }
-
-        /// <summary>
-        /// 采集数据
-        /// </summary>
-        private void CollectData()
-        {
-            LogManager.DoLog("采集数据" + Input.Text + ",使用采集策略编号" + sg_code.Text);
-            //按DetNo排列之后的采集项
-            ScanData = new ArrayList<ArrayList<string>>();
-            //每个采集项目的子项
-            GetData = new ArrayList<string>();
-            //用于保存采集策略的具体信息
-            SiItem = new Dictionary<string, Dictionary<string, string>>();
-            for (int i = 0; i < Si_ItemDGV.RowCount; i++)
-            {
-                //如果不包含这个则添加进数组
-                if (!GetData.Contains(Si_ItemDGV.Rows[i].Cells["si_item"].Value.ToString()))
-                {
-                    GetData.Add(Si_ItemDGV.Rows[i].Cells["si_item"].Value.ToString());
-                }
-                //如果和后一个的采集次序相同
-                if (((i + 1) < Si_ItemDGV.RowCount) && Si_ItemDGV.Rows[i].Cells["si_detno"].Value.ToString() == Si_ItemDGV.Rows[i + 1].Cells["si_detno"].Value.ToString())
-                {
-                    GetData.Add(Si_ItemDGV.Rows[i + 1].Cells["si_item"].Value.ToString());
-                }
-                else {
-                    ScanData.Add(GetData);
-                    //添加完一次数据需要一个新的List
-                    GetData = new ArrayList<string>();
-                }
-                Dictionary<string, string> item = new Dictionary<string, string>();
-                for (int j = 0; j < Si_ItemDGV.ColumnCount; j++)
-                {
-                    item.Add(Si_ItemDGV.Columns[j].DataPropertyName, Si_ItemDGV.Rows[i].Cells[j].Value.ToString());
-                }
-                SiItem.Add(Si_ItemDGV.Rows[i].Cells["si_item"].Value.ToString().ToUpper(), item);
-            }
-            //采集项目的数组
-            object[] ItemData = (ScanData.ToArray()[CurrentItemIndex] as ArrayList<string>).ToArray();
-            //分隔符不为空的时候  //采集的项和Grid的数目不等
-            if (sg_separator.Text == "" && ScanData.ToArray().Length != Si_ItemDGV.RowCount)
-            {
-                BaseUtil.ShowError("所选采集策略和当前采集项目不符合,含有同顺序采集项时必须维护分隔符!");
-            }
-            else {
-                //用户采集的数据的分割数组
-                List<string> CollectData = Input.Text.Split(sg_separator.Text.ToCharArray()).ToList();
-                //首先判断当前采集的个数,如果采集的个数为1则不对数据进行分隔符验证
-                if (ItemData.Length == 1)
-                {
-                    CollectData.Clear();
-                    CollectData.Add(Input.Text);
-                    //勾选了自动匹配调用该函数
-                    if (AutoMatch.Checked)
-                    {
-                        SetAutoMatchRow();
-                    }
-                    //将筛选之后的值赋给Cell 
-                    SetDataToCell(ref CollectData, ItemData[0].ToString().ToUpper());
-                }
-                //如果本次采集的数据分割后和当前的采集项目个数不一样提示用户错误
-                else if (CollectData.ToArray().Length == ItemData.Length)
-                {
-                    for (int i = 0; i < ItemData.Length; i++)
-                    {
-                        //勾选了自动匹配调用该函数
-                        if (AutoMatch.Checked)
-                        {
-                            SetAutoMatchRow();
-                        }
-                        //将筛选之后的值赋给Cell
-                        SetDataToCell(ref CollectData, ItemData[i].ToString().ToUpper());
-                    }
-                }
-                else {
-                    BaseUtil.ShowError("所采集的数据个数和采集项目不符");
-                }
-            }
-            //采集项目的索引+1
-            CurrentItemIndex = CurrentItemIndex + 1;
-            //如果已经采集完了最后一个
-            if (CurrentItemIndex == ScanData.ToArray().Length)
-            {
-                //数据校验均已通过则勾选上已采集
-                if (CollectVeProdCodePass && CollectQTYPass)
-                {
-                    //如果按盒号采集,所有的此盒的均更新为
-                    if (CollectionUnit.Text == "盒")
-                    {
-                        for (int i = 0; i < LabelInf.RowCount; i++)
-                        {
-                            if (LabelInf.Rows[i].Cells["pib_outboxcode1"].Value.ToString() == LabelInf.Rows[CurrentRowIndex].Cells["pib_outboxcode1"].Value.ToString())
-                            {
-                                LabelInf.Rows[i].Cells["pib_lotno"].Value = LabelInf.Rows[CurrentRowIndex].Cells["pib_lotno"].Value;
-                                LabelInf.Rows[i].Cells["pib_datecode"].Value = LabelInf.Rows[CurrentRowIndex].Cells["pib_datecode"].Value;
-                                //将采集数据正确的Cell添加到键值对中
-                                if (PaintCell.ContainsKey(LabelInf.Rows[i].Cells["pr_vendprodcode"]))
-                                {
-                                    PaintCell.Remove(LabelInf.Rows[i].Cells["pr_vendprodcode"]);
-                                }
-                                PaintCell.Add(LabelInf.Rows[i].Cells["pr_vendprodcode"], true);
-                                if (PaintCell.ContainsKey(LabelInf.Rows[i].Cells["pib_qty"]))
-                                {
-                                    PaintCell.Remove(LabelInf.Rows[i].Cells["pib_qty"]);
-                                }
-                                PaintCell.Add(LabelInf.Rows[i].Cells["pib_qty"], true);
-                                LabelInf.Refresh();
-                                LabelInf.Rows[i].Cells["pib_ifpick"].Value = true;
-                                if (SingleLabelAutoPrint.Checked)
-                                {
-                                    string la_id = SingleLabelCombox.SelectedValue.ToString();
-                                    string cl_labelname = SingleLabelCombox.Text;
-                                    string LabelUrl = dh.getFieldDataByCondition("label left join customerlabel on la_code=cl_labelcode", "cl_labelurl", "la_id='" + la_id + "' and cl_labelname='" + cl_labelname + "'").ToString();
-                                    SingleDoc = lbl.Documents.Open(LabelUrl);
-                                    dt = (DataTable)dh.ExecuteSql("select lp_name,lp_sql from label left join LABELPARAMETER on la_id= lp_laid where la_id=" + la_id, "select");
-                                    for (int j = 0; j < SingleDoc.Variables.FreeVariables.Count; j++)
-                                    {
-                                        //将维护的模板参数和模板本身的参数名称进行比对
-                                        for (int k = 0; k < dt.Rows.Count; k++)
-                                        {
-                                            //名称相等的时候,取SQL进行值的查询
-                                            if (SingleDoc.Variables.FreeVariables.Item(j + 1).Name == dt.Rows[k]["lp_name"].ToString())
-                                            {
-                                                //获取打印执行的SQL
-                                                string sql = dt.Rows[k]["lp_sql"].ToString();
-                                                sql = sql.Substring(0, sql.IndexOf("{"));
-                                                //获取对应行的pib_id
-                                                string pib_id = LabelInf.Rows[i].Cells["pib_id1"].Value.ToString();
-                                                SingleDoc.Variables.FreeVariables.Item(j + 1).Value = dh.GetLabelParam(sql + pib_id).ToString();
-                                            }
-                                        }
-                                    }
-                                    //保存参数打印
-                                    SingleDoc.Save();
-                                    SingleDoc.Printer.SwitchTo(SingleLabelPrinter.Text);
-                                    SingleDoc.PrintDocument();
-                                    LogManager.DoLog("执行打印单盘,pib_id:" + LabelInf.Rows[i].Cells["pib_id1"].Value.ToString());
-                                    LabelInf.Rows[i].Cells["pib_ifprint"].Value = true;
-                                }
-                                if (MidLabelAutoPrint.Checked)
-                                {
-                                    AutoPrintMidLabel();
-                                }
-                            }
-                        }
-                    }
-                    else {
-                        LabelInf.Rows[CurrentRowIndex].Cells["pib_ifpick"].Value = true;
-                        //勾选了单盘自动打印
-                        if (SingleLabelAutoPrint.Checked)
-                        {
-                            string la_id = SingleLabelCombox.SelectedValue.ToString();
-                            string cl_labelname = SingleLabelCombox.Text;
-                            string LabelUrl = dh.getFieldDataByCondition("label left join customerlabel on la_code=cl_labelcode", "cl_labelurl", "la_id='" + la_id + "' and cl_labelname='" + cl_labelname + "'").ToString();
-                            SingleDoc = lbl.Documents.Open(LabelUrl);
-                            dt = (DataTable)dh.ExecuteSql("select lp_name,lp_sql from label left join LABELPARAMETER on la_id= lp_laid where la_id=" + la_id, "select");
-                            for (int j = 0; j < SingleDoc.Variables.FreeVariables.Count; j++)
-                            {
-                                //将维护的模板参数和模板本身的参数名称进行比对
-                                for (int k = 0; k < dt.Rows.Count; k++)
-                                {
-                                    //名称相等的时候,取SQL进行值的查询
-                                    if (SingleDoc.Variables.FreeVariables.Item(j + 1).Name == dt.Rows[k]["lp_name"].ToString())
-                                    {
-                                        //获取打印执行的SQL
-                                        string sql = dt.Rows[k]["lp_sql"].ToString();
-                                        if (sql.IndexOf("{") == 0)
-                                        {
-                                            SingleDoc.Variables.FreeVariables.Item(j + 1).Value = dh.GetLabelParam(sql).ToString();
-                                            LogManager.DoLog("打印参数" + SingleDoc.Variables.FreeVariables.Item(j + 1).Name + "赋值," + "取值SQL:" + dt.Rows[k]["lp_sql"].ToString() + ",取到值" + SingleDoc.Variables.FreeVariables.Item(j + 1).Value);
-                                        }
-                                        else {
-                                            sql = sql.Substring(0, sql.IndexOf("{"));
-                                            //获取对应行的pib_id
-                                            string pib_id = LabelInf.Rows[CurrentRowIndex].Cells["pib_id1"].Value.ToString();
-                                            SingleDoc.Variables.FreeVariables.Item(j + 1).Value = dh.GetLabelParam(sql + pib_id).ToString();
-                                            LogManager.DoLog("打印参数" + SingleDoc.Variables.FreeVariables.Item(j + 1).Name + "赋值," + "取值SQL:" + dt.Rows[k]["lp_sql"].ToString() + ",取到值" + SingleDoc.Variables.FreeVariables.Item(j + 1).Value);
-                                        }
-                                    }
-                                }
-                            }
-                            //保存参数打印
-                            SingleDoc.Save();
-                            SingleDoc.Printer.SwitchTo(SingleLabelPrinter.Text);
-                            SingleDoc.PrintDocument();
-                            LogManager.DoLog("执行打印单盘,pib_id:" + LabelInf.Rows[CurrentRowIndex].Cells["pib_id1"].Value.ToString());
-                            LabelInf.Rows[CurrentRowIndex].Cells["pib_ifprint"].Value = true;
-                        }
-                        //勾选了中盒自动打印
-                        if (MidLabelAutoPrint.Checked)
-                        {
-                            AutoPrintMidLabel();
-                        }
-                        //勾选了外箱自动打印
-                        if (OutBoxLabelAutoPrint.Checked)
-                        {
-
-                        }
-                    }
-                }
-                //采集未通过的时候
-                else {
-                    //如果自动采集采集未成功需要移动到下一行
-                    if (!AutoMatch.Checked)
-                    {
-                        SetRowIndexToCollectRow();
-                    }
-                }
-                //当前项目已采集完成,重置采集项目
-                CurrentItemIndex = 0;
-                if (!AutoMatch.Checked)
-                {
-                    SetRowIndexToCollectRow();
-                }
-                //采集完了一行后Index+1
-                CurrentRowIndex = (CurrentRowIndex + 1 == LabelInf.RowCount) ? CurrentRowIndex : CurrentRowIndex + 1;
-            }
-            //提醒用户需要采集的数据
-            RemindUser();
-            RefreshProcessData();
-        }
-        //设置行的索引到当前需要采集的行
-        private void SetRowIndexToCollectRow()
-        {
-            //获取当前需要采集的行
-            for (int i = CurrentRowIndex; i < LabelInf.RowCount; i++)
-            {
-                if (LabelInf.Rows[i].Cells["pib_ifpick"].FormattedValue.ToString() != "True")
-                {
-                    griddetno.Text = LabelInf.Rows[i].Cells["pib_pdno"].FormattedValue.ToString();
-                    pr_code.Text = LabelInf.Rows[i].Cells["pib_prodcode"].FormattedValue.ToString();
-                    CurrentRowIndex = LabelInf.Rows[i].Cells["pib_prodcode"].RowIndex;
-                    break;
-                }
-            }
-        }
-
-        /// <summary>
-        /// 提醒用户当前采集的项目
-        /// </summary>
-        private void RemindUser()
-        {
-            SetRowIndexToCollectRow();
-
-            if (ScanData.ToArray().Length > 0)
-            {
-                object[] arr = (ScanData.ToArray()[CurrentItemIndex] as ArrayList<string>).ToArray();
-                string Inf = "";
-                for (int i = 0; i < arr.Length; i++)
-                {
-                    Inf += arr[i] + "  ";
-                }
-                MessageLog.AppendText(">>当前采集行" + (CurrentRowIndex + 1) + ",请采集" + Inf + "\n", Color.Green);
-            }
-        }
-
-        /// <summary>
-        /// 自定义函数 将匹配之后的值设置到Cell中,传递引用,每次赋值之后从List中移除已使用过的
-        /// </summary>
-        /// <param name="data"></param>
-        /// <param name="kind"></param>
-        private void SetDataToCell(ref List<string> setdata, string kind)
-        {
-            int length = setdata.ToArray().Length;
-            for (int j = 0; j < length; j++)
-            {
-                string[] data = setdata.ToArray();
-                for (int i = 0; i < data.Length; i++)
-                {
-                    DataGridViewCell cell = null;
-                    string Matchstr = "";
-                    switch (kind.ToString().ToUpper())
-                    {
-                        case "DATECODE":
-                            cell = LabelInf.Rows[CurrentRowIndex].Cells["pib_datecode"];
-                            Matchstr = MatchStr(data[j], "DATECODE");
-                            setdata.Remove(data[j]);
-                            length--;
-                            break;
-                        case "LOTNO":
-                            cell = LabelInf.Rows[CurrentRowIndex].Cells["pib_lotno"];
-                            Matchstr = MatchStr(data[j], "LOTNO");
-                            setdata.Remove(data[j]);
-                            length--;
-                            break;
-                        case "MPN":
-                            cell = LabelInf.Rows[CurrentRowIndex].Cells["pr_vendprodcode"];
-                            Matchstr = MatchStr(data[j], "MPN");
-                            //采集的供应商号不匹配的话
-                            if (cell.Value.ToString() != Matchstr)
-                            {
-                                CollectVeProdCodePass = false;
-                                //添加需要重绘的Cell
-                                if (PaintCell.ContainsKey(cell))
-                                {
-                                    PaintCell.Remove(cell);
-                                }
-                                PaintCell.Add(cell, false);
-                                LabelInf.Refresh();
-                                MessageLog.AppendText(">>供应商物料编号不匹配\n", Color.Red);
-                            }
-                            else {
-                                if (PaintCell.ContainsKey(cell))
-                                {
-                                    PaintCell.Remove(cell);
-                                }
-                                PaintCell.Add(cell, true);
-                                LabelInf.Refresh();
-                                CollectVeProdCodePass = true;
-                            }
-                            setdata.Remove(data[j]);
-                            length--;
-                            break;
-                        case "QTY":
-                            cell = LabelInf.Rows[CurrentRowIndex].Cells["pib_qty"];
-                            Matchstr = MatchStr(data[j], "QTY");
-                            //如果采集的数量不相等的话
-                            if (cell.Value.ToString() != Matchstr)
-                            {
-                                CollectQTYPass = false;
-                                //添加需要重绘的Cell
-                                if (PaintCell.ContainsKey(cell))
-                                {
-                                    PaintCell.Remove(cell);
-                                }
-                                PaintCell.Add(cell, false);
-                                LabelInf.Refresh();
-                                MessageLog.AppendText(">>数量不匹配\n", Color.Red);
-                            }
-                            else {
-                                if (PaintCell.ContainsKey(cell))
-                                {
-                                    PaintCell.Remove(cell);
-                                }
-                                PaintCell.Add(cell, true);
-                                LabelInf.Refresh();
-                                CollectQTYPass = true;
-                            }
-                            setdata.Remove(data[j]);
-                            length--;
-                            break;
-                        default:
-                            break;
-                    }
-                    //如果数据为空或者数据不为空的时候但是和需要采集的数据不相等的情况下进行采集
-                    //MPN和QTY只做比较不需要赋值
-                    if (cell.Value.ToString() == "" || cell.Value.ToString() != Matchstr)
-                    {
-                        if (kind != "MPN" && kind != "QTY")
-                        {
-                            cell.Value = Matchstr;
-                        }
-                        LogManager.DoLog("采集项" + kind + ",匹配方式:" + SiItem[kind]["si_kind"] + ",匹配后字符串" + Matchstr);
-                    }
-                }
-            }
-            //添加外箱号,如果外箱号的箱内容量不为0并且已经采集完成
-            if (OutboxCapacity.Value != 0 && CurrentItemIndex == ScanData.ToArray().Length - 1)
-            {
-                //获取当前出入口单最大的外箱号
-                for (int i = 0; i < LabelInf.RowCount; i++)
-                {
-                    string outboxcode = LabelInf.Rows[i].Cells["pib_outboxcode2"].Value.ToString();
-                    if (int.Parse(outboxcode == "" ? "1" : outboxcode) > MaxOutBoxCode)
-                    {
-                        MaxOutBoxCode = int.Parse(outboxcode);
-                    }
-                }
-                //统计最大的箱号存在多少
-                int MaxOutBoxCodeCount = 0;
-                for (int i = 0; i < LabelInf.RowCount; i++)
-                {
-                    if (LabelInf.Rows[i].Cells["pib_outboxcode2"].Value.ToString() == MaxOutBoxCode.ToString())
-                    {
-                        MaxOutBoxCodeCount = MaxOutBoxCodeCount + 1;
-                    }
-                }
-                //如果箱内的盒数量小于容量,继续使用此箱号赋值,否则箱号+1
-                if (MaxOutBoxCodeCount < OutboxCapacity.Value)
-                {
-                    LabelInf.Rows[CurrentRowIndex].Cells["pib_outboxcode2"].Value = MaxOutBoxCode;
-                }
-                else {
-                    MaxOutBoxCode = MaxOutBoxCode + 1;
-                    LabelInf.Rows[CurrentRowIndex].Cells["pib_outboxcode2"].Value = MaxOutBoxCode;
-                }
-            }
-        }
-
-        /// <summary>
-        /// 自定义函数 根据匹配规则
-        /// si_item的二维数组,str是需要赋值的字符串,item表示DateCode,LotNo等
-        /// </summary>
-        /// <param name="SiItem"></param>
-        /// <param name="str"></param>
-        /// <param name="item"></param>
-        /// <returns></returns>
-        private string MatchStr(string str, string item)
-        {
-            string kind = SiItem[item]["si_kind"];
-            //起始字符不为空的时候
-            switch (kind)
-            {
-                case "起始位置":
-                    if (SiItem[item]["si_index"] != "")
-                    {
-                        try
-                        {
-                            //长度不为空的时候按照指定的长度去取数据
-                            if (SiItem[item]["si_length"] != "")
-                            {
-                                str = str.Substring(int.Parse(SiItem[item]["si_index"]), int.Parse(SiItem[item]["si_length"]));
-                            }
-                            //长度为空的时候取index之后的全部数据
-                            else {
-                                str = str.Substring(int.Parse(SiItem[item]["si_index"]));
-                            }
-                        }
-                        catch (Exception)
-                        {
-                        }
-                    }
-                    break;
-                case "索引字符":
-                    try
-                    {
-                        if (SiItem[item]["si_indexstring"] != "")
-                        {
-                            //长度不为空的时候按照指定的长度去取数据
-                            if (SiItem[item]["si_length"] != "")
-                            {
-                                str = str.Substring(str.IndexOf(SiItem[item]["si_indexstring"]) + 1, int.Parse(SiItem[item]["si_length"]));
-                            }
-                            //长度为空的时候取index之后的全部数据
-                            else {
-                                str = str.Substring(str.IndexOf(SiItem[item]["si_indexstring"]) + 1);
-                            }
-                        }
-                    }
-                    catch (Exception)
-                    {
-                    }
-                    break;
-                case "二次解析":
-                    str = Analysis.AnalysisData(Brand, item, str);
-                    break;
-                case "全部":
-                    break;
-                default:
-                    break;
-            }
-            if (SiItem[item]["si_expression"] != "")
-            {
-                reg = new Regex(SiItem[item]["si_expression"]);
-                str = reg.Match(str).Value;
-            }
-            return str;
-        }
-
-        //关闭窗口前提示用户确认
-        private void 贴标机条码打印_FormClosing(object sender, FormClosingEventArgs e)
-        {
-            //如果不是注销的话
-            if (!logout)
-            {
-                string close = MessageBox.Show(this.ParentForm, "是否关闭", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question).ToString();
-                if (close.ToString() != "Yes")
-                {
-                    e.Cancel = true;
-                }
-                else {
-                    //防止未安装打印程序时报错导致窗体无法关闭
-                    try
-                    {
-                        lbl.Application.Quit();
-                        LogManager.DoLog("关闭程序");
-                        //  System.Windows.Forms.Application.Exit();
-                    }
-                    catch
-                    {
-                    }
-                }
-            }
-        }
-
-        /// <summary>
-        /// 出入库单录入框的回车事件
-        /// </summary>
-        /// <param name="sender"></param>
-        /// <param name="e"></param>
-        private void pi_inoutno_KeyDown(object sender, KeyEventArgs e)
-        {
-            if (e.KeyCode == Keys.Enter)
-            {
-                sql.Clear();
-                sql.Append("select pi_id,pi_cardcode from prodinout where pi_inoutno='" + pi_inoutno.Text + "'");
-                dt = (DataTable)dh.ExecuteSql(sql.ToString(), "select");
-                if (dt.Rows.Count > 0)
-                {
-                    pi_cardcode.Text = dt.Rows[0]["pi_cardcode"].ToString();
-                    PI_ID = dt.Rows[0]["pi_id"].ToString();
-                    LoadGridData(sender, e);
-                    //刷新采集进度
-                    RefreshProcessData();
-                    //设置当前的最大箱号
-                    for (int i = 0; i < LabelInf.RowCount; i++)
-                    {
-                        string outboxcode = LabelInf.Rows[i].Cells["pib_outboxcode2"].Value.ToString();
-                        if (int.Parse(outboxcode == "" ? "1" : outboxcode) > MaxOutBoxCode)
-                        {
-                            MaxOutBoxCode = int.Parse(outboxcode);
-                        }
-                    }
-                    sql.Clear();
-                    sql.Append("select cl_labelname,cl_isdefault,la_id from customerlabel left join prodinout on pi_cardcode=cl_custcode ");
-                    sql.Append("left join customer on cu_code=cl_custcode left join label on la_code=CL_LABELCODE where ((pi_cardcode='" + pi_cardcode.Text + "' ");
-                    sql.Append("and  pi_inoutno='" + pi_inoutno.Text + "') or( cl_custcode='共用')) and cl_labeltype='单盘'");
-                    dt = (DataTable)dh.ExecuteSql(sql.ToString(), "select");
-                    SingleLabelCombox.DataSource = dt;
-                    SingleLabelCombox.DisplayMember = "cl_labelname";
-                    SingleLabelCombox.ValueMember = "la_id";
-
-                    sql.Clear();
-                    sql.Append("select cl_labelname,cl_isdefault,la_id from customerlabel left join prodinout on pi_cardcode=cl_custcode ");
-                    sql.Append("left join customer on cu_code=cl_custcode left join label on la_code=CL_LABELCODE where ((pi_cardcode='" + pi_cardcode.Text + "' ");
-                    sql.Append("and  pi_inoutno='" + pi_inoutno.Text + "') or( cl_custcode='共用')) and cl_labeltype='中盒'");
-                    dt = (DataTable)dh.ExecuteSql(sql.ToString(), "select");
-                    MidLabelCombox.DataSource = dt.Copy();
-                    MidLabelCombox.DisplayMember = "cl_labelname";
-                    MidLabelCombox.ValueMember = "la_id";
-
-                    sql.Clear();
-                    sql.Append("select cl_labelname,cl_isdefault,la_id from customerlabel left join prodinout on pi_cardcode=cl_custcode ");
-                    sql.Append("left join customer on cu_code=cl_custcode left join label on la_code=CL_LABELCODE where ((pi_cardcode='" + pi_cardcode.Text + "' ");
-                    sql.Append("and  pi_inoutno='" + pi_inoutno.Text + "') or( cl_custcode='共用')) and cl_labeltype='外箱'");
-                    dt = (DataTable)dh.ExecuteSql(sql.ToString(), "select");
-                    OutBoxCombox.DataSource = dt.Copy();
-                    OutBoxCombox.DisplayMember = "cl_labelname";
-                    OutBoxCombox.ValueMember = "la_id";
-                    //重置采集项次
-                    CurrentItemIndex = 0;
-                    LogManager.DoLog("输入单号" + pi_inoutno.Text);
-                }
-                else {
-                    MessageBox.Show("当前出入库单号不存在!");
-                }
-            }
-        }
-
-        private void SingleLabelPrint_Click(object sender, EventArgs e)
-        {
-            string la_id = SingleLabelCombox.SelectedValue.ToString();
-            string cl_labelname = SingleLabelCombox.Text;
-            string LabelUrl = dh.getFieldDataByCondition("label left join customerlabel on la_code=cl_labelcode", "cl_labelurl", "la_id='" + la_id + "' and cl_labelname='" + cl_labelname + "'").ToString();
-            SingleDoc = lbl.Documents.Open(LabelUrl);
-            //查询该模板维护的所有参数
-            dt = (DataTable)dh.ExecuteSql("select lp_name,lp_sql from label left join LABELPARAMETER on la_id= lp_laid where la_id=" + la_id, "select");
-            if (dt.Rows.Count > 0)
-            {
-                //打印所有的选中行
-                for (int i = 0; i < LabelInf.RowCount; i++)
-                {
-                    //勾选了并且未打印
-                    if (LabelInf.Rows[i].Cells["Choose"].FormattedValue.ToString() == "True" && LabelInf.Rows[i].Cells["pib_ifpick"].FormattedValue.ToString() == "True")
-                    {
-                        //以标签模板的参数为基准,循环取数
-                        for (int j = 0; j < SingleDoc.Variables.FreeVariables.Count; j++)
-                        {
-                            //将维护的模板参数和模板本身的参数名称进行比对
-                            for (int k = 0; k < dt.Rows.Count; k++)
-                            {
-                                //名称相等的时候,取SQL进行值的查询
-                                if (SingleDoc.Variables.FreeVariables.Item(j + 1).Name == dt.Rows[k]["lp_name"].ToString())
-                                {
-                                    //获取打印执行的SQL
-                                    string sql = dt.Rows[k]["lp_sql"].ToString();
-                                    if (sql.IndexOf("{") == 0)
-                                    {
-                                        SingleDoc.Variables.FreeVariables.Item(j + 1).Value = dh.GetLabelParam(sql).ToString();
-                                        LogManager.DoLog("打印参数" + SingleDoc.Variables.FreeVariables.Item(j + 1).Name + "赋值," + "取值SQL:" + dt.Rows[k]["lp_sql"].ToString() + ",取到值" + SingleDoc.Variables.FreeVariables.Item(j + 1).Value);
-                                    }
-                                    else {
-                                        sql = sql.Substring(0, sql.IndexOf("{"));
-                                        //获取对应行的pib_id
-                                        string pib_id = LabelInf.Rows[i].Cells["pib_id1"].Value.ToString();
-                                        SingleDoc.Variables.FreeVariables.Item(j + 1).Value = dh.GetLabelParam(sql + pib_id).ToString();
-                                        LogManager.DoLog("打印参数" + SingleDoc.Variables.FreeVariables.Item(j + 1).Name + "赋值," + "取值SQL:" + dt.Rows[k]["lp_sql"].ToString() + ",取到值" + SingleDoc.Variables.FreeVariables.Item(j + 1).Value);
-                                    }
-                                }
-                            }
-                        }
-                        //保存参数打印
-                        SingleDoc.Save();
-                        SingleDoc.Printer.SwitchTo(SingleLabelPrinter.Text);
-                        SingleDoc.PrintDocument();
-                        LogManager.DoLog("执行打印单盘,pib_id:" + LabelInf.Rows[i].Cells["pib_id1"].Value.ToString());
-                        //勾选为已打印
-                        LabelInf.Rows[i].Cells["pib_ifprint"].Value = true;
-                    }
-                }
-            }
-            else {
-                BaseUtil.ShowError("此模板尚未维护参数");
-            }
-        }
-
-        private void MidLabelPrint_Click(object sender, EventArgs e)
-        {
-            if (MidLabelNum.Text == "")
-            {
-                BaseUtil.ShowError("手动打印必须填写盒号");
-            }
-            bool FindMidLabel = false;
-
-            if (MidLabelCombox.SelectedValue != null)
-            {
-                string la_id = MidLabelCombox.SelectedValue.ToString();
-                string cl_labelname = MidLabelCombox.Text;
-                string LabelUrl = dh.getFieldDataByCondition("label left join customerlabel on la_code=cl_labelcode", "cl_labelurl", "la_id='" + la_id + "' and cl_labelname='" + cl_labelname + "'").ToString();
-                MidDoc = lbl.Documents.Open(LabelUrl);
-                //中盒号所在的行
-                int MidLabelRowIndex = 0;
-                //查找是否存在该中盒号
-                for (int i = 0; i < LabelInf.RowCount; i++)
-                {
-                    if (MidLabelNum.Text == LabelInf.Rows[i].Cells["pib_outboxcode1"].Value.ToString())
-                    {
-                        //找到了输入的中盒号停止循环
-                        FindMidLabel = true;
-                        MidLabelRowIndex = i;
-                        break;
-                    }
-                }
-                //找到了指定的盒号
-                if (FindMidLabel)
-                {
-                    dt = (DataTable)dh.ExecuteSql("select lp_name,lp_sql from label left join LABELPARAMETER on la_id= lp_laid where la_id=" + la_id, "select");
-                    for (int j = 0; j < MidDoc.Variables.FreeVariables.Count; j++)
-                    {
-                        //将维护的模板参数和模板本身的参数名称进行比对
-                        for (int k = 0; k < dt.Rows.Count; k++)
-                        {
-                            //名称相等的时候,取SQL进行值的查询
-                            if (MidDoc.Variables.FreeVariables.Item(j + 1).Name == dt.Rows[k]["lp_name"].ToString())
-                            {
-                                //获取对应行的pib_id
-                                string pib_id = LabelInf.Rows[MidLabelRowIndex].Cells["pib_id1"].Value.ToString();
-                                string pib_outboxcode1 = LabelInf.Rows[MidLabelRowIndex].Cells["pib_outboxcode1"].Value.ToString();
-                                //获取打印执行的SQL
-                                string sql = dt.Rows[k]["lp_sql"].ToString();
-                                //select * from productiobarcode where pib_id={pib_id} and pib_outboxcode1={pib_outboxcode1}
-                                try
-                                {
-                                    //获取打印执行的SQL
-                                    if (sql.IndexOf("{") == 0)
-                                    {
-                                        MidDoc.Variables.FreeVariables.Item(j + 1).Value = dh.GetLabelParam(sql).ToString();
-                                        LogManager.DoLog("打印参数" + MidDoc.Variables.FreeVariables.Item(j + 1).Name + "赋值," + "取值SQL:" + dt.Rows[k]["lp_sql"].ToString() + ",取到值" + MidDoc.Variables.FreeVariables.Item(j + 1).Value);
-                                    }
-                                    else {
-                                        string ExeSQL = sql.Substring(0, sql.IndexOf("{")) + pib_id + sql.Substring(sql.IndexOf("}") + 1);
-                                        ExeSQL = ExeSQL.Substring(0, ExeSQL.IndexOf("{")) + pib_outboxcode1;
-                                        MidDoc.Variables.FreeVariables.Item(j + 1).Value = dh.GetLabelParam(ExeSQL).ToString();
-                                        LogManager.DoLog("打印参数" + MidDoc.Variables.FreeVariables.Item(j + 1).Name + "赋值," + "取值SQL:" + dt.Rows[k]["lp_sql"].ToString() + ",取到值" + MidDoc.Variables.FreeVariables.Item(j + 1).Value);
-                                    }
-                                }
-                                catch (Exception)
-                                {
-                                    BaseUtil.ShowError("SQL维护不正确,请检查SQL语句\n" + sql);
-                                }
-                            }
-                        }
-                    }
-                    //保存参数打印
-                    MidDoc.Save();
-                    MidDoc.Printer.SwitchTo(MidLabelPrinter.Text);
-                    MidDoc.PrintDocument();
-                    LogManager.DoLog("执行打印中盒,pib_id:" + LabelInf.Rows[MidLabelRowIndex].Cells["pib_id1"].Value.ToString());
-                }
-                else {
-                    BaseUtil.ShowError("该出入库单未找到该中盒号!");
-                }
-            }
-            else {
-                MessageBox.Show("未维护中盒模板");
-            }
-        }
-
-        private void OutBoxLabelPrint_Click(object sender, EventArgs e)
-        {
-            if (OutBoxNum.Text == "")
-            {
-                BaseUtil.ShowError("手动打印必须填写箱号");
-            }
-            bool FindMidLabel = false;
-            string la_id = OutBoxCombox.SelectedValue.ToString();
-            string cl_labelname = OutBoxCombox.Text;
-            string LabelUrl = dh.getFieldDataByCondition("label left join customerlabel on la_code=cl_labelcode", "cl_labelurl", "la_id='" + la_id + "' and cl_labelname='" + cl_labelname + "'").ToString();
-            OutBoxDoc = lbl.Documents.Open(LabelUrl);
-            //中盒号所在的行
-            int OutBoxLabelRowIndex = 0;
-            //查找是否存在该中盒号
-            for (int i = 0; i < LabelInf.RowCount; i++)
-            {
-                if (OutBoxNum.Text == LabelInf.Rows[i].Cells["pib_outboxcode2"].Value.ToString())
-                {
-                    //找到了输入的中盒号停止循环
-                    FindMidLabel = true;
-                    OutBoxLabelRowIndex = i;
-                    break;
-                }
-            }
-            //找到了指定的盒号
-            if (FindMidLabel)
-            {
-                dt = (DataTable)dh.ExecuteSql("select lp_name,lp_sql,lp_valuetype from label left join LABELPARAMETER on la_id= lp_laid where la_id=" + la_id, "select");
-                for (int j = 0; j < OutBoxDoc.Variables.FreeVariables.Count; j++)
-                {
-                    //将维护的模板参数和模板本身的参数名称进行比对
-                    for (int k = 0; k < dt.Rows.Count; k++)
-                    {
-                        //名称相等的时候,取SQL进行值的查询
-                        if (OutBoxDoc.Variables.FreeVariables.Item(j + 1).Name == dt.Rows[k]["lp_name"].ToString())
-                        {
-                            //如果毛重填写的是毛重或者净重
-                            if (dt.Rows[k]["lp_valuetype"].ToString() == "字符串" && dt.Rows[k]["lp_sql"].ToString() == "GW")
-                            {
-                                OutBoxDoc.Variables.FreeVariables.Item(j + 1).Value = WeightGross.Text;
-                                LogManager.DoLog("打印参数毛重赋值," + WeightGross.Text);
-                            }
-                            else if (dt.Rows[k]["lp_valuetype"].ToString() == "字符串" && dt.Rows[k]["lp_sql"].ToString() == "NW")
-                            {
-                                OutBoxDoc.Variables.FreeVariables.Item(j + 1).Value = WeightNet.Text;
-                                LogManager.DoLog("打印参数净重赋值," + WeightNet.Text);
-                            }
-                            else {
-                                //获取对应行的pib_id
-                                string pib_id = LabelInf.Rows[OutBoxLabelRowIndex].Cells["pib_id1"].Value.ToString();
-                                string pib_outboxcode2 = LabelInf.Rows[OutBoxLabelRowIndex].Cells["pib_outboxcode2"].Value.ToString();
-                                //获取打印执行的SQL
-                                string sql = dt.Rows[k]["lp_sql"].ToString();
-                                //select * from productiobarcode where pib_id={pib_id} and pib_outboxcode1={pib_outboxcode1}
-                                try
-                                {
-                                    string ExeSQL = sql.Substring(0, sql.IndexOf("{")) + pib_id + sql.Substring(sql.IndexOf("}") + 1);
-                                    ExeSQL = ExeSQL.Substring(0, ExeSQL.IndexOf("{")) + pib_outboxcode2;
-                                    OutBoxDoc.Variables.FreeVariables.Item(j + 1).Value = dh.GetLabelParam(ExeSQL).ToString();
-                                    LogManager.DoLog("打印参数" + OutBoxDoc.Variables.FreeVariables.Item(j + 1).Name + "赋值," + "取值SQL:" + dt.Rows[k]["lp_sql"].ToString() + ",取到值" + OutBoxDoc.Variables.FreeVariables.Item(j + 1).Value);
-                                }
-                                catch (Exception)
-                                {
-                                    LogManager.DoLog("SQL维护不正确,请检查SQL语句" + sql);
-                                    BaseUtil.ShowError("SQL维护不正确,请检查SQL语句\n" + sql);
-                                }
-                            }
-                        }
-                    }
-                }
-                //保存参数打印
-                OutBoxDoc.Save();
-                OutBoxDoc.Printer.SwitchTo(OutBoxPrinter.Text);
-                OutBoxDoc.PrintDocument();
-                LogManager.DoLog("执行打印外箱,pib_id:" + LabelInf.Rows[OutBoxLabelRowIndex].Cells["pib_id1"].Value.ToString());
-            }
-            else {
-                BaseUtil.ShowError("该出入库单未找到该外箱号!");
-            }
-        }
-
-        private void CleanDetail_Click(object sender, EventArgs e)
-        {
-            ArrayList<string> DeleteID = new ArrayList<string>();
-            for (int i = 0; i < LabelInf.RowCount; i++)
-            {
-                if (LabelInf.Rows[i].Cells["Choose"].FormattedValue.ToString() == "True")
-                {
-                    DeleteID.Add(LabelInf.Rows[i].Cells["pib_id1"].Value.ToString());
-                }
-            }
-            //勾选了删除的明细之后
-            if (DeleteID.ToArray().Length > 0)
-            {
-                string close = MessageBox.Show(this.ParentForm, "删除后不可恢复,是否确认删除", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question).ToString();
-                if (close.ToString() == "Yes")
-                {
-                    dh.BatchInsert("delete from prodiobarcode where pib_id=:pib_id", new string[] { "pib_id" }, DeleteID.ToArray());
-                    MessageBox.Show("删除成功");
-                    LoadGridData(sender, e);
-                    RefreshProcessData();
-                }
-            }
-            else {
-                MessageBox.Show("尚未勾选需要删除的明细");
-            }
-        }
-
-        /// <summary>
-        /// 刷新采集进度
-        /// </summary>
-        private void RefreshProcessData()
-        {
-            if (LabelInf.Rows.Count > 0)
-            {
-                //设置初始化的采集进度
-                int Count = 0;
-                int CurrentMidBoxCollectedCount = 0;
-                //当前盒号的总盘数
-                int CurrentMidBoxTotalCount = 0;
-                //未超出当前范围的时候
-
-                for (int i = 0; i < LabelInf.RowCount; i++)
-                {
-                    if (LabelInf.Rows[i].Cells["pib_ifpick"].FormattedValue.ToString() == "True")
-                    {
-                        Count++;
-                    }
-                    //和当前编辑箱号相等行
-                    if (LabelInf.Rows[i].Cells["pib_ifpick"].FormattedValue.ToString() == "True" && LabelInf.Rows[CurrentRowIndex].Cells["pib_outboxcode1"].Value.ToString() == LabelInf.Rows[i].Cells["pib_outboxcode1"].Value.ToString())
-                    {
-                        CurrentMidBoxCollectedCount++;
-                    }
-                    //当前盒号一共有几盘
-                    if (LabelInf.Rows[CurrentRowIndex].Cells["pib_outboxcode1"].Value.ToString() == LabelInf.Rows[i].Cells["pib_outboxcode1"].Value.ToString())
-                    {
-                        CurrentMidBoxTotalCount++;
-                    }
-                }
-                Capacity.Text = "可装" + CurrentMidBoxTotalCount.ToString() + "盘";
-                Installed.Text = "已装" + CurrentMidBoxCollectedCount.ToString() + "盘";
-                //设置当前的箱号和盒号
-                Process_outboxcode.Text = LabelInf.Rows[CurrentRowIndex].Cells["pib_outboxcode2"].Value.ToString();
-                Process_midboxcode.Text = LabelInf.Rows[CurrentRowIndex].Cells["pib_outboxcode1"].Value.ToString();
-                //设置当前总数和已采集数量
-                TotalCount.Text = LabelInf.RowCount.ToString();
-                CollectedCount.Text = Count.ToString();
-
-            }
-        }
-
-        /// <summary>
-        /// 自定义函数  加载明细行的数据,多处使用添加进函数
-        /// </summary>
-        /// <param name="sender"></param>
-        /// <param name="e"></param>
-        private void LoadGridData(object sender, EventArgs e)
-        {
-            sql.Clear();
-            sql.Append("select pib_id,pib_pdid,pib_piid,pib_pdno,pib_prodcode,pr_brand,pr_vendprodcode,");
-            sql.Append("pib_lotno,pib_datecode,pib_qty,pib_barcode,pib_outboxcode1 ,pib_outboxcode2,");
-            sql.Append("pib_ifpick, pib_ifprint from prodiobarcode left join prodiodetail on pib_piid=pd_piid and ");
-            sql.Append("pd_pdno=pib_pdno  and pd_prodcode=pib_prodcode left join product on ");
-            sql.Append("pr_code=pib_prodcode  where pd_piid='" + PI_ID + "' order by pd_id ,pib_id");
-            dt = (DataTable)dh.ExecuteSql(sql.ToString(), "select");
-            BaseUtil.FillDgvWithDataTable(LabelInf, dt);
-            //有数据的话默认取第一条的品牌去取采集策略
-            TotalCount.Text = LabelInf.RowCount.ToString();
-            if (LabelInf.RowCount > 0)
-            {
-                Brand = LabelInf.Rows[0].Cells["pr_brand"].FormattedValue.ToString();
-                if (Brand != "")
-                    sg_code.Text = dh.getFieldDataByCondition("scangroup", "sg_code", "sg_brand='" + Brand + "'").ToString();
-            }
-            //绑定数据之后往下找到未采集的数据显示在当前采集的栏目
-            for (int i = 0; i < LabelInf.RowCount; i++)
-            {
-                if (LabelInf.Rows[i].Cells["pib_ifpick"].FormattedValue.ToString() != "True")
-                {
-                    griddetno.Text = LabelInf.Rows[i].Cells["pib_pdno"].FormattedValue.ToString();
-                    pr_code.Text = LabelInf.Rows[i].Cells["pib_prodcode"].FormattedValue.ToString();
-                    pib_id.Text = LabelInf.Rows[i].Cells["pib_id1"].FormattedValue.ToString();
-                    CurrentRowIndex = LabelInf.Rows[i].Cells["pib_prodcode"].RowIndex;
-                    break;
-                }
-            }
-        }
-
-        /// <summary>
-        /// 重绘Cell的颜色
-        /// </summary>
-        /// <param name="sender"></param>
-        /// <param name="e"></param>
-        private void LabelInf_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
-        {
-            bool mouseOver = e.CellBounds.Contains(this.PointToClient(Cursor.Position));
-            if (e.ColumnIndex > 0)
-            {
-                if (LabelInf.Columns[e.ColumnIndex].Name == "pib_lotno" || LabelInf.Columns[e.ColumnIndex].Name == "pib_datecode" || LabelInf.Columns[e.ColumnIndex].Name == "pib_outboxcode1" || LabelInf.Columns[e.ColumnIndex].Name == "pib_outboxcode2")
-                {
-                    SolidBrush solidBrush = new SolidBrush(Color.FromArgb(51, 153, 255));
-                    e.Graphics.FillRectangle(mouseOver ? solidBrush : Brushes.LightSeaGreen, e.CellBounds);
-                    Rectangle border = e.CellBounds;
-                    border.Width -= 1;
-                    e.Graphics.DrawRectangle(Pens.White, border);
-                    e.PaintContent(e.CellBounds);
-                    e.Handled = true;
-                }
-                if (e.RowIndex >= 0)
-                {
-                    //重绘制定的Cell,表示采集的数量不匹配
-                    if (LabelInf.Columns[e.ColumnIndex].Name == "pib_qty" && PaintCell.ContainsKey(LabelInf.Rows[e.RowIndex].Cells["pib_qty"]))
-                    {
-                        SolidBrush solidBrush = new SolidBrush(Color.FromArgb(51, 153, 255));
-                        e.Graphics.FillRectangle(PaintCell[LabelInf.Rows[e.RowIndex].Cells["pib_qty"]] ? Brushes.ForestGreen : Brushes.Red, e.CellBounds);
-                        Rectangle border = e.CellBounds;
-                        border.Width -= 1;
-                        e.Graphics.DrawRectangle(Pens.Black, border);
-                        e.PaintContent(e.CellBounds);
-                        e.Handled = true;
-                    }
-                    //表示采集的供应商物料编号不匹配
-                    if (LabelInf.Columns[e.ColumnIndex].Name == "pr_vendprodcode" && PaintCell.ContainsKey(LabelInf.Rows[e.RowIndex].Cells["pr_vendprodcode"]))
-                    {
-                        SolidBrush solidBrush = new SolidBrush(Color.FromArgb(51, 153, 255));
-                        e.Graphics.FillRectangle(PaintCell[LabelInf.Rows[e.RowIndex].Cells["pr_vendprodcode"]] ? Brushes.ForestGreen : Brushes.Red, e.CellBounds);
-                        Rectangle border = e.CellBounds;
-                        border.Width -= 1;
-                        e.Graphics.DrawRectangle(Pens.Black, border);
-                        e.PaintContent(e.CellBounds);
-                        e.Handled = true;
-                    }
-                }
-            }
-        }
-
-        private void pr_code_SearchIconClick(object sender, EventArgs e)
-        {
-            pr_code.Condition = "  pd_inoutno='" + pi_inoutno.Text + "'";
-        }
-
-        private void OutBoxLabelPackage_Click(object sender, EventArgs e)
-        {
-            LogManager.DoLog("几个日志");
-            MaxOutBoxCode = MaxOutBoxCode + 1;
-        }
-
-        private void pr_code_UserControlTextChanged(object sender, EventArgs e)
-        {
-            //用户在重新勾选后重置采集项目的索引
-            CurrentItemIndex = 0;
-            for (int i = 0; i < LabelInf.RowCount; i++)
-            {
-                if (pr_code.Text == LabelInf.Rows[i].Cells["pib_prodcode"].Value.ToString() && LabelInf.Rows[i].Cells["pib_ifpick"].FormattedValue.ToString() != "True")
-                {
-                    CurrentRowIndex = i;
-                    break;
-                }
-            }
-        }
-
-        private void Refresh_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
-        {
-            KeyEventArgs e2 = new KeyEventArgs(Keys.Enter);
-            pi_inoutno_KeyDown(sender, e2);
-        }
-
-        /// <summary>
-        /// 采集明细切换
-        /// </summary>
-        /// <param name="sender"></param>
-        /// <param name="e"></param>
-        private void griddetno_KeyDown(object sender, KeyEventArgs e)
-        {
-            if (Keys.Enter == e.KeyData)
-            {
-                bool FindDetno = false;
-                for (int i = 0; i < LabelInf.RowCount; i++)
-                {
-                    if (LabelInf.Rows[i].Cells["pib_pdno"].Value.ToString() == griddetno.Text && LabelInf.Rows[i].Cells["pib_ifpick"].FormattedValue.ToString() != "True")
-                    {
-                        FindDetno = true;
-                        CurrentItemIndex = 0;
-                        CurrentRowIndex = i;
-                        RemindUser();
-                        break;
-                    }
-                }
-                if (!FindDetno)
-                {
-                    BaseUtil.ShowError("不存在未采集的明细序号" + griddetno.Text);
-                }
-            }
-        }
-
-        private void AutoPrintMidLabel()
-        {
-            bool FullBox = true;
-            //判断所有盒号未该盒的是否勾选已采集
-            for (int i = 0; i < LabelInf.RowCount; i++)
-            {
-                if (LabelInf.Rows[i].Cells["pib_outboxcode1"].Value.ToString() == LabelInf.Rows[CurrentRowIndex].Cells["pib_outboxcode1"].Value.ToString())
-                {
-                    if (LabelInf.Rows[i].Cells["pib_ifpick"].FormattedValue.ToString() != "True")
-                    {
-                        FullBox = false;
-                    }
-                }
-            }
-            //如果当前箱号已经装满了
-            if (FullBox)
-            {
-                if (MidLabelCombox.SelectedValue != null)
-                {
-                    string la_id = MidLabelCombox.SelectedValue.ToString();
-                    string cl_labelname = MidLabelCombox.Text;
-                    string LabelUrl = dh.getFieldDataByCondition("label left join customerlabel on la_code=cl_labelcode", "cl_labelurl", "la_id='" + la_id + "' and cl_labelname='" + cl_labelname + "'").ToString();
-                    MidDoc = lbl.Documents.Open(LabelUrl);
-                    dt = (DataTable)dh.ExecuteSql("select lp_name,lp_sql from label left join LABELPARAMETER on la_id= lp_laid where la_id=" + la_id, "select");
-                    for (int j = 0; j < MidDoc.Variables.FreeVariables.Count; j++)
-                    {
-                        //将维护的模板参数和模板本身的参数名称进行比对
-                        for (int k = 0; k < dt.Rows.Count; k++)
-                        {
-                            //名称相等的时候,取SQL进行值的查询
-                            if (MidDoc.Variables.FreeVariables.Item(j + 1).Name == dt.Rows[k]["lp_name"].ToString())
-                            {
-                                //获取对应行的pib_id
-                                string pib_id = LabelInf.Rows[CurrentRowIndex].Cells["pib_id1"].Value.ToString();
-                                string pib_outboxcode1 = LabelInf.Rows[CurrentRowIndex].Cells["pib_outboxcode1"].Value.ToString();
-                                //获取打印执行的SQL
-                                string sql = dt.Rows[k]["lp_sql"].ToString();
-                                //select * from productiobarcode where pib_id={pib_id} and pib_outboxcode1={pib_outboxcode1}
-                                try
-                                {
-                                    string ExeSQL = sql.Substring(0, sql.IndexOf("{")) + pib_id + sql.Substring(sql.IndexOf("}") + 1);
-                                    ExeSQL = ExeSQL.Substring(0, ExeSQL.IndexOf("{")) + pib_outboxcode1;
-                                    MidDoc.Variables.FreeVariables.Item(j + 1).Value = dh.GetLabelParam(ExeSQL).ToString();
-                                    LogManager.DoLog("打印参数" + MidDoc.Variables.FreeVariables.Item(j + 1).Name + "赋值," + "取值SQL:" + dt.Rows[k]["lp_sql"].ToString() + ",取到值" + MidDoc.Variables.FreeVariables.Item(j + 1).Value);
-                                }
-                                catch (Exception)
-                                {
-                                    BaseUtil.ShowError("SQL维护不正确,请检查SQL语句");
-                                }
-                            }
-                        }
-                    }
-                    //保存参数打印
-                    MidDoc.Save();
-                    MidDoc.Printer.SwitchTo(MidLabelPrinter.Text);
-                    MidDoc.PrintDocument();
-                    LogManager.DoLog("执行打印中盒,pib_id:" + LabelInf.Rows[CurrentRowIndex].Cells["pib_id1"].Value.ToString());
-                }
-                else {
-                    MessageBox.Show("未维护中盒模板");
-                }
-            }
-        }
-
-        private void LoginOut_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
-        {
-            Login login = new Login();
-            logout = true;
-            Hide();
-            login.ShowDialog();
-            Close();
-        }
-    }
-}

+ 0 - 335
UAS-出货标签管理/客户标签维护.txt

@@ -1,335 +0,0 @@
-using LabelManager2;
-using Seagull.BarTender.Print;
-using System;
-using System.Data;
-using System.Drawing;
-using System.Text;
-using System.Windows.Forms;
-using 贴标机标签打印.CustomControl;
-using 贴标机标签打印.Properties;
-using 贴标机标签打印.PublicMethod;
-
-namespace 贴标机标签打印
-{
-    public partial class 客户标签维护 : Form
-    {
-        DataHelper dh;
-        DataTable dt;
-        //设置Grid中Combox的静态数据,这个格式是必须的,#前面是展示值,#后面是实际值
-        string[] labeltype = { "机身标#机身标", "彩盒标#彩盒标", "卡通箱标#卡通箱标", "大箱标#大箱标", "栈板标#栈板标" };
-        string[] defaultype = { "是#-1", "否#0" };
-        //记录上次筛选时的条件,如果本次和上次相同则不进行查询                      
-        string LastCondition = "";
-        //用于拼接条件查询
-        StringBuilder condition = new StringBuilder();
-        StringBuilder sql = new StringBuilder();
-        /*CodeSoft新建打印机引擎*/
-        ApplicationClass lbl;
-        Document doc;
-        /*BarTender新建打印机引擎*/
-        //private Engine engine = null;
-        //private LabelFormatDocument format ;
-        //点击行的LabelCode
-        string LabelCode = "";
-        //模板的路径
-        string LabelPath = "";
-        //模板编号的ID
-        string CL_ID1;
-        //Label表的主键,用于弹窗的传参
-        string La_id;
-        //参数个数
-        int ParamNum;
-        //添加在grid末列的操作列
-        DataGridViewImageColumn OperateColumn = new DataGridViewImageColumn
-        {
-            Image = Resources.preview_16px_25980_easyicon_net,
-            Width = 40,
-            Name = "预览",
-            ToolTipText = "预览模板参数",
-            Tag = "Read",
-            AutoSizeMode = DataGridViewAutoSizeColumnMode.None
-        };
-
-        AutoSizeFormClass asc = new AutoSizeFormClass();
-        public 客户标签维护()
-        {
-            InitializeComponent();
-            cu_code.FormName = Name;
-            cu_code.Caller = "Make!CustLabel";
-            cu_code.SetValueField = new string[] { "cu_code", "cu_name" };
-            cl_custcode1.FormName = Name;
-            cl_custcode1.Caller = "Make!CustLabel";
-            cl_custcode1.SetValueField = new string[] { "cl_custcode1" };
-            la_code.FormName = Name;
-            la_code.Caller = "Make!CustLabel";
-            la_code.SetValueField = new string[] { "la_code" };
-        }
-
-        private void 条码维护_Load(object sender, EventArgs e)
-        {
-            asc.controllInitializeSize(this);
-            dh = new DataHelper();
-            condition.Append("");
-            lbl = new ApplicationClass();
-            // engine = new Engine(true);
-            ChooseAll.ChooseAll(LabelDataGridView);
-
-            asc.controlAutoSize(this);
-            //加载下拉框的静态值
-            LoadData();
-        }
-
-        private void LabelDataGridView_CellContentClick(object sender, DataGridViewCellEventArgs e)
-        {
-            if (LabelDataGridView.Columns[e.ColumnIndex].HeaderText == "预览")
-            {
-                if (LabelCode != LabelDataGridView.Rows[e.RowIndex].Cells["cl_labelcode"].Value.ToString()) {
-                    //获取路径和标签名称
-                    LabelPath = LabelDataGridView.Rows[e.RowIndex].Cells["cl_labelurl"].Value.ToString();
-                    LabelCode = LabelDataGridView.Rows[e.RowIndex].Cells["cl_labelcode"].Value.ToString();
-                    CL_ID1 = LabelDataGridView.Rows[e.RowIndex].Cells["cl_id"].Value.ToString();
-                    La_id = LabelDataGridView.Rows[e.RowIndex].Cells["la_id"].Value.ToString();
-                    if (CodeSoft.Checked)
-                    {
-                        //打开文件需要至少2秒
-                        doc = lbl.Documents.Open(LabelPath, true);
-                        //如果文件已不存在则进行提示
-                        if (doc == null)
-                        {
-                            //LabelParamPreview.SelectionColor = Color.Red;
-                            //LabelParamPreview.AppendText("指定路径已找不到该文件\n");
-                            return;
-                        }
-                        //打印变量个数
-                        //LabelParamPreview.AppendText("变量个数:" + doc.Variables.FreeVariables.Count + "\n");
-                        //获取打印变量名称,CodeSoft10支持此读取参数,6.4版本暂未找到读取参数的方法
-                        //object vars = doc.ReadVariables(enumDataSource.lppxDataSourceFree);
-                        //object[,] keyValueArrays = (object[,])vars;
-                        ParamNum = doc.Variables.FreeVariables.Count;
-                        string[] ParamName = new string[ParamNum];
-                        for (int i = 0; i < ParamNum; i++)
-                        {
-                            ParamName[i] = doc.Variables.FreeVariables.Item(i + 1).Name;
-                        }
-                        doc = lbl.Documents.Open(LabelPath, true);
-                        int y = 185;
-                        for (int i = 0; i < ParamName.Length; i++)
-                        {
-                            //变量的名称Label
-                            Label Param = new Label();
-                            Param.Text = ParamName[i];
-                            Param.Anchor = AnchorStyles.Left;
-                            Param.Anchor = AnchorStyles.Top;
-                            Param.Location = new Point(1035, y + 5);
-                            this.Controls.Add(Param);
-                            //维护变量的打印测试参数
-                            EnterTextBox TempParam = new EnterTextBox();
-                            TempParam.Anchor = AnchorStyles.Left;
-                            TempParam.Anchor = AnchorStyles.Top;
-                            TempParam.Name = "Temp" + ParamName[i];
-                            TempParam.Location = new Point(1135, y);
-                            y = y + 30;
-                            TempParam.Size = new Size(150, 22);
-                            this.Controls.Add(TempParam);
-                            y = y + 30;
-                        }
-                    }
-                    //CodeSoftPrintParam parfrom = new CodeSoftPrintParam(CL_ID1, La_id, ParamName, doc);
-                    ////在这个窗体关闭的时候刷新页面的数据
-                    //parfrom.FormClosing += Screen_Click;
-                    //BaseUtil.SetFormCenter(parfrom);
-                    //parfrom.ShowDialog();
-                }
-                else if (Bartender.Checked)
-                {
-                    string ID = LabelDataGridView.Rows[e.RowIndex].Cells["cl_id"].Value.ToString();
-                    string fileName = LabelDataGridView.Rows[e.RowIndex].Cells["cl_labelurl"].Value.ToString();
-                    System.Drawing.Image image = LabelFormatThumbnail.Create(fileName, Color.LightGray, 434, 347);
-                    BartenderPreview LabelPreView = new BartenderPreview(ID, image);
-                    LabelPreView.StartPosition = FormStartPosition.CenterParent;
-                    LabelPreView.ShowDialog();
-                }
-            }
-        }
-
-        private void Screen_Click(object sender, EventArgs e)
-        {
-            sql.Clear();
-            condition.Clear();
-            //如果条件全部为空的时候
-            if (cu_code.Text == "" && cu_name.Text == "")
-            {
-                LoadData();
-            }
-            else
-            {
-                sql.Append("select cu_name,cl_labelurl,cl_labeltype,cl_isdefault,cl_custcode,cl_id,cl_labelcode,cl_detno,cl_labelsoft from customerlabel left join customer on cl_custcode=cu_code order by cl_custcode");
-                //设置筛选的条件
-                condition.Append(BaseUtil.GetScreenSqlCondition(cu_code));
-                //最终刷选条件拼接成的sql
-                LoadData();
-            }
-        }
-
-        private void Update_Click(object sender, EventArgs e)
-        {
-            string LabelSoft = "";
-            //需要处理新增的行和原有数据然后更新的行
-            if (CodeSoft.Checked)
-            {
-                LabelSoft = "CodeSoft";
-            }
-            if (Bartender.Checked)
-            {
-                LabelSoft = "Bartender";
-            }
-            DataTable dt = (DataTable)LabelDataGridView.DataSource;
-            //如果有改变的行才传递到后台
-            if (dt.GetChanges() != null)
-            {
-                //如果是新增的默认加上Radio当前选中的打印软件
-                for (int i = 0; i < LabelDataGridView.Rows.Count; i++)
-                {
-                    if (LabelDataGridView.Rows[i].Cells["cl_labelsoft"].Value.ToString() == "")
-                    {
-                        LabelDataGridView.Rows[i].Cells["cl_labelsoft"].Value = LabelSoft;
-                    }
-                }
-                string sql = "Insert into customerlabel (cl_ID,cl_custCODE,cl_LABELTYPE,cl_LABELCODE,cl_LABELURL,cl_DETNO,cl_LABELSOFT,cl_ISDEFAULT) values( customerlabel_seq.nextval,'" + cu_code.Text + "',:cl_LABELTYPE,:cl_LABELCODE,:cl_LABELURL,:cl_DETNO,:cl_LABELSOFT,:cl_ISDEFAULT )";
-                dh.UpDateTableByCondition(dt.GetChanges(), "customerlabel", "cl_id", sql.ToLower());
-                LoadData();
-            }
-        }
-
-        private void DeleteDetail_Click(object sender, EventArgs e)
-        {
-            string[] deleteid = new string[LabelDataGridView.RowCount];
-            for (int i = 0; i < LabelDataGridView.RowCount; i++)
-            {
-                deleteid[i] = LabelDataGridView.Rows[i].Cells["cl_id"].Value.ToString();
-            }
-            dh.DeleteDataByID("customerlabel", "cl_id", deleteid);
-            LoadData();
-        }
-
-        private void OpenFolder_Click(object sender, EventArgs e)
-        {
-            //根据勾选的不同设置不同的文件后缀过滤
-            if (Bartender.Checked)
-            {
-                openFileDialog1.Filter = "(*.btw)|*.btw";
-            }
-            else if (CodeSoft.Checked)
-            {
-                openFileDialog1.Filter = "(*.lab)|*.lab";
-            }
-            DialogResult result = openFileDialog1.ShowDialog();
-            if (result == DialogResult.OK)
-            {
-                FolderPath.Text = openFileDialog1.FileName;
-                for (int i = 0; i < LabelDataGridView.Rows.Count; i++)
-                {
-                    if (LabelDataGridView.Rows[i].Cells["Choose"].Value != null)
-                    {
-                        if ((bool)LabelDataGridView.Rows[i].Cells["Choose"].Value == true)
-                        {
-                            LabelDataGridView.Rows[i].Cells["cl_labelurl"].Value = FolderPath.Text;
-                        }
-                    }
-                }
-            }
-        }
-
-        private void LabelDataGridView_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
-        {
-            if (LabelDataGridView.Columns[e.ColumnIndex].Name == "cl_isdefault")
-            {
-                if (e.Value != null)
-                {
-                    switch (e.Value.ToString())
-                    {
-                        case "0":
-                            e.Value = "否";
-                            break;
-                        case "1":
-                            e.Value = "是";
-                            break;
-                        default:
-                            break;
-                    }
-                }
-            }
-        }
-
-        private void LabelDataGridView_DataError(object sender, DataGridViewDataErrorEventArgs e)
-        {
-            //覆盖参数错误的事件,使得不会报错    
-        }
-
-        private void LoadData()
-        {
-            //如果条件和上次一样则不进行数据读取
-            //if (LastCondition != condition.ToString())
-            {
-                //如果没有任何筛选条件直接选取customerlabel的数据
-                if (sql.Length == 0)
-                {
-                    dt = (DataTable)dh.ExecuteSql("select cu_name,cl_labelurl,cl_labeltype,cl_isdefault,cl_custcode,cl_id,cl_labelcode,cl_detno,cl_labelsoft,la_id from customerlabel left join customer on cl_custcode=cu_code left join label on la_code=cl_custcode order by cl_custcode", "select");
-                }
-                else
-                {
-                    dt = (DataTable)dh.ExecuteSql(sql.ToString(), "select");
-                }
-                BaseUtil.FillDgvWithDataTable(LabelDataGridView, dt);
-                string Field = BaseUtil.GetGridViewSelectContent(LabelDataGridView);
-                pagination1.BindDataToNavigator(LabelDataGridView, "CustomerLabel left join customer on cl_custcode=cu_code left join label on la_code=cl_custcode", Field, "cl_id", "", condition.Replace("where", "").ToString(), OperateColumn);
-                LastCondition = condition.ToString();
-            }
-        }
-
-        private void PrintTest_Click(object sender, EventArgs e)
-        {
-            Console.WriteLine(LabelCode);
-            if (LabelCode != "")
-            {
-                doc.Printer.SwitchTo(PrinterList.Text);
-                doc.PrintDocument();
-            }
-        }
-
-        private void 产品标签维护_FormClosing(object sender, FormClosingEventArgs e)
-        {
-            try
-            {
-                lbl.Application.Quit();
-            }
-            catch (Exception)
-            {
-            }
-        }
-
-        private void Save_Click(object sender, EventArgs e)
-        {
-            if (cl_custcode1.Text != "" && la_type.Text != "" && FolderPath.Text != "" && la_code.Text != "")
-            {
-                string SoftWare = Bartender.Checked ? "Bartender" : "CodeSoft";
-                sql.Clear();
-                sql.Append("insert into customerlabel (cl_id,cl_labelcode,cl_custcode,cl_labeltype,cl_labelurl,cl_labelsoft) values( customerlabel_seq.nextval, ");
-                sql.Append("'" + la_code.Text + "','" + cl_custcode1.Text + "','" + la_type.Text + "','" + FolderPath.Text + "','" + SoftWare + "')");
-                dh.ExecuteSql(sql.ToString(), "insert");
-                sql.Clear();
-                MessageBox.Show("保存成功!");
-                LoadData();
-            }
-            else
-            {
-                MessageBox.Show("请填写完整参数!");
-            }
-        }
-
-        private void 产品标签维护_SizeChanged(object sender, EventArgs e)
-        {
-            asc.controlAutoSize(this);
-        }
-    }
-}

+ 0 - 661
UAS-出货标签管理/新建文本文档.txt

@@ -1,661 +0,0 @@
-using System;
-using System.Data;
-using System.Drawing;
-using System.Windows.Forms;
-using 贴标机标签打印.CustomControl.GroupBoxWithBorder;
-using 贴标机标签打印.PublicMethod;
-using System.Text.RegularExpressions;
-using System.Text;
-using LabelManager2;
-using System.Collections.Generic;
-
-namespace 贴标机标签打印
-{
-    public partial class 贴标机条码打印 : Form
-    {
-        AutoSizeFormClass asc = new AutoSizeFormClass();
-
-        DataHelper dh;
-
-        DataTable dt;
-
-        StringBuilder sql = new StringBuilder();
-
-        /*CodeSoft新建打印机引擎*/
-        ApplicationClass lbl;
-        /*单盘打印文件*/
-        Document SingleDoc;
-        /*中盒打印文件*/
-        Document MidDoc;
-        /*外箱打印文件*/
-        Document OutBoxDoc;
-
-        string PI_ID;
-        //当前扫描的项目
-        int CurrentIndex = 0;
-        //当前扫描的所在行
-        int CurrentRowIndex = 0;
-        //需要重绘的Cell的RowIndx
-        int CellRowIndex = -2;
-        /*正则表达式用于项目匹配*/
-        Regex reg;
-        /*标识一行采集是否通过*/
-        bool CollectPass = true;
-        /*用于存放采集项目的Grid信息*/
-        Dictionary<string, Dictionary<string, string>> SiItem;
-
-        //使用二位数组进行排序
-        ArrayList<ArrayList<string>> Data;
-        ArrayList<string> GetData;
-
-        public 贴标机条码打印()
-        {
-            InitializeComponent();
-        }
-
-        protected override void WndProc(ref System.Windows.Forms.Message m)
-        {
-            //拦截双击标题栏、移动窗体的系统消息  
-            if (m.Msg != 0xA3)
-            {
-                base.WndProc(ref m);
-            }
-        }
-
-        private void 贴标机条码打印_Load(object sender, EventArgs e)
-        {
-            asc.controllInitializeSize(this);
-            dh = new DataHelper();
-            pi_inoutno.Focus();
-            //将本地读取的打印机设置进Combox,并选中默认打印机
-            sg_code.Caller = "LabelMachine";
-            sg_code.FormName = Name;
-            sg_code.SetValueField = new string[] { "sg_code" };
-            pr_code.Caller = "LabelMachine";
-            pr_code.FormName = Name;
-            pr_code.SetValueField = new string[] { "pr_code", "pib_id" };
-            ChooseAll.ChooseAll(LabelInf);
-            Point pt = new Point();
-            int ScreenHeight = Screen.GetWorkingArea(pt).Width;
-            //如果分辨率大的设置的字体对应的变大 
-            if (ScreenHeight > 1366)
-            {
-                foreach (Control ctl in Controls)
-                {
-                    if (ctl is CheckBox || ctl is Label || ctl is RadioButton)
-                    {
-                        ctl.Font = new Font("微软雅黑", 10.5F, FontStyle.Regular, GraphicsUnit.Point, 134);
-                    }
-                    if (ctl is GroupBoxWithBorder)
-                    {
-                        GroupBoxWithBorder gb = ctl as GroupBoxWithBorder;
-                        for (int i = 0; i < gb.Controls.Count; i++)
-                        {
-                            if (gb.Controls[i] is CheckBox || gb.Controls[i] is Label || gb.Controls[i] is RadioButton)
-                            {
-                                gb.Controls[i].Font = new Font("微软雅黑", 10.5F, FontStyle.Regular, GraphicsUnit.Point, 134);
-                            }
-                        }
-                    }
-                }
-            }
-            //设置获取当前屏幕大小自动全屏但是保留任务栏
-            Rectangle ScreenArea = Screen.GetWorkingArea(this);
-            Top = 0;
-            Left = 0;
-            Width = ScreenArea.Width;
-            Height = ScreenArea.Height;
-            asc.controlAutoSize(this);
-            //实例化打印进程
-            try
-            {
-                lbl = new ApplicationClass();
-            }
-            catch (Exception)
-            {
-                MessageBox.Show("未安装CodeSoft软件或者版本错误");
-            }
-        }
-
-        private void 贴标机条码打印_SizeChanged(object sender, EventArgs e)
-        {
-            asc.controlAutoSize(this);
-        }
-
-        private void GenerateBarCode_Click(object sender, EventArgs e)
-        {
-            生成条码 form = new 生成条码(pi_inoutno.Text);
-            form.FormClosed += LoadGridData;
-            BaseUtil.SetFormCenter(form);
-            form.ShowDialog();
-        }
-
-        private void CollectionSetting_Click(object sender, EventArgs e)
-        {
-            采集策略 form = new 采集策略(sg_code.Text);
-            form.FormClosed += sg_code_UserControlTextChanged;
-            BaseUtil.SetFormCenter(form);
-            form.ShowDialog();
-        }
-
-        private void LabelMaintain_Click(object sender, EventArgs e)
-        {
-            客户标签维护 form = new 客户标签维护();
-            BaseUtil.SetFormCenter(form);
-            form.ShowDialog();
-        }
-
-        /// <summary>
-        /// 保存明细
-        /// </summary>
-        /// <param name="sender"></param>
-        /// <param name="e"></param>
-        private void SaveGrid_Click(object sender, EventArgs e)
-        {
-            DataTable savedt = LabelInf.DataSource as DataTable;
-            if (LabelInf.DataSource != null && savedt.GetChanges() != null)
-            {
-                dh.UpDateTableByCondition((LabelInf.DataSource as DataTable).GetChanges(), "ProdioBarCode", "pib_id");
-            }
-        }
-
-        //放大镜选择后出发的事件
-        private void sg_code_UserControlTextChanged(object sender, EventArgs e)
-        {
-            //取已启用的的按照采集次序排序
-            dt = (DataTable)dh.ExecuteSql("select si_item,si_detno,sg_separator,si_kind,si_expression,si_index,si_indexstring,si_length from scanitem left join scangroup on si_sgid=sg_id where sg_code='" + sg_code.Text + "' and si_enable<>0 order by si_detno", "select");
-            BaseUtil.FillDgvWithDataTable(Si_ItemDGV, dt);
-            if (dt.Rows.Count > 0)
-            {
-                sg_separator.Text = dt.Rows[0]["sg_separator"].ToString();
-            }
-            Data = new ArrayList<ArrayList<string>>();
-            GetData = new ArrayList<string>();
-            //将数据添加进一个List的二维数组中
-            for (int i = 0; i < Si_ItemDGV.RowCount; i++)
-            {
-                //如果不包含这个则添加进数组
-                if (!GetData.Contains(Si_ItemDGV.Rows[i].Cells["si_item"].Value.ToString()))
-                {
-                    GetData.Add(Si_ItemDGV.Rows[i].Cells["si_item"].Value.ToString());
-                }
-                //如果和后一个的采集次序相同
-                if (((i + 1) < Si_ItemDGV.RowCount) && Si_ItemDGV.Rows[i].Cells["si_detno"].Value.ToString() == Si_ItemDGV.Rows[i + 1].Cells["si_detno"].Value.ToString())
-                {
-                    GetData.Add(Si_ItemDGV.Rows[i + 1].Cells["si_item"].Value.ToString());
-                }
-                else {
-                    Data.Add(GetData);
-                    //添加完一次数据需要一个新的List
-                    GetData = new ArrayList<string>();
-                }
-            }
-            if (Data.ToArray().Length > 0)
-            {
-                if ((Data.ToArray()[0] as ArrayList<string>).Contains("MPN"))
-                {
-                    AutoMatch.CheckState = CheckState.Checked;
-                    AutoMatch.Enabled = true;
-                }
-                else {
-                    AutoMatch.CheckState = CheckState.Unchecked;
-                    AutoMatch.Enabled = false;
-                }
-            }
-        }
-
-        //输入框Enter事件
-        private void Input_KeyDown(object sender, KeyEventArgs e)
-        {
-            if (e.KeyCode == Keys.Enter)
-            {
-                if (Input.Text == "")
-                {
-                    BaseUtil.ShowError("采集的数据不能为空");
-                }
-                //如果勾选了自动采集
-                if (AutoMatch.Checked)
-                {
-                    CollectData();
-                }
-                else {
-                    if (pib_id.Text != "")
-                    {
-                        for (int i = 0; i < LabelInf.RowCount; i++)
-                        {
-                            if (LabelInf.Rows[i].Cells["pib_id1"].Value.ToString() == pib_id.Text)
-                            {
-                                CurrentRowIndex = LabelInf.Rows[i].Cells["pib_id1"].RowIndex;
-                            }
-                        }
-                    }
-                    else {
-                        BaseUtil.ShowError("非自动匹配时必须选择指定的行");
-                    }
-                    CollectData();
-                }
-            }
-        }
-
-        private void ComSetting_Click(object sender, EventArgs e)
-        {
-            参数及端口配置 form = new 参数及端口配置();
-            BaseUtil.SetFormCenter(form);
-            form.ShowDialog();
-        }
-
-        /// <summary>
-        /// 采集数据
-        /// </summary>
-        private void CollectData()
-        {
-            Data = new ArrayList<ArrayList<string>>();
-            GetData = new ArrayList<string>();
-            //用于保存采集策略的具体信息
-            SiItem = new Dictionary<string, Dictionary<string, string>>();
-            //是否通过,一行采集结束时会通过此参数进行验证
-            CollectPass = true;
-            for (int i = 0; i < Si_ItemDGV.RowCount; i++)
-            {
-                //如果不包含这个则添加进数组
-                if (!GetData.Contains(Si_ItemDGV.Rows[i].Cells["si_item"].Value.ToString()))
-                {
-                    GetData.Add(Si_ItemDGV.Rows[i].Cells["si_item"].Value.ToString());
-                }
-                //如果和后一个的采集次序相同
-                if (((i + 1) < Si_ItemDGV.RowCount) && Si_ItemDGV.Rows[i].Cells["si_detno"].Value.ToString() == Si_ItemDGV.Rows[i + 1].Cells["si_detno"].Value.ToString())
-                {
-                    GetData.Add(Si_ItemDGV.Rows[i + 1].Cells["si_item"].Value.ToString());
-                }
-                else {
-                    Data.Add(GetData);
-                    //添加完一次数据需要一个新的List
-                    GetData = new ArrayList<string>();
-                }
-                Dictionary<string, string> item = new Dictionary<string, string>();
-                for (int j = 0; j < Si_ItemDGV.ColumnCount; j++)
-                {
-                    item.Add(Si_ItemDGV.Columns[j].DataPropertyName, Si_ItemDGV.Rows[i].Cells[j].Value.ToString());
-                }
-                SiItem.Add(Si_ItemDGV.Rows[i].Cells["si_item"].Value.ToString().ToUpper(), item);
-            }
-            //采集项目的数组
-            object[] ItemData = (Data.ToArray()[CurrentIndex] as ArrayList<string>).ToArray();
-            //分隔符不为空的时候
-            if (sg_separator.Text != "")
-            {
-                //用户采集的数据的分割数组
-                string[] CollectData = Input.Text.Split(sg_separator.Text.ToCharArray());
-                //首先判断当前采集的个数,如果采集的个数为1则不对数据进行分隔符验证
-                if (ItemData.Length == 1)
-                {
-                    //将筛选之后的值赋给Cell
-                    SetDataToCell(CollectData, ItemData[0].ToString().ToUpper());
-                }
-                //如果本次采集的数据分割后和当前的采集项目个数不一样提示用户错误
-                else if (CollectData.Length == ItemData.Length)
-                {
-                    for (int i = 0; i < ItemData.Length; i++)
-                    {
-                        //将筛选之后的值赋给Cell
-                        Console.WriteLine("ITEM:" + CollectData[i]);
-                        Console.WriteLine("Data"+ ItemData[i].ToString());
-                        SetDataToCell(CollectData, ItemData[i].ToString().ToUpper());
-                    }
-                }
-                else {
-                    BaseUtil.ShowError("所采集的数据个数和采集项目不符");
-                }
-            }
-            else {
-                if (Data.ToArray().Length != Si_ItemDGV.RowCount)
-                {
-                    BaseUtil.ShowError("所选采集策略和当前采集项目不符合,含有同顺序采集项时必须维护分隔符!");
-                }
-            }
-            Console.WriteLine(CurrentIndex);
-            CurrentIndex = CurrentIndex + 1;
-            if (CurrentIndex == Data.ToArray().Length)
-            {
-                if (CollectPass)
-                {
-                    LabelInf.Rows[CurrentRowIndex].Cells["pib_ifpick"].Value = true;
-                    //CollectedCount.Text = (int.Parse(CollectedCount.Text) + 1).ToString();
-                }
-                else {
-                    //如果自动采集采集未成功需要移动到下一行
-                    if (AutoMatch.Checked)
-                    {
-                        //如果已经到了最后一行则不移动
-                        CurrentRowIndex = CurrentRowIndex + 1 == LabelInf.RowCount ? CurrentRowIndex : CurrentRowIndex + 1;
-                    }
-                }
-                //当前项目已采集完成,重置采集项目
-                CurrentIndex = 0;
-                if (AutoMatch.Checked)
-                {
-                    for (int i = CurrentRowIndex; i < LabelInf.RowCount; i++)
-                    {
-                        if (LabelInf.Rows[i].Cells["pib_ifpick"].FormattedValue.ToString() != "True")
-                        {
-                            griddetno.Text = LabelInf.Rows[i].Cells["pib_pdno"].FormattedValue.ToString();
-                            pr_code.Text = LabelInf.Rows[i].Cells["pib_prodcode"].FormattedValue.ToString();
-                            CurrentRowIndex = LabelInf.Rows[i].Cells["pib_prodcode"].RowIndex;
-                            break;
-                        }
-                    }
-                }
-            }
-        }
-
-        /// <summary>
-        /// 自定义函数 将匹配之后的值设置到Cell中
-        /// </summary>
-        /// <param name="data"></param>
-        /// <param name="kind"></param>
-        private void SetDataToCell(string[] data, string kind)
-        {
-            for (int i = 0; i < data.Length; i++)
-            {
-                switch (kind.ToString().ToUpper())
-                {
-                    case "DATECODE":
-                        LabelInf.Rows[CurrentRowIndex].Cells["pib_datecode"].Value = MatchStr(data[i], "DATECODE");
-                        break;
-                    case "LOTNO":
-                        LabelInf.Rows[CurrentRowIndex].Cells["pib_lotno"].Value = MatchStr(data[i], "LOTNO");
-                        break;
-                    case "MPN":
-                        if (LabelInf.Rows[CurrentRowIndex].Cells["pr_vendprodcode"].Value.ToString() != MatchStr(data[i], "MPN"))
-                        {
-                            CellRowIndex = CurrentRowIndex;
-                            LabelInf.Rows[CurrentRowIndex].Cells["pr_vendprodcode"].Selected = true;
-                            CollectPass = false;
-                            MessageLog.AppendText(">>供应商物料编号不匹配\n", Color.Red);
-                        }
-                        break;
-                    case "QTY":
-                        //如果采集的数量不相等的话
-                        if (LabelInf.Rows[CurrentRowIndex].Cells["pib_qty"].Value.ToString() != MatchStr(data[i], "QTY"))
-                        {
-                            CellRowIndex = CurrentRowIndex;
-                            LabelInf.Rows[CurrentRowIndex].Cells["pib_qty"].Selected = true;
-                            CollectPass = false;
-                            MessageLog.AppendText(">>数量不匹配\n", Color.Red);
-                        }
-                        break;
-                    default:
-                        break;
-                }
-            }
-        }
-
-        /// <summary>
-        /// 自定义函数 根据匹配规则
-        /// si_item的二维数组,str是需要赋值的字符串,item表示DateCode,LotNo等
-        /// </summary>
-        /// <param name="SiItem"></param>
-        /// <param name="str"></param>
-        /// <param name="item"></param>
-        /// <returns></returns>
-        private string MatchStr(string str, string item)
-        {
-            string kind = SiItem[item]["si_kind"];
-            //起始字符不为空的时候
-            switch (kind)
-            {
-                case "起始位置":
-                    if (SiItem[item]["si_index"] != "")
-                    {
-                        //长度不为空的时候按照指定的长度去取数据
-                        if (SiItem[item]["si_length"] != "")
-                        {
-                            str = str.Substring(int.Parse(SiItem[item]["si_index"]), int.Parse(SiItem[item]["si_length"]));
-                        }
-                        //长度为空的时候取index之后的全部数据
-                        else {
-                            str = str.Substring(int.Parse(SiItem[item]["si_index"]));
-                        }
-                    }
-                    break;
-                case "索引字符":
-                    if (SiItem[item]["si_indexstring"] != "")
-                    {
-                        //长度不为空的时候按照指定的长度去取数据
-                        if (SiItem[item]["si_length"] != "")
-                        {
-                            str = str.Substring(str.IndexOf(SiItem[item]["si_indexstring"]) + 1, int.Parse(SiItem[item]["si_length"]));
-                        }
-                        //长度为空的时候取index之后的全部数据
-                        else {
-                            str = str.Substring(int.Parse(SiItem[item]["si_indexstring"]));
-                        }
-                    }
-                    break;
-                default:
-                    break;
-            }
-            if (SiItem[item]["si_expression"] != "")
-            {
-                reg = new Regex(SiItem[item]["si_expression"]);
-                str = reg.Match(str).Value;
-            }
-            return str;
-        }
-
-        //关闭窗口前提示用户确认
-        private void 贴标机条码打印_FormClosing(object sender, FormClosingEventArgs e)
-        {
-            string close = MessageBox.Show(this.ParentForm, "是否关闭", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question).ToString();
-            if (close.ToString() != "Yes")
-            {
-                e.Cancel = true;
-            }
-            else {
-                //防止未安装打印程序时报错导致窗体无法关闭
-                try
-                {
-                    lbl.Application.Quit();
-                }
-                catch {
-
-                }
-            }
-        }
-
-        /// <summary>
-        /// 出入库单录入框的回车事件
-        /// </summary>
-        /// <param name="sender"></param>
-        /// <param name="e"></param>
-        private void pi_inoutno_KeyDown(object sender, KeyEventArgs e)
-        {
-            if (e.KeyCode == Keys.Enter)
-            {
-                sql.Clear();
-                sql.Append("select pi_id,pi_cardcode from prodinout where pi_inoutno='" + pi_inoutno.Text + "'");
-                dt = (DataTable)dh.ExecuteSql(sql.ToString(), "select");
-                if (dt.Rows.Count > 0)
-                {
-                    string pi_cardcode = dt.Rows[0]["pi_cardcode"].ToString();
-                    PI_ID = dt.Rows[0]["pi_id"].ToString();
-                    LoadGridData(sender, e);
-
-                    sql.Clear();
-                    sql.Append("select cl_labelcode,cl_labelurl,cl_isdefault from customerlabel left join prodinout on pi_cardcode=cl_custcode ");
-                    sql.Append("where pi_cardcode='" + pi_cardcode + "' and pi_inoutno='" + pi_inoutno.Text + "' and cl_labeltype='单盘'");
-                    dt = (DataTable)dh.ExecuteSql(sql.ToString(), "select");
-                    SingleLabelCombox.DataSource = dt;
-                    SingleLabelCombox.DisplayMember = "cl_labelcode";
-                    SingleLabelCombox.ValueMember = "cl_labelurl";
-
-                    sql.Clear();
-                    sql.Append("select cl_labelcode,cl_labelurl,cl_isdefault from customerlabel left join prodinout on pi_cardcode=cl_custcode ");
-                    sql.Append("where pi_cardcode='" + pi_cardcode + "' and pi_inoutno='" + pi_inoutno.Text + "' and cl_labeltype='中盒'");
-                    dt = (DataTable)dh.ExecuteSql(sql.ToString(), "select");
-                    MidLabelCombox.DataSource = dt.Copy();
-                    MidLabelCombox.DisplayMember = "cl_labelcode";
-                    MidLabelCombox.ValueMember = "cl_labelurl";
-
-                    sql.Clear();
-                    sql.Append("select cl_labelcode,cl_labelurl,cl_isdefault from customerlabel left join prodinout on pi_cardcode=cl_custcode ");
-                    sql.Append("where pi_cardcode='" + pi_cardcode + "' and pi_inoutno='" + pi_inoutno.Text + "' and cl_labeltype='外箱'");
-                    dt = (DataTable)dh.ExecuteSql(sql.ToString(), "select");
-                    OutBoxCombox.DataSource = dt.Copy();
-                    OutBoxCombox.DisplayMember = "cl_labelcode";
-                    OutBoxCombox.ValueMember = "cl_labelurl";
-                }
-                else {
-                    MessageBox.Show("当前出入库单号不存在!");
-                }
-            }
-        }
-
-        private void SingleLabelPrint_Click(object sender, EventArgs e)
-        {
-            SingleDoc = lbl.Documents.Open(SingleLabelCombox.SelectedValue.ToString());
-            SingleDoc.Printer.SwitchTo(SingleLabelPrinter.Text);
-            SingleDoc.PrintDocument();
-        }
-
-        private void MidLabelPrint_Click(object sender, EventArgs e)
-        {
-            MidDoc = lbl.Documents.Open(MidLabelCombox.SelectedValue.ToString());
-            MidDoc.Printer.SwitchTo(MidLabelPrinter.Text);
-            MidDoc.PrintDocument();
-        }
-
-        private void OutBoxLabelPrint_Click(object sender, EventArgs e)
-        {
-            OutBoxDoc = lbl.Documents.Open(OutBoxCombox.SelectedValue.ToString());
-            OutBoxDoc.Printer.SwitchTo(OutBoxPrinter.Text);
-            OutBoxDoc.PrintDocument();
-        }
-
-        private void CleanDetail_Click(object sender, EventArgs e)
-        {
-            ArrayList<string> DeleteID = new ArrayList<string>();
-            for (int i = 0; i < LabelInf.RowCount; i++)
-            {
-                if (LabelInf.Rows[i].Cells["Choose"].FormattedValue.ToString() == "True")
-                {
-                    DeleteID.Add(LabelInf.Rows[i].Cells["pib_id1"].Value.ToString());
-                }
-            }
-            //勾选了删除的明细之后
-            if (DeleteID.ToArray().Length > 0)
-            {
-                string close = MessageBox.Show(this.ParentForm, "删除后不可恢复,是否确认删除", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question).ToString();
-                if (close.ToString() == "Yes")
-                {
-                    dh.BatchInsert("delete from prodiobarcode where pib_id=:pib_id", new string[] { "pib_id" }, DeleteID.ToArray());
-                    MessageBox.Show("删除成功");
-                    LoadGridData(sender, e);
-                }
-            }
-            else {
-                MessageBox.Show("尚未勾选需要删除的明细");
-            }
-        }
-
-        /// <summary>
-        /// 自定义函数  加载明细行的数据,多处使用添加进函数
-        /// </summary>
-        /// <param name="sender"></param>
-        /// <param name="e"></param>
-        private void LoadGridData(object sender, EventArgs e)
-        {
-            sql.Clear();
-            sql.Append("select pib_id,pib_pdid,pib_piid,pib_pdno,pib_prodcode,pr_brand,pr_vendprodcode,");
-            sql.Append("pib_lotno,pib_datecode,pib_qty,pib_barcode,pib_outboxcode1 ,pib_outboxcode2,");
-            sql.Append("pib_ifpick, pib_ifprint from prodiodetail left join prodiobarcode on pib_piid=pd_piid and ");
-            sql.Append("pd_pdno=pib_pdno  and pd_prodcode=pib_prodcode left join product on ");
-            sql.Append("pr_code=pib_prodcode  where pd_piid='" + PI_ID + "' order by pd_id ,pib_id");
-            dt = (DataTable)dh.ExecuteSql(sql.ToString(), "select");
-            BaseUtil.FillDgvWithDataTable(LabelInf, dt);
-            //有数据的话默认取第一条的品牌去取采集策略
-            TotalCount.Text = LabelInf.RowCount.ToString();
-            if (LabelInf.RowCount > 0)
-            {
-                string brand = LabelInf.Rows[0].Cells["pr_brand"].FormattedValue.ToString();
-                if (brand != "")
-                    sg_code.Text = dh.getFieldDataByCondition("scangroup", "sg_code", "sg_brand='" + brand + "'").ToString();
-            }
-            //绑定数据之后往下找到未采集的数据显示在当前采集的栏目
-            for (int i = 0; i < LabelInf.RowCount; i++)
-            {
-                if (LabelInf.Rows[i].Cells["pib_ifpick"].FormattedValue.ToString() != "True")
-                {
-                    griddetno.Text = LabelInf.Rows[i].Cells["pib_pdno"].FormattedValue.ToString();
-                    pr_code.Text = LabelInf.Rows[i].Cells["pib_prodcode"].FormattedValue.ToString();
-                    pib_id.Text = LabelInf.Rows[i].Cells["pib_id1"].FormattedValue.ToString();
-                    CurrentRowIndex = LabelInf.Rows[i].Cells["pib_prodcode"].RowIndex;
-                    break;
-                }
-            }
-            CellRowIndex = -2;
-        }
-
-        /// <summary>
-        /// 重绘Cell的颜色
-        /// </summary>
-        /// <param name="sender"></param>
-        /// <param name="e"></param>
-        private void LabelInf_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
-        {
-            bool mouseOver = e.CellBounds.Contains(this.PointToClient(Cursor.Position));
-            if (e.ColumnIndex > 0)
-            {
-                if (LabelInf.Columns[e.ColumnIndex].Name == "pib_lotno" || LabelInf.Columns[e.ColumnIndex].Name == "pib_datecode" || LabelInf.Columns[e.ColumnIndex].Name == "pib_outboxcode1" || LabelInf.Columns[e.ColumnIndex].Name == "pib_outboxcode2")
-                {
-                    SolidBrush solidBrush = new SolidBrush(Color.FromArgb(51, 153, 255));
-                    e.Graphics.FillRectangle(mouseOver ? solidBrush : Brushes.LightSeaGreen, e.CellBounds);
-                    Rectangle border = e.CellBounds;
-                    border.Width -= 1;
-                    e.Graphics.DrawRectangle(Pens.White, border);
-                    e.PaintContent(e.CellBounds);
-                    e.Handled = true;
-                }
-                //重绘制定的Cell,表示采集的数据不匹配
-                if (LabelInf.Columns[e.ColumnIndex].Name == "pib_qty" && e.RowIndex == CellRowIndex)
-                {
-                    SolidBrush solidBrush = new SolidBrush(Color.FromArgb(51, 153, 255));
-                    e.Graphics.FillRectangle(mouseOver ? solidBrush : Brushes.Red, e.CellBounds);
-                    Rectangle border = e.CellBounds;
-                    border.Width -= 1;
-                    e.Graphics.DrawRectangle(Pens.White, border);
-                    e.PaintContent(e.CellBounds);
-                    e.Handled = true;
-                }
-                if (LabelInf.Columns[e.ColumnIndex].Name == "pr_vendprodcode" && e.RowIndex == CellRowIndex)
-                {
-                    SolidBrush solidBrush = new SolidBrush(Color.FromArgb(51, 153, 255));
-                    e.Graphics.FillRectangle(mouseOver ? solidBrush : Brushes.Red, e.CellBounds);
-                    Rectangle border = e.CellBounds;
-                    border.Width -= 1;
-                    e.Graphics.DrawRectangle(Pens.White, border);
-                    e.PaintContent(e.CellBounds);
-                    e.Handled = true;
-                }
-            }
-        }
-
-        private void pr_code_SearchIconClick(object sender, EventArgs e)
-        {
-            pr_code.Condition = "  pib_inoutno='" + pi_inoutno.Text + "'";
-        }
-
-        private void OutBoxLabelPackage_Click(object sender, EventArgs e)
-        {
-            SingleDoc = lbl.Documents.Open(@"\\WIN-EIQKLDB7074\CodeSoft打印\Document21.lab");
-            SingleDoc.Printer.SwitchTo(SingleLabelPrinter.Text);
-            SingleDoc.PrintDocument();
-        }
-
-        private void pr_code_UserControlTextChanged(object sender, EventArgs e)
-        {
-            //用户在重新勾选后重置采集项目的索引
-            CurrentIndex = 0;
-        }
-    }
-}