Browse Source

添加RFID补打功能

callm 2 months ago
parent
commit
02383005b1

+ 55 - 93
UAS_MES_YDCY/FunctionCode/Make/Make_FuselageLabelPrintRFID.cs

@@ -80,8 +80,6 @@ namespace UAS_MES_NEW.Make
 
         string oErrorMessage = "";
 
-        Thread InitPrint;
-
         bool pr_change = false;
 
         ftpOperater ftp;
@@ -92,7 +90,7 @@ namespace UAS_MES_NEW.Make
         {
             InitializeComponent();
         }
-        DEV_HDL uRet=0;
+        DEV_HDL uRet = 0;
         DEV_HDL dev_prt = 0;
         LABEL_TEMP_HDL tmp_prt = 0;
 
@@ -109,11 +107,6 @@ namespace UAS_MES_NEW.Make
         private void Make_FuselageLabelPrint_Load(object sender, EventArgs e)
         {
             asc.controllInitializeSize(this);
-            OperateResult.AppendText(">>请输入SN\n", Color.Black);
-            InitPrint = new Thread(InPrint);
-            SetLoadingWindow stw = new SetLoadingWindow(InitPrint, "初始化打印程序");
-            BaseUtil.SetFormCenter(stw);
-            stw.ShowDialog();
             sncode.Focus();
             LockMakeCode.GetMakeCodeCtl(ma_code);
             ma_code.SetLockCheckBox(LockMakeCode);
@@ -142,11 +135,11 @@ namespace UAS_MES_NEW.Make
                 sw.Close();
             }
             catch (Exception) { }
-         
-        
+
+
 
             //1.Initialize the Library.
-        
+
         }
 
         private void Ma_code_DbChange(object sender, EventArgs e)
@@ -164,23 +157,10 @@ namespace UAS_MES_NEW.Make
             //    BaseUtil.SetFormValue(this.Controls, dt);
             //}
         }
-        Engine engine;
-
-        private void InPrint()
-        {
-            try
-            {
-                engine = new Engine(true);
-            }
-            catch (Exception ex)
-            {
-                OperateResult.AppendText("未正确安装BarTender软件\n", Color.Red);
-            }
-        }
 
         private void sn_code_KeyDown(object sender, KeyEventArgs e)
         {
-         
+
             //按下enter键
             if (e.KeyCode == Keys.Enter)
             {
@@ -231,20 +211,6 @@ namespace UAS_MES_NEW.Make
                                 //提示用户“<<工单号:取ma_makecode”
                                 OperateResult.AppendText("<<工单号:" + ma_code.Text + "\n", Color.Black);
                                 //提示用户“<< 序列号:XXXX”
-                                if (PrintLabel.SelectedValue == null)
-                                {
-                                    OperateResult.AppendText(">>产品编号:" + ma_prodcode.Text + "未维护机身标签\n", Color.Red, sncode);
-                                    return;
-                                }
-                                if (pr_change)
-                                {
-                                    pr_change = false;
-                                    if (MessageBox.Show("是否使用默认标签", "提示", MessageBoxButtons.OKCancel) == DialogResult.Cancel)
-                                    {
-                                        OperateResult.AppendText(">>请选择标签模板\n", Color.Green, sncode);
-                                        return;
-                                    }
-                                }
                             }
                             //没有数据
                             else
@@ -269,7 +235,7 @@ namespace UAS_MES_NEW.Make
                             OperateResult.AppendText("<<序列号:" + sncode.Text + "\n", Color.Black);
                             //按照打印张数打印
                             //doc = lbl.Documents.Open(PrintLabel.Text);
-                            string tmpPath = "TemplatePrint_RFID/templateRFID.dlt";
+                            string tmpPath = PrintLabel.Text;
 
                             uRet = DSTP2x_Lib_Init("", 0, pSzResult, ref pResultLen);
                             if (uRet != 0)
@@ -281,7 +247,7 @@ namespace UAS_MES_NEW.Make
                             uRet = DSTP2x_EnumDev(1, pEnumList, ref enumListLen, ref deviceNum); //USB connection
                             if (uRet != 0)
                             {
-                                 OperateResult.AppendText("Enumerate device error,error code:[" + uRet.ToString() + "]");
+                                OperateResult.AppendText("Enumerate device error,error code:[" + uRet.ToString() + "]");
                                 goto SAMPLE_END;
                             }
 
@@ -295,7 +261,7 @@ namespace UAS_MES_NEW.Make
                                 device = Encoding.UTF8.GetString(pEnumList, 0, enumListLen);
                             else
                             {
-                                 OperateResult.AppendText("No device");
+                                OperateResult.AppendText("No device");
                                 goto SAMPLE_END;
                             }
 
@@ -303,7 +269,7 @@ namespace UAS_MES_NEW.Make
                             uRet = DSTP2x_ConnEnumeratedDev(device, ref dev_prt);
                             if (uRet != 0)
                             {
-                                 OperateResult.AppendText("Failed to connect device,error code:[" + uRet.ToString() + "]");
+                                OperateResult.AppendText("Failed to connect device,error code:[" + uRet.ToString() + "]");
                                 goto SAMPLE_END;
                             }
 
@@ -311,7 +277,7 @@ namespace UAS_MES_NEW.Make
                             uRet = DSTP2x_SetPrnEmulation(dev_prt, 1); //ZPL
                             if (uRet != 0)
                             {
-                                 OperateResult.AppendText("Failed to set up print simulation,error code:[" + uRet.ToString() + "]");
+                                OperateResult.AppendText("Failed to set up print simulation,error code:[" + uRet.ToString() + "]");
                                 goto SAMPLE_END;
                             }
 
@@ -319,7 +285,7 @@ namespace UAS_MES_NEW.Make
                             uRet = DSTP2x_LoadLabelTmpl(tmpPath, ref tmp_prt);
                             if (uRet != 0)
                             {
-                                 OperateResult.AppendText("Failed to load label template,error code:[" + uRet.ToString() + "]");
+                                OperateResult.AppendText("Failed to load label template,error code:[" + uRet.ToString() + "]");
                                 goto SAMPLE_END;
                             }
 
@@ -327,7 +293,7 @@ namespace UAS_MES_NEW.Make
                             uRet = DSTP2x_SetTmplPrnMode(tmp_prt, 0); //set print mode
                             if (uRet != 0)
                             {
-                                 OperateResult.AppendText("Setting whether to print failed,error code:[" + uRet.ToString() + "]");
+                                OperateResult.AppendText("Setting whether to print failed,error code:[" + uRet.ToString() + "]");
                                 goto SAMPLE_END;
                             }
 
@@ -335,22 +301,22 @@ namespace UAS_MES_NEW.Make
                             uRet = DSTP2x_SetTmplPrnData(tmp_prt, "Text-01", sncode.Text); //The data must be utf-8
                             if (uRet != 0)
                             {
-                                 OperateResult.AppendText("Failed to set someone data in template,error code:[" + uRet.ToString() + "]");
+                                OperateResult.AppendText("Failed to set someone data in template,error code:[" + uRet.ToString() + "]");
                                 goto SAMPLE_END;
                             }
 
                             //7.Set the RFID data.
-                            uRet = DSTP2x_SetTmplRFIDData(tmp_prt, "EPC-01", Hex.Checked?AsciiToHex(sncode.Text): sncode.Text, Hex.Checked ? AsciiToHex(sncode.Text).Length : sncode.Text.Length);
+                            uRet = DSTP2x_SetTmplRFIDData(tmp_prt, "EPC-01", Hex.Checked ? AsciiToHex(sncode.Text) : sncode.Text, Hex.Checked ? AsciiToHex(sncode.Text).Length : sncode.Text.Length);
                             if (uRet != 0)
                             {
-                                 OperateResult.AppendText("Failed to set EPC data in template,error code:[" + uRet.ToString() + "]");
+                                OperateResult.AppendText("Failed to set EPC data in template,error code:[" + uRet.ToString() + "]");
                                 goto SAMPLE_END;
                             }
 
                             uRet = DSTP2x_SetTmplRFIDData(tmp_prt, "USER-01", "123ABC", "123ABC".Length);
                             if (uRet != 0)
                             {
-                                 OperateResult.AppendText("Failed to set USER data in template,error code:[" + uRet.ToString() + "]");
+                                OperateResult.AppendText("Failed to set USER data in template,error code:[" + uRet.ToString() + "]");
                                 goto SAMPLE_END;
                             }
 
@@ -358,17 +324,17 @@ namespace UAS_MES_NEW.Make
                             uRet = DSTP2x_PrintTmpl(dev_prt, tmp_prt, szOutFile, ref pOutFileSize, szOutRFID, ref pOutRFIDSize);
                             if (uRet != 0)
                             {
-                                 OperateResult.AppendText("Print template failed,error code:[" + uRet.ToString() + "]");
+                                OperateResult.AppendText("Print template failed,error code:[" + uRet.ToString() + "]");
                                 goto SAMPLE_END;
                             }
 
-                             OperateResult.AppendText("The RFID data is " + Encoding.UTF8.GetString(szOutRFID, 0, pOutRFIDSize));
+                            OperateResult.AppendText("The RFID data is " + Encoding.UTF8.GetString(szOutRFID, 0, pOutRFIDSize));
 
                             //9.Delete the handle of template.
                             uRet = DSTP2x_DeleteTmpl(tmp_prt);
                             if (uRet != 0)
                             {
-                                 OperateResult.AppendText("Delete handle of template failed,error code:[" + uRet.ToString() + "]");
+                                OperateResult.AppendText("Delete handle of template failed,error code:[" + uRet.ToString() + "]");
                                 goto SAMPLE_END;
                             }
 
@@ -376,55 +342,51 @@ namespace UAS_MES_NEW.Make
                             uRet = DSTP2x_DisconnDev(dev_prt);
                             if (uRet != 0)
                             {
-                                 OperateResult.AppendText("Delete handle of device failed,error code:[" + uRet.ToString() + "]");
+                                OperateResult.AppendText("Delete handle of device failed,error code:[" + uRet.ToString() + "]");
                                 goto SAMPLE_END;
                             }
-                            SAMPLE_END:
+                        SAMPLE_END:
                             {
                                 uRet = DSTP2x_Lib_Clear();
                             }
-                            bool Passed=true;
-                           
-
-                            if (Passed) {
-                                //记录日志
-                                LogicHandler.DoCommandLog(Tag.ToString(), User.UserCode, oMakeCode, User.UserLineCode, User.UserSourceCode, "机身标打印", "机身标打印成功", sncode.Text, "");
-                                //更新打印的数据
-                                if (LogicHandler.SetStepResult(ma_code.Text, User.UserSourceCode, sncode.Text, "机身标打印", "机身标打印成功", User.UserCode, out oErrorMessage))
+
+                            //记录日志
+                            LogicHandler.DoCommandLog(Tag.ToString(), User.UserCode, oMakeCode, User.UserLineCode, User.UserSourceCode, "机身标打印", "机身标打印成功", sncode.Text, "");
+                            //更新打印的数据
+                            if (LogicHandler.SetStepResult(ma_code.Text, User.UserSourceCode, sncode.Text, "机身标打印", "机身标打印成功", User.UserCode, out oErrorMessage))
+                            {
+                                //提示正确返回时传递的信息
+                                if (oErrorMessage.Contains("AFTERSUCCESS"))
+                                    OperateResult.AppendText(">>" + oErrorMessage + "\n");
+                                if (CollectRemark.Checked && Remark.Text != "")
+                                {
+                                    LogicHandler.CollectRemarkInf(sncode.Text, "", "", oMakeCode, ma_prodcode.Text, Remark.Text);
+                                }
+                                //清空输入框的值,聚焦
+                                sncode.Text = "";
+                                sncode.Focus();
+                                //刷新打印数量和剩余数量
+                                dt = (DataTable)dh.ExecuteSql("select ma_qty - nvl(mcd_inqty, 0) mcd_remainqty,nvl(ma_unlimitin,0)ma_unlimitin from make left join makecraftdetail on mcd_macode=ma_code where ma_code='" + ma_code.Text + "' and mcd_stepcode='" + User.CurrentStepCode + "'", "select");
+                                BaseUtil.SetFormValue(Controls, dt);
+                                mcd_okqty.Text = int.Parse(mcd_okqty.Text) + 1 + "";
+                                //IF 剩余数=0,则清空form中的数据, 提示用户“工单:xx已经打印完成,>>请输入SN”, 清空mapB,listC 中的数据
+                                if (int.Parse(mcd_remainqty.Text) == 0 && ma_unlimitin == "0")
                                 {
-                                    //提示正确返回时传递的信息
-                                    if (oErrorMessage.Contains("AFTERSUCCESS"))
-                                        OperateResult.AppendText(">>" + oErrorMessage + "\n");
-                                    if (CollectRemark.Checked && Remark.Text != "")
-                                    {
-                                        LogicHandler.CollectRemarkInf(sncode.Text, "", "", oMakeCode, ma_prodcode.Text, Remark.Text);
-                                    }
-                                    //清空输入框的值,聚焦
-                                    sncode.Text = "";
-                                    sncode.Focus();
-                                    //刷新打印数量和剩余数量
-                                    dt = (DataTable)dh.ExecuteSql("select ma_qty - nvl(mcd_inqty, 0) mcd_remainqty,nvl(ma_unlimitin,0)ma_unlimitin from make left join makecraftdetail on mcd_macode=ma_code where ma_code='" + ma_code.Text + "' and mcd_stepcode='" + User.CurrentStepCode + "'", "select");
-                                    BaseUtil.SetFormValue(Controls, dt);
-                                    mcd_okqty.Text = int.Parse(mcd_okqty.Text) + 1 + "";
-                                    //IF 剩余数=0,则清空form中的数据, 提示用户“工单:xx已经打印完成,>>请输入SN”, 清空mapB,listC 中的数据
-                                    if (int.Parse(mcd_remainqty.Text) == 0 && ma_unlimitin == "0")
-                                    {
-                                        OperateResult.AppendText(">>工单:" + ma_code.Text + "打印完成,>>请输入SN\n", Color.Green);
-                                    }
-                                    //剩余数量不为0
-                                    else
-                                    {
-                                        OperateResult.AppendText(">>请输入SN\n", Color.Black);
-                                    }
+                                    OperateResult.AppendText(">>工单:" + ma_code.Text + "打印完成,>>请输入SN\n", Color.Green);
                                 }
+                                //剩余数量不为0
                                 else
                                 {
-                                    OperateResult.AppendText(">>" + oErrorMessage + "\n", Color.Red, sncode);
-                                    //清空输入框的值,聚焦
-                                    sncode.Text = "";
-                                    sncode.Focus();
+                                    OperateResult.AppendText(">>请输入SN\n", Color.Black);
                                 }
                             }
+                            else
+                            {
+                                OperateResult.AppendText(">>" + oErrorMessage + "\n", Color.Red, sncode);
+                                //清空输入框的值,聚焦
+                                sncode.Text = "";
+                                sncode.Focus();
+                            }
                         }
                         //标签为空
                         else
@@ -451,10 +413,10 @@ namespace UAS_MES_NEW.Make
         }
         private void pr_code_TextChanged(object sender, EventArgs e)
         {
-            DataTable dt = (DataTable)dh.ExecuteSql("select la_id,la_url,la_isdefault from label where la_prodcode='" + ma_prodcode.Text + "' and la_templatetype='机身标' and la_statuscode='AUDITED' order by la_isdefault", "select");
+            DataTable dt = (DataTable)dh.ExecuteSql("select la_id,la_url,la_isdefault from label where la_prodcode='" + ma_prodcode.Text + "' and la_templatetype='RFID' and la_statuscode='AUDITED' order by la_isdefault", "select");
             if (dt.Rows.Count == 0)
             {
-                dt = (DataTable)dh.ExecuteSql("select la_id,la_url,la_isdefault from label where la_prodcode is null and la_templatetype='机身标' and la_statuscode='AUDITED' order by la_isdefault", "select");
+                dt = (DataTable)dh.ExecuteSql("select la_id,la_url,la_isdefault from label where la_prodcode is null and la_templatetype='RFID' and la_statuscode='AUDITED' order by la_isdefault", "select");
             }
             PrintLabel.DataSource = dt;
             PrintLabel.DisplayMember = "la_url";

+ 224 - 0
UAS_MES_YDCY/FunctionCode/Special/Special_RePrintRFID.Designer.cs

@@ -0,0 +1,224 @@
+namespace UAS_MES_NEW.Special
+{
+    partial class Special_RePrintRFID
+    {
+        /// <summary>
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary>
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region Windows Form Designer generated code
+
+        /// <summary>
+        /// Required method for Designer support - do not modify
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.components = new System.ComponentModel.Container();
+            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Special_RePrintRFID));
+            this.pr_detail = new System.Windows.Forms.Label();
+            this.label6 = new System.Windows.Forms.Label();
+            this.label5 = new System.Windows.Forms.Label();
+            this.pr_code = new UAS_MES_NEW.CustomControl.TextBoxWithIcon.EnterTextBox();
+            this.Clean = new UAS_MES_NEW.CustomControl.ButtonUtil.NormalButton();
+            this.OperateResult = new UAS_MES_NEW.CustomControl.RichText.RichTextAutoBottom();
+            this.ms_sncode = new UAS_MES_NEW.CustomControl.TextBoxWithIcon.EnterTextBox();
+            this.label3 = new System.Windows.Forms.Label();
+            this.PrintLabel = new UAS_MES_NEW.CustomControl.ComBoxWithFocus.ComboxWithTip(this.components);
+            this.label1 = new System.Windows.Forms.Label();
+            this.Hex = new System.Windows.Forms.CheckBox();
+            this.SuspendLayout();
+            // 
+            // pr_detail
+            // 
+            this.pr_detail.AutoSize = true;
+            this.pr_detail.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.pr_detail.Location = new System.Drawing.Point(213, 206);
+            this.pr_detail.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0);
+            this.pr_detail.Name = "pr_detail";
+            this.pr_detail.Size = new System.Drawing.Size(0, 41);
+            this.pr_detail.TabIndex = 237;
+            // 
+            // label6
+            // 
+            this.label6.AutoSize = true;
+            this.label6.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.label6.Location = new System.Drawing.Point(35, 206);
+            this.label6.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0);
+            this.label6.Name = "label6";
+            this.label6.Size = new System.Drawing.Size(146, 41);
+            this.label6.TabIndex = 236;
+            this.label6.Text = "产品名称";
+            // 
+            // label5
+            // 
+            this.label5.AutoSize = true;
+            this.label5.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.label5.Location = new System.Drawing.Point(35, 141);
+            this.label5.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0);
+            this.label5.Name = "label5";
+            this.label5.Size = new System.Drawing.Size(146, 41);
+            this.label5.TabIndex = 232;
+            this.label5.Text = "产品代码";
+            // 
+            // pr_code
+            // 
+            this.pr_code.AllPower = null;
+            this.pr_code.BackColor = System.Drawing.Color.White;
+            this.pr_code.Enabled = false;
+            this.pr_code.ID = null;
+            this.pr_code.Location = new System.Drawing.Point(214, 150);
+            this.pr_code.Name = "pr_code";
+            this.pr_code.Power = null;
+            this.pr_code.Size = new System.Drawing.Size(388, 35);
+            this.pr_code.Str = null;
+            this.pr_code.Str1 = null;
+            this.pr_code.Str2 = null;
+            this.pr_code.TabIndex = 235;
+            this.pr_code.TextChanged += new System.EventHandler(this.pr_code_TextChanged);
+            // 
+            // Clean
+            // 
+            this.Clean.AllPower = null;
+            this.Clean.BackColor = System.Drawing.Color.Transparent;
+            this.Clean.DownImage = ((System.Drawing.Image)(resources.GetObject("Clean.DownImage")));
+            this.Clean.Image = ((System.Drawing.Image)(resources.GetObject("Clean.Image")));
+            this.Clean.IsShowBorder = true;
+            this.Clean.Location = new System.Drawing.Point(1002, 659);
+            this.Clean.Margin = new System.Windows.Forms.Padding(8);
+            this.Clean.MoveImage = ((System.Drawing.Image)(resources.GetObject("Clean.MoveImage")));
+            this.Clean.Name = "Clean";
+            this.Clean.NormalImage = ((System.Drawing.Image)(resources.GetObject("Clean.NormalImage")));
+            this.Clean.Power = null;
+            this.Clean.Size = new System.Drawing.Size(120, 50);
+            this.Clean.TabIndex = 143;
+            this.Clean.Text = "清除";
+            this.Clean.UseVisualStyleBackColor = true;
+            this.Clean.Click += new System.EventHandler(this.Clean_Click);
+            // 
+            // OperateResult
+            // 
+            this.OperateResult.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.OperateResult.Location = new System.Drawing.Point(832, 26);
+            this.OperateResult.Margin = new System.Windows.Forms.Padding(8);
+            this.OperateResult.Name = "OperateResult";
+            this.OperateResult.Size = new System.Drawing.Size(460, 614);
+            this.OperateResult.TabIndex = 142;
+            this.OperateResult.Text = "";
+            // 
+            // ms_sncode
+            // 
+            this.ms_sncode.AllPower = null;
+            this.ms_sncode.BackColor = System.Drawing.Color.White;
+            this.ms_sncode.ID = null;
+            this.ms_sncode.Location = new System.Drawing.Point(214, 272);
+            this.ms_sncode.Name = "ms_sncode";
+            this.ms_sncode.Power = null;
+            this.ms_sncode.Size = new System.Drawing.Size(388, 35);
+            this.ms_sncode.Str = null;
+            this.ms_sncode.Str1 = null;
+            this.ms_sncode.Str2 = null;
+            this.ms_sncode.TabIndex = 245;
+            this.ms_sncode.KeyDown += new System.Windows.Forms.KeyEventHandler(this.ms_sncode_KeyDown);
+            // 
+            // label3
+            // 
+            this.label3.AutoSize = true;
+            this.label3.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.label3.Location = new System.Drawing.Point(109, 272);
+            this.label3.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0);
+            this.label3.Name = "label3";
+            this.label3.Size = new System.Drawing.Size(62, 41);
+            this.label3.TabIndex = 244;
+            this.label3.Text = "SN";
+            // 
+            // PrintLabel
+            // 
+            this.PrintLabel.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+            this.PrintLabel.FormattingEnabled = true;
+            this.PrintLabel.Location = new System.Drawing.Point(220, 351);
+            this.PrintLabel.Margin = new System.Windows.Forms.Padding(4, 2, 4, 2);
+            this.PrintLabel.Name = "PrintLabel";
+            this.PrintLabel.Size = new System.Drawing.Size(382, 32);
+            this.PrintLabel.TabIndex = 247;
+            // 
+            // label1
+            // 
+            this.label1.AutoSize = true;
+            this.label1.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.label1.Location = new System.Drawing.Point(99, 342);
+            this.label1.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0);
+            this.label1.Name = "label1";
+            this.label1.Size = new System.Drawing.Size(82, 41);
+            this.label1.TabIndex = 246;
+            this.label1.Text = "标签";
+            // 
+            // Hex
+            // 
+            this.Hex.AutoSize = true;
+            this.Hex.Checked = true;
+            this.Hex.CheckState = System.Windows.Forms.CheckState.Checked;
+            this.Hex.Font = new System.Drawing.Font("微软雅黑", 10F);
+            this.Hex.Location = new System.Drawing.Point(220, 414);
+            this.Hex.Margin = new System.Windows.Forms.Padding(6);
+            this.Hex.Name = "Hex";
+            this.Hex.Size = new System.Drawing.Size(160, 39);
+            this.Hex.TabIndex = 248;
+            this.Hex.Text = "转16进制";
+            this.Hex.UseVisualStyleBackColor = true;
+            // 
+            // Special_RePrintRFID
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(12F, 24F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.ClientSize = new System.Drawing.Size(1566, 802);
+            this.Controls.Add(this.Hex);
+            this.Controls.Add(this.PrintLabel);
+            this.Controls.Add(this.label1);
+            this.Controls.Add(this.ms_sncode);
+            this.Controls.Add(this.label3);
+            this.Controls.Add(this.pr_detail);
+            this.Controls.Add(this.label6);
+            this.Controls.Add(this.pr_code);
+            this.Controls.Add(this.label5);
+            this.Controls.Add(this.Clean);
+            this.Controls.Add(this.OperateResult);
+            this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
+            this.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
+            this.Name = "Special_RePrintRFID";
+            this.Tag = "Special!CancelCollection";
+            this.Text = "取消采集";
+            this.Load += new System.EventHandler(this.Special_CancelCollection_Load);
+            this.ResumeLayout(false);
+            this.PerformLayout();
+
+        }
+
+        #endregion
+        private CustomControl.RichText.RichTextAutoBottom OperateResult;
+        private CustomControl.ButtonUtil.NormalButton Clean;
+        private System.Windows.Forms.Label pr_detail;
+        private System.Windows.Forms.Label label6;
+        private CustomControl.TextBoxWithIcon.EnterTextBox pr_code;
+        private System.Windows.Forms.Label label5;
+        private CustomControl.TextBoxWithIcon.EnterTextBox ms_sncode;
+        private System.Windows.Forms.Label label3;
+        private CustomControl.ComBoxWithFocus.ComboxWithTip PrintLabel;
+        private System.Windows.Forms.Label label1;
+        private System.Windows.Forms.CheckBox Hex;
+    }
+}

+ 245 - 0
UAS_MES_YDCY/FunctionCode/Special/Special_RePrintRFID.cs

@@ -0,0 +1,245 @@
+using System;
+using System.Collections.Generic;
+using System.Data;
+using System.Drawing;
+using System.Runtime.InteropServices;
+using System.Text;
+using System.Windows.Forms;
+using UAS_MES_NEW.DataOperate;
+using UAS_MES_NEW.Entity;
+using UAS_MES_NEW.PublicMethod;
+using DEV_HDL = System.UInt32;
+using LABEL_TEMP_HDL = System.UInt32;
+
+namespace UAS_MES_NEW.Special
+{
+    public partial class Special_RePrintRFID : Form
+    {
+        [DllImport("lib/Win32/libDSThermal.dll", CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Ansi)]
+        public static extern UInt32 DSTP2x_Lib_Init(string pSzInitInfo, Int32 nInitInfoLen, StringBuilder pSzResult, ref int pResultLen);
+
+        [DllImport("lib/Win32/libDSThermal.dll", CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Ansi)]
+        public static extern UInt32 DSTP2x_Lib_Clear();
+
+        [DllImport("lib/Win32/libDSThermal.dll", CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Ansi)]
+        public static extern UInt32 DSTP2x_EnumDev(Int32 nEnumType, byte[] szEnumList, ref int pDevSize, ref int pDevNum);
+
+        [DllImport("lib/Win32/libDSThermal.dll", CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Ansi)]
+        public static extern UInt32 DSTP2x_ConnEnumeratedDev(string szDevName, ref DEV_HDL pDevHdl);
+
+        [DllImport("lib/Win32/libDSThermal.dll", CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Ansi)]
+        public static extern UInt32 DSTP2x_DisconnDev(DEV_HDL ullDevHdl);
+
+        [DllImport("lib/Win32/libDSThermal.dll", CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Ansi)]
+        public static extern UInt32 DSTP2x_SetPrnEmulation(DEV_HDL ullDevHdl, Int32 nEmulation);
+
+        [DllImport("lib/Win32/libDSThermal.dll", CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Ansi)]
+        public static extern UInt32 DSTP2x_SetImgDpi(DEV_HDL ullDevHdl, Int32 nDpi);
+
+        [DllImport("lib/Win32/libDSThermal.dll", CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Ansi)]
+        public static extern UInt32 DSTP2x_LoadLabelTmpl(string szFileName, ref LABEL_TEMP_HDL pLTHdl);
+
+        [DllImport("lib/Win32/libDSThermal.dll", CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Ansi)]
+        public static extern UInt32 DSTP2x_PrintTmpl(DEV_HDL ullDevHdl, LABEL_TEMP_HDL ullLTHdl, byte[] szOutFile, ref int pOutFileSize, byte[] szOutRFID, ref int pOutRFIDSize);
+
+        [DllImport("lib/Win32/libDSThermal.dll", CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Ansi)]
+        public static extern UInt32 DSTP2x_DeleteTmpl(LABEL_TEMP_HDL ullLTHdl);
+
+        [DllImport("lib/Win32/libDSThermal.dll", CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Ansi)]
+        public static extern UInt32 DSTP2x_SetTmplPrnMode(LABEL_TEMP_HDL ullLTHdl, Int32 nPrnMode);
+
+        [DllImport("lib/Win32/libDSThermal.dll", CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Ansi)]
+        public static extern UInt32 DSTP2x_SetTmplPrnData(LABEL_TEMP_HDL ullLTHdl, string szElemID, string szActualData);
+
+        [DllImport("lib/Win32/libDSThermal.dll", CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Ansi)]
+        public static extern UInt32 DSTP2x_SetTmplRFIDData(LABEL_TEMP_HDL ullLTHdl, string szElemID, string pActualData, Int32 nActualDataSize);
+
+
+
+        DataHelper dh = SystemInf.dh;
+
+        LogStringBuilder sql = new LogStringBuilder();
+
+        DEV_HDL uRet = 0;
+        DEV_HDL dev_prt = 0;
+        LABEL_TEMP_HDL tmp_prt = 0;
+
+        byte[] pEnumList = new byte[1024];
+        int enumListLen = 1024;
+        byte[] szOutFile = new byte[1024];
+        int pOutFileSize = 1024;
+        byte[] szOutRFID = new byte[1024];
+        int pOutRFIDSize = 1024;
+        int deviceNum = 0;
+        string device = "";
+        StringBuilder pSzResult = new StringBuilder(256);
+        int pResultLen = 256;
+
+        public Special_RePrintRFID()
+        {
+            InitializeComponent();
+        }
+
+
+
+        private void Clean_Click(object sender, EventArgs e)
+        {
+            OperateResult.Clear();
+        }
+
+        private void Special_CancelCollection_Load(object sender, EventArgs e)
+        {
+
+        }
+
+        private void ms_sncode_KeyDown(object sender, KeyEventArgs e)
+        {
+            if (e.KeyCode == Keys.Enter)
+            {
+                DataTable dt = (DataTable)dh.ExecuteSql("select ms_sncode,ms_makecode,pr_code,pr_detail from makeserial left join product on pr_code=ms_prodcode where ms_sncode='" + ms_sncode.Text + "'  order by ms_id desc", "select");
+                if (dt.Rows.Count == 0)
+                {
+                    OperateResult.AppendText("" + ms_sncode.Text + "不存在\n");
+                    return;
+                }
+                else
+                {
+                    BaseUtil.SetFormValue(this.Controls, dt);
+                }
+
+                string tmpPath = PrintLabel.Text;
+
+                uRet = DSTP2x_Lib_Init("", 0, pSzResult, ref pResultLen);
+                if (uRet != 0)
+                {
+                    OperateResult.AppendText("DSTP2x_Lib_Init,error code:[" + uRet.ToString() + "]");
+                    return;
+                }
+
+                uRet = DSTP2x_EnumDev(1, pEnumList, ref enumListLen, ref deviceNum); //USB connection
+                if (uRet != 0)
+                {
+                    OperateResult.AppendText("Enumerate device error,error code:[" + uRet.ToString() + "]");
+                    goto SAMPLE_END;
+                }
+
+                if (deviceNum > 1)
+                {
+                    string str = Encoding.UTF8.GetString(pEnumList, 0, enumListLen);
+                    string[] enumList = str.Split(new[] { '\n' }, StringSplitOptions.RemoveEmptyEntries);
+                    device = enumList[0];
+                }
+                else if (deviceNum == 1)
+                    device = Encoding.UTF8.GetString(pEnumList, 0, enumListLen);
+                else
+                {
+                    OperateResult.AppendText("No device");
+                    goto SAMPLE_END;
+                }
+
+                //3.Connect the device.
+                uRet = DSTP2x_ConnEnumeratedDev(device, ref dev_prt);
+                if (uRet != 0)
+                {
+                    OperateResult.AppendText("Failed to connect device,error code:[" + uRet.ToString() + "]");
+                    goto SAMPLE_END;
+                }
+
+                //Non essential interface. 1-ZPL, 2-TSPL, 3-ESCPOS
+                uRet = DSTP2x_SetPrnEmulation(dev_prt, 1); //ZPL
+                if (uRet != 0)
+                {
+                    OperateResult.AppendText("Failed to set up print simulation,error code:[" + uRet.ToString() + "]");
+                    goto SAMPLE_END;
+                }
+
+                //4.Load the template.
+                uRet = DSTP2x_LoadLabelTmpl(tmpPath, ref tmp_prt);
+                if (uRet != 0)
+                {
+                    OperateResult.AppendText("Failed to load label template,error code:[" + uRet.ToString() + "]");
+                    goto SAMPLE_END;
+                }
+
+                //5.Set the print mode. 0-print, 1-generate the prn file, 2-generate the preview image.
+                uRet = DSTP2x_SetTmplPrnMode(tmp_prt, 0); //set print mode
+                if (uRet != 0)
+                {
+                    OperateResult.AppendText("Setting whether to print failed,error code:[" + uRet.ToString() + "]");
+                    goto SAMPLE_END;
+                }
+
+                //6.Set the print data.
+                uRet = DSTP2x_SetTmplPrnData(tmp_prt, "Text-01", ms_sncode.Text); //The data must be utf-8
+                if (uRet != 0)
+                {
+                    OperateResult.AppendText("Failed to set someone data in template,error code:[" + uRet.ToString() + "]");
+                    goto SAMPLE_END;
+                }
+
+                //7.Set the RFID data.
+                uRet = DSTP2x_SetTmplRFIDData(tmp_prt, "EPC-01", Hex.Checked ? AsciiToHex(ms_sncode.Text) : ms_sncode.Text, Hex.Checked ? AsciiToHex(ms_sncode.Text).Length : ms_sncode.Text.Length);
+                if (uRet != 0)
+                {
+                    OperateResult.AppendText("Failed to set EPC data in template,error code:[" + uRet.ToString() + "]");
+                    goto SAMPLE_END;
+                }
+
+                uRet = DSTP2x_SetTmplRFIDData(tmp_prt, "USER-01", "123ABC", "123ABC".Length);
+                if (uRet != 0)
+                {
+                    OperateResult.AppendText("Failed to set USER data in template,error code:[" + uRet.ToString() + "]");
+                    goto SAMPLE_END;
+                }
+
+                //8.Print template and get the RFID data.
+                uRet = DSTP2x_PrintTmpl(dev_prt, tmp_prt, szOutFile, ref pOutFileSize, szOutRFID, ref pOutRFIDSize);
+                if (uRet != 0)
+                {
+                    OperateResult.AppendText("Print template failed,error code:[" + uRet.ToString() + "]");
+                    goto SAMPLE_END;
+                }
+
+                OperateResult.AppendText("The RFID data is " + Encoding.UTF8.GetString(szOutRFID, 0, pOutRFIDSize));
+
+                //9.Delete the handle of template.
+                uRet = DSTP2x_DeleteTmpl(tmp_prt);
+                if (uRet != 0)
+                {
+                    OperateResult.AppendText("Delete handle of template failed,error code:[" + uRet.ToString() + "]");
+                    goto SAMPLE_END;
+                }
+
+                //10.Disconnect the device.
+                uRet = DSTP2x_DisconnDev(dev_prt);
+                if (uRet != 0)
+                {
+                    OperateResult.AppendText("Delete handle of device failed,error code:[" + uRet.ToString() + "]");
+                    goto SAMPLE_END;
+                }
+            SAMPLE_END:
+                {
+                    uRet = DSTP2x_Lib_Clear();
+                }
+            }
+        }
+
+        static string AsciiToHex(string asciiString)
+        {
+            byte[] bytes = Encoding.ASCII.GetBytes(asciiString);
+            return BitConverter.ToString(bytes).Replace("-", "").ToLower();
+        }
+
+        private void pr_code_TextChanged(object sender, EventArgs e)
+        {
+            DataTable dt = (DataTable)dh.ExecuteSql("select la_id,la_url,la_isdefault from label where la_prodcode='" + pr_code.Text + "' and la_templatetype='RFID' and la_statuscode='AUDITED' order by la_isdefault", "select");
+            if (dt.Rows.Count == 0)
+            {
+                dt = (DataTable)dh.ExecuteSql("select la_id,la_url,la_isdefault from label where la_prodcode is null and la_templatetype='RFID' and la_statuscode='AUDITED' order by la_isdefault", "select");
+            }
+            PrintLabel.DataSource = dt;
+            PrintLabel.DisplayMember = "la_url";
+            PrintLabel.ValueMember = "la_id";
+        }
+    }
+}

+ 252 - 0
UAS_MES_YDCY/FunctionCode/Special/Special_RePrintRFID.resx

@@ -0,0 +1,252 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+  <data name="Clean.DownImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAAEUAAAAWCAYAAACWl1FwAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
+        dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFfSURBVFhH5dhNTsJgFIXhM2WiCxL2oAEHrJKhQSYM
+        JIgzjSLIX0sRKPSPtl+Lo2uOgVbWcJu8CzhP8nVwISIAUAFwA+AWQFNh3M39lZMHrgDUu91uyxjji8KP
+        u7mfDgCuiVLt958fkjSTie3I62iqLu7m/sHgpQ2gRpSG6/nmc2bL23imtuHMkp0f5ADuidIMoljev+bq
+        o8PpH4NmcIjlY7JQHx0KlPCQyHBqqY8OJUqcyGhuq48OBUoUJzJeLNVHhwLlkKQysRz10eECZbpcqe8C
+        JU6NzJ1v9dGhQElSI9Zqoz46lCgmE3u9VR8dCpTUZOJsXPXRoUTJclltd+qjQ4FislzW7l59dChR8lw2
+        e099dDijNA5xYnZBKFvPVxv3x0lanA5qT71eOzsexQsjcf1AXdzN/XQ4H5l4fqs/djqtIIzC/Pgj2uJu
+        7i/Okf8O11UAd6c3pS3u5v6/w/UvTaFspAxAMh4AAAAASUVORK5CYII=
+</value>
+  </data>
+  <data name="Clean.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        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
+        YII=
+</value>
+  </data>
+  <data name="Clean.MoveImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAAEUAAAAWCAYAAACWl1FwAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
+        dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAF3SURBVFhH5djbSgJRFMbxHsP7wBfYT7jvu46QDIoI
+        C4QNQRAIgVBRSdpxpgZN83wYx5nZOjNqrvgEd73DGvhfzdX3g32ztohoS0iVElLtCakehVQdhmE39qfg
+        AZBtIdX70Y0TjsJ4SQw/7MZ+OAip0kDJnD3UdJAsyXIjKvWm7MJu7M+X6lpIlQWK3ZhEq8pgRvfdKdvK
+        /Rk1/XglpHKA0ulPF3Tb0eyDAzzWKL3pgq7bmn1wMChdPadiK2QfHAxKW8/pqhmwDw4GpRXOqdAI2AcH
+        g9IME7qs++yDg0H5DhK6qE3YBweD0vATOq967IODQfnyE1KOxz44GJTaJKb855h9cDAoVS+mU9tlHxwM
+        iuPFdGK57IPDH8o4ouO3EfvgYFA+xhEdvg7ZB4cNil3uhquc5dLBy5Bt2P/U0+Z0kN0tOhqHlpzt0v7z
+        gF3Yjf1w2ByZ0jjD7RSs8K7l/+Ant7Ab+8058t/hOiOkquBNMQy7sX99uP4F5D4U8hdr4uMAAAAASUVO
+        RK5CYII=
+</value>
+  </data>
+  <data name="Clean.NormalImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAAEUAAAAWCAYAAACWl1FwAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
+        dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGpSURBVFhH5dg/ayJBGMfxB4YFXTARBAvBQhAsBEEQ
+        ZLnNzFu4I6aYV5kyF9tgbad1jrsYY9T4Z3fcnV2f45e38Sx8q6l+n2IWhpiZjDFVY8wPY8xPY4wVGHZj
+        fxUepLW+0Vrfz+fzR+fclgV+2I39cNBa31Icx/FisXi6XpnL8io27F8ul89xHN9RFEWTPM+ToihZet57
+        F0XRA43HYwsp7wvxwQEeNBqNbFmWnOW5+OAADxoOh7YoS3ZZJj44wIMGg4H1RcGpu4gPDvCgfr9vvfd8
+        TlPxwQEe1Ov1bO49H8+J+OAAD+p2uxaXzNfpJD44wIM6nY69ZDnvDkfxwQEe1G637SXLeLs/iA8O8KBW
+        q2XdJePNbi8+OMCDms2mxe9o/bkTHxzgQY1GwybO8WrzKT44wIPq9bpNUsdv64344AAPqtVq9pw6/vv+
+        IT44wIPCMJzsvg7Jv/UH/1m9iw3794ejC8PwgSqVyt3LbPZ8SpLvg9e3lbiwG/vhAA8KguA2CIL739Pp
+        42a73eNQWtiN/XCAB+GhVilVVUrFSqlfSikrMOzG/u+H6/+yQ4jdXN8e9AAAAABJRU5ErkJggg==
+</value>
+  </data>
+</root>

+ 9 - 0
UAS_MES_YDCY/UAS_MES_YDCY.csproj

@@ -1295,6 +1295,12 @@
     <Compile Include="FunctionCode\Special\Special_CancelMaterial.Designer.cs">
       <DependentUpon>Special_CancelMaterial.cs</DependentUpon>
     </Compile>
+    <Compile Include="FunctionCode\Special\Special_RePrintRFID.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Include="FunctionCode\Special\Special_RePrintRFID.Designer.cs">
+      <DependentUpon>Special_RePrintRFID.cs</DependentUpon>
+    </Compile>
     <Compile Include="FunctionCode\Special\Special_ChangeMakeCodeBySN.cs">
       <SubType>Form</SubType>
     </Compile>
@@ -2131,6 +2137,9 @@
     <EmbeddedResource Include="FunctionCode\Special\Special_CancelMaterial.resx">
       <DependentUpon>Special_CancelMaterial.cs</DependentUpon>
     </EmbeddedResource>
+    <EmbeddedResource Include="FunctionCode\Special\Special_RePrintRFID.resx">
+      <DependentUpon>Special_RePrintRFID.cs</DependentUpon>
+    </EmbeddedResource>
     <EmbeddedResource Include="FunctionCode\Special\Special_ChangeMakeCodeBySN.resx">
       <DependentUpon>Special_ChangeMakeCodeBySN.cs</DependentUpon>
     </EmbeddedResource>