Browse Source

程序调整提交

caosy 4 years ago
parent
commit
b43c724f63
100 changed files with 12916 additions and 670 deletions
  1. 4 3
      UAS_MES_DN/DataOperate/ExcelHandler.cs
  2. 0 1
      UAS_MES_DN/FunctionCode/Make/Make_Decompose.Designer.cs
  3. 90 46
      UAS_MES_DN/FunctionCode/Special/Special_Reset.Designer.cs
  4. 27 2
      UAS_MES_DN/FunctionCode/Special/Special_Reset.cs
  5. 41 0
      UAS_MES_DN/FunctionCode/Special/Special_Reset.resx
  6. 555 0
      UAS_MES_JH/FunctionCode/Make/Make_ColorBoxLabelPrint2.Designer.cs
  7. 559 0
      UAS_MES_JH/FunctionCode/Make/Make_ColorBoxLabelPrint2.cs
  8. 123 0
      UAS_MES_JH/FunctionCode/Make/Make_ColorBoxLabelPrint2.resx
  9. 138 67
      UAS_MES_JH/FunctionCode/Make/Make_RePrintLabel.Designer.cs
  10. 83 0
      UAS_MES_JH/FunctionCode/Make/Make_RePrintLabel.cs
  11. 3 0
      UAS_MES_JH/FunctionCode/Make/Make_RePrintLabel.resx
  12. 183 135
      UAS_MES_JH/FunctionCode/Make/Make_TestCollection.Designer.cs
  13. 16 15
      UAS_MES_JH/FunctionCode/Make/Make_TestCollection.cs
  14. 1 1
      UAS_MES_JH/FunctionCode/Special/Special_Reset.cs
  15. 2 2
      UAS_MES_LT/FunctionCode/Make/Make_FeedingCollection.cs
  16. 1177 0
      UAS_MES_LT/FunctionCode/Make/Make_TestCollectionOh.Designer.cs
  17. 1026 0
      UAS_MES_LT/FunctionCode/Make/Make_TestCollectionOh.cs
  18. 413 0
      UAS_MES_LT/FunctionCode/Make/Make_TestCollectionOh.resx
  19. 25 0
      UAS_MES_LT/FunctionCode/Packing/Packing_PackageCollection.cs
  20. 240 162
      UAS_MES_LT/FunctionCode/Packing/Packing_PackageCollectionWeigh.Designer.cs
  21. 2 0
      UAS_MES_LT/FunctionCode/Special/Special_Reset.cs
  22. 197 204
      UAS_MES_LT/FunctionCode/Warehouse/Warehouse_FinishedProductOut.Designer.cs
  23. 2 2
      UAS_MES_LT/FunctionCode/Warehouse/Warehouse_FinishedProductOut.cs
  24. 0 18
      UAS_MES_LT/FunctionCode/Warehouse/Warehouse_FinishedProductOut.resx
  25. 25 8
      UAS_MES_LT/PublicMethod/LogicHandler.cs
  26. 4 4
      UAS_MES_LT/PublicMethod/Print.cs
  27. 87 0
      UAS_MES_ZT/App.config
  28. 444 0
      UAS_MES_ZT/CustomControl/AccordionMenu/AccordionMenu.Designer.cs
  29. 317 0
      UAS_MES_ZT/CustomControl/AccordionMenu/AccordionMenu.cs
  30. 783 0
      UAS_MES_ZT/CustomControl/AccordionMenu/AccordionMenu.resx
  31. 74 0
      UAS_MES_ZT/CustomControl/AccordionMenu/NavagationBar.Designer.cs
  32. 156 0
      UAS_MES_ZT/CustomControl/AccordionMenu/NavagationBar.cs
  33. 123 0
      UAS_MES_ZT/CustomControl/AccordionMenu/NavagationBar.resx
  34. 48 0
      UAS_MES_ZT/CustomControl/BaseForm/BaseForm.Designer.cs
  35. 37 0
      UAS_MES_ZT/CustomControl/BaseForm/BaseForm.cs
  36. 120 0
      UAS_MES_ZT/CustomControl/BaseForm/BaseForm.resx
  37. 37 0
      UAS_MES_ZT/CustomControl/ButtonUtil/ArrowLeftButton.Designer.cs
  38. 14 0
      UAS_MES_ZT/CustomControl/ButtonUtil/ArrowLeftButton.cs
  39. 37 0
      UAS_MES_ZT/CustomControl/ButtonUtil/ArrowRightButton.Designer.cs
  40. 14 0
      UAS_MES_ZT/CustomControl/ButtonUtil/ArrowRightButton.cs
  41. 36 0
      UAS_MES_ZT/CustomControl/ButtonUtil/ChooseAllButton.Designer.cs
  42. 49 0
      UAS_MES_ZT/CustomControl/ButtonUtil/ChooseAllButton.cs
  43. 36 0
      UAS_MES_ZT/CustomControl/ButtonUtil/CloseButton.Designer.cs
  44. 25 0
      UAS_MES_ZT/CustomControl/ButtonUtil/CloseButton.cs
  45. 36 0
      UAS_MES_ZT/CustomControl/ButtonUtil/DeleteButton.Designer.cs
  46. 52 0
      UAS_MES_ZT/CustomControl/ButtonUtil/DeleteButton.cs
  47. 37 0
      UAS_MES_ZT/CustomControl/ButtonUtil/LockMakeCode.Designer.cs
  48. 411 0
      UAS_MES_ZT/CustomControl/ButtonUtil/LockMakeCode.cs
  49. 37 0
      UAS_MES_ZT/CustomControl/ButtonUtil/NormalButton.Designer.cs
  50. 414 0
      UAS_MES_ZT/CustomControl/ButtonUtil/NormalButton.cs
  51. 43 0
      UAS_MES_ZT/CustomControl/ClickPicBox/ClickPicBox.Designer.cs
  52. 43 0
      UAS_MES_ZT/CustomControl/ClickPicBox/ClickPicBox.cs
  53. 120 0
      UAS_MES_ZT/CustomControl/ClickPicBox/ClickPicBox.resx
  54. 37 0
      UAS_MES_ZT/CustomControl/ClickPicBox/LockIcon.Designer.cs
  55. 46 0
      UAS_MES_ZT/CustomControl/ClickPicBox/LockIcon.cs
  56. 37 0
      UAS_MES_ZT/CustomControl/ComBoxWithFocus/ComBoxWithFocus.Designer.cs
  57. 32 0
      UAS_MES_ZT/CustomControl/ComBoxWithFocus/ComBoxWithFocus.cs
  58. 46 0
      UAS_MES_ZT/CustomControl/ComBoxWithFocus/ComboxWithTip.Designer.cs
  59. 29 0
      UAS_MES_ZT/CustomControl/ComBoxWithFocus/ComboxWithTip.cs
  60. 126 0
      UAS_MES_ZT/CustomControl/ComBoxWithFocus/ComboxWithTip.resx
  61. 62 0
      UAS_MES_ZT/CustomControl/ComBoxWithFocus/PrinterCombox.Designer.cs
  62. 46 0
      UAS_MES_ZT/CustomControl/ComBoxWithFocus/PrinterCombox.cs
  63. 120 0
      UAS_MES_ZT/CustomControl/ComBoxWithFocus/PrinterCombox.resx
  64. 60 0
      UAS_MES_ZT/CustomControl/ComBoxWithFocus/SerialPortCombox.Designer.cs
  65. 38 0
      UAS_MES_ZT/CustomControl/ComBoxWithFocus/SerialPortCombox.cs
  66. 120 0
      UAS_MES_ZT/CustomControl/ComBoxWithFocus/SerialPortCombox.resx
  67. 62 0
      UAS_MES_ZT/CustomControl/CustomCheckBox/AutoPrintCheckBox.Designer.cs
  68. 63 0
      UAS_MES_ZT/CustomControl/CustomCheckBox/AutoPrintCheckBox.cs
  69. 120 0
      UAS_MES_ZT/CustomControl/CustomCheckBox/AutoPrintCheckBox.resx
  70. 36 0
      UAS_MES_ZT/CustomControl/CustomCheckBox/CustomCheckBox.Designer.cs
  71. 51 0
      UAS_MES_ZT/CustomControl/CustomCheckBox/CustomCheckBox.cs
  72. 43 0
      UAS_MES_ZT/CustomControl/CustomCheckBox/LockCheckBox.Designer.cs
  73. 76 0
      UAS_MES_ZT/CustomControl/CustomCheckBox/LockCheckBox.cs
  74. 123 0
      UAS_MES_ZT/CustomControl/CustomCheckBox/LockCheckBox.resx
  75. 42 0
      UAS_MES_ZT/CustomControl/CustomCheckBox/ReSetCheckBox.Designer.cs
  76. 31 0
      UAS_MES_ZT/CustomControl/CustomCheckBox/ReSetCheckBox.cs
  77. 123 0
      UAS_MES_ZT/CustomControl/CustomCheckBox/ReSetCheckBox.resx
  78. 42 0
      UAS_MES_ZT/CustomControl/CustomTabControl/CustomTabControl.Designer.cs
  79. 330 0
      UAS_MES_ZT/CustomControl/CustomTabControl/CustomTabControl.cs
  80. 120 0
      UAS_MES_ZT/CustomControl/CustomTabControl/CustomTabControl.resx
  81. 91 0
      UAS_MES_ZT/CustomControl/CustomTabControl/ThemedColors.cs
  82. 42 0
      UAS_MES_ZT/CustomControl/DataGrid_View/DataGridViewExpand.Designer.cs
  83. 288 0
      UAS_MES_ZT/CustomControl/DataGrid_View/DataGridViewExpand.cs
  84. 123 0
      UAS_MES_ZT/CustomControl/DataGrid_View/DataGridViewExpand.resx
  85. 45 0
      UAS_MES_ZT/CustomControl/DataGrid_View/DataGridViewWithCheckBox.Designer.cs
  86. 129 0
      UAS_MES_ZT/CustomControl/DataGrid_View/DataGridViewWithCheckBox.cs
  87. 123 0
      UAS_MES_ZT/CustomControl/DataGrid_View/DataGridViewWithCheckBox.resx
  88. 45 0
      UAS_MES_ZT/CustomControl/DataGrid_View/DataGridViewWithFilter.Designer.cs
  89. 29 0
      UAS_MES_ZT/CustomControl/DataGrid_View/DataGridViewWithFilter.cs
  90. 123 0
      UAS_MES_ZT/CustomControl/DataGrid_View/DataGridViewWithFilter.resx
  91. 49 0
      UAS_MES_ZT/CustomControl/DataGrid_View/DataGridViewWithSerialNum.Designer.cs
  92. 72 0
      UAS_MES_ZT/CustomControl/DataGrid_View/DataGridViewWithSerialNum.cs
  93. 123 0
      UAS_MES_ZT/CustomControl/DataGrid_View/DataGridViewWithSerialNum.resx
  94. 44 0
      UAS_MES_ZT/CustomControl/GroupBoxWithBorder/GroupBoxWithBorder.Designer.cs
  95. 66 0
      UAS_MES_ZT/CustomControl/GroupBoxWithBorder/GroupBoxWithBorder.cs
  96. 152 0
      UAS_MES_ZT/CustomControl/HeadBar/HeadBar.Designer.cs
  97. 150 0
      UAS_MES_ZT/CustomControl/HeadBar/HeadBar.cs
  98. 432 0
      UAS_MES_ZT/CustomControl/HeadBar/HeadBar.resx
  99. 127 0
      UAS_MES_ZT/CustomControl/HeadBar/HeadBar.zu.resx
  100. 36 0
      UAS_MES_ZT/CustomControl/ListViewExpand/ListViewExpand.Designer.cs

+ 4 - 3
UAS_MES_DN/DataOperate/ExcelHandler.cs

@@ -129,7 +129,7 @@ namespace UAS_MES_NEW.DataOperate
         {
             DataTable dt = new DataTable();
             dt.TableName = TableName;
-            if (FolderPath.Contains(".xls") || FolderPath.Contains(".xlsx"))
+            if (FolderPath.Contains(".xls") || FolderPath.Contains(".xlsx") || FolderPath.Contains(".XLS") || FolderPath.Contains(".XLSX"))
             {
                 using (FileStream file = new FileStream(FolderPath, FileMode.Open, FileAccess.Read))
                 {
@@ -139,7 +139,7 @@ namespace UAS_MES_NEW.DataOperate
                     //获取所有的列名
                     foreach (ICell item in sheet.GetRow(sheet.FirstRowNum).Cells)
                     {
-                        dt.Columns.Add(item.ToString(), typeof(string));
+                        dt.Columns.Add(item.ToString().Trim(), typeof(string));
                     }
 
                     System.Collections.IEnumerator rows = sheet.GetRowEnumerator();
@@ -211,7 +211,7 @@ namespace UAS_MES_NEW.DataOperate
                                     break;
                                 case CellType.STRING:
                                     string strValue = item.StringCellValue;
-                                    if (string.IsNullOrEmpty(strValue))
+                                    if (!string.IsNullOrEmpty(strValue))
                                     {
                                         dr[item.ColumnIndex] = strValue.ToString();
                                     }
@@ -231,6 +231,7 @@ namespace UAS_MES_NEW.DataOperate
                     }
                 }
             }
+
             return dt;
         }
 

+ 0 - 1
UAS_MES_DN/FunctionCode/Make/Make_Decompose.Designer.cs

@@ -411,7 +411,6 @@
             this.nochange.TabStop = true;
             this.nochange.Text = "拆解";
             this.nochange.UseVisualStyleBackColor = true;
-            this.nochange.Visible = false;
             // 
             // dataGridViewCheckBoxColumn1
             // 

+ 90 - 46
UAS_MES_DN/FunctionCode/Special/Special_Reset.Designer.cs

@@ -47,16 +47,18 @@
             this.OperatResult = new UAS_MES_NEW.CustomControl.RichText.RichTextAutoBottom();
             this.input = new UAS_MES_NEW.CustomControl.TextBoxWithIcon.EnterTextBox();
             this.Split = new UAS_MES_NEW.CustomControl.ButtonUtil.NormalButton();
+            this.checkBox1 = new System.Windows.Forms.CheckBox();
+            this.excelim = new UAS_MES_NEW.CustomControl.ButtonUtil.NormalButton();
+            this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog();
             this.SuspendLayout();
             // 
             // Pallet_label
             // 
             this.Pallet_label.AutoSize = true;
             this.Pallet_label.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
-            this.Pallet_label.Location = new System.Drawing.Point(7, 41);
-            this.Pallet_label.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
+            this.Pallet_label.Location = new System.Drawing.Point(10, 62);
             this.Pallet_label.Name = "Pallet_label";
-            this.Pallet_label.Size = new System.Drawing.Size(58, 21);
+            this.Pallet_label.Size = new System.Drawing.Size(86, 31);
             this.Pallet_label.TabIndex = 1;
             this.Pallet_label.Text = "录入框";
             // 
@@ -64,10 +66,9 @@
             // 
             this.bigboxBtn.AutoSize = true;
             this.bigboxBtn.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
-            this.bigboxBtn.Location = new System.Drawing.Point(11, 2);
-            this.bigboxBtn.Margin = new System.Windows.Forms.Padding(2);
+            this.bigboxBtn.Location = new System.Drawing.Point(16, 3);
             this.bigboxBtn.Name = "bigboxBtn";
-            this.bigboxBtn.Size = new System.Drawing.Size(60, 25);
+            this.bigboxBtn.Size = new System.Drawing.Size(87, 35);
             this.bigboxBtn.TabIndex = 234;
             this.bigboxBtn.Text = "箱号";
             this.bigboxBtn.UseVisualStyleBackColor = true;
@@ -78,10 +79,9 @@
             this.serBtn.AutoSize = true;
             this.serBtn.Checked = true;
             this.serBtn.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
-            this.serBtn.Location = new System.Drawing.Point(80, 2);
-            this.serBtn.Margin = new System.Windows.Forms.Padding(2);
+            this.serBtn.Location = new System.Drawing.Point(120, 3);
             this.serBtn.Name = "serBtn";
-            this.serBtn.Size = new System.Drawing.Size(108, 25);
+            this.serBtn.Size = new System.Drawing.Size(159, 35);
             this.serBtn.TabIndex = 233;
             this.serBtn.TabStop = true;
             this.serBtn.Text = "单台序列号";
@@ -94,9 +94,10 @@
             | System.Windows.Forms.AnchorStyles.Left)));
             this.st_rstepcode_label.AutoSize = true;
             this.st_rstepcode_label.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
-            this.st_rstepcode_label.Location = new System.Drawing.Point(506, 9);
+            this.st_rstepcode_label.Location = new System.Drawing.Point(759, 14);
+            this.st_rstepcode_label.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
             this.st_rstepcode_label.Name = "st_rstepcode_label";
-            this.st_rstepcode_label.Size = new System.Drawing.Size(74, 21);
+            this.st_rstepcode_label.Size = new System.Drawing.Size(110, 31);
             this.st_rstepcode_label.TabIndex = 235;
             this.st_rstepcode_label.Text = "回流工序";
             // 
@@ -106,9 +107,10 @@
             | System.Windows.Forms.AnchorStyles.Left)));
             this.ma_craftcode_label.AutoSize = true;
             this.ma_craftcode_label.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
-            this.ma_craftcode_label.Location = new System.Drawing.Point(326, 4);
+            this.ma_craftcode_label.Location = new System.Drawing.Point(489, 6);
+            this.ma_craftcode_label.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
             this.ma_craftcode_label.Name = "ma_craftcode_label";
-            this.ma_craftcode_label.Size = new System.Drawing.Size(74, 21);
+            this.ma_craftcode_label.Size = new System.Drawing.Size(110, 31);
             this.ma_craftcode_label.TabIndex = 236;
             this.ma_craftcode_label.Text = "回流途程";
             // 
@@ -118,9 +120,10 @@
             | System.Windows.Forms.AnchorStyles.Left)));
             this.ms_makecode_label.AutoSize = true;
             this.ms_makecode_label.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
-            this.ms_makecode_label.Location = new System.Drawing.Point(7, 81);
+            this.ms_makecode_label.Location = new System.Drawing.Point(10, 122);
+            this.ms_makecode_label.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
             this.ms_makecode_label.Name = "ms_makecode_label";
-            this.ms_makecode_label.Size = new System.Drawing.Size(58, 21);
+            this.ms_makecode_label.Size = new System.Drawing.Size(86, 31);
             this.ms_makecode_label.TabIndex = 240;
             this.ms_makecode_label.Text = "工单号";
             // 
@@ -130,9 +133,10 @@
             | System.Windows.Forms.AnchorStyles.Left)));
             this.ms_prodcode_label.AutoSize = true;
             this.ms_prodcode_label.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
-            this.ms_prodcode_label.Location = new System.Drawing.Point(326, 81);
+            this.ms_prodcode_label.Location = new System.Drawing.Point(489, 122);
+            this.ms_prodcode_label.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
             this.ms_prodcode_label.Name = "ms_prodcode_label";
-            this.ms_prodcode_label.Size = new System.Drawing.Size(74, 21);
+            this.ms_prodcode_label.Size = new System.Drawing.Size(110, 31);
             this.ms_prodcode_label.TabIndex = 241;
             this.ms_prodcode_label.Text = "产品编号";
             // 
@@ -141,10 +145,10 @@
             this.WeighRecord.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
             this.columnHeader3});
             this.WeighRecord.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
-            this.WeighRecord.Location = new System.Drawing.Point(11, 108);
-            this.WeighRecord.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
+            this.WeighRecord.Location = new System.Drawing.Point(16, 162);
+            this.WeighRecord.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
             this.WeighRecord.Name = "WeighRecord";
-            this.WeighRecord.Size = new System.Drawing.Size(421, 321);
+            this.WeighRecord.Size = new System.Drawing.Size(630, 480);
             this.WeighRecord.TabIndex = 243;
             this.WeighRecord.UseCompatibleStateImageBehavior = false;
             this.WeighRecord.View = System.Windows.Forms.View.Details;
@@ -157,9 +161,10 @@
             // cd_stepno
             // 
             this.cd_stepno.AutoSize = true;
-            this.cd_stepno.Location = new System.Drawing.Point(704, 41);
+            this.cd_stepno.Location = new System.Drawing.Point(1056, 62);
+            this.cd_stepno.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
             this.cd_stepno.Name = "cd_stepno";
-            this.cd_stepno.Size = new System.Drawing.Size(0, 12);
+            this.cd_stepno.Size = new System.Drawing.Size(0, 18);
             this.cd_stepno.TabIndex = 244;
             // 
             // 数据清空
@@ -169,12 +174,13 @@
             this.数据清空.DownImage = ((System.Drawing.Image)(resources.GetObject("数据清空.DownImage")));
             this.数据清空.Image = null;
             this.数据清空.IsShowBorder = true;
-            this.数据清空.Location = new System.Drawing.Point(473, 400);
+            this.数据清空.Location = new System.Drawing.Point(710, 600);
+            this.数据清空.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
             this.数据清空.MoveImage = ((System.Drawing.Image)(resources.GetObject("数据清空.MoveImage")));
             this.数据清空.Name = "数据清空";
             this.数据清空.NormalImage = ((System.Drawing.Image)(resources.GetObject("数据清空.NormalImage")));
             this.数据清空.Power = null;
-            this.数据清空.Size = new System.Drawing.Size(56, 28);
+            this.数据清空.Size = new System.Drawing.Size(84, 42);
             this.数据清空.TabIndex = 245;
             this.数据清空.Text = "数据清空";
             this.数据清空.UseVisualStyleBackColor = false;
@@ -187,10 +193,11 @@
             this.ms_prodcode.AutoSize = true;
             this.ms_prodcode.CutLength = null;
             this.ms_prodcode.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
-            this.ms_prodcode.Location = new System.Drawing.Point(422, 81);
-            this.ms_prodcode.MaximumSize = new System.Drawing.Size(150, 0);
+            this.ms_prodcode.Location = new System.Drawing.Point(633, 122);
+            this.ms_prodcode.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+            this.ms_prodcode.MaximumSize = new System.Drawing.Size(225, 0);
             this.ms_prodcode.Name = "ms_prodcode";
-            this.ms_prodcode.Size = new System.Drawing.Size(0, 21);
+            this.ms_prodcode.Size = new System.Drawing.Size(0, 31);
             this.ms_prodcode.TabIndex = 239;
             // 
             // ms_makecode
@@ -200,10 +207,11 @@
             this.ms_makecode.AutoSize = true;
             this.ms_makecode.CutLength = null;
             this.ms_makecode.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
-            this.ms_makecode.Location = new System.Drawing.Point(87, 81);
-            this.ms_makecode.MaximumSize = new System.Drawing.Size(250, 0);
+            this.ms_makecode.Location = new System.Drawing.Point(130, 122);
+            this.ms_makecode.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+            this.ms_makecode.MaximumSize = new System.Drawing.Size(375, 0);
             this.ms_makecode.Name = "ms_makecode";
-            this.ms_makecode.Size = new System.Drawing.Size(0, 21);
+            this.ms_makecode.Size = new System.Drawing.Size(0, 31);
             this.ms_makecode.TabIndex = 242;
             // 
             // cd_stepcode
@@ -214,13 +222,14 @@
             this.cd_stepcode.DBTitle = "回流工序";
             this.cd_stepcode.Font = new System.Drawing.Font("微软雅黑", 9F);
             this.cd_stepcode.FormName = null;
-            this.cd_stepcode.Location = new System.Drawing.Point(473, 41);
+            this.cd_stepcode.Location = new System.Drawing.Point(710, 62);
+            this.cd_stepcode.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
             this.cd_stepcode.Name = "cd_stepcode";
             this.cd_stepcode.Power = "ifspecial";
             this.cd_stepcode.ReturnData = null;
             this.cd_stepcode.SelectField = null;
             this.cd_stepcode.SetValueField = null;
-            this.cd_stepcode.Size = new System.Drawing.Size(150, 22);
+            this.cd_stepcode.Size = new System.Drawing.Size(225, 33);
             this.cd_stepcode.TabIndex = 238;
             this.cd_stepcode.TableName = null;
             this.cd_stepcode.Tag = "";
@@ -232,11 +241,12 @@
             this.cr_code.BackColor = System.Drawing.Color.White;
             this.cr_code.Font = new System.Drawing.Font("微软雅黑", 9F);
             this.cr_code.ID = null;
-            this.cr_code.Location = new System.Drawing.Point(282, 40);
+            this.cr_code.Location = new System.Drawing.Point(423, 60);
+            this.cr_code.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
             this.cr_code.Name = "cr_code";
             this.cr_code.Power = "ifspecial";
             this.cr_code.ReadOnly = true;
-            this.cr_code.Size = new System.Drawing.Size(150, 23);
+            this.cr_code.Size = new System.Drawing.Size(223, 31);
             this.cr_code.Str = null;
             this.cr_code.Str1 = null;
             this.cr_code.Str2 = null;
@@ -247,10 +257,9 @@
             // OperatResult
             // 
             this.OperatResult.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
-            this.OperatResult.Location = new System.Drawing.Point(11, 433);
-            this.OperatResult.Margin = new System.Windows.Forms.Padding(2);
+            this.OperatResult.Location = new System.Drawing.Point(16, 650);
             this.OperatResult.Name = "OperatResult";
-            this.OperatResult.Size = new System.Drawing.Size(777, 123);
+            this.OperatResult.Size = new System.Drawing.Size(1164, 182);
             this.OperatResult.TabIndex = 3;
             this.OperatResult.Text = "";
             // 
@@ -259,11 +268,10 @@
             this.input.AllPower = null;
             this.input.BackColor = System.Drawing.Color.White;
             this.input.ID = null;
-            this.input.Location = new System.Drawing.Point(80, 43);
-            this.input.Margin = new System.Windows.Forms.Padding(2);
+            this.input.Location = new System.Drawing.Point(120, 64);
             this.input.Name = "input";
             this.input.Power = null;
-            this.input.Size = new System.Drawing.Size(148, 21);
+            this.input.Size = new System.Drawing.Size(220, 28);
             this.input.Str = null;
             this.input.Str1 = null;
             this.input.Str2 = null;
@@ -277,23 +285,57 @@
             this.Split.DownImage = ((System.Drawing.Image)(resources.GetObject("Split.DownImage")));
             this.Split.Image = null;
             this.Split.IsShowBorder = true;
-            this.Split.Location = new System.Drawing.Point(473, 108);
-            this.Split.Margin = new System.Windows.Forms.Padding(2);
+            this.Split.Location = new System.Drawing.Point(710, 162);
             this.Split.MoveImage = ((System.Drawing.Image)(resources.GetObject("Split.MoveImage")));
             this.Split.Name = "Split";
             this.Split.NormalImage = ((System.Drawing.Image)(resources.GetObject("Split.NormalImage")));
             this.Split.Power = null;
-            this.Split.Size = new System.Drawing.Size(56, 22);
+            this.Split.Size = new System.Drawing.Size(84, 33);
             this.Split.TabIndex = 0;
             this.Split.Text = "站点重置";
             this.Split.UseVisualStyleBackColor = false;
             this.Split.Click += new System.EventHandler(this.Split_Click);
             // 
+            // checkBox1
+            // 
+            this.checkBox1.AutoSize = true;
+            this.checkBox1.Location = new System.Drawing.Point(710, 223);
+            this.checkBox1.Name = "checkBox1";
+            this.checkBox1.Size = new System.Drawing.Size(178, 22);
+            this.checkBox1.TabIndex = 246;
+            this.checkBox1.Text = "清空转号写号记录";
+            this.checkBox1.UseVisualStyleBackColor = true;
+            // 
+            // excelim
+            // 
+            this.excelim.AllPower = null;
+            this.excelim.BackColor = System.Drawing.Color.Transparent;
+            this.excelim.DownImage = ((System.Drawing.Image)(resources.GetObject("excelim.DownImage")));
+            this.excelim.Image = null;
+            this.excelim.IsShowBorder = true;
+            this.excelim.Location = new System.Drawing.Point(710, 521);
+            this.excelim.Margin = new System.Windows.Forms.Padding(4);
+            this.excelim.MoveImage = ((System.Drawing.Image)(resources.GetObject("excelim.MoveImage")));
+            this.excelim.Name = "excelim";
+            this.excelim.NormalImage = ((System.Drawing.Image)(resources.GetObject("excelim.NormalImage")));
+            this.excelim.Power = null;
+            this.excelim.Size = new System.Drawing.Size(112, 42);
+            this.excelim.TabIndex = 248;
+            this.excelim.Text = "表格导入";
+            this.excelim.UseVisualStyleBackColor = false;
+            this.excelim.Click += new System.EventHandler(this.excelim_Click);
+            // 
+            // openFileDialog1
+            // 
+            this.openFileDialog1.FileName = "openFileDialog1";
+            // 
             // Special_Reset
             // 
-            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
+            this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 18F);
             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-            this.ClientSize = new System.Drawing.Size(805, 565);
+            this.ClientSize = new System.Drawing.Size(1208, 848);
+            this.Controls.Add(this.excelim);
+            this.Controls.Add(this.checkBox1);
             this.Controls.Add(this.数据清空);
             this.Controls.Add(this.cd_stepno);
             this.Controls.Add(this.WeighRecord);
@@ -312,7 +354,6 @@
             this.Controls.Add(this.Pallet_label);
             this.Controls.Add(this.Split);
             this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
-            this.Margin = new System.Windows.Forms.Padding(2);
             this.Name = "Special_Reset";
             this.Tag = "Special!Reset";
             this.Text = "重置站点";
@@ -342,5 +383,8 @@
         private System.Windows.Forms.ColumnHeader columnHeader3;
         private System.Windows.Forms.Label cd_stepno;
         private CustomControl.ButtonUtil.NormalButton 数据清空;
+        private System.Windows.Forms.CheckBox checkBox1;
+        private CustomControl.ButtonUtil.NormalButton excelim;
+        private System.Windows.Forms.OpenFileDialog openFileDialog1;
     }
 }

+ 27 - 2
UAS_MES_DN/FunctionCode/Special/Special_Reset.cs

@@ -20,7 +20,7 @@ namespace UAS_MES_NEW.Special
         AutoSizeFormClass asc = new AutoSizeFormClass();
         DataTable Dbfind;
         DataTable dt;
-
+        ExcelHandler eh;
         List<String> sb = new List<string>();
 
         public Special_Reset()
@@ -30,7 +30,7 @@ namespace UAS_MES_NEW.Special
 
         private void Special_BoxSplit_Load(object sender, EventArgs e)
         {
-       
+            eh = new ExcelHandler();
             dh = SystemInf.dh;
             asc.controllInitializeSize(this);
             cd_stepcode.FormName = Name;
@@ -53,6 +53,13 @@ namespace UAS_MES_NEW.Special
             string stname = dh.getFieldDataByCondition("step", "st_name", "st_code = '" + stepcode +  "'").ToString();
             dh.ExecuteSql("update makeserial set ms_status=1,ms_outboxcode='',ms_nextstepcode= '"+ stepcode + "' where ms_sncode='" + sncode + "'", "update");
             dh.ExecuteSql("delete makebad where mb_sncode = '" + sncode + "' and mb_status = 0", "delete");
+            if (checkBox1.Checked)
+            {
+                dh.ExecuteSql("update makeserial set ms_mac='',ms_bt='',ms_beforesn=''  where ms_sncode='" + sncode + "'", "update");
+                dh.ExecuteSql("delete MAKESNRELATION where sn = '" + sncode + "'", "delete");
+                dh.ExecuteSql("delete sninfo where si_sn = '" + sncode + "'", "delete");
+
+            }
             sql.Clear();
             sql.Append("update craftmaterial set cm_status=-1,cm_lastdeco=-1,cm_dropman='" + User.UserCode + "',");
             sql.Append("cm_dropdate =sysdate,CM_REMARK = '重置站点拆解',cm_dropstep='" + User.CurrentStepCode + "',");
@@ -238,5 +245,23 @@ namespace UAS_MES_NEW.Special
             WeighRecord.Items.Clear();
             sb.Clear();
         }
+
+        private void excelim_Click(object sender, EventArgs e)
+        {
+            DialogResult result = openFileDialog1.ShowDialog();
+            if (result == DialogResult.OK)
+            {
+                DataTable ddtt;
+                ddtt = eh.ImportExcel(openFileDialog1.FileName, "test");
+                if (ddtt.Rows.Count > 0)
+                {
+                    for (int i = 0; i < ddtt.Rows.Count; i++)
+                    {
+                        input.Text = ddtt.Rows[i][0].ToString();
+                        input_KeyDown(sender, new KeyEventArgs(Keys.Enter));
+                    }
+                }
+            }
+        }
     }
 }

+ 41 - 0
UAS_MES_DN/FunctionCode/Special/Special_Reset.resx

@@ -194,4 +194,45 @@
         ROJSU3qXjMKwG/vjzEz/skOI3Zqgv7AAAAAASUVORK5CYII=
 </value>
   </data>
+  <data name="excelim.DownImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAAEUAAAAWCAYAAACWl1FwAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
+        dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFcSURBVFhH5di7UsJAFMbxtDT6QMI76IAFT0npIE0K
+        GcRORxHklpAIBHLfbILV8XxeNsMznJ35F5vu+82kWYuILD4N7oq75roCw27sb/x5WBdc27btntY64o/i
+        DnZjPxy4S6A0R6PHO1WUNHc9ep4uxIXd2D8eP/XZowWUThBG+n3p0stsKbbJ0qFDFFfscQuUbpzm9Pqx
+        Eh8c4PGLkuX0Nl+LDw4GJckUTRaO+OBQo+SKpitXfHAwKClfZuuN+OBgUDJV0NzxxAeHM5TFxhffGUpe
+        aFp5n+KDg0FRfHH8nfjgUKPoktztXnxwMCgFX7xdID441ChlRf7+ID44GBTNl21wFB8capSqot0xFB8c
+        /lE6Wa70IU5oH0Ziw/5cFebpoPUwHPbL04nCJKUgisWF3dgPB3gABc9v7fvBoBcnaVKdvkha2I39cPjx
+        oPrhusndcPinpIXd2N8gIusbTaFspKtR2SQAAAAASUVORK5CYII=
+</value>
+  </data>
+  <data name="excelim.MoveImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAAEUAAAAWCAYAAACWl1FwAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
+        dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFzSURBVFhH5djNSgJRGMZxL2P2gTfQFbZvHSEZFBEW
+        CEIQBEIgVFiS9qXWoDmp4/fHzDmjM2a+vU/QqUVX0DvwXxxn9fwYXJwYEcXWNzIWt83dcq7AsBv7LXgA
+        ZI0r71/aaqjCJf8o7sFu7IcDFwdK4vimrv1oSZXRnArdQFzYjf3pQkOzRxIoVWc6X5X6M7ruBGIr9mbU
+        9MIVe9hAcXvBO125WnxwgMcXSpcPF20tPjgYlI5eUK6lxAcHg9Lmw3nTFx8cDEpLLSjr+OKDg0FpqojO
+        Gp744GBQ3vyITutT8cHBoDheRCe1ifjgYFBe+ZCxJ+KDg0GpT0NKv4zFBweDUpuEdFQdiQ8OBsXmw2Fl
+        JD44/KCM53TwNBQfHAzKMx/2Hgfig8M3SrXYUasUfz67DwOxYf9dV5urg+RWzta4aEnxn83OfV9c2I39
+        cIAHUOJceTNbUfmW94GX0sJu7IcDPH5fXCe4EvfXxe5/D7ux3yKi2CfkPhTy27lqkwAAAABJRU5ErkJg
+        gg==
+</value>
+  </data>
+  <data name="excelim.NormalImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAAEUAAAAWCAYAAACWl1FwAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
+        dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGVSURBVFhH5di7agJRFIXhDSKoYBQEC8FCECwEQRBE
+        4uUVEtTiPKVlom2wttM6IfF+15njXHRnL19jD/zFmanWV8zAEDNTp9OJS6/Sm2QUht3YH4cHtdvtF6k7
+        mUwG1tqd3FR3YTf2w0FKUVOu6XT68Xgw3+8PtWH/bDYbCkeLGo1Gz/d9JwzvrL0gCKx49KlerxtIBUGo
+        PjjAg2q1mqDc2fN99cEBHlStVk0oB+t56oMDPKhSqZggDNm1N/XBAR5ULpeNvGD46rrqgwM8qFQqGV8O
+        56ujPjjAg4rFosFL5ni5qA8O8KBCoWBuns/701l9cIAH5fN5QfF4dzipDw7woFwuZ+zN483+oD44wIOy
+        2azB52i13asPDvCgTCZjHGt5sdmqDw7woHQ6bRzX8ny1UR8c4EHJZNJc5fC7XKsPDvCgRCLR2x9Pzt9q
+        zT+Lpdqw/3A6W/HoUywWa32Nx8OL4zwffM8X6sJu7IcDPCgajaak7udoNNjsdgc81BZ2Yz8c4PH8cR2J
+        ROJSU3qXjMKwG/vjzEz/skOI3Zqgv7AAAAAASUVORK5CYII=
+</value>
+  </data>
+  <metadata name="openFileDialog1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>17, 17</value>
+  </metadata>
 </root>

+ 555 - 0
UAS_MES_JH/FunctionCode/Make/Make_ColorBoxLabelPrint2.Designer.cs

@@ -0,0 +1,555 @@
+namespace UAS_MES_NEW.Make
+{
+    partial class Make_ColorBoxLabelPrint2
+    {
+        /// <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();
+            this.label2 = new System.Windows.Forms.Label();
+            this.label1 = new System.Windows.Forms.Label();
+            this.pr_detail_label = new System.Windows.Forms.Label();
+            this.sncode_label = new System.Windows.Forms.Label();
+            this.label4 = new System.Windows.Forms.Label();
+            this.mcd_okqty_label = new System.Windows.Forms.Label();
+            this.pr_code_label = new System.Windows.Forms.Label();
+            this.ms_makecode_label = new System.Windows.Forms.Label();
+            this.CheckTSN = new System.Windows.Forms.CheckBox();
+            this.CollectRemark = new System.Windows.Forms.CheckBox();
+            this.XmlWatcher = new System.IO.FileSystemWatcher();
+            this.ChooseFolder = new System.Windows.Forms.Button();
+            this.FolderPath = new System.Windows.Forms.TextBox();
+            this.label3 = new System.Windows.Forms.Label();
+            this.StartWatch = new System.Windows.Forms.Button();
+            this.StopWatch = new System.Windows.Forms.Button();
+            this.label5 = new System.Windows.Forms.Label();
+            this.label6 = new System.Windows.Forms.Label();
+            this.ma_softversion = new UAS_MES_NEW.CustomControl.ValueLabel.ValueLabel();
+            this.lockCheckBox1 = new UAS_MES_NEW.CustomControl.CustomCheckBox.LockCheckBox();
+            this.US_SKU = new UAS_MES_NEW.CustomControl.TextBoxWithIcon.MaCodeSearchTextBox();
+            this.Remark = new UAS_MES_NEW.CustomControl.RichText.RichTextAutoBottom();
+            this.StepCount = new UAS_MES_NEW.CustomControl.TextBoxWithIcon.SourceStepCount();
+            this.LockMakeCode = new UAS_MES_NEW.CustomControl.CustomCheckBox.LockCheckBox();
+            this.ma_code = new UAS_MES_NEW.CustomControl.TextBoxWithIcon.MaCodeSearchTextBox();
+            this.PrintLabel = new UAS_MES_NEW.CustomControl.ComBoxWithFocus.ComboxWithTip(this.components);
+            this.Printer = new UAS_MES_NEW.CustomControl.ComBoxWithFocus.PrinterCombox();
+            this.mcd_okqty = new UAS_MES_NEW.CustomControl.ValueLabel.ValueNumLabel(this.components);
+            this.pr_code = new UAS_MES_NEW.CustomControl.ValueLabel.ValueLabel();
+            this.pr_detail = new UAS_MES_NEW.CustomControl.ValueLabel.ValueLabel();
+            this.PrintNum = new UAS_MES_NEW.CustomControl.TextBoxWithIcon.NumOnlyTextBox();
+            this.sncode = new UAS_MES_NEW.CustomControl.TextBoxWithIcon.SnCollectionBox();
+            this.OperateResult = new UAS_MES_NEW.CustomControl.RichText.RichTextAutoBottom();
+            ((System.ComponentModel.ISupportInitialize)(this.XmlWatcher)).BeginInit();
+            this.SuspendLayout();
+            // 
+            // label2
+            // 
+            this.label2.AutoSize = true;
+            this.label2.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.label2.Location = new System.Drawing.Point(1034, 194);
+            this.label2.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+            this.label2.Name = "label2";
+            this.label2.Size = new System.Drawing.Size(86, 31);
+            this.label2.TabIndex = 180;
+            this.label2.Text = "打印机";
+            // 
+            // 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(1058, 238);
+            this.label1.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+            this.label1.Name = "label1";
+            this.label1.Size = new System.Drawing.Size(62, 31);
+            this.label1.TabIndex = 179;
+            this.label1.Text = "标签";
+            // 
+            // pr_detail_label
+            // 
+            this.pr_detail_label.AutoSize = true;
+            this.pr_detail_label.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.pr_detail_label.Location = new System.Drawing.Point(969, 63);
+            this.pr_detail_label.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+            this.pr_detail_label.Name = "pr_detail_label";
+            this.pr_detail_label.Size = new System.Drawing.Size(110, 31);
+            this.pr_detail_label.TabIndex = 171;
+            this.pr_detail_label.Text = "产品名称";
+            // 
+            // sncode_label
+            // 
+            this.sncode_label.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
+            | System.Windows.Forms.AnchorStyles.Left)));
+            this.sncode_label.AutoSize = true;
+            this.sncode_label.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.sncode_label.Location = new System.Drawing.Point(78, 675);
+            this.sncode_label.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+            this.sncode_label.Name = "sncode_label";
+            this.sncode_label.Size = new System.Drawing.Size(48, 31);
+            this.sncode_label.TabIndex = 170;
+            this.sncode_label.Text = "SN";
+            // 
+            // label4
+            // 
+            this.label4.AutoSize = true;
+            this.label4.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.label4.Location = new System.Drawing.Point(969, 134);
+            this.label4.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+            this.label4.Name = "label4";
+            this.label4.Size = new System.Drawing.Size(110, 31);
+            this.label4.TabIndex = 167;
+            this.label4.Text = "打印张数";
+            // 
+            // mcd_okqty_label
+            // 
+            this.mcd_okqty_label.AutoSize = true;
+            this.mcd_okqty_label.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.mcd_okqty_label.Location = new System.Drawing.Point(18, 126);
+            this.mcd_okqty_label.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+            this.mcd_okqty_label.Name = "mcd_okqty_label";
+            this.mcd_okqty_label.Size = new System.Drawing.Size(110, 31);
+            this.mcd_okqty_label.TabIndex = 165;
+            this.mcd_okqty_label.Text = "打印计数";
+            // 
+            // pr_code_label
+            // 
+            this.pr_code_label.AutoSize = true;
+            this.pr_code_label.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.pr_code_label.Location = new System.Drawing.Point(562, 63);
+            this.pr_code_label.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+            this.pr_code_label.Name = "pr_code_label";
+            this.pr_code_label.Size = new System.Drawing.Size(110, 31);
+            this.pr_code_label.TabIndex = 164;
+            this.pr_code_label.Text = "产品编号";
+            // 
+            // ms_makecode_label
+            // 
+            this.ms_makecode_label.AutoSize = true;
+            this.ms_makecode_label.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.ms_makecode_label.Location = new System.Drawing.Point(15, 63);
+            this.ms_makecode_label.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+            this.ms_makecode_label.Name = "ms_makecode_label";
+            this.ms_makecode_label.Size = new System.Drawing.Size(110, 31);
+            this.ms_makecode_label.TabIndex = 163;
+            this.ms_makecode_label.Text = "归属工单";
+            // 
+            // CheckTSN
+            // 
+            this.CheckTSN.AutoSize = true;
+            this.CheckTSN.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.CheckTSN.Location = new System.Drawing.Point(1074, 663);
+            this.CheckTSN.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
+            this.CheckTSN.Name = "CheckTSN";
+            this.CheckTSN.Size = new System.Drawing.Size(184, 35);
+            this.CheckTSN.TabIndex = 186;
+            this.CheckTSN.Text = "是否检查TSN";
+            this.CheckTSN.UseVisualStyleBackColor = true;
+            this.CheckTSN.Visible = false;
+            this.CheckTSN.CheckedChanged += new System.EventHandler(this.CheckTSN_CheckedChanged);
+            // 
+            // CollectRemark
+            // 
+            this.CollectRemark.AutoSize = true;
+            this.CollectRemark.Font = new System.Drawing.Font("微软雅黑", 10F);
+            this.CollectRemark.Location = new System.Drawing.Point(1034, 488);
+            this.CollectRemark.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
+            this.CollectRemark.Name = "CollectRemark";
+            this.CollectRemark.Size = new System.Drawing.Size(118, 31);
+            this.CollectRemark.TabIndex = 197;
+            this.CollectRemark.Text = "采集备注";
+            this.CollectRemark.UseVisualStyleBackColor = true;
+            this.CollectRemark.Visible = false;
+            // 
+            // XmlWatcher
+            // 
+            this.XmlWatcher.EnableRaisingEvents = true;
+            this.XmlWatcher.Filter = "*.txt";
+            this.XmlWatcher.SynchronizingObject = this;
+            this.XmlWatcher.Created += new System.IO.FileSystemEventHandler(this.XmlWatcher_Created);
+            // 
+            // ChooseFolder
+            // 
+            this.ChooseFolder.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.ChooseFolder.Location = new System.Drawing.Point(1274, 380);
+            this.ChooseFolder.Name = "ChooseFolder";
+            this.ChooseFolder.Size = new System.Drawing.Size(117, 36);
+            this.ChooseFolder.TabIndex = 200;
+            this.ChooseFolder.Text = "选择文件夹";
+            this.ChooseFolder.UseVisualStyleBackColor = true;
+            this.ChooseFolder.Click += new System.EventHandler(this.ChooseFolder_Click);
+            // 
+            // FolderPath
+            // 
+            this.FolderPath.Enabled = false;
+            this.FolderPath.Location = new System.Drawing.Point(1022, 386);
+            this.FolderPath.Name = "FolderPath";
+            this.FolderPath.Size = new System.Drawing.Size(236, 28);
+            this.FolderPath.TabIndex = 199;
+            // 
+            // label3
+            // 
+            this.label3.AutoSize = true;
+            this.label3.Font = new System.Drawing.Font("微软雅黑", 10.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.label3.Location = new System.Drawing.Point(1120, 333);
+            this.label3.Name = "label3";
+            this.label3.Size = new System.Drawing.Size(123, 30);
+            this.label3.TabIndex = 198;
+            this.label3.Text = "监控文件夹";
+            // 
+            // StartWatch
+            // 
+            this.StartWatch.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.StartWatch.Location = new System.Drawing.Point(1064, 438);
+            this.StartWatch.Name = "StartWatch";
+            this.StartWatch.Size = new System.Drawing.Size(96, 42);
+            this.StartWatch.TabIndex = 201;
+            this.StartWatch.Text = "开始监控";
+            this.StartWatch.UseVisualStyleBackColor = true;
+            this.StartWatch.Click += new System.EventHandler(this.StartWatch_Click);
+            // 
+            // StopWatch
+            // 
+            this.StopWatch.Enabled = false;
+            this.StopWatch.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.StopWatch.Location = new System.Drawing.Point(1232, 438);
+            this.StopWatch.Name = "StopWatch";
+            this.StopWatch.Size = new System.Drawing.Size(96, 42);
+            this.StopWatch.TabIndex = 202;
+            this.StopWatch.Text = "停止监控";
+            this.StopWatch.UseVisualStyleBackColor = true;
+            this.StopWatch.Click += new System.EventHandler(this.StopWatch_Click);
+            // 
+            // label5
+            // 
+            this.label5.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
+            | System.Windows.Forms.AnchorStyles.Left)));
+            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(518, 675);
+            this.label5.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+            this.label5.Name = "label5";
+            this.label5.Size = new System.Drawing.Size(61, 31);
+            this.label5.TabIndex = 203;
+            this.label5.Text = "SKU";
+            // 
+            // 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(562, 126);
+            this.label6.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+            this.label6.Name = "label6";
+            this.label6.Size = new System.Drawing.Size(110, 31);
+            this.label6.TabIndex = 206;
+            this.label6.Text = "软件版本";
+            // 
+            // ma_softversion
+            // 
+            this.ma_softversion.AutoSize = true;
+            this.ma_softversion.CutLength = null;
+            this.ma_softversion.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.ma_softversion.Location = new System.Drawing.Point(694, 128);
+            this.ma_softversion.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+            this.ma_softversion.MaximumSize = new System.Drawing.Size(225, 0);
+            this.ma_softversion.Name = "ma_softversion";
+            this.ma_softversion.Size = new System.Drawing.Size(0, 31);
+            this.ma_softversion.TabIndex = 207;
+            // 
+            // lockCheckBox1
+            // 
+            this.lockCheckBox1.AutoSize = true;
+            this.lockCheckBox1.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.lockCheckBox1.LeaveEvent = false;
+            this.lockCheckBox1.Location = new System.Drawing.Point(908, 675);
+            this.lockCheckBox1.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
+            this.lockCheckBox1.Name = "lockCheckBox1";
+            this.lockCheckBox1.Size = new System.Drawing.Size(72, 28);
+            this.lockCheckBox1.TabIndex = 205;
+            this.lockCheckBox1.Text = "锁定";
+            this.lockCheckBox1.UseVisualStyleBackColor = true;
+            // 
+            // US_SKU
+            // 
+            this.US_SKU.AllPower = null;
+            this.US_SKU.Caller = null;
+            this.US_SKU.Condition = null;
+            this.US_SKU.DBTitle = null;
+            this.US_SKU.FormName = null;
+            this.US_SKU.Location = new System.Drawing.Point(588, 675);
+            this.US_SKU.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
+            this.US_SKU.Name = "US_SKU";
+            this.US_SKU.Power = null;
+            this.US_SKU.ReturnData = null;
+            this.US_SKU.SelectField = null;
+            this.US_SKU.SetValueField = null;
+            this.US_SKU.Size = new System.Drawing.Size(310, 32);
+            this.US_SKU.TabIndex = 204;
+            this.US_SKU.TableName = null;
+            this.US_SKU.TextBoxEnable = true;
+            // 
+            // Remark
+            // 
+            this.Remark.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.Remark.Location = new System.Drawing.Point(1040, 531);
+            this.Remark.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
+            this.Remark.Name = "Remark";
+            this.Remark.Size = new System.Drawing.Size(304, 118);
+            this.Remark.TabIndex = 196;
+            this.Remark.Text = "";
+            this.Remark.Visible = false;
+            // 
+            // StepCount
+            // 
+            this.StepCount.LineCode = null;
+            this.StepCount.Location = new System.Drawing.Point(975, 16);
+            this.StepCount.Name = "StepCount";
+            this.StepCount.Size = new System.Drawing.Size(120, 33);
+            this.StepCount.Source = null;
+            this.StepCount.StepCode = null;
+            this.StepCount.TabIndex = 189;
+            // 
+            // LockMakeCode
+            // 
+            this.LockMakeCode.AutoSize = true;
+            this.LockMakeCode.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.LockMakeCode.LeaveEvent = false;
+            this.LockMakeCode.Location = new System.Drawing.Point(374, 63);
+            this.LockMakeCode.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
+            this.LockMakeCode.Name = "LockMakeCode";
+            this.LockMakeCode.Size = new System.Drawing.Size(72, 28);
+            this.LockMakeCode.TabIndex = 185;
+            this.LockMakeCode.Text = "锁定";
+            this.LockMakeCode.UseVisualStyleBackColor = true;
+            // 
+            // ma_code
+            // 
+            this.ma_code.AllPower = null;
+            this.ma_code.Caller = null;
+            this.ma_code.Condition = null;
+            this.ma_code.DBTitle = null;
+            this.ma_code.FormName = null;
+            this.ma_code.Location = new System.Drawing.Point(135, 63);
+            this.ma_code.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
+            this.ma_code.Name = "ma_code";
+            this.ma_code.Power = null;
+            this.ma_code.ReturnData = null;
+            this.ma_code.SelectField = null;
+            this.ma_code.SetValueField = null;
+            this.ma_code.Size = new System.Drawing.Size(224, 32);
+            this.ma_code.TabIndex = 184;
+            this.ma_code.TableName = null;
+            this.ma_code.TextBoxEnable = true;
+            this.ma_code.UserControlTextChanged += new UAS_MES_NEW.CustomControl.TextBoxWithIcon.MaCodeSearchTextBox.OnTextChange(this.ma_code_UserControlTextChanged);
+            // 
+            // PrintLabel
+            // 
+            this.PrintLabel.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+            this.PrintLabel.FormattingEnabled = true;
+            this.PrintLabel.Location = new System.Drawing.Point(1126, 240);
+            this.PrintLabel.Name = "PrintLabel";
+            this.PrintLabel.Size = new System.Drawing.Size(199, 26);
+            this.PrintLabel.TabIndex = 181;
+            this.PrintLabel.SelectedValueChanged += new System.EventHandler(this.PrintLabel_SelectedValueChanged);
+            // 
+            // Printer
+            // 
+            this.Printer.Location = new System.Drawing.Point(1126, 194);
+            this.Printer.Margin = new System.Windows.Forms.Padding(6, 6, 6, 6);
+            this.Printer.Name = "Printer";
+            this.Printer.Size = new System.Drawing.Size(201, 38);
+            this.Printer.TabIndex = 178;
+            // 
+            // mcd_okqty
+            // 
+            this.mcd_okqty.AutoSize = true;
+            this.mcd_okqty.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.mcd_okqty.Location = new System.Drawing.Point(129, 126);
+            this.mcd_okqty.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+            this.mcd_okqty.Name = "mcd_okqty";
+            this.mcd_okqty.Size = new System.Drawing.Size(28, 31);
+            this.mcd_okqty.TabIndex = 176;
+            this.mcd_okqty.Text = "0";
+            // 
+            // pr_code
+            // 
+            this.pr_code.AutoSize = true;
+            this.pr_code.CutLength = null;
+            this.pr_code.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.pr_code.Location = new System.Drawing.Point(694, 63);
+            this.pr_code.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+            this.pr_code.MaximumSize = new System.Drawing.Size(225, 0);
+            this.pr_code.Name = "pr_code";
+            this.pr_code.Size = new System.Drawing.Size(0, 31);
+            this.pr_code.TabIndex = 175;
+            this.pr_code.TextChanged += new System.EventHandler(this.pr_code_TextChanged);
+            // 
+            // pr_detail
+            // 
+            this.pr_detail.AutoSize = true;
+            this.pr_detail.CutLength = null;
+            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(1101, 63);
+            this.pr_detail.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+            this.pr_detail.MaximumSize = new System.Drawing.Size(225, 0);
+            this.pr_detail.Name = "pr_detail";
+            this.pr_detail.Size = new System.Drawing.Size(0, 31);
+            this.pr_detail.TabIndex = 174;
+            // 
+            // PrintNum
+            // 
+            this.PrintNum.AllPower = null;
+            this.PrintNum.BackColor = System.Drawing.Color.White;
+            this.PrintNum.Enabled = false;
+            this.PrintNum.ID = null;
+            this.PrintNum.Location = new System.Drawing.Point(1101, 134);
+            this.PrintNum.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
+            this.PrintNum.Name = "PrintNum";
+            this.PrintNum.Negative = false;
+            this.PrintNum.Power = null;
+            this.PrintNum.Size = new System.Drawing.Size(223, 28);
+            this.PrintNum.Str = null;
+            this.PrintNum.Str1 = null;
+            this.PrintNum.Str2 = null;
+            this.PrintNum.TabIndex = 172;
+            this.PrintNum.Text = "1";
+            // 
+            // sncode
+            // 
+            this.sncode.AllPower = "ifall";
+            this.sncode.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
+            | System.Windows.Forms.AnchorStyles.Left)));
+            this.sncode.BackColor = System.Drawing.Color.White;
+            this.sncode.ID = null;
+            this.sncode.Location = new System.Drawing.Point(178, 675);
+            this.sncode.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
+            this.sncode.Name = "sncode";
+            this.sncode.Power = null;
+            this.sncode.Size = new System.Drawing.Size(292, 28);
+            this.sncode.Str = null;
+            this.sncode.Str1 = null;
+            this.sncode.Str2 = null;
+            this.sncode.TabIndex = 169;
+            this.sncode.Tag = "ifread";
+            this.sncode.KeyDown += new System.Windows.Forms.KeyEventHandler(this.sn_code_KeyDown);
+            // 
+            // OperateResult
+            // 
+            this.OperateResult.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.OperateResult.Location = new System.Drawing.Point(21, 194);
+            this.OperateResult.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
+            this.OperateResult.Name = "OperateResult";
+            this.OperateResult.Size = new System.Drawing.Size(970, 456);
+            this.OperateResult.TabIndex = 168;
+            this.OperateResult.Text = "";
+            // 
+            // Make_ColorBoxLabelPrint2
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 18F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.ClientSize = new System.Drawing.Size(1407, 720);
+            this.Controls.Add(this.ma_softversion);
+            this.Controls.Add(this.label6);
+            this.Controls.Add(this.lockCheckBox1);
+            this.Controls.Add(this.US_SKU);
+            this.Controls.Add(this.label5);
+            this.Controls.Add(this.StopWatch);
+            this.Controls.Add(this.StartWatch);
+            this.Controls.Add(this.ChooseFolder);
+            this.Controls.Add(this.FolderPath);
+            this.Controls.Add(this.label3);
+            this.Controls.Add(this.CollectRemark);
+            this.Controls.Add(this.Remark);
+            this.Controls.Add(this.StepCount);
+            this.Controls.Add(this.CheckTSN);
+            this.Controls.Add(this.LockMakeCode);
+            this.Controls.Add(this.ma_code);
+            this.Controls.Add(this.PrintLabel);
+            this.Controls.Add(this.label2);
+            this.Controls.Add(this.label1);
+            this.Controls.Add(this.Printer);
+            this.Controls.Add(this.mcd_okqty);
+            this.Controls.Add(this.pr_code);
+            this.Controls.Add(this.pr_detail);
+            this.Controls.Add(this.PrintNum);
+            this.Controls.Add(this.pr_detail_label);
+            this.Controls.Add(this.sncode_label);
+            this.Controls.Add(this.sncode);
+            this.Controls.Add(this.OperateResult);
+            this.Controls.Add(this.label4);
+            this.Controls.Add(this.mcd_okqty_label);
+            this.Controls.Add(this.pr_code_label);
+            this.Controls.Add(this.ms_makecode_label);
+            this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
+            this.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
+            this.Name = "Make_ColorBoxLabelPrint2";
+            this.Tag = "Make!ColorBoxLabelPrint2";
+            this.Text = "标签打印";
+            this.Activated += new System.EventHandler(this.Make_ColorBoxLabelPrint_Activated);
+            this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Make_ColorBoxLabelPrint_FormClosing);
+            this.Load += new System.EventHandler(this.Make_ColorBoxLabelPrint_Load);
+            this.SizeChanged += new System.EventHandler(this.Make_ColorBoxLabelPrint_SizeChanged);
+            ((System.ComponentModel.ISupportInitialize)(this.XmlWatcher)).EndInit();
+            this.ResumeLayout(false);
+            this.PerformLayout();
+
+        }
+
+        #endregion
+
+        private UAS_MES_NEW.CustomControl.ComBoxWithFocus.ComboxWithTip PrintLabel;
+        private System.Windows.Forms.Label label2;
+        private System.Windows.Forms.Label label1;
+        private CustomControl.ComBoxWithFocus.PrinterCombox Printer;
+        private CustomControl.ValueLabel.ValueNumLabel mcd_okqty;
+        private CustomControl.ValueLabel.ValueLabel pr_code;
+        private CustomControl.ValueLabel.ValueLabel pr_detail;
+        private CustomControl.TextBoxWithIcon.NumOnlyTextBox PrintNum;
+        private System.Windows.Forms.Label pr_detail_label;
+        private System.Windows.Forms.Label sncode_label;
+        private CustomControl.TextBoxWithIcon.SnCollectionBox sncode;
+        private CustomControl.RichText.RichTextAutoBottom OperateResult;
+        private System.Windows.Forms.Label label4;
+        private System.Windows.Forms.Label mcd_okqty_label;
+        private System.Windows.Forms.Label pr_code_label;
+        private System.Windows.Forms.Label ms_makecode_label;
+        private CustomControl.TextBoxWithIcon.MaCodeSearchTextBox ma_code;
+        private CustomControl.CustomCheckBox.LockCheckBox LockMakeCode;
+        private System.Windows.Forms.CheckBox CheckTSN;
+        private CustomControl.TextBoxWithIcon.SourceStepCount StepCount;
+        private System.Windows.Forms.CheckBox CollectRemark;
+        private CustomControl.RichText.RichTextAutoBottom Remark;
+        private System.IO.FileSystemWatcher XmlWatcher;
+        private System.Windows.Forms.Button ChooseFolder;
+        private System.Windows.Forms.TextBox FolderPath;
+        private System.Windows.Forms.Label label3;
+        private System.Windows.Forms.Button StartWatch;
+        private System.Windows.Forms.Button StopWatch;
+        private System.Windows.Forms.Label label5;
+        private CustomControl.TextBoxWithIcon.MaCodeSearchTextBox US_SKU;
+        private CustomControl.CustomCheckBox.LockCheckBox lockCheckBox1;
+        private System.Windows.Forms.Label label6;
+        private CustomControl.ValueLabel.ValueLabel ma_softversion;
+    }
+}

+ 559 - 0
UAS_MES_JH/FunctionCode/Make/Make_ColorBoxLabelPrint2.cs

@@ -0,0 +1,559 @@
+using System;
+using System.Data;
+using System.Drawing;
+using System.Text;
+using System.Windows.Forms;
+using UAS_MES_NEW.DataOperate;
+using UAS_MES_NEW.PublicMethod;
+using UAS_MES_NEW.Entity;
+using LabelManager2;
+using System.Threading;
+using UAS_MES_NEW.PublicForm;
+using System.IO;
+using System.Xml;
+
+namespace UAS_MES_NEW.Make
+{
+    public partial class Make_ColorBoxLabelPrint2 : Form
+    {
+        DataHelper dh;
+        DataTable dt;
+        LogStringBuilder sql = new LogStringBuilder();
+        AutoSizeFormClass asc = new AutoSizeFormClass();
+        //保存StepProduct查询出来的数据
+        DataTable ListA = new DataTable();
+        //制造单号
+        string macode;
+        //当前提示的索引
+        //保存TSN编号
+        string ms_id = null;
+
+        string version="";
+        string msmac;
+        string fid;
+
+
+        string PR_CHECKCARTONW = "0";
+
+        bool pr_change = false;
+
+        Thread InitPrint;
+        ApplicationClass lbl;
+
+        DataTable Dbfind;
+
+        public Make_ColorBoxLabelPrint2()
+        {
+            InitializeComponent();
+        }
+
+        private void Make_ColorBoxLabelPrint_Load(object sender, EventArgs e)
+        {
+            sncode.Focus();
+            asc.controllInitializeSize(this);
+            InitPrint = new Thread(InPrint);
+            SetLoadingWindow stw = new SetLoadingWindow(InitPrint, "初始化打印程序");
+            BaseUtil.SetFormCenter(stw);
+            stw.ShowDialog();
+            //设置锁定工单
+            LockMakeCode.GetMakeCodeCtl(ma_code);
+            ma_code.SetLockCheckBox(LockMakeCode);
+            //工单号放大镜配置
+            ma_code.TableName = "make left join product on ma_prodcode=pr_code";
+            ma_code.SelectField = "ma_code # 工单号,pr_code # 产品编号,pr_detail # 产品名称,ma_softversion # 软件版本";
+            ma_code.FormName = Name;
+            ma_code.SetValueField = new string[] { "ma_code", "pr_code", "pr_detail", "ma_softversion" };
+            ma_code.Condition = "ma_statuscode='STARTED'";
+            ma_code.DbChange += Ma_code_DbChange;
+
+            lockCheckBox1.GetMakeCodeCtl(US_SKU);
+            US_SKU.SetLockCheckBox(lockCheckBox1);
+            US_SKU.TableName = "upcsku";
+            US_SKU.SelectField = "US_PRODUCTCOLOR # PRODUCT_COLOR,US_COLORCODE # 颜色号,US_SKU # SKU,US_UPC # UPC";
+            US_SKU.FormName = Name;
+            US_SKU.SetValueField = new string[] { "US_SKU" };
+            US_SKU.Condition = "1=1";
+            US_SKU.DbChange += US_SKU_DbChange;
+            version = "";
+            msmac = "";
+            fid = "";
+
+            OperateResult.AppendText(">>请输入SN\n", Color.Black);
+            dh = SystemInf.dh;
+            FolderPath.Text = BaseUtil.GetCacheData("FolderPath").ToString();
+            StepCount.StepCode = User.CurrentStepCode;
+            StepCount.Source = User.UserSourceCode;
+            StepCount.LineCode = User.UserLineCode;
+            StepCount.Dh = dh;
+            StepCount.Start();
+
+            if (dh.getFieldDataByCondition("employee", "em_type", "em_code = '" + User.UserCode + "'").ToString() != "admin")
+            {
+                    sncode.Visible = false;
+
+            }
+
+        }
+
+        private void US_SKU_DbChange(object sender, EventArgs e)
+        {
+            Dbfind = US_SKU.ReturnData;
+            BaseUtil.SetFormValue(this.Controls, Dbfind);
+        }
+
+        private void Ma_code_DbChange(object sender, EventArgs e)
+        {
+            Dbfind = ma_code.ReturnData;
+            BaseUtil.SetFormValue(this.Controls, Dbfind);
+            //获取工单的其他信息
+            sql.Clear();
+            sql.Append("select ma_code,nvl(mcd_okqty,0) mcd_okqty,ma_prodcode as pr_code ,pr_detail,ma_softversion,");
+            sql.Append("pr_spec,ma_qty - nvl(mcd_inqty, 0) mcd_remainqty from make left join makecraftdetail on ");
+            sql.Append("mcd_maid=ma_id left join product on pr_code=ma_prodcode where ma_code='" + ma_code.Text + "' and mcd_stepcode='" + User.CurrentStepCode + "'");
+            dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
+            if (dt.Rows.Count > 0)
+            {
+                BaseUtil.SetFormValue(this.Controls, dt);
+            }
+        }
+
+        private void InPrint()
+        {
+            try
+            {
+                lbl = new ApplicationClass();
+                BaseUtil.WriteLbl();
+            }
+            catch (Exception)
+            {
+                OperateResult.AppendText("未正确安装CodeSoft软件\n", Color.Red);
+            }
+        }
+
+        private void sn_code_KeyDown(object sender, KeyEventArgs e)
+        {
+            if (e.KeyCode == Keys.Enter)
+            {
+                if (CheckTSN.Checked == true && ms_id == null)
+                {
+                    if (sncode.Text == "")
+                    {
+                        OperateResult.AppendText(">>TSN不能为空\n", Color.Red);
+                        OperateResult.AppendText(">>请输入TSN\n", Color.Black);
+                        return;
+                    }
+                    OperateResult.AppendText(">>" + sncode.Text + "\n", Color.Black);
+                    sql.Clear();
+                    sql.Append("select max(ms_id) ms_id from makeserial where ms_beforesn = '" + sncode.Text + "'");
+                    dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
+                    if (dt.Rows[0][0].ToString() != "")
+                    {
+                        ms_id = dt.Rows[0][0].ToString();
+                        sncode.Focus();
+                        OperateResult.AppendText(">>请输入SN\n", Color.Black, sncode);
+                        return;
+                    }
+                    else
+                    {
+                        OperateResult.AppendText(">>TSN" + sncode.Text + "错误,不存在\n", Color.Red, sncode);
+                        OperateResult.AppendText(">>请输入TSN\n", Color.Black);
+                        return;
+                    }
+                }
+                if (sncode.Text == "")
+                {
+                    OperateResult.AppendText(">>序列号不能为空\n", Color.Red);
+                    return;
+                }
+                OperateResult.AppendText(">>" + sncode.Text + "\n", Color.Black);
+                if (CheckTSN.Checked == true && ms_id != null)
+                {
+                    sql.Clear();
+                    sql.Append("select ms_id from makeserial where ms_id='" + ms_id + "' and ms_sncode = '" + sncode.Text + "'");
+                    dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
+                    if (dt.Rows.Count > 0)
+                    {
+                        OperateResult.AppendText(">>TSN和SN一致\n", Color.Green);
+                    }
+                    else
+                    {
+                        OperateResult.AppendText(">>TSN和SN不一致\n", Color.Red, sncode);
+                        OperateResult.AppendText(">>请输入TSN\n", Color.Black);
+                        ms_id = null;
+                        return;
+                    }
+                }
+                string oMsID;
+                string ErrorMessage;
+                string oMakeCode;
+                if (LogicHandler.CheckStepAttribute(Tag.ToString(), User.UserSourceCode, out ErrorMessage))
+                {
+                    //判断界面工单是否为空时的序列号是否自动归属工单
+                    // 获取工单归属工单下一工序是否正确
+                    if (LogicHandler.CheckStepSNAndMacode(ma_code.Text, User.UserSourceCode, sncode.Text, User.UserCode, out oMakeCode, out oMsID, out ErrorMessage))
+                    {
+                        //获取工单的其他信息
+                        sql.Clear();
+                        sql.Append("select ma_code,nvl(ma_unlimitin,0)ma_unlimitin,pr_code,ma_softversion,pr_detail,pr_spec from  ");
+                        sql.Append("make left join product on pr_code=ma_prodcode where ma_code='" + oMakeCode + "'");
+                        dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
+                        if (dt.Rows.Count > 0)
+                        {
+                            PR_CHECKCARTONW = dh.getFieldDataByCondition("craftdetail left join craft on cr_id=cd_crid left join makeserial on ms_craftcode =cr_code and cr_prodcode = ms_prodcode", "nvl(cd_ifweigh,'0') cd_ifweigh", "ms_sncode='" + sncode.Text + "' and ms_makecode='" + oMakeCode + "' and cd_stepcode = '" + User.CurrentStepCode + "'").ToString();
+                            if (PR_CHECKCARTONW != "0")
+                            {
+                                OperateResult.AppendText(">>彩盒" + sncode.Text + "当前处于称重工序,无法在此界面采集,需去彩盒称重界面进行采集\n", Color.Black, sncode);
+                                return;
+                            }
+                            BaseUtil.SetFormValue(this.Controls, dt);
+                            LockMakeCode.Checked = true;
+                            //提示用户“<<工单号:取ma_makecode”
+                            OperateResult.AppendText("<<工单号:" + ma_code.Text + "\n", Color.Black);
+                            //提示用户“<< 序列号:XXXX”
+                            OperateResult.AppendText("<<序列号:" + sncode.Text + "\n", Color.Black);
+                            string softversion = dh.GetConfig("softversion", "sys").ToString();
+                            if (version.Trim()== sncode.Text)
+                            {
+                                OperateResult.AppendText("<<序列号:" + sncode.Text + "与对应软件版本" + version + "相同,不允许采集\n", Color.Red);
+                                version = "";
+                                fid = "";
+                                msmac = "";
+                                return;
+                            }
+                            if (version != ma_softversion.Text && version != ""&& softversion !="0")
+                            {
+                                OperateResult.AppendText("<<序列号:" + sncode.Text + "对应软件版本" + version + "与工单维护软件版本" + ma_softversion.Text + "不一致\n", Color.Red);
+                                version = "";
+                                fid = "";
+                                msmac = "";
+                                return;
+                            }
+                            string inid = dh.getFieldDataByCondition("makesnlist", "msl_salecode", "msl_makecode='" + ma_code.Text + "' and msl_sncode = '" + sncode.Text + "'").ToString();
+
+                            if (fid != "" && inid != fid)
+                            {
+                                OperateResult.AppendText("<<序列号:" + sncode.Text + "对应相框ID:" + fid + "与工单导入ID:" + inid + "不一致\n", Color.Red);
+                                version = "";
+                                fid = "";
+                                msmac = "";
+                                return;
+                            }
+                            else {
+                                fid = inid;
+                            }
+                            
+
+                            //if (pr_change)
+                            //{
+                            //    String dialog = MessageBox.Show("是否使用当前标签模板", "提示", MessageBoxButtons.OKCancel).ToString();
+                            //    if (dialog != "OK")
+                            //    {
+                            //        OperateResult.AppendText(">>请重新选择标签模板\n", Color.Green);
+                            //        return;
+                            //    }
+                            //    else pr_change = false;
+                            //}
+                        }
+                        else
+                        {
+                            OperateResult.AppendText(">>无序列号" + sncode.Text + "对应工单信息\n", Color.Red, sncode);
+                            sncode.Focus();
+                            return;
+                        }
+                        //if (int.Parse(mcd_remainqty.Text) <= 0 && dt.Rows[0]["ma_unlimitin"].ToString() == "0")
+                        //{
+                        //    macode = ma_code.Text;
+                        //    ErrorMessage = "工单" + macode + "打印结束\n>请输入SN";
+                        //    OperateResult.AppendText(">>" + ErrorMessage + "\n", Color.Green);
+                        //    sncode.Focus();
+                        //}
+                        //else
+                        //{
+                        //所选标签不为空
+                        if (PrintLabel.SelectedValue != null)
+                        {
+                            //如果打印张数为空,返回
+                            if (PrintNum.Text == "" || int.Parse(PrintNum.Text) == 0)
+                            {
+                                OperateResult.AppendText(">>打印张数不可空或者为0\n", Color.Red, sncode);
+                                //清空输入框的值,聚焦
+                                sncode.Focus();
+                                //提示用户“>>请输入SN”
+                                OperateResult.AppendText(">>请输入SN\n", Color.Black);
+                                return;
+                            }
+                            //更新至下一步工序
+                            if (LogicHandler.SetStepResult(oMakeCode, User.UserSourceCode, sncode.Text, "彩盒打印", "彩盒打印成功", User.UserCode, out ErrorMessage))
+                            {
+                                //提示正确返回时传递的信息
+                                if (ErrorMessage.Contains("AFTERSUCCESS"))
+                                    OperateResult.AppendText(">>" + ErrorMessage + "\n");
+                                // doc = lbl.Documents.Open(PrintLabel.Text);
+                                //    if (dh.CheckExist("makeserial", "ms_sncode = '" + sncode.Text + "' and ms_makecode = '" + ma_code.Text + "' and ms_printcount>0"))
+                                //    {
+                                //        if (Print.CodeSoft(Tag.ToString(), ref lbl, PrintLabel.Text, PrintLabel.SelectedValue.ToString(), Printer.Text, sncode.Text, int.Parse(PrintNum.Text), oMakeCode, pr_code.Text, "彩盒标", "0", out ErrorMessage))
+                                //        {
+                                //            //提示用户打印成功
+                                //            OperateResult.AppendText(">>序列号:" + sncode.Text + "打印结束\n", Color.Green);
+                                //            dh.ExecuteSql("update makeserial set ms_printcount = ms_printcount +1 where ms_sncode = '" + sncode.Text + "' and ms_makecode = '" + ma_code.Text + "' ", "update");
+                                //    }
+                                //    else
+                                //    {
+                                //        OperateResult.AppendText(ErrorMessage + "\n", Color.Red);
+                                //    }
+                                //}
+                                //    else
+                                //    {
+
+                                string skureset = dh.GetConfig("skureset", "sys").ToString();
+                                if (US_SKU.Text != "" && skureset == "1")
+                                {
+                                    dh.ExecuteSql("update makeserial set ms_sku = '" + US_SKU.Text + "' where ms_sncode = '" + sncode.Text + "' and ms_makecode = '" + ma_code.Text + "'", "update");
+                                }
+                                if (version == "")
+                                {
+                                    dh.ExecuteSql("update makeserial set ms_softversion = '" + ma_softversion.Text + "' where ms_sncode = '" + sncode.Text + "' and ms_makecode = '" + ma_code.Text + "'", "update");
+                                }
+                                else
+                                {
+                                    dh.ExecuteSql("update makeserial set ms_softversion = '" + version + "' where ms_sncode = '" + sncode.Text + "' and ms_makecode = '" + ma_code.Text + "'", "update");
+                                }
+                                dh.ExecuteSql("update makeserial set ms_mac = '" + msmac + "' where ms_sncode = '" + sncode.Text + "' and ms_makecode = '" + ma_code.Text + "'", "update");
+                                dh.ExecuteSql("update makeserial set ms_othid1 = '" + fid + "' where ms_sncode = '" + sncode.Text + "' and ms_makecode = '" + ma_code.Text + "'", "update");
+
+                                if (Print.CodeSoft(Tag.ToString(), ref lbl, PrintLabel.Text, PrintLabel.SelectedValue.ToString(), Printer.Text, sncode.Text, int.Parse(PrintNum.Text), oMakeCode, pr_code.Text, "彩盒标", "-1", out ErrorMessage))
+                                    {
+                                        //提示用户打印成功
+                                        OperateResult.AppendText(">>序列号:" + sncode.Text + "打印结束\n", Color.Green);
+                                        dh.ExecuteSql("update makeserial set ms_printcount = ms_printcount +1 where ms_sncode = '" + sncode.Text + "' and ms_makecode = '" + ma_code.Text + "' ", "update");
+                                    }
+                                    else
+                                    {
+                                    OperateResult.AppendText(ErrorMessage + "\n", Color.Red);
+                                    }
+                              // }
+
+     
+                                if (CollectRemark.Checked && Remark.Text != "")
+                                {
+                                    LogicHandler.CollectRemarkInf(sncode.Text, "", "", oMakeCode, pr_code.Text, Remark.Text);
+                                }
+                                LogicHandler.DoCommandLog(Tag.ToString(), User.UserCode, ma_code.Text, User.UserLineCode, User.UserSourceCode, "彩盒打印", "彩盒打印成功", sncode.Text, US_SKU.Text);
+                                //刷新打印数量和剩余数量
+                                dt = (DataTable)dh.ExecuteSql("select ma_qty - nvl(mcd_inqty, 0) mcd_remainqty,mcd_okqty 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);
+                                sncode.Text = "";
+                                version = "";
+                                msmac = "";
+                                fid = "";
+                                ms_id = null;
+                                sncode.Focus();
+                            }
+                            else
+                            {
+                                OperateResult.AppendText(">>" + ErrorMessage + "\n", Color.Red, sncode);
+                                ms_id = null;
+                                sncode.Focus();
+                            }
+                        }
+                        else
+                        {
+                            OperateResult.AppendText(">>产品编号:" + pr_code.Text + "未维护彩盒标签\n", Color.Red, sncode);
+                            return;
+                        }
+                        if (CheckTSN.Checked == true)
+                        {
+                            OperateResult.AppendText(">>请输入TSN\n", Color.Black);
+                            ms_id = null;
+                        }
+                        else
+                            OperateResult.AppendText(">>请输入SN\n", Color.Black);
+                        //  }
+                    }
+                    else
+                    {
+                        OperateResult.AppendText(ErrorMessage + "\n", Color.Red, sncode);
+                        if (CheckTSN.Checked == true)
+                        {
+                            OperateResult.AppendText(">>请输入TSN\n", Color.Black);
+                            ms_id = null;
+                        }
+                        else
+                            OperateResult.AppendText(">>请输入SN\n", Color.Black);
+                    }
+                }
+                else
+                {
+                    OperateResult.AppendText(ErrorMessage + "\n", Color.Red, sncode);
+                    if (CheckTSN.Checked == true)
+                    {
+                        OperateResult.AppendText(">>请输入TSN\n", Color.Black);
+                        ms_id = null;
+                    }
+                    else
+                        OperateResult.AppendText(">>请输入SN\n", Color.Black);
+                }
+            }
+        }
+
+        //根据产品编号获取打印模板
+        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='彩盒标' and la_statuscode='AUDITED' order by la_isdefault", "select");
+            PrintLabel.DataSource = _dt;
+            PrintLabel.DisplayMember = "la_url";
+            PrintLabel.ValueMember = "la_id";
+            pr_change = true;
+        }
+
+        private void Make_ColorBoxLabelPrint_Activated(object sender, EventArgs e)
+        {
+            sncode.Focus();
+        }
+
+        private void Make_ColorBoxLabelPrint_FormClosing(object sender, FormClosingEventArgs e)
+        {
+            BaseUtil.ClosePrint(lbl);
+            XmlWatcher.EnableRaisingEvents = false;
+        }
+
+        private void Make_ColorBoxLabelPrint_SizeChanged(object sender, EventArgs e)
+        {
+            asc.controlAutoSize(this);
+        }
+
+        private void ma_code_UserControlTextChanged(object sender, EventArgs e)
+        {
+            if (ma_code.Text.Length > 4)
+            {
+                //获取工单的其他信息
+                sql.Clear();
+                sql.Append("select ma_code,ma_softversion,nvl(mcd_okqty,0) mcd_okqty,ma_prodcode as pr_code ,pr_detail,");
+                sql.Append("pr_spec,ma_qty - nvl(mcd_inqty, 0) mcd_remainqty from make left join makecraftdetail on ");
+                sql.Append("mcd_maid=ma_id left join product on pr_code=ma_prodcode where ma_code='" + ma_code.Text + "' and mcd_stepcode='" + User.CurrentStepCode + "'");
+                DataTable dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
+                if (dt.Rows.Count > 0)
+                {
+                    BaseUtil.SetFormValue(this.Controls, dt);
+                }
+                else
+                {
+                    sncode.Text = "";
+                }
+            }
+        }
+
+        private void CheckTSN_CheckedChanged(object sender, EventArgs e)
+        {
+            if (CheckTSN.Checked == true)
+            {
+                ms_id = null;
+                OperateResult.AppendText(">>切换至检查TSN\n", Color.Green);
+                OperateResult.AppendText(">>请输入TSN\n", Color.Black, sncode);
+                sncode.Focus();
+            }
+            else
+            {
+                ms_id = null;
+                OperateResult.AppendText(">>切换至不检查TSN\n", Color.Green);
+                OperateResult.AppendText(">>请输入SN\n", Color.Black, sncode);
+                sncode.Focus();
+            }
+        }
+
+        private void PrintLabel_SelectedValueChanged(object sender, EventArgs e)
+        {
+            if (PrintLabel.SelectedValue != null && PrintLabel.SelectedValue.ToString() != "System.Data.DataRowView")
+            {
+                string PrintNums = dh.getFieldDataByCondition("label", "la_printnos", "la_id='" + PrintLabel.SelectedValue.ToString() + "'").ToString();
+                PrintNum.Text = (PrintNums == "" ? "1" : PrintNums);
+            }
+        }
+
+        private void XmlWatcher_Created(object sender, System.IO.FileSystemEventArgs e)
+        {
+            while (true)
+            {
+                try
+                {
+                    using (Stream stream = File.Open(e.FullPath, FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite))
+                    {
+                        if (stream != null)
+                            break;
+                    }
+                }
+                catch (Exception ex)
+                {
+                    Console.WriteLine(ex.Message);
+                }
+            }
+            string test_date = "";
+            string test_result = "";
+            string test_sn = "";
+            string imageurl = "";
+            string oMSID = "";
+            string oErrMessage = ""; 
+            StreamReader _Sr = new StreamReader(FolderPath.Text + @"\" + e.Name, Encoding.UTF8);
+            test_result = _Sr.ReadLine().Trim();
+            fid = test_result.Split(';')[1];
+            msmac = test_result.Split(';')[2];
+            version = test_result.Split(';')[3];
+            OperateResult.AppendText("读取文件" + e.Name + ",软件版本" + version + ",ID"+ fid + ",MAC" + msmac + "\n");
+            _Sr.Close(); 
+            //获取文件名的序列号,如SA123456.xml,如果开头为-表示无条码需要自动获取
+            string sn_code = e.Name.Split('.')[0];
+            sncode.Text = sn_code;
+            sn_code_KeyDown(this, new KeyEventArgs(Keys.Enter));
+            File.Delete(e.FullPath);
+        }
+
+        private void StartWatch_Click(object sender, EventArgs e)
+        {
+            if (FolderPath.Text == "")
+            {
+                OperateResult.AppendText("请选择监控文件夹\n");
+                return;
+            }
+            else
+            {
+                if (!Directory.Exists(FolderPath.Text))
+                {
+                    OperateResult.AppendText("监控文件夹不存在\n");
+                    return;
+                }
+            }
+            XmlWatcher.Path = FolderPath.Text;
+            XmlWatcher.Filter = "*.txt";
+            XmlWatcher.EnableRaisingEvents = true;
+            //设置缓存数据
+            BaseUtil.SetCacheData("FolderPath", FolderPath.Text);
+            //设置按钮不可点击
+            StartWatch.Enabled = false;
+            ChooseFolder.Enabled = false;
+            StopWatch.Enabled = true;
+            OperateResult.AppendText("开始执行监控\n");
+        }
+
+        private void StopWatch_Click(object sender, EventArgs e)
+        {
+            XmlWatcher.EnableRaisingEvents = false;
+            StartWatch.Enabled = true;
+            ChooseFolder.Enabled = true;
+            StopWatch.Enabled = false;
+            OperateResult.AppendText("停止执行监控\n");
+        }
+
+        private void ChooseFolder_Click(object sender, EventArgs e)
+        {
+            FolderBrowserDialog folder = new FolderBrowserDialog();
+            folder.Description = "选择监控文件夹";
+            DialogResult result = folder.ShowDialog();
+            if (result == DialogResult.OK)
+            {
+                FolderPath.Text = folder.SelectedPath;
+            }
+        }
+
+
+    }
+}

+ 123 - 0
UAS_MES_JH/FunctionCode/Make/Make_ColorBoxLabelPrint2.resx

@@ -0,0 +1,123 @@
+<?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>
+  <metadata name="XmlWatcher.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>17, 17</value>
+  </metadata>
+</root>

+ 138 - 67
UAS_MES_JH/FunctionCode/Make/Make_RePrintLabel.Designer.cs

@@ -52,7 +52,14 @@
             this.inputText = new UAS_MES_NEW.CustomControl.TextBoxWithIcon.SnCollectionBox();
             this.Printer = new UAS_MES_NEW.CustomControl.ComBoxWithFocus.PrinterCombox();
             this.groupBoxWithBorder1 = new UAS_MES_NEW.CustomControl.GroupBoxWithBorder.GroupBoxWithBorder();
+            this.StopWatch = new System.Windows.Forms.Button();
+            this.StartWatch = new System.Windows.Forms.Button();
+            this.ChooseFolder = new System.Windows.Forms.Button();
+            this.FolderPath = new System.Windows.Forms.TextBox();
+            this.label1 = new System.Windows.Forms.Label();
+            this.XmlWatcher = new System.IO.FileSystemWatcher();
             this.groupBoxWithBorder1.SuspendLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.XmlWatcher)).BeginInit();
             this.SuspendLayout();
             // 
             // giftBox
@@ -60,10 +67,10 @@
             this.giftBox.AutoSize = true;
             this.giftBox.Checked = true;
             this.giftBox.Font = new System.Drawing.Font("微软雅黑", 12F);
-            this.giftBox.Location = new System.Drawing.Point(55, 35);
-            this.giftBox.Margin = new System.Windows.Forms.Padding(2, 1, 2, 1);
+            this.giftBox.Location = new System.Drawing.Point(82, 52);
+            this.giftBox.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
             this.giftBox.Name = "giftBox";
-            this.giftBox.Size = new System.Drawing.Size(92, 25);
+            this.giftBox.Size = new System.Drawing.Size(135, 35);
             this.giftBox.TabIndex = 1;
             this.giftBox.TabStop = true;
             this.giftBox.Text = "彩标打印";
@@ -74,10 +81,10 @@
             // 
             this.CartonBox.AutoSize = true;
             this.CartonBox.Font = new System.Drawing.Font("微软雅黑", 12F);
-            this.CartonBox.Location = new System.Drawing.Point(287, 35);
-            this.CartonBox.Margin = new System.Windows.Forms.Padding(2, 1, 2, 1);
+            this.CartonBox.Location = new System.Drawing.Point(430, 52);
+            this.CartonBox.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
             this.CartonBox.Name = "CartonBox";
-            this.CartonBox.Size = new System.Drawing.Size(112, 25);
+            this.CartonBox.Size = new System.Drawing.Size(164, 35);
             this.CartonBox.TabIndex = 2;
             this.CartonBox.Text = "Carton打印";
             this.CartonBox.UseVisualStyleBackColor = true;
@@ -87,10 +94,10 @@
             // 
             this.fuselagel.AutoSize = true;
             this.fuselagel.Font = new System.Drawing.Font("微软雅黑", 12F);
-            this.fuselagel.Location = new System.Drawing.Point(563, 35);
-            this.fuselagel.Margin = new System.Windows.Forms.Padding(2, 1, 2, 1);
+            this.fuselagel.Location = new System.Drawing.Point(844, 52);
+            this.fuselagel.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
             this.fuselagel.Name = "fuselagel";
-            this.fuselagel.Size = new System.Drawing.Size(108, 25);
+            this.fuselagel.Size = new System.Drawing.Size(159, 35);
             this.fuselagel.TabIndex = 3;
             this.fuselagel.Text = "栈板标打印";
             this.fuselagel.UseVisualStyleBackColor = true;
@@ -100,10 +107,9 @@
             // 
             this.label.AutoSize = true;
             this.label.Font = new System.Drawing.Font("微软雅黑", 12F);
-            this.label.Location = new System.Drawing.Point(25, 89);
-            this.label.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
+            this.label.Location = new System.Drawing.Point(38, 134);
             this.label.Name = "label";
-            this.label.Size = new System.Drawing.Size(58, 21);
+            this.label.Size = new System.Drawing.Size(86, 31);
             this.label.TabIndex = 4;
             this.label.Text = "输入值";
             // 
@@ -111,10 +117,9 @@
             // 
             this.label3.AutoSize = true;
             this.label3.Font = new System.Drawing.Font("微软雅黑", 12F);
-            this.label3.Location = new System.Drawing.Point(364, 89);
-            this.label3.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
+            this.label3.Location = new System.Drawing.Point(546, 134);
             this.label3.Name = "label3";
-            this.label3.Size = new System.Drawing.Size(74, 21);
+            this.label3.Size = new System.Drawing.Size(110, 31);
             this.label3.TabIndex = 5;
             this.label3.Text = "工单代码";
             // 
@@ -122,10 +127,9 @@
             // 
             this.label111.AutoSize = true;
             this.label111.Font = new System.Drawing.Font("微软雅黑", 12F);
-            this.label111.Location = new System.Drawing.Point(25, 115);
-            this.label111.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
+            this.label111.Location = new System.Drawing.Point(38, 172);
             this.label111.Name = "label111";
-            this.label111.Size = new System.Drawing.Size(74, 21);
+            this.label111.Size = new System.Drawing.Size(110, 31);
             this.label111.TabIndex = 6;
             this.label111.Text = "产品编号";
             // 
@@ -133,10 +137,9 @@
             // 
             this.label5.AutoSize = true;
             this.label5.Font = new System.Drawing.Font("微软雅黑", 12F);
-            this.label5.Location = new System.Drawing.Point(364, 115);
-            this.label5.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
+            this.label5.Location = new System.Drawing.Point(546, 172);
             this.label5.Name = "label5";
-            this.label5.Size = new System.Drawing.Size(42, 21);
+            this.label5.Size = new System.Drawing.Size(62, 31);
             this.label5.TabIndex = 7;
             this.label5.Text = "名称";
             // 
@@ -144,19 +147,20 @@
             // 
             this.PrintLabel.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
             this.PrintLabel.FormattingEnabled = true;
-            this.PrintLabel.Location = new System.Drawing.Point(125, 179);
-            this.PrintLabel.Margin = new System.Windows.Forms.Padding(2, 1, 2, 1);
+            this.PrintLabel.Location = new System.Drawing.Point(188, 268);
+            this.PrintLabel.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
             this.PrintLabel.Name = "PrintLabel";
-            this.PrintLabel.Size = new System.Drawing.Size(149, 20);
+            this.PrintLabel.Size = new System.Drawing.Size(222, 26);
             this.PrintLabel.TabIndex = 189;
             // 
             // 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(25, 145);
+            this.label6.Location = new System.Drawing.Point(38, 218);
+            this.label6.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
             this.label6.Name = "label6";
-            this.label6.Size = new System.Drawing.Size(90, 21);
+            this.label6.Size = new System.Drawing.Size(134, 31);
             this.label6.TabIndex = 188;
             this.label6.Text = "打印机列表";
             // 
@@ -164,9 +168,10 @@
             // 
             this.label7.AutoSize = true;
             this.label7.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
-            this.label7.Location = new System.Drawing.Point(25, 176);
+            this.label7.Location = new System.Drawing.Point(38, 264);
+            this.label7.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
             this.label7.Name = "label7";
-            this.label7.Size = new System.Drawing.Size(74, 21);
+            this.label7.Size = new System.Drawing.Size(110, 31);
             this.label7.TabIndex = 187;
             this.label7.Text = "标签模板";
             // 
@@ -174,10 +179,9 @@
             // 
             this.label8.AutoSize = true;
             this.label8.Font = new System.Drawing.Font("微软雅黑", 12F);
-            this.label8.Location = new System.Drawing.Point(363, 148);
-            this.label8.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
+            this.label8.Location = new System.Drawing.Point(544, 222);
             this.label8.Name = "label8";
-            this.label8.Size = new System.Drawing.Size(58, 21);
+            this.label8.Size = new System.Drawing.Size(86, 31);
             this.label8.TabIndex = 190;
             this.label8.Text = "输入框";
             // 
@@ -185,10 +189,9 @@
             // 
             this.label9.AutoSize = true;
             this.label9.Font = new System.Drawing.Font("微软雅黑", 12F);
-            this.label9.Location = new System.Drawing.Point(364, 179);
-            this.label9.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
+            this.label9.Location = new System.Drawing.Point(546, 268);
             this.label9.Name = "label9";
-            this.label9.Size = new System.Drawing.Size(42, 21);
+            this.label9.Size = new System.Drawing.Size(62, 31);
             this.label9.TabIndex = 192;
             this.label9.Text = "份数";
             // 
@@ -196,20 +199,18 @@
             // 
             this.inputValue.AutoSize = true;
             this.inputValue.Font = new System.Drawing.Font("微软雅黑", 12F);
-            this.inputValue.Location = new System.Drawing.Point(121, 89);
-            this.inputValue.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
+            this.inputValue.Location = new System.Drawing.Point(182, 134);
             this.inputValue.Name = "inputValue";
-            this.inputValue.Size = new System.Drawing.Size(0, 21);
+            this.inputValue.Size = new System.Drawing.Size(0, 31);
             this.inputValue.TabIndex = 199;
             // 
             // pr_code
             // 
             this.pr_code.AutoSize = true;
             this.pr_code.Font = new System.Drawing.Font("微软雅黑", 12F);
-            this.pr_code.Location = new System.Drawing.Point(121, 115);
-            this.pr_code.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
+            this.pr_code.Location = new System.Drawing.Point(182, 172);
             this.pr_code.Name = "pr_code";
-            this.pr_code.Size = new System.Drawing.Size(0, 21);
+            this.pr_code.Size = new System.Drawing.Size(0, 31);
             this.pr_code.TabIndex = 200;
             this.pr_code.TextChanged += new System.EventHandler(this.PrintLabel_TextChanged);
             // 
@@ -217,28 +218,27 @@
             // 
             this.ms_makecode.AutoSize = true;
             this.ms_makecode.Font = new System.Drawing.Font("微软雅黑", 12F);
-            this.ms_makecode.Location = new System.Drawing.Point(437, 89);
-            this.ms_makecode.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
+            this.ms_makecode.Location = new System.Drawing.Point(656, 134);
             this.ms_makecode.Name = "ms_makecode";
-            this.ms_makecode.Size = new System.Drawing.Size(0, 21);
+            this.ms_makecode.Size = new System.Drawing.Size(0, 31);
             this.ms_makecode.TabIndex = 201;
             // 
             // pr_detail
             // 
             this.pr_detail.AutoSize = true;
             this.pr_detail.Font = new System.Drawing.Font("微软雅黑", 12F);
-            this.pr_detail.Location = new System.Drawing.Point(437, 115);
-            this.pr_detail.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
+            this.pr_detail.Location = new System.Drawing.Point(656, 172);
             this.pr_detail.Name = "pr_detail";
-            this.pr_detail.Size = new System.Drawing.Size(0, 21);
+            this.pr_detail.Size = new System.Drawing.Size(0, 31);
             this.pr_detail.TabIndex = 202;
             // 
             // OperateResult
             // 
             this.OperateResult.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
-            this.OperateResult.Location = new System.Drawing.Point(29, 211);
+            this.OperateResult.Location = new System.Drawing.Point(44, 316);
+            this.OperateResult.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
             this.OperateResult.Name = "OperateResult";
-            this.OperateResult.Size = new System.Drawing.Size(757, 165);
+            this.OperateResult.Size = new System.Drawing.Size(769, 246);
             this.OperateResult.TabIndex = 195;
             this.OperateResult.Text = "";
             // 
@@ -249,13 +249,13 @@
             this.printBtn.DownImage = ((System.Drawing.Image)(resources.GetObject("printBtn.DownImage")));
             this.printBtn.Image = null;
             this.printBtn.IsShowBorder = true;
-            this.printBtn.Location = new System.Drawing.Point(615, 178);
-            this.printBtn.Margin = new System.Windows.Forms.Padding(2, 1, 2, 1);
+            this.printBtn.Location = new System.Drawing.Point(922, 267);
+            this.printBtn.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
             this.printBtn.MoveImage = ((System.Drawing.Image)(resources.GetObject("printBtn.MoveImage")));
             this.printBtn.Name = "printBtn";
             this.printBtn.NormalImage = ((System.Drawing.Image)(resources.GetObject("printBtn.NormalImage")));
             this.printBtn.Power = null;
-            this.printBtn.Size = new System.Drawing.Size(50, 24);
+            this.printBtn.Size = new System.Drawing.Size(75, 36);
             this.printBtn.TabIndex = 194;
             this.printBtn.Text = "打印";
             this.printBtn.UseVisualStyleBackColor = false;
@@ -266,12 +266,12 @@
             this.printNum.AllPower = null;
             this.printNum.BackColor = System.Drawing.Color.White;
             this.printNum.ID = null;
-            this.printNum.Location = new System.Drawing.Point(442, 182);
-            this.printNum.Margin = new System.Windows.Forms.Padding(2, 1, 2, 1);
+            this.printNum.Location = new System.Drawing.Point(663, 273);
+            this.printNum.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
             this.printNum.Name = "printNum";
             this.printNum.Negative = false;
             this.printNum.Power = null;
-            this.printNum.Size = new System.Drawing.Size(149, 21);
+            this.printNum.Size = new System.Drawing.Size(222, 28);
             this.printNum.Str = null;
             this.printNum.Str1 = null;
             this.printNum.Str2 = null;
@@ -283,11 +283,11 @@
             this.inputText.AllPower = null;
             this.inputText.BackColor = System.Drawing.Color.White;
             this.inputText.ID = null;
-            this.inputText.Location = new System.Drawing.Point(441, 149);
-            this.inputText.Margin = new System.Windows.Forms.Padding(2, 1, 2, 1);
+            this.inputText.Location = new System.Drawing.Point(662, 224);
+            this.inputText.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
             this.inputText.Name = "inputText";
             this.inputText.Power = null;
-            this.inputText.Size = new System.Drawing.Size(149, 21);
+            this.inputText.Size = new System.Drawing.Size(222, 28);
             this.inputText.Str = null;
             this.inputText.Str1 = null;
             this.inputText.Str2 = null;
@@ -296,10 +296,10 @@
             // 
             // Printer
             // 
-            this.Printer.Location = new System.Drawing.Point(125, 145);
-            this.Printer.Margin = new System.Windows.Forms.Padding(4);
+            this.Printer.Location = new System.Drawing.Point(188, 218);
+            this.Printer.Margin = new System.Windows.Forms.Padding(6, 6, 6, 6);
             this.Printer.Name = "Printer";
-            this.Printer.Size = new System.Drawing.Size(148, 25);
+            this.Printer.Size = new System.Drawing.Size(222, 38);
             this.Printer.TabIndex = 186;
             // 
             // groupBoxWithBorder1
@@ -309,21 +309,85 @@
             this.groupBoxWithBorder1.Controls.Add(this.fuselagel);
             this.groupBoxWithBorder1.Controls.Add(this.giftBox);
             this.groupBoxWithBorder1.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
-            this.groupBoxWithBorder1.Location = new System.Drawing.Point(29, 9);
-            this.groupBoxWithBorder1.Margin = new System.Windows.Forms.Padding(2, 3, 2, 3);
+            this.groupBoxWithBorder1.Location = new System.Drawing.Point(44, 14);
+            this.groupBoxWithBorder1.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
             this.groupBoxWithBorder1.Name = "groupBoxWithBorder1";
-            this.groupBoxWithBorder1.Padding = new System.Windows.Forms.Padding(2, 3, 2, 3);
-            this.groupBoxWithBorder1.Size = new System.Drawing.Size(756, 72);
+            this.groupBoxWithBorder1.Padding = new System.Windows.Forms.Padding(3, 4, 3, 4);
+            this.groupBoxWithBorder1.Size = new System.Drawing.Size(1134, 108);
             this.groupBoxWithBorder1.TabIndex = 204;
             this.groupBoxWithBorder1.TabStop = false;
             this.groupBoxWithBorder1.Text = "打印类型";
             this.groupBoxWithBorder1.TextColor = System.Drawing.Color.Black;
             // 
+            // StopWatch
+            // 
+            this.StopWatch.Enabled = false;
+            this.StopWatch.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.StopWatch.Location = new System.Drawing.Point(1042, 458);
+            this.StopWatch.Name = "StopWatch";
+            this.StopWatch.Size = new System.Drawing.Size(96, 42);
+            this.StopWatch.TabIndex = 209;
+            this.StopWatch.Text = "停止监控";
+            this.StopWatch.UseVisualStyleBackColor = true;
+            this.StopWatch.Click += new System.EventHandler(this.StopWatch_Click);
+            // 
+            // StartWatch
+            // 
+            this.StartWatch.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.StartWatch.Location = new System.Drawing.Point(874, 458);
+            this.StartWatch.Name = "StartWatch";
+            this.StartWatch.Size = new System.Drawing.Size(96, 42);
+            this.StartWatch.TabIndex = 208;
+            this.StartWatch.Text = "开始监控";
+            this.StartWatch.UseVisualStyleBackColor = true;
+            this.StartWatch.Click += new System.EventHandler(this.StartWatch_Click);
+            // 
+            // ChooseFolder
+            // 
+            this.ChooseFolder.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.ChooseFolder.Location = new System.Drawing.Point(1084, 400);
+            this.ChooseFolder.Name = "ChooseFolder";
+            this.ChooseFolder.Size = new System.Drawing.Size(117, 36);
+            this.ChooseFolder.TabIndex = 207;
+            this.ChooseFolder.Text = "选择文件夹";
+            this.ChooseFolder.UseVisualStyleBackColor = true;
+            this.ChooseFolder.Click += new System.EventHandler(this.ChooseFolder_Click);
+            // 
+            // FolderPath
+            // 
+            this.FolderPath.Enabled = false;
+            this.FolderPath.Location = new System.Drawing.Point(832, 406);
+            this.FolderPath.Name = "FolderPath";
+            this.FolderPath.Size = new System.Drawing.Size(236, 28);
+            this.FolderPath.TabIndex = 206;
+            // 
+            // label1
+            // 
+            this.label1.AutoSize = true;
+            this.label1.Font = new System.Drawing.Font("微软雅黑", 10.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.label1.Location = new System.Drawing.Point(930, 353);
+            this.label1.Name = "label1";
+            this.label1.Size = new System.Drawing.Size(123, 30);
+            this.label1.TabIndex = 205;
+            this.label1.Text = "监控文件夹";
+            // 
+            // XmlWatcher
+            // 
+            this.XmlWatcher.EnableRaisingEvents = true;
+            this.XmlWatcher.Filter = "*.txt";
+            this.XmlWatcher.SynchronizingObject = this;
+            this.XmlWatcher.Created += new System.IO.FileSystemEventHandler(this.XmlWatcher_Created);
+            // 
             // Make_RePrintLabel
             // 
-            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
+            this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 18F);
             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-            this.ClientSize = new System.Drawing.Size(818, 417);
+            this.ClientSize = new System.Drawing.Size(1227, 626);
+            this.Controls.Add(this.StopWatch);
+            this.Controls.Add(this.StartWatch);
+            this.Controls.Add(this.ChooseFolder);
+            this.Controls.Add(this.FolderPath);
+            this.Controls.Add(this.label1);
             this.Controls.Add(this.groupBoxWithBorder1);
             this.Controls.Add(this.pr_detail);
             this.Controls.Add(this.ms_makecode);
@@ -344,7 +408,7 @@
             this.Controls.Add(this.label3);
             this.Controls.Add(this.label);
             this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
-            this.Margin = new System.Windows.Forms.Padding(2, 1, 2, 1);
+            this.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
             this.Name = "Make_RePrintLabel";
             this.Tag = "Make!RePrintLabel";
             this.Text = "Make_RePrintLabel";
@@ -353,6 +417,7 @@
             this.SizeChanged += new System.EventHandler(this.Make_RePrintLabel_SizeChanged);
             this.groupBoxWithBorder1.ResumeLayout(false);
             this.groupBoxWithBorder1.PerformLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.XmlWatcher)).EndInit();
             this.ResumeLayout(false);
             this.PerformLayout();
 
@@ -381,5 +446,11 @@
         private System.Windows.Forms.Label ms_makecode;
         private System.Windows.Forms.Label pr_detail;
         private CustomControl.GroupBoxWithBorder.GroupBoxWithBorder groupBoxWithBorder1;
+        private System.Windows.Forms.Button StopWatch;
+        private System.Windows.Forms.Button StartWatch;
+        private System.Windows.Forms.Button ChooseFolder;
+        private System.Windows.Forms.TextBox FolderPath;
+        private System.Windows.Forms.Label label1;
+        private System.IO.FileSystemWatcher XmlWatcher;
     }
 }

+ 83 - 0
UAS_MES_JH/FunctionCode/Make/Make_RePrintLabel.cs

@@ -4,6 +4,7 @@ using System.Collections.Generic;
 using System.ComponentModel;
 using System.Data;
 using System.Drawing;
+using System.IO;
 using System.Linq;
 using System.Text;
 using System.Threading;
@@ -92,6 +93,7 @@ namespace UAS_MES_NEW.Make
         {
             //窗口关闭的时候
             BaseUtil.ClosePrint(lbl);
+            XmlWatcher.EnableRaisingEvents = false;
         }
 
         private void radioButton_CheckedChange(object sender, EventArgs e)
@@ -386,5 +388,86 @@ namespace UAS_MES_NEW.Make
                 listA.Clear();
             }
         }
+
+        private void XmlWatcher_Created(object sender, System.IO.FileSystemEventArgs e)
+        {
+            while (true)
+            {
+                try
+                {
+                    using (Stream stream = File.Open(e.FullPath, FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite))
+                    {
+                        if (stream != null)
+                            break;
+                    }
+                }
+                catch (Exception ex)
+                {
+                    Console.WriteLine(ex.Message);
+                }
+            }
+            string test_date = "";
+            string test_result = "";
+            string test_sn = "";
+            string imageurl = "";
+            string oMSID = "";
+            string oErrMessage = "";
+            StreamReader _Sr = new StreamReader(FolderPath.Text + @"\" + e.Name, Encoding.UTF8);
+            
+            OperateResult.AppendText("读取文件" + e.Name+"\n");
+            _Sr.Close();
+            //获取文件名的序列号,如SA123456.xml,如果开头为-表示无条码需要自动获取
+            string sn_code = e.Name.Split('.')[0];
+            inputText.Text = sn_code;
+            inputText_KeyDown(this, new KeyEventArgs(Keys.Enter));
+            File.Delete(e.FullPath);
+        }
+
+        private void ChooseFolder_Click(object sender, EventArgs e)
+        {
+            FolderBrowserDialog folder = new FolderBrowserDialog();
+            folder.Description = "选择监控文件夹";
+            DialogResult result = folder.ShowDialog();
+            if (result == DialogResult.OK)
+            {
+                FolderPath.Text = folder.SelectedPath;
+            }
+        }
+
+        private void StartWatch_Click(object sender, EventArgs e)
+        {
+            if (FolderPath.Text == "")
+            {
+                OperateResult.AppendText("请选择监控文件夹\n");
+                return;
+            }
+            else
+            {
+                if (!Directory.Exists(FolderPath.Text))
+                {
+                    OperateResult.AppendText("监控文件夹不存在\n");
+                    return;
+                }
+            }
+            XmlWatcher.Path = FolderPath.Text;
+            XmlWatcher.Filter = "*.txt";
+            XmlWatcher.EnableRaisingEvents = true;
+            //设置缓存数据
+            BaseUtil.SetCacheData("FolderPath", FolderPath.Text);
+            //设置按钮不可点击
+            StartWatch.Enabled = false;
+            ChooseFolder.Enabled = false;
+            StopWatch.Enabled = true;
+            OperateResult.AppendText("开始执行监控\n");
+        }
+
+        private void StopWatch_Click(object sender, EventArgs e)
+        {
+            XmlWatcher.EnableRaisingEvents = false;
+            StartWatch.Enabled = true;
+            ChooseFolder.Enabled = true;
+            StopWatch.Enabled = false;
+            OperateResult.AppendText("停止执行监控\n");
+        }
     }
 }

+ 3 - 0
UAS_MES_JH/FunctionCode/Make/Make_RePrintLabel.resx

@@ -156,4 +156,7 @@
         ROJSU3qXjMKwG/vjzEz/skOI3Zqgv7AAAAAASUVORK5CYII=
 </value>
   </data>
+  <metadata name="XmlWatcher.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>17, 17</value>
+  </metadata>
 </root>

+ 183 - 135
UAS_MES_JH/FunctionCode/Make/Make_TestCollection.Designer.cs

@@ -72,6 +72,7 @@
             this.pr_detail_label = new System.Windows.Forms.Label();
             this.ma_softversion_label = new System.Windows.Forms.Label();
             this.BadInfSource = new System.Windows.Forms.BindingSource(this.components);
+            this.NoteForChange = new System.Windows.Forms.CheckBox();
             this.ControlLockTimer = new System.Windows.Forms.Timer(this.components);
             this.Lock_label = new System.Windows.Forms.Label();
             this.ma_salecode = new System.Windows.Forms.Label();
@@ -108,9 +109,10 @@
             // 
             this.bc_remark_label.AutoSize = true;
             this.bc_remark_label.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
-            this.bc_remark_label.Location = new System.Drawing.Point(786, 505);
+            this.bc_remark_label.Location = new System.Drawing.Point(1179, 758);
+            this.bc_remark_label.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
             this.bc_remark_label.Name = "bc_remark_label";
-            this.bc_remark_label.Size = new System.Drawing.Size(74, 21);
+            this.bc_remark_label.Size = new System.Drawing.Size(110, 31);
             this.bc_remark_label.TabIndex = 25;
             this.bc_remark_label.Text = "不良备注";
             this.bc_remark_label.Visible = false;
@@ -119,9 +121,10 @@
             // 
             this.ms_sncode_label.AutoSize = true;
             this.ms_sncode_label.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
-            this.ms_sncode_label.Location = new System.Drawing.Point(214, 498);
+            this.ms_sncode_label.Location = new System.Drawing.Point(321, 747);
+            this.ms_sncode_label.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
             this.ms_sncode_label.Name = "ms_sncode_label";
-            this.ms_sncode_label.Size = new System.Drawing.Size(58, 21);
+            this.ms_sncode_label.Size = new System.Drawing.Size(86, 31);
             this.ms_sncode_label.TabIndex = 18;
             this.ms_sncode_label.Text = "序列号";
             // 
@@ -129,9 +132,10 @@
             // 
             this.bc_groupcode_label.AutoSize = true;
             this.bc_groupcode_label.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
-            this.bc_groupcode_label.Location = new System.Drawing.Point(3, 181);
+            this.bc_groupcode_label.Location = new System.Drawing.Point(4, 272);
+            this.bc_groupcode_label.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
             this.bc_groupcode_label.Name = "bc_groupcode_label";
-            this.bc_groupcode_label.Size = new System.Drawing.Size(74, 21);
+            this.bc_groupcode_label.Size = new System.Drawing.Size(110, 31);
             this.bc_groupcode_label.TabIndex = 24;
             this.bc_groupcode_label.Text = "不良组别";
             // 
@@ -140,9 +144,10 @@
             this.label2.AutoSize = true;
             this.label2.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
             this.label2.ForeColor = System.Drawing.Color.Blue;
-            this.label2.Location = new System.Drawing.Point(3, 151);
+            this.label2.Location = new System.Drawing.Point(4, 226);
+            this.label2.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
             this.label2.Name = "label2";
-            this.label2.Size = new System.Drawing.Size(74, 22);
+            this.label2.Size = new System.Drawing.Size(110, 31);
             this.label2.TabIndex = 0;
             this.label2.Text = "采集信息";
             // 
@@ -150,9 +155,10 @@
             // 
             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(3, 221);
+            this.label3.Location = new System.Drawing.Point(4, 332);
+            this.label3.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
             this.label3.Name = "label3";
-            this.label3.Size = new System.Drawing.Size(74, 21);
+            this.label3.Size = new System.Drawing.Size(110, 31);
             this.label3.TabIndex = 34;
             this.label3.Text = "不良代码";
             // 
@@ -161,9 +167,10 @@
             this.GoodProduct.AutoSize = true;
             this.GoodProduct.Font = new System.Drawing.Font("微软雅黑", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
             this.GoodProduct.ForeColor = System.Drawing.Color.Blue;
-            this.GoodProduct.Location = new System.Drawing.Point(6, 495);
+            this.GoodProduct.Location = new System.Drawing.Point(9, 742);
+            this.GoodProduct.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
             this.GoodProduct.Name = "GoodProduct";
-            this.GoodProduct.Size = new System.Drawing.Size(68, 29);
+            this.GoodProduct.Size = new System.Drawing.Size(100, 42);
             this.GoodProduct.TabIndex = 35;
             this.GoodProduct.TabStop = true;
             this.GoodProduct.Text = "良品";
@@ -175,9 +182,10 @@
             this.Reject.AutoSize = true;
             this.Reject.Font = new System.Drawing.Font("微软雅黑", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
             this.Reject.ForeColor = System.Drawing.Color.Red;
-            this.Reject.Location = new System.Drawing.Point(88, 495);
+            this.Reject.Location = new System.Drawing.Point(132, 742);
+            this.Reject.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
             this.Reject.Name = "Reject";
-            this.Reject.Size = new System.Drawing.Size(87, 29);
+            this.Reject.Size = new System.Drawing.Size(129, 42);
             this.Reject.TabIndex = 36;
             this.Reject.TabStop = true;
             this.Reject.Text = "不良品";
@@ -194,9 +202,10 @@
             this.columnHeader9});
             this.WaitRejectList.Font = new System.Drawing.Font("微软雅黑", 10.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
             this.WaitRejectList.FullRowSelect = true;
-            this.WaitRejectList.Location = new System.Drawing.Point(4, 282);
+            this.WaitRejectList.Location = new System.Drawing.Point(6, 423);
+            this.WaitRejectList.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
             this.WaitRejectList.Name = "WaitRejectList";
-            this.WaitRejectList.Size = new System.Drawing.Size(266, 206);
+            this.WaitRejectList.Size = new System.Drawing.Size(397, 307);
             this.WaitRejectList.TabIndex = 37;
             this.WaitRejectList.UseCompatibleStateImageBehavior = false;
             this.WaitRejectList.View = System.Windows.Forms.View.Details;
@@ -234,9 +243,10 @@
             this.label4.AutoSize = true;
             this.label4.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
             this.label4.ForeColor = System.Drawing.Color.Black;
-            this.label4.Location = new System.Drawing.Point(3, 257);
+            this.label4.Location = new System.Drawing.Point(4, 386);
+            this.label4.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
             this.label4.Name = "label4";
-            this.label4.Size = new System.Drawing.Size(74, 22);
+            this.label4.Size = new System.Drawing.Size(110, 31);
             this.label4.TabIndex = 39;
             this.label4.Text = "待选不良";
             // 
@@ -245,9 +255,10 @@
             this.label5.AutoSize = true;
             this.label5.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
             this.label5.ForeColor = System.Drawing.Color.Black;
-            this.label5.Location = new System.Drawing.Point(366, 257);
+            this.label5.Location = new System.Drawing.Point(549, 386);
+            this.label5.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
             this.label5.Name = "label5";
-            this.label5.Size = new System.Drawing.Size(74, 22);
+            this.label5.Size = new System.Drawing.Size(110, 31);
             this.label5.TabIndex = 40;
             this.label5.Text = "已选不良";
             // 
@@ -255,9 +266,10 @@
             // 
             this.label6.AutoSize = true;
             this.label6.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
-            this.label6.Location = new System.Drawing.Point(641, 151);
+            this.label6.Location = new System.Drawing.Point(962, 226);
+            this.label6.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
             this.label6.Name = "label6";
-            this.label6.Size = new System.Drawing.Size(74, 22);
+            this.label6.Size = new System.Drawing.Size(110, 31);
             this.label6.TabIndex = 46;
             this.label6.Text = "操作结果";
             // 
@@ -271,9 +283,10 @@
             this.columnHeader8,
             this.columnHeader10});
             this.ChoosedRejectList.Font = new System.Drawing.Font("微软雅黑", 10.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
-            this.ChoosedRejectList.Location = new System.Drawing.Point(368, 282);
+            this.ChoosedRejectList.Location = new System.Drawing.Point(552, 423);
+            this.ChoosedRejectList.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
             this.ChoosedRejectList.Name = "ChoosedRejectList";
-            this.ChoosedRejectList.Size = new System.Drawing.Size(266, 206);
+            this.ChoosedRejectList.Size = new System.Drawing.Size(397, 307);
             this.ChoosedRejectList.TabIndex = 50;
             this.ChoosedRejectList.UseCompatibleStateImageBehavior = false;
             this.ChoosedRejectList.View = System.Windows.Forms.View.Details;
@@ -309,10 +322,9 @@
             // 
             this.AutoBadCode.AutoSize = true;
             this.AutoBadCode.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
-            this.AutoBadCode.Location = new System.Drawing.Point(720, 151);
-            this.AutoBadCode.Margin = new System.Windows.Forms.Padding(2);
+            this.AutoBadCode.Location = new System.Drawing.Point(1080, 226);
             this.AutoBadCode.Name = "AutoBadCode";
-            this.AutoBadCode.Size = new System.Drawing.Size(123, 21);
+            this.AutoBadCode.Size = new System.Drawing.Size(180, 28);
             this.AutoBadCode.TabIndex = 69;
             this.AutoBadCode.Text = "自动产生不良代码";
             this.AutoBadCode.UseVisualStyleBackColor = true;
@@ -322,9 +334,10 @@
             // 
             this.ma_qty_label.AutoSize = true;
             this.ma_qty_label.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
-            this.ma_qty_label.Location = new System.Drawing.Point(287, 14);
+            this.ma_qty_label.Location = new System.Drawing.Point(430, 21);
+            this.ma_qty_label.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
             this.ma_qty_label.Name = "ma_qty_label";
-            this.ma_qty_label.Size = new System.Drawing.Size(74, 21);
+            this.ma_qty_label.Size = new System.Drawing.Size(110, 31);
             this.ma_qty_label.TabIndex = 11;
             this.ma_qty_label.Text = "工单数量";
             // 
@@ -332,9 +345,10 @@
             // 
             this.ma_prodcode_label.AutoSize = true;
             this.ma_prodcode_label.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
-            this.ma_prodcode_label.Location = new System.Drawing.Point(3, 64);
+            this.ma_prodcode_label.Location = new System.Drawing.Point(4, 96);
+            this.ma_prodcode_label.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
             this.ma_prodcode_label.Name = "ma_prodcode_label";
-            this.ma_prodcode_label.Size = new System.Drawing.Size(74, 21);
+            this.ma_prodcode_label.Size = new System.Drawing.Size(110, 31);
             this.ma_prodcode_label.TabIndex = 7;
             this.ma_prodcode_label.Text = "产品编号";
             // 
@@ -342,9 +356,10 @@
             // 
             this.ms_makecode_label.AutoSize = true;
             this.ms_makecode_label.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
-            this.ms_makecode_label.Location = new System.Drawing.Point(3, 13);
+            this.ms_makecode_label.Location = new System.Drawing.Point(4, 20);
+            this.ms_makecode_label.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
             this.ms_makecode_label.Name = "ms_makecode_label";
-            this.ms_makecode_label.Size = new System.Drawing.Size(74, 21);
+            this.ms_makecode_label.Size = new System.Drawing.Size(110, 31);
             this.ms_makecode_label.TabIndex = 2;
             this.ms_makecode_label.Text = "归属工单";
             // 
@@ -352,9 +367,10 @@
             // 
             this.mcd_inqty_label.AutoSize = true;
             this.mcd_inqty_label.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
-            this.mcd_inqty_label.Location = new System.Drawing.Point(157, 12);
+            this.mcd_inqty_label.Location = new System.Drawing.Point(236, 18);
+            this.mcd_inqty_label.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
             this.mcd_inqty_label.Name = "mcd_inqty_label";
-            this.mcd_inqty_label.Size = new System.Drawing.Size(74, 21);
+            this.mcd_inqty_label.Size = new System.Drawing.Size(110, 31);
             this.mcd_inqty_label.TabIndex = 14;
             this.mcd_inqty_label.Text = "已采集数";
             // 
@@ -362,9 +378,10 @@
             // 
             this.mc_restqty_label.AutoSize = true;
             this.mc_restqty_label.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
-            this.mc_restqty_label.Location = new System.Drawing.Point(16, 12);
+            this.mc_restqty_label.Location = new System.Drawing.Point(24, 18);
+            this.mc_restqty_label.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
             this.mc_restqty_label.Name = "mc_restqty_label";
-            this.mc_restqty_label.Size = new System.Drawing.Size(74, 21);
+            this.mc_restqty_label.Size = new System.Drawing.Size(110, 31);
             this.mc_restqty_label.TabIndex = 17;
             this.mc_restqty_label.Text = "待采集数";
             // 
@@ -383,10 +400,9 @@
             this.panel1.Controls.Add(this.mc_restqty_label);
             this.panel1.Controls.Add(this.mcd_inqty);
             this.panel1.Controls.Add(this.mcd_inqty_label);
-            this.panel1.Location = new System.Drawing.Point(537, 14);
-            this.panel1.Margin = new System.Windows.Forms.Padding(2);
+            this.panel1.Location = new System.Drawing.Point(806, 21);
             this.panel1.Name = "panel1";
-            this.panel1.Size = new System.Drawing.Size(315, 127);
+            this.panel1.Size = new System.Drawing.Size(472, 190);
             this.panel1.TabIndex = 71;
             // 
             // ob_sendqty
@@ -395,10 +411,11 @@
             this.ob_sendqty.CutLength = null;
             this.ob_sendqty.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
             this.ob_sendqty.ForeColor = System.Drawing.Color.Black;
-            this.ob_sendqty.Location = new System.Drawing.Point(109, 91);
-            this.ob_sendqty.MaximumSize = new System.Drawing.Size(150, 0);
+            this.ob_sendqty.Location = new System.Drawing.Point(164, 136);
+            this.ob_sendqty.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+            this.ob_sendqty.MaximumSize = new System.Drawing.Size(225, 0);
             this.ob_sendqty.Name = "ob_sendqty";
-            this.ob_sendqty.Size = new System.Drawing.Size(0, 21);
+            this.ob_sendqty.Size = new System.Drawing.Size(0, 31);
             this.ob_sendqty.TabIndex = 78;
             this.ob_sendqty.Tag = "ob_batchqty";
             // 
@@ -407,9 +424,10 @@
             this.label7.AutoSize = true;
             this.label7.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
             this.label7.ForeColor = System.Drawing.Color.Black;
-            this.label7.Location = new System.Drawing.Point(16, 91);
+            this.label7.Location = new System.Drawing.Point(24, 136);
+            this.label7.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
             this.label7.Name = "label7";
-            this.label7.Size = new System.Drawing.Size(74, 21);
+            this.label7.Size = new System.Drawing.Size(110, 31);
             this.label7.TabIndex = 77;
             this.label7.Text = "已送检数";
             // 
@@ -418,9 +436,10 @@
             this.ob_checkno.AutoSize = true;
             this.ob_checkno.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
             this.ob_checkno.ForeColor = System.Drawing.Color.Black;
-            this.ob_checkno.Location = new System.Drawing.Point(285, 90);
+            this.ob_checkno.Location = new System.Drawing.Point(428, 135);
+            this.ob_checkno.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
             this.ob_checkno.Name = "ob_checkno";
-            this.ob_checkno.Size = new System.Drawing.Size(0, 21);
+            this.ob_checkno.Size = new System.Drawing.Size(0, 31);
             this.ob_checkno.TabIndex = 76;
             this.ob_checkno.Tag = "ob_checkno";
             this.ob_checkno.Visible = false;
@@ -434,13 +453,12 @@
             this.SendCheck.Enabled = false;
             this.SendCheck.Image = null;
             this.SendCheck.IsShowBorder = true;
-            this.SendCheck.Location = new System.Drawing.Point(229, 90);
-            this.SendCheck.Margin = new System.Windows.Forms.Padding(2);
+            this.SendCheck.Location = new System.Drawing.Point(344, 135);
             this.SendCheck.MoveImage = ((System.Drawing.Image)(resources.GetObject("SendCheck.MoveImage")));
             this.SendCheck.Name = "SendCheck";
             this.SendCheck.NormalImage = ((System.Drawing.Image)(resources.GetObject("SendCheck.NormalImage")));
             this.SendCheck.Power = null;
-            this.SendCheck.Size = new System.Drawing.Size(65, 26);
+            this.SendCheck.Size = new System.Drawing.Size(98, 39);
             this.SendCheck.TabIndex = 72;
             this.SendCheck.Text = "送检";
             this.SendCheck.UseVisualStyleBackColor = false;
@@ -452,10 +470,11 @@
             this.ob_batchqty.CutLength = null;
             this.ob_batchqty.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
             this.ob_batchqty.ForeColor = System.Drawing.Color.Black;
-            this.ob_batchqty.Location = new System.Drawing.Point(109, 51);
-            this.ob_batchqty.MaximumSize = new System.Drawing.Size(150, 0);
+            this.ob_batchqty.Location = new System.Drawing.Point(164, 76);
+            this.ob_batchqty.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+            this.ob_batchqty.MaximumSize = new System.Drawing.Size(225, 0);
             this.ob_batchqty.Name = "ob_batchqty";
-            this.ob_batchqty.Size = new System.Drawing.Size(0, 21);
+            this.ob_batchqty.Size = new System.Drawing.Size(0, 31);
             this.ob_batchqty.TabIndex = 75;
             this.ob_batchqty.Tag = "ob_batchqty";
             // 
@@ -464,9 +483,10 @@
             this.ob_batchqty_label.AutoSize = true;
             this.ob_batchqty_label.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
             this.ob_batchqty_label.ForeColor = System.Drawing.Color.Black;
-            this.ob_batchqty_label.Location = new System.Drawing.Point(16, 51);
+            this.ob_batchqty_label.Location = new System.Drawing.Point(24, 76);
+            this.ob_batchqty_label.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
             this.ob_batchqty_label.Name = "ob_batchqty_label";
-            this.ob_batchqty_label.Size = new System.Drawing.Size(74, 21);
+            this.ob_batchqty_label.Size = new System.Drawing.Size(110, 31);
             this.ob_batchqty_label.TabIndex = 74;
             this.ob_batchqty_label.Text = "抽检批数";
             // 
@@ -476,10 +496,11 @@
             this.ob_nowcheckqty.CutLength = null;
             this.ob_nowcheckqty.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
             this.ob_nowcheckqty.ForeColor = System.Drawing.Color.Black;
-            this.ob_nowcheckqty.Location = new System.Drawing.Point(248, 51);
-            this.ob_nowcheckqty.MaximumSize = new System.Drawing.Size(150, 0);
+            this.ob_nowcheckqty.Location = new System.Drawing.Point(372, 76);
+            this.ob_nowcheckqty.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+            this.ob_nowcheckqty.MaximumSize = new System.Drawing.Size(225, 0);
             this.ob_nowcheckqty.Name = "ob_nowcheckqty";
-            this.ob_nowcheckqty.Size = new System.Drawing.Size(0, 21);
+            this.ob_nowcheckqty.Size = new System.Drawing.Size(0, 31);
             this.ob_nowcheckqty.TabIndex = 73;
             this.ob_nowcheckqty.Tag = "ob_nowcheckqty";
             // 
@@ -488,9 +509,10 @@
             this.ob_nowcheckqty_label.AutoSize = true;
             this.ob_nowcheckqty_label.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
             this.ob_nowcheckqty_label.ForeColor = System.Drawing.Color.Black;
-            this.ob_nowcheckqty_label.Location = new System.Drawing.Point(157, 51);
+            this.ob_nowcheckqty_label.Location = new System.Drawing.Point(236, 76);
+            this.ob_nowcheckqty_label.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
             this.ob_nowcheckqty_label.Name = "ob_nowcheckqty_label";
-            this.ob_nowcheckqty_label.Size = new System.Drawing.Size(74, 21);
+            this.ob_nowcheckqty_label.Size = new System.Drawing.Size(110, 31);
             this.ob_nowcheckqty_label.TabIndex = 72;
             this.ob_nowcheckqty_label.Text = "当前批数";
             // 
@@ -499,10 +521,11 @@
             this.mcd_remainqty.AutoSize = true;
             this.mcd_remainqty.CutLength = null;
             this.mcd_remainqty.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
-            this.mcd_remainqty.Location = new System.Drawing.Point(109, 12);
-            this.mcd_remainqty.MaximumSize = new System.Drawing.Size(150, 0);
+            this.mcd_remainqty.Location = new System.Drawing.Point(164, 18);
+            this.mcd_remainqty.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+            this.mcd_remainqty.MaximumSize = new System.Drawing.Size(225, 0);
             this.mcd_remainqty.Name = "mcd_remainqty";
-            this.mcd_remainqty.Size = new System.Drawing.Size(0, 21);
+            this.mcd_remainqty.Size = new System.Drawing.Size(0, 31);
             this.mcd_remainqty.TabIndex = 57;
             this.mcd_remainqty.Tag = "mcd_remainqty";
             // 
@@ -511,10 +534,11 @@
             this.mcd_inqty.AutoSize = true;
             this.mcd_inqty.CutLength = null;
             this.mcd_inqty.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
-            this.mcd_inqty.Location = new System.Drawing.Point(248, 12);
-            this.mcd_inqty.MaximumSize = new System.Drawing.Size(150, 0);
+            this.mcd_inqty.Location = new System.Drawing.Point(372, 18);
+            this.mcd_inqty.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+            this.mcd_inqty.MaximumSize = new System.Drawing.Size(225, 0);
             this.mcd_inqty.Name = "mcd_inqty";
-            this.mcd_inqty.Size = new System.Drawing.Size(0, 21);
+            this.mcd_inqty.Size = new System.Drawing.Size(0, 31);
             this.mcd_inqty.TabIndex = 54;
             this.mcd_inqty.Tag = "mcd_inqty";
             // 
@@ -522,9 +546,10 @@
             // 
             this.pr_detail_label.AutoSize = true;
             this.pr_detail_label.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
-            this.pr_detail_label.Location = new System.Drawing.Point(287, 64);
+            this.pr_detail_label.Location = new System.Drawing.Point(430, 96);
+            this.pr_detail_label.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
             this.pr_detail_label.Name = "pr_detail_label";
-            this.pr_detail_label.Size = new System.Drawing.Size(74, 21);
+            this.pr_detail_label.Size = new System.Drawing.Size(110, 31);
             this.pr_detail_label.TabIndex = 6;
             this.pr_detail_label.Text = "产品规格";
             this.pr_detail_label.Visible = false;
@@ -533,20 +558,33 @@
             // 
             this.ma_softversion_label.AutoSize = true;
             this.ma_softversion_label.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
-            this.ma_softversion_label.Location = new System.Drawing.Point(3, 112);
+            this.ma_softversion_label.Location = new System.Drawing.Point(4, 168);
+            this.ma_softversion_label.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
             this.ma_softversion_label.Name = "ma_softversion_label";
-            this.ma_softversion_label.Size = new System.Drawing.Size(74, 21);
+            this.ma_softversion_label.Size = new System.Drawing.Size(110, 31);
             this.ma_softversion_label.TabIndex = 72;
             this.ma_softversion_label.Text = "软件版本";
             // 
+            // NoteForChange
+            // 
+            this.NoteForChange.AutoSize = true;
+            this.NoteForChange.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.NoteForChange.Location = new System.Drawing.Point(435, 168);
+            this.NoteForChange.Name = "NoteForChange";
+            this.NoteForChange.Size = new System.Drawing.Size(144, 28);
+            this.NoteForChange.TabIndex = 75;
+            this.NoteForChange.Text = "切换工单提示";
+            this.NoteForChange.UseVisualStyleBackColor = true;
+            // 
             // Lock_label
             // 
             this.Lock_label.AutoSize = true;
             this.Lock_label.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
             this.Lock_label.ForeColor = System.Drawing.Color.Red;
-            this.Lock_label.Location = new System.Drawing.Point(569, 500);
+            this.Lock_label.Location = new System.Drawing.Point(854, 750);
+            this.Lock_label.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
             this.Lock_label.Name = "Lock_label";
-            this.Lock_label.Size = new System.Drawing.Size(126, 21);
+            this.Lock_label.Size = new System.Drawing.Size(188, 31);
             this.Lock_label.TabIndex = 77;
             this.Lock_label.Text = "Ctrl+Q解除锁定";
             this.Lock_label.Visible = false;
@@ -554,28 +592,30 @@
             // ma_salecode
             // 
             this.ma_salecode.AutoSize = true;
-            this.ma_salecode.Location = new System.Drawing.Point(477, 151);
+            this.ma_salecode.Location = new System.Drawing.Point(716, 226);
+            this.ma_salecode.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
             this.ma_salecode.Name = "ma_salecode";
-            this.ma_salecode.Size = new System.Drawing.Size(0, 12);
+            this.ma_salecode.Size = new System.Drawing.Size(0, 18);
             this.ma_salecode.TabIndex = 78;
             this.ma_salecode.Visible = false;
             // 
             // pr_sendchecktype
             // 
             this.pr_sendchecktype.AutoSize = true;
-            this.pr_sendchecktype.Location = new System.Drawing.Point(477, 155);
+            this.pr_sendchecktype.Location = new System.Drawing.Point(716, 232);
+            this.pr_sendchecktype.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
             this.pr_sendchecktype.Name = "pr_sendchecktype";
-            this.pr_sendchecktype.Size = new System.Drawing.Size(0, 12);
+            this.pr_sendchecktype.Size = new System.Drawing.Size(0, 18);
             this.pr_sendchecktype.TabIndex = 79;
             this.pr_sendchecktype.Visible = false;
             // 
             // StepCount
             // 
             this.StepCount.LineCode = null;
-            this.StepCount.Location = new System.Drawing.Point(291, 146);
-            this.StepCount.Margin = new System.Windows.Forms.Padding(4, 7, 4, 7);
+            this.StepCount.Location = new System.Drawing.Point(436, 219);
+            this.StepCount.Margin = new System.Windows.Forms.Padding(6, 10, 6, 10);
             this.StepCount.Name = "StepCount";
-            this.StepCount.Size = new System.Drawing.Size(64, 22);
+            this.StepCount.Size = new System.Drawing.Size(96, 33);
             this.StepCount.Source = null;
             this.StepCount.StepCode = null;
             this.StepCount.TabIndex = 194;
@@ -584,11 +624,10 @@
             // 
             this.Filter.BackColor = System.Drawing.Color.Transparent;
             this.Filter.Font = new System.Drawing.Font("宋体", 10.8F);
-            this.Filter.Location = new System.Drawing.Point(93, 257);
-            this.Filter.Margin = new System.Windows.Forms.Padding(2);
+            this.Filter.Location = new System.Drawing.Point(140, 386);
             this.Filter.Name = "Filter";
             this.Filter.PlaceHolder = "不良名称搜索";
-            this.Filter.Size = new System.Drawing.Size(176, 22);
+            this.Filter.Size = new System.Drawing.Size(264, 33);
             this.Filter.TabIndex = 76;
             this.Filter.UserControlTextChanged += new UAS_MES_NEW.CustomControl.TextBoxWithIcon.TextBoxWithPlaceHolder.OnTextChange(this.Filter_UserControlTextChanged);
             // 
@@ -597,10 +636,11 @@
             this.ma_softversion.AutoSize = true;
             this.ma_softversion.CutLength = null;
             this.ma_softversion.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
-            this.ma_softversion.Location = new System.Drawing.Point(94, 112);
-            this.ma_softversion.MaximumSize = new System.Drawing.Size(150, 0);
+            this.ma_softversion.Location = new System.Drawing.Point(141, 168);
+            this.ma_softversion.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+            this.ma_softversion.MaximumSize = new System.Drawing.Size(225, 0);
             this.ma_softversion.Name = "ma_softversion";
-            this.ma_softversion.Size = new System.Drawing.Size(0, 21);
+            this.ma_softversion.Size = new System.Drawing.Size(0, 31);
             this.ma_softversion.TabIndex = 73;
             // 
             // Save
@@ -610,13 +650,12 @@
             this.Save.DownImage = ((System.Drawing.Image)(resources.GetObject("Save.DownImage")));
             this.Save.Image = null;
             this.Save.IsShowBorder = true;
-            this.Save.Location = new System.Drawing.Point(477, 497);
-            this.Save.Margin = new System.Windows.Forms.Padding(2);
+            this.Save.Location = new System.Drawing.Point(716, 746);
             this.Save.MoveImage = ((System.Drawing.Image)(resources.GetObject("Save.MoveImage")));
             this.Save.Name = "Save";
             this.Save.NormalImage = ((System.Drawing.Image)(resources.GetObject("Save.NormalImage")));
             this.Save.Power = null;
-            this.Save.Size = new System.Drawing.Size(65, 26);
+            this.Save.Size = new System.Drawing.Size(98, 39);
             this.Save.TabIndex = 70;
             this.Save.Text = "保存";
             this.Save.UseVisualStyleBackColor = false;
@@ -628,10 +667,11 @@
             this.bc_code.BackColor = System.Drawing.Color.White;
             this.bc_code.Font = new System.Drawing.Font("宋体", 10.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
             this.bc_code.ID = null;
-            this.bc_code.Location = new System.Drawing.Point(94, 221);
+            this.bc_code.Location = new System.Drawing.Point(141, 332);
+            this.bc_code.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
             this.bc_code.Name = "bc_code";
             this.bc_code.Power = null;
-            this.bc_code.Size = new System.Drawing.Size(176, 24);
+            this.bc_code.Size = new System.Drawing.Size(262, 32);
             this.bc_code.Str = null;
             this.bc_code.Str1 = null;
             this.bc_code.Str2 = null;
@@ -645,13 +685,14 @@
             this.ma_code.Condition = null;
             this.ma_code.DBTitle = null;
             this.ma_code.FormName = null;
-            this.ma_code.Location = new System.Drawing.Point(93, 13);
+            this.ma_code.Location = new System.Drawing.Point(140, 20);
+            this.ma_code.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
             this.ma_code.Name = "ma_code";
             this.ma_code.Power = null;
             this.ma_code.ReturnData = null;
             this.ma_code.SelectField = null;
             this.ma_code.SetValueField = null;
-            this.ma_code.Size = new System.Drawing.Size(115, 21);
+            this.ma_code.Size = new System.Drawing.Size(172, 32);
             this.ma_code.TabIndex = 67;
             this.ma_code.TableName = null;
             this.ma_code.Tag = "ma_code";
@@ -663,10 +704,9 @@
             this.LockMakeCode.AutoSize = true;
             this.LockMakeCode.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
             this.LockMakeCode.LeaveEvent = false;
-            this.LockMakeCode.Location = new System.Drawing.Point(224, 15);
-            this.LockMakeCode.Margin = new System.Windows.Forms.Padding(2);
+            this.LockMakeCode.Location = new System.Drawing.Point(336, 22);
             this.LockMakeCode.Name = "LockMakeCode";
-            this.LockMakeCode.Size = new System.Drawing.Size(51, 21);
+            this.LockMakeCode.Size = new System.Drawing.Size(72, 28);
             this.LockMakeCode.TabIndex = 66;
             this.LockMakeCode.Text = "锁定";
             this.LockMakeCode.UseVisualStyleBackColor = true;
@@ -676,10 +716,11 @@
             this.pr_spec.AutoSize = true;
             this.pr_spec.CutLength = "qweqwe";
             this.pr_spec.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
-            this.pr_spec.Location = new System.Drawing.Point(380, 64);
-            this.pr_spec.MaximumSize = new System.Drawing.Size(150, 0);
+            this.pr_spec.Location = new System.Drawing.Point(570, 96);
+            this.pr_spec.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+            this.pr_spec.MaximumSize = new System.Drawing.Size(225, 0);
             this.pr_spec.Name = "pr_spec";
-            this.pr_spec.Size = new System.Drawing.Size(0, 21);
+            this.pr_spec.Size = new System.Drawing.Size(0, 31);
             this.pr_spec.TabIndex = 56;
             this.pr_spec.Visible = false;
             // 
@@ -688,10 +729,11 @@
             this.ma_qty.AutoSize = true;
             this.ma_qty.CutLength = null;
             this.ma_qty.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
-            this.ma_qty.Location = new System.Drawing.Point(379, 14);
-            this.ma_qty.MaximumSize = new System.Drawing.Size(150, 0);
+            this.ma_qty.Location = new System.Drawing.Point(568, 21);
+            this.ma_qty.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+            this.ma_qty.MaximumSize = new System.Drawing.Size(225, 0);
             this.ma_qty.Name = "ma_qty";
-            this.ma_qty.Size = new System.Drawing.Size(0, 21);
+            this.ma_qty.Size = new System.Drawing.Size(0, 31);
             this.ma_qty.TabIndex = 55;
             // 
             // ma_prodcode
@@ -699,19 +741,21 @@
             this.ma_prodcode.AutoSize = true;
             this.ma_prodcode.CutLength = null;
             this.ma_prodcode.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
-            this.ma_prodcode.Location = new System.Drawing.Point(94, 64);
-            this.ma_prodcode.MaximumSize = new System.Drawing.Size(150, 0);
+            this.ma_prodcode.Location = new System.Drawing.Point(141, 96);
+            this.ma_prodcode.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+            this.ma_prodcode.MaximumSize = new System.Drawing.Size(225, 0);
             this.ma_prodcode.Name = "ma_prodcode";
-            this.ma_prodcode.Size = new System.Drawing.Size(0, 21);
+            this.ma_prodcode.Size = new System.Drawing.Size(0, 31);
             this.ma_prodcode.TabIndex = 53;
             this.ma_prodcode.TextChanged += new System.EventHandler(this.ma_prodcode_TextChanged);
             // 
             // OperateResult
             // 
             this.OperateResult.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
-            this.OperateResult.Location = new System.Drawing.Point(644, 181);
+            this.OperateResult.Location = new System.Drawing.Point(966, 272);
+            this.OperateResult.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
             this.OperateResult.Name = "OperateResult";
-            this.OperateResult.Size = new System.Drawing.Size(207, 307);
+            this.OperateResult.Size = new System.Drawing.Size(308, 458);
             this.OperateResult.TabIndex = 52;
             this.OperateResult.Text = "";
             // 
@@ -722,12 +766,13 @@
             this.CleanInfo.DownImage = ((System.Drawing.Image)(resources.GetObject("CleanInfo.DownImage")));
             this.CleanInfo.Image = ((System.Drawing.Image)(resources.GetObject("CleanInfo.Image")));
             this.CleanInfo.IsShowBorder = true;
-            this.CleanInfo.Location = new System.Drawing.Point(718, 497);
+            this.CleanInfo.Location = new System.Drawing.Point(1077, 746);
+            this.CleanInfo.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
             this.CleanInfo.MoveImage = ((System.Drawing.Image)(resources.GetObject("CleanInfo.MoveImage")));
             this.CleanInfo.Name = "CleanInfo";
             this.CleanInfo.NormalImage = ((System.Drawing.Image)(resources.GetObject("CleanInfo.NormalImage")));
             this.CleanInfo.Power = null;
-            this.CleanInfo.Size = new System.Drawing.Size(61, 24);
+            this.CleanInfo.Size = new System.Drawing.Size(92, 36);
             this.CleanInfo.TabIndex = 47;
             this.CleanInfo.Text = "清除内容";
             this.CleanInfo.UseVisualStyleBackColor = true;
@@ -736,9 +781,10 @@
             // ChooseedReject
             // 
             this.ChooseedReject.Image = ((System.Drawing.Image)(resources.GetObject("ChooseedReject.Image")));
-            this.ChooseedReject.Location = new System.Drawing.Point(292, 347);
+            this.ChooseedReject.Location = new System.Drawing.Point(438, 520);
+            this.ChooseedReject.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
             this.ChooseedReject.Name = "ChooseedReject";
-            this.ChooseedReject.Size = new System.Drawing.Size(50, 23);
+            this.ChooseedReject.Size = new System.Drawing.Size(75, 34);
             this.ChooseedReject.TabIndex = 45;
             this.ChooseedReject.UseVisualStyleBackColor = true;
             this.ChooseedReject.Click += new System.EventHandler(this.ChooseedReject_Click);
@@ -746,9 +792,10 @@
             // WaitReject
             // 
             this.WaitReject.Image = ((System.Drawing.Image)(resources.GetObject("WaitReject.Image")));
-            this.WaitReject.Location = new System.Drawing.Point(292, 410);
+            this.WaitReject.Location = new System.Drawing.Point(438, 615);
+            this.WaitReject.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
             this.WaitReject.Name = "WaitReject";
-            this.WaitReject.Size = new System.Drawing.Size(50, 23);
+            this.WaitReject.Size = new System.Drawing.Size(75, 34);
             this.WaitReject.TabIndex = 44;
             this.WaitReject.UseVisualStyleBackColor = true;
             this.WaitReject.Click += new System.EventHandler(this.WaitReject_Click);
@@ -758,11 +805,12 @@
             this.bc_remark.AllPower = null;
             this.bc_remark.BackColor = System.Drawing.Color.White;
             this.bc_remark.ID = null;
-            this.bc_remark.Location = new System.Drawing.Point(817, 512);
+            this.bc_remark.Location = new System.Drawing.Point(1226, 768);
+            this.bc_remark.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
             this.bc_remark.Multiline = true;
             this.bc_remark.Name = "bc_remark";
             this.bc_remark.Power = null;
-            this.bc_remark.Size = new System.Drawing.Size(33, 12);
+            this.bc_remark.Size = new System.Drawing.Size(48, 16);
             this.bc_remark.Str = null;
             this.bc_remark.Str1 = null;
             this.bc_remark.Str2 = null;
@@ -773,9 +821,10 @@
             // 
             this.bc_groupcode.Font = new System.Drawing.Font("宋体", 10.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
             this.bc_groupcode.FormattingEnabled = true;
-            this.bc_groupcode.Location = new System.Drawing.Point(94, 182);
+            this.bc_groupcode.Location = new System.Drawing.Point(141, 273);
+            this.bc_groupcode.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
             this.bc_groupcode.Name = "bc_groupcode";
-            this.bc_groupcode.Size = new System.Drawing.Size(176, 22);
+            this.bc_groupcode.Size = new System.Drawing.Size(262, 30);
             this.bc_groupcode.TabIndex = 21;
             this.bc_groupcode.SelectedIndexChanged += new System.EventHandler(this.bc_groupcode_SelectedIndexChanged);
             // 
@@ -785,10 +834,11 @@
             this.ms_sncode.BackColor = System.Drawing.Color.White;
             this.ms_sncode.Font = new System.Drawing.Font("宋体", 10.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
             this.ms_sncode.ID = null;
-            this.ms_sncode.Location = new System.Drawing.Point(280, 498);
+            this.ms_sncode.Location = new System.Drawing.Point(420, 747);
+            this.ms_sncode.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
             this.ms_sncode.Name = "ms_sncode";
             this.ms_sncode.Power = null;
-            this.ms_sncode.Size = new System.Drawing.Size(181, 24);
+            this.ms_sncode.Size = new System.Drawing.Size(270, 32);
             this.ms_sncode.Str = null;
             this.ms_sncode.Str1 = null;
             this.ms_sncode.Str2 = null;
@@ -800,10 +850,9 @@
             // 
             this.StopWatch.Enabled = false;
             this.StopWatch.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
-            this.StopWatch.Location = new System.Drawing.Point(521, 221);
-            this.StopWatch.Margin = new System.Windows.Forms.Padding(2);
+            this.StopWatch.Location = new System.Drawing.Point(782, 332);
             this.StopWatch.Name = "StopWatch";
-            this.StopWatch.Size = new System.Drawing.Size(64, 28);
+            this.StopWatch.Size = new System.Drawing.Size(96, 42);
             this.StopWatch.TabIndex = 207;
             this.StopWatch.Text = "停止监控";
             this.StopWatch.UseVisualStyleBackColor = true;
@@ -812,10 +861,9 @@
             // StartWatch
             // 
             this.StartWatch.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
-            this.StartWatch.Location = new System.Drawing.Point(409, 221);
-            this.StartWatch.Margin = new System.Windows.Forms.Padding(2);
+            this.StartWatch.Location = new System.Drawing.Point(614, 332);
             this.StartWatch.Name = "StartWatch";
-            this.StartWatch.Size = new System.Drawing.Size(64, 28);
+            this.StartWatch.Size = new System.Drawing.Size(96, 42);
             this.StartWatch.TabIndex = 206;
             this.StartWatch.Text = "开始监控";
             this.StartWatch.UseVisualStyleBackColor = true;
@@ -824,10 +872,9 @@
             // ChooseFolder
             // 
             this.ChooseFolder.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
-            this.ChooseFolder.Location = new System.Drawing.Point(549, 182);
-            this.ChooseFolder.Margin = new System.Windows.Forms.Padding(2);
+            this.ChooseFolder.Location = new System.Drawing.Point(824, 273);
             this.ChooseFolder.Name = "ChooseFolder";
-            this.ChooseFolder.Size = new System.Drawing.Size(78, 24);
+            this.ChooseFolder.Size = new System.Drawing.Size(117, 36);
             this.ChooseFolder.TabIndex = 205;
             this.ChooseFolder.Text = "选择文件夹";
             this.ChooseFolder.UseVisualStyleBackColor = true;
@@ -836,20 +883,18 @@
             // FolderPath
             // 
             this.FolderPath.Enabled = false;
-            this.FolderPath.Location = new System.Drawing.Point(381, 186);
-            this.FolderPath.Margin = new System.Windows.Forms.Padding(2);
+            this.FolderPath.Location = new System.Drawing.Point(572, 279);
             this.FolderPath.Name = "FolderPath";
-            this.FolderPath.Size = new System.Drawing.Size(159, 21);
+            this.FolderPath.Size = new System.Drawing.Size(236, 28);
             this.FolderPath.TabIndex = 204;
             // 
             // label1
             // 
             this.label1.AutoSize = true;
             this.label1.Font = new System.Drawing.Font("微软雅黑", 10.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
-            this.label1.Location = new System.Drawing.Point(447, 151);
-            this.label1.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
+            this.label1.Location = new System.Drawing.Point(670, 226);
             this.label1.Name = "label1";
-            this.label1.Size = new System.Drawing.Size(84, 20);
+            this.label1.Size = new System.Drawing.Size(123, 30);
             this.label1.TabIndex = 203;
             this.label1.Text = "监控文件夹";
             // 
@@ -862,10 +907,10 @@
             // 
             // Make_TestCollection
             // 
-            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
+            this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 18F);
             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
             this.BackColor = System.Drawing.SystemColors.Control;
-            this.ClientSize = new System.Drawing.Size(862, 535);
+            this.ClientSize = new System.Drawing.Size(1293, 802);
             this.Controls.Add(this.StopWatch);
             this.Controls.Add(this.StartWatch);
             this.Controls.Add(this.ChooseFolder);
@@ -876,6 +921,7 @@
             this.Controls.Add(this.ma_salecode);
             this.Controls.Add(this.Lock_label);
             this.Controls.Add(this.Filter);
+            this.Controls.Add(this.NoteForChange);
             this.Controls.Add(this.ma_softversion);
             this.Controls.Add(this.ma_softversion_label);
             this.Controls.Add(this.panel1);
@@ -912,6 +958,7 @@
             this.Controls.Add(this.ma_prodcode_label);
             this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
             this.KeyPreview = true;
+            this.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
             this.Name = "Make_TestCollection";
             this.Tag = "Make!TestCollection";
             this.Text = " ";
@@ -986,6 +1033,7 @@
         private System.Windows.Forms.ColumnHeader columnHeader9;
         private System.Windows.Forms.ColumnHeader columnHeader10;
         private System.Windows.Forms.BindingSource BadInfSource;
+        private System.Windows.Forms.CheckBox NoteForChange;
         private CustomControl.TextBoxWithIcon.TextBoxWithPlaceHolder Filter;
         private System.Windows.Forms.Timer ControlLockTimer;
         private System.Windows.Forms.Label Lock_label;

+ 16 - 15
UAS_MES_JH/FunctionCode/Make/Make_TestCollection.cs

@@ -185,20 +185,20 @@ namespace UAS_MES_NEW.Make
                 ChoosedList.Clear();
                 if (LogicHandler.CheckStepAttribute(Tag.ToString(), User.UserSourceCode, out ErrorMessage))
                 {
-                    //bool NoteAlready = LogicHandler.CheckDiffMakeCodeBeforeStepCheck(ms_sncode.Text, ma_code.Text, NoteForChange.Checked, out oMakeCode, out ErrorMessage);
-                    //if (!NoteAlready)
-                    //{
-                    //    OperateResult.AppendText(">>" + ErrorMessage + "\n", Color.Red, ms_sncode);
-                    //    return;
-                    //}
-                    if (LogicHandler.CheckStepSNAndMacode(ma_code.Text, User.UserSourceCode, ms_sncode.Text, User.UserCode, out oMakeCode, out oMSID, out ErrorMessage))
+                    bool NoteAlready = LogicHandler.CheckDiffMakeCodeBeforeStepCheck(ms_sncode.Text, ma_code.Text, NoteForChange.Checked, out oMakeCode, out ErrorMessage);
+                    if (!NoteAlready)
+                    {
+                        OperateResult.AppendText(">>" + ErrorMessage + "\n", Color.Red, ms_sncode);
+                        return;
+                    }
+                    if (LogicHandler.CheckStepSNAndMacode(oMakeCode, User.UserSourceCode, ms_sncode.Text, User.UserCode, out oMakeCode, out oMSID, out ErrorMessage))
                     {
                         //是否提示过工单切换框,检测前后执行
-                        //if (!LogicHandler.CheckDiffMakeCodeAfterStepCheck(ms_sncode.Text, oMakeCode, NoteForChange.Checked, NoteAlready, ma_code, out ErrorMessage))
-                        //{
-                        //    OperateResult.AppendText(">>" + ErrorMessage + "\n", Color.Red, ms_sncode);
-                        //    return;
-                        //}
+                        if (!LogicHandler.CheckDiffMakeCodeAfterStepCheck(ms_sncode.Text, oMakeCode, NoteForChange.Checked, NoteAlready, ma_code, out ErrorMessage))
+                        {
+                            OperateResult.AppendText(">>" + ErrorMessage + "\n", Color.Red, ms_sncode);
+                            return;
+                        }
                         if (ma_code.Text != oMakeCode && oMakeCode != null)
                         {
                             dt = (DataTable)dh.ExecuteSql("select ma_code,ma_prodcode,ma_softversion,ma_salecode,pr_spec,nvl(pr_sendchecktype,'LineCode')pr_sendchecktype,ma_qty from make left join product on ma_prodcode=pr_code where ma_code='" + oMakeCode + "'", "select");
@@ -214,6 +214,7 @@ namespace UAS_MES_NEW.Make
                         string stepcode = dt.Rows[0]["ms_stepcode"].ToString();
                         string ifrepair = dt.Rows[0]["st_ifrepair"].ToString();
                         string sncode = dt.Rows[0]["ms_sncode"].ToString();
+                        string ms_nextstepcode = dt.Rows[0]["ms_nextstepcode"].ToString();
                         if (sncode != ms_sncode.Text)
                         {
                             OperateResult.AppendText(">>" + ms_sncode.Text + " 序列号已执行过转号,不允许使用TSN采集\n", Color.Red, ms_sncode);
@@ -226,7 +227,7 @@ namespace UAS_MES_NEW.Make
                             {
                                 if (stepcode == User.CurrentStepCode && (reworkstatus == "1" || reworkstatus == "2") && ifrepair == "0")
                                 {
-                                    OperateResult.AppendText(">>" + ms_sncode.Text + " 序列号已执行过" + User.CurrentStepCode + "工序,采集结果为良品\n", Color.Red, ms_sncode);
+                                    OperateResult.AppendText(">>" + ms_sncode.Text + " 序列号已执行过" + User.CurrentStepCode + "工序,采集结果为良品,待执行工序是:"+ ms_nextstepcode + "\n", Color.Red, ms_sncode);
                                     return;
                                 }
                             }
@@ -234,7 +235,7 @@ namespace UAS_MES_NEW.Make
                             {
                                 if (stepcode == User.CurrentStepCode && (status == "1" || status == "2") && ifrepair == "0")
                                 {
-                                    OperateResult.AppendText(">>" + ms_sncode.Text + " 序列号已执行过" + User.CurrentStepCode + "工序,采集结果为良品\n", Color.Red, ms_sncode);
+                                    OperateResult.AppendText(">>" + ms_sncode.Text + " 序列号已执行过" + User.CurrentStepCode + "工序,采集结果为良品待执行工序是:" + ms_nextstepcode + "\n", Color.Red, ms_sncode);
                                     return;
                                 }
                             }
@@ -555,7 +556,7 @@ namespace UAS_MES_NEW.Make
                     sql.Clear();
                     sql.Append("update craftmaterial set cm_status=-1,cm_lastdeco=-1,cm_dropman='" + User.UserCode + "',");
                     sql.Append("cm_dropdate =sysdate,CM_REMARK = '不良自动拆解',cm_dropstep='" + User.CurrentStepCode + "',");
-                    sql.Append("cm_dropsccode='" + User.UserSourceCode + "' where cm_sncode='" + ms_sncode.Text + "' and cm_stepcode= 'BZ-M10' and cm_makecode = '"+ ma_code.Text + "'");
+                    sql.Append("cm_dropsccode='" + User.UserSourceCode + "' where cm_sncode='" + ms_sncode.Text + "' and cm_stepcode= 'BZ-M10' and cm_makecode = '" + ma_code.Text + "'");
                     dh.ExecuteSql(sql.GetString(), "update");
                     LastSncode = ms_sncode.Text;
                     //采集完不良,聚焦序列号

+ 1 - 1
UAS_MES_JH/FunctionCode/Special/Special_Reset.cs

@@ -163,7 +163,7 @@ namespace UAS_MES_NEW.Special
             {
                 if (serBtn.Checked)
                 {
-                    dt = (DataTable)dh.ExecuteSql("select ms_makecode,ms_prodcode,ms_sncode,ms_craftcode cr_code,ms_status,ms_outboxcode from makeserial where ms_sncode = '" + input.Text + "'", "select");
+                    dt = (DataTable)dh.ExecuteSql("select ms_makecode,ms_prodcode,ms_sncode,ms_craftcode cr_code,ms_status,ms_outboxcode from makeserial where ms_sncode = '" + input.Text + "' order by ms_id desc" , "select");
                     if (dt.Rows.Count > 0)
                     {
                         if (ms_makecode.Text != "" && dt.Rows[0]["ms_makecode"].ToString() != ms_makecode.Text)

+ 2 - 2
UAS_MES_LT/FunctionCode/Make/Make_FeedingCollection.cs

@@ -378,8 +378,8 @@ namespace UAS_MES_NEW.Make
                         sn_code.Text = code.Text;
                         sql.Clear();
                         sql.Append("select ma_code,ma_softversion,ma_ecncode,ma_prodcode,pr_spec,ma_qty from makeserial left join product ");
-                        sql.Append(" on ms_prodcode=pr_code left join make on ms_makecode=ma_code left join ");
-                        sql.Append("makecraftdetail_view on mcd_macode=ms_makecode where ms_id='" + oMsid + "'");
+                        sql.Append(" on ms_prodcode=pr_code left join make on ms_makecode=ma_code  ");
+                        sql.Append(" where ms_id='" + oMsid + "'");
                         dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
                         BaseUtil.SetFormValue(this.Controls, dt);
                         OperateResult.AppendText(">>获取序列号" + code.Text + "成功\n", Color.Green);

+ 1177 - 0
UAS_MES_LT/FunctionCode/Make/Make_TestCollectionOh.Designer.cs

@@ -0,0 +1,1177 @@
+using UAS_MES_NEW.CustomControl.CustomCheckBox;
+
+namespace UAS_MES_NEW.Make
+{
+    partial class Make_TestCollectionOh
+    {
+        /// <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(Make_TestCollectionOh));
+            this.bc_remark_label = new System.Windows.Forms.Label();
+            this.ms_sncode_label = new System.Windows.Forms.Label();
+            this.bc_groupcode_label = new System.Windows.Forms.Label();
+            this.label2 = new System.Windows.Forms.Label();
+            this.label3 = new System.Windows.Forms.Label();
+            this.GoodProduct = new System.Windows.Forms.RadioButton();
+            this.Reject = new System.Windows.Forms.RadioButton();
+            this.WaitRejectList = new System.Windows.Forms.ListView();
+            this.columnHeader5 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
+            this.columnHeader4 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
+            this.columnHeader1 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
+            this.columnHeader2 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
+            this.columnHeader9 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
+            this.label4 = new System.Windows.Forms.Label();
+            this.label5 = new System.Windows.Forms.Label();
+            this.label6 = new System.Windows.Forms.Label();
+            this.ChoosedRejectList = new System.Windows.Forms.ListView();
+            this.columnHeader6 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
+            this.columnHeader3 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
+            this.columnHeader7 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
+            this.columnHeader8 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
+            this.columnHeader10 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
+            this.BadInfSource = new System.Windows.Forms.BindingSource(this.components);
+            this.ControlLockTimer = new System.Windows.Forms.Timer(this.components);
+            this.Lock_label = new System.Windows.Forms.Label();
+            this.ma_salecode = new System.Windows.Forms.Label();
+            this.pr_sendchecktype = new System.Windows.Forms.Label();
+            this.StopWatch = new System.Windows.Forms.Button();
+            this.StartWatch = new System.Windows.Forms.Button();
+            this.ChooseFolder = new System.Windows.Forms.Button();
+            this.FolderPath = new System.Windows.Forms.TextBox();
+            this.label7 = new System.Windows.Forms.Label();
+            this.label10 = new System.Windows.Forms.Label();
+            this.label11 = new System.Windows.Forms.Label();
+            this.XmlWatcher = new System.IO.FileSystemWatcher();
+            this.bidui = new System.Windows.Forms.CheckBox();
+            this.NoteForChange = new System.Windows.Forms.CheckBox();
+            this.ma_softversion_label = new System.Windows.Forms.Label();
+            this.ma_qty_label = new System.Windows.Forms.Label();
+            this.ms_makecode_label = new System.Windows.Forms.Label();
+            this.pr_detail_label = new System.Windows.Forms.Label();
+            this.ma_prodcode_label = new System.Windows.Forms.Label();
+            this.ob_sendqty = new UAS_MES_NEW.CustomControl.ValueLabel.ValueLabel();
+            this.ob_nowcheckqty = new UAS_MES_NEW.CustomControl.ValueLabel.ValueLabel();
+            this.ma_softversion = new UAS_MES_NEW.CustomControl.ValueLabel.ValueLabel();
+            this.ma_code = new UAS_MES_NEW.CustomControl.TextBoxWithIcon.MaCodeSearchTextBox();
+            this.LockMakeCode = new UAS_MES_NEW.CustomControl.CustomCheckBox.LockCheckBox();
+            this.pr_spec = new UAS_MES_NEW.CustomControl.ValueLabel.ValueLabel();
+            this.ma_qty = new UAS_MES_NEW.CustomControl.ValueLabel.ValueLabel();
+            this.ma_prodcode = new UAS_MES_NEW.CustomControl.ValueLabel.ValueLabel();
+            this.biduisn = new UAS_MES_NEW.CustomControl.TextBoxWithIcon.SnCollectionBox();
+            this.PrintList = new UAS_MES_NEW.CustomControl.ComBoxWithFocus.PrinterCombox();
+            this.normalButton1 = new UAS_MES_NEW.CustomControl.ButtonUtil.NormalButton();
+            this.StepCount = new UAS_MES_NEW.CustomControl.TextBoxWithIcon.SourceStepCount();
+            this.Filter = new UAS_MES_NEW.CustomControl.TextBoxWithIcon.TextBoxWithPlaceHolder();
+            this.Save = new UAS_MES_NEW.CustomControl.ButtonUtil.NormalButton();
+            this.AutoBadCode = new UAS_MES_NEW.CustomControl.CustomCheckBox.ReSetCheckBox();
+            this.bc_code = new UAS_MES_NEW.CustomControl.TextBoxWithIcon.EnterTextBox();
+            this.OperateResult = new UAS_MES_NEW.CustomControl.RichText.RichTextAutoBottom();
+            this.CleanInfo = new UAS_MES_NEW.CustomControl.ButtonUtil.NormalButton();
+            this.ChooseedReject = new UAS_MES_NEW.CustomControl.ButtonUtil.ArrowRightButton();
+            this.WaitReject = new UAS_MES_NEW.CustomControl.ButtonUtil.ArrowLeftButton();
+            this.bc_remark = new UAS_MES_NEW.CustomControl.TextBoxWithIcon.EnterTextBox();
+            this.bc_groupcode = new UAS_MES_NEW.CustomControl.ComBoxWithFocus.ComBoxWithFocus();
+            this.ms_sncode = new UAS_MES_NEW.CustomControl.TextBoxWithIcon.SnCollectionBox();
+            this.mcd_totalng = new UAS_MES_NEW.CustomControl.ValueLabel.ValueLabel();
+            this.label9 = new System.Windows.Forms.Label();
+            this.mcd_okqty = new UAS_MES_NEW.CustomControl.ValueLabel.ValueLabel();
+            this.label8 = new System.Windows.Forms.Label();
+            this.mcd_ngqty = new UAS_MES_NEW.CustomControl.ValueLabel.ValueLabel();
+            this.label1 = new System.Windows.Forms.Label();
+            this.ob_checkno = new System.Windows.Forms.Label();
+            this.SendCheck = new UAS_MES_NEW.CustomControl.ButtonUtil.NormalButton();
+            this.ob_batchqty = new UAS_MES_NEW.CustomControl.ValueLabel.ValueLabel();
+            this.mcd_remainqty = new UAS_MES_NEW.CustomControl.ValueLabel.ValueLabel();
+            this.mc_restqty_label = new System.Windows.Forms.Label();
+            this.mcd_inqty = new UAS_MES_NEW.CustomControl.ValueLabel.ValueLabel();
+            this.mcd_inqty_label = new System.Windows.Forms.Label();
+            ((System.ComponentModel.ISupportInitialize)(this.BadInfSource)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.XmlWatcher)).BeginInit();
+            this.SuspendLayout();
+            // 
+            // bc_remark_label
+            // 
+            this.bc_remark_label.AutoSize = true;
+            this.bc_remark_label.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.bc_remark_label.Location = new System.Drawing.Point(844, 549);
+            this.bc_remark_label.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+            this.bc_remark_label.Name = "bc_remark_label";
+            this.bc_remark_label.Size = new System.Drawing.Size(110, 31);
+            this.bc_remark_label.TabIndex = 25;
+            this.bc_remark_label.Text = "不良备注";
+            this.bc_remark_label.Visible = false;
+            // 
+            // ms_sncode_label
+            // 
+            this.ms_sncode_label.AutoSize = true;
+            this.ms_sncode_label.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.ms_sncode_label.Location = new System.Drawing.Point(321, 747);
+            this.ms_sncode_label.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+            this.ms_sncode_label.Name = "ms_sncode_label";
+            this.ms_sncode_label.Size = new System.Drawing.Size(86, 31);
+            this.ms_sncode_label.TabIndex = 18;
+            this.ms_sncode_label.Text = "序列号";
+            // 
+            // bc_groupcode_label
+            // 
+            this.bc_groupcode_label.AutoSize = true;
+            this.bc_groupcode_label.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.bc_groupcode_label.Location = new System.Drawing.Point(4, 272);
+            this.bc_groupcode_label.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+            this.bc_groupcode_label.Name = "bc_groupcode_label";
+            this.bc_groupcode_label.Size = new System.Drawing.Size(110, 31);
+            this.bc_groupcode_label.TabIndex = 24;
+            this.bc_groupcode_label.Text = "不良组别";
+            // 
+            // label2
+            // 
+            this.label2.AutoSize = true;
+            this.label2.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.label2.ForeColor = System.Drawing.Color.Blue;
+            this.label2.Location = new System.Drawing.Point(4, 226);
+            this.label2.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+            this.label2.Name = "label2";
+            this.label2.Size = new System.Drawing.Size(110, 31);
+            this.label2.TabIndex = 0;
+            this.label2.Text = "采集信息";
+            // 
+            // 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(4, 332);
+            this.label3.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+            this.label3.Name = "label3";
+            this.label3.Size = new System.Drawing.Size(110, 31);
+            this.label3.TabIndex = 34;
+            this.label3.Text = "不良代码";
+            // 
+            // GoodProduct
+            // 
+            this.GoodProduct.AutoSize = true;
+            this.GoodProduct.Font = new System.Drawing.Font("微软雅黑", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.GoodProduct.ForeColor = System.Drawing.Color.Blue;
+            this.GoodProduct.Location = new System.Drawing.Point(9, 742);
+            this.GoodProduct.Margin = new System.Windows.Forms.Padding(4);
+            this.GoodProduct.Name = "GoodProduct";
+            this.GoodProduct.Size = new System.Drawing.Size(100, 42);
+            this.GoodProduct.TabIndex = 35;
+            this.GoodProduct.TabStop = true;
+            this.GoodProduct.Text = "良品";
+            this.GoodProduct.UseVisualStyleBackColor = true;
+            this.GoodProduct.CheckedChanged += new System.EventHandler(this.GoodProduct_CheckedChanged);
+            // 
+            // Reject
+            // 
+            this.Reject.AutoSize = true;
+            this.Reject.Font = new System.Drawing.Font("微软雅黑", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.Reject.ForeColor = System.Drawing.Color.Red;
+            this.Reject.Location = new System.Drawing.Point(132, 742);
+            this.Reject.Margin = new System.Windows.Forms.Padding(4);
+            this.Reject.Name = "Reject";
+            this.Reject.Size = new System.Drawing.Size(129, 42);
+            this.Reject.TabIndex = 36;
+            this.Reject.TabStop = true;
+            this.Reject.Text = "不良品";
+            this.Reject.UseVisualStyleBackColor = true;
+            // 
+            // WaitRejectList
+            // 
+            this.WaitRejectList.CheckBoxes = true;
+            this.WaitRejectList.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
+            this.columnHeader5,
+            this.columnHeader4,
+            this.columnHeader1,
+            this.columnHeader2,
+            this.columnHeader9});
+            this.WaitRejectList.Font = new System.Drawing.Font("微软雅黑", 10.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.WaitRejectList.FullRowSelect = true;
+            this.WaitRejectList.Location = new System.Drawing.Point(6, 453);
+            this.WaitRejectList.Margin = new System.Windows.Forms.Padding(4);
+            this.WaitRejectList.Name = "WaitRejectList";
+            this.WaitRejectList.Size = new System.Drawing.Size(397, 277);
+            this.WaitRejectList.TabIndex = 37;
+            this.WaitRejectList.UseCompatibleStateImageBehavior = false;
+            this.WaitRejectList.View = System.Windows.Forms.View.Details;
+            this.WaitRejectList.DoubleClick += new System.EventHandler(this.WaitRejectList_DoubleClick);
+            // 
+            // columnHeader5
+            // 
+            this.columnHeader5.Text = " ";
+            this.columnHeader5.Width = 20;
+            // 
+            // columnHeader4
+            // 
+            this.columnHeader4.Text = "不良代码组";
+            this.columnHeader4.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
+            this.columnHeader4.Width = 0;
+            // 
+            // columnHeader1
+            // 
+            this.columnHeader1.Text = "不良代码";
+            this.columnHeader1.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
+            this.columnHeader1.Width = 143;
+            // 
+            // columnHeader2
+            // 
+            this.columnHeader2.Text = "不良名称";
+            this.columnHeader2.Width = 122;
+            // 
+            // columnHeader9
+            // 
+            this.columnHeader9.Text = "备注";
+            this.columnHeader9.Width = 0;
+            // 
+            // label4
+            // 
+            this.label4.AutoSize = true;
+            this.label4.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.label4.ForeColor = System.Drawing.Color.Black;
+            this.label4.Location = new System.Drawing.Point(0, 406);
+            this.label4.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+            this.label4.Name = "label4";
+            this.label4.Size = new System.Drawing.Size(110, 31);
+            this.label4.TabIndex = 39;
+            this.label4.Text = "待选不良";
+            // 
+            // label5
+            // 
+            this.label5.AutoSize = true;
+            this.label5.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.label5.ForeColor = System.Drawing.Color.Black;
+            this.label5.Location = new System.Drawing.Point(546, 416);
+            this.label5.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+            this.label5.Name = "label5";
+            this.label5.Size = new System.Drawing.Size(110, 31);
+            this.label5.TabIndex = 40;
+            this.label5.Text = "已选不良";
+            // 
+            // label6
+            // 
+            this.label6.AutoSize = true;
+            this.label6.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.label6.Location = new System.Drawing.Point(1001, 226);
+            this.label6.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+            this.label6.Name = "label6";
+            this.label6.Size = new System.Drawing.Size(110, 31);
+            this.label6.TabIndex = 46;
+            this.label6.Text = "操作结果";
+            // 
+            // ChoosedRejectList
+            // 
+            this.ChoosedRejectList.CheckBoxes = true;
+            this.ChoosedRejectList.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
+            this.columnHeader6,
+            this.columnHeader3,
+            this.columnHeader7,
+            this.columnHeader8,
+            this.columnHeader10});
+            this.ChoosedRejectList.Font = new System.Drawing.Font("微软雅黑", 10.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.ChoosedRejectList.Location = new System.Drawing.Point(552, 453);
+            this.ChoosedRejectList.Margin = new System.Windows.Forms.Padding(4);
+            this.ChoosedRejectList.Name = "ChoosedRejectList";
+            this.ChoosedRejectList.Size = new System.Drawing.Size(397, 277);
+            this.ChoosedRejectList.TabIndex = 50;
+            this.ChoosedRejectList.UseCompatibleStateImageBehavior = false;
+            this.ChoosedRejectList.View = System.Windows.Forms.View.Details;
+            // 
+            // columnHeader6
+            // 
+            this.columnHeader6.Text = " ";
+            this.columnHeader6.Width = 20;
+            // 
+            // columnHeader3
+            // 
+            this.columnHeader3.Text = "不良代码组";
+            this.columnHeader3.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
+            this.columnHeader3.Width = 117;
+            // 
+            // columnHeader7
+            // 
+            this.columnHeader7.Text = "不良代码";
+            this.columnHeader7.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
+            this.columnHeader7.Width = 95;
+            // 
+            // columnHeader8
+            // 
+            this.columnHeader8.Text = "不良名称";
+            this.columnHeader8.Width = 99;
+            // 
+            // columnHeader10
+            // 
+            this.columnHeader10.Text = "备注";
+            this.columnHeader10.Width = 0;
+            // 
+            // Lock_label
+            // 
+            this.Lock_label.AutoSize = true;
+            this.Lock_label.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.Lock_label.ForeColor = System.Drawing.Color.Red;
+            this.Lock_label.Location = new System.Drawing.Point(432, 224);
+            this.Lock_label.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+            this.Lock_label.Name = "Lock_label";
+            this.Lock_label.Size = new System.Drawing.Size(188, 31);
+            this.Lock_label.TabIndex = 77;
+            this.Lock_label.Text = "Ctrl+Q解除锁定";
+            this.Lock_label.Visible = false;
+            // 
+            // ma_salecode
+            // 
+            this.ma_salecode.AutoSize = true;
+            this.ma_salecode.Location = new System.Drawing.Point(716, 226);
+            this.ma_salecode.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+            this.ma_salecode.Name = "ma_salecode";
+            this.ma_salecode.Size = new System.Drawing.Size(0, 18);
+            this.ma_salecode.TabIndex = 78;
+            this.ma_salecode.Visible = false;
+            // 
+            // pr_sendchecktype
+            // 
+            this.pr_sendchecktype.AutoSize = true;
+            this.pr_sendchecktype.Location = new System.Drawing.Point(716, 232);
+            this.pr_sendchecktype.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+            this.pr_sendchecktype.Name = "pr_sendchecktype";
+            this.pr_sendchecktype.Size = new System.Drawing.Size(0, 18);
+            this.pr_sendchecktype.TabIndex = 79;
+            this.pr_sendchecktype.Visible = false;
+            // 
+            // StopWatch
+            // 
+            this.StopWatch.Enabled = false;
+            this.StopWatch.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.StopWatch.Location = new System.Drawing.Point(784, 370);
+            this.StopWatch.Name = "StopWatch";
+            this.StopWatch.Size = new System.Drawing.Size(96, 42);
+            this.StopWatch.TabIndex = 214;
+            this.StopWatch.Text = "停止监控";
+            this.StopWatch.UseVisualStyleBackColor = true;
+            this.StopWatch.Click += new System.EventHandler(this.StopWatch_Click);
+            // 
+            // StartWatch
+            // 
+            this.StartWatch.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.StartWatch.Location = new System.Drawing.Point(620, 370);
+            this.StartWatch.Name = "StartWatch";
+            this.StartWatch.Size = new System.Drawing.Size(96, 42);
+            this.StartWatch.TabIndex = 213;
+            this.StartWatch.Text = "开始监控";
+            this.StartWatch.UseVisualStyleBackColor = true;
+            this.StartWatch.Click += new System.EventHandler(this.StartWatch_Click);
+            // 
+            // ChooseFolder
+            // 
+            this.ChooseFolder.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.ChooseFolder.Location = new System.Drawing.Point(825, 328);
+            this.ChooseFolder.Name = "ChooseFolder";
+            this.ChooseFolder.Size = new System.Drawing.Size(117, 36);
+            this.ChooseFolder.TabIndex = 212;
+            this.ChooseFolder.Text = "选择文件夹";
+            this.ChooseFolder.UseVisualStyleBackColor = true;
+            this.ChooseFolder.Click += new System.EventHandler(this.ChooseFolder_Click);
+            // 
+            // FolderPath
+            // 
+            this.FolderPath.Enabled = false;
+            this.FolderPath.Location = new System.Drawing.Point(566, 332);
+            this.FolderPath.Name = "FolderPath";
+            this.FolderPath.Size = new System.Drawing.Size(236, 28);
+            this.FolderPath.TabIndex = 211;
+            // 
+            // label7
+            // 
+            this.label7.AutoSize = true;
+            this.label7.Font = new System.Drawing.Font("微软雅黑", 10.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.label7.Location = new System.Drawing.Point(658, 279);
+            this.label7.Name = "label7";
+            this.label7.Size = new System.Drawing.Size(123, 30);
+            this.label7.TabIndex = 210;
+            this.label7.Text = "监控文件夹";
+            // 
+            // label10
+            // 
+            this.label10.AutoSize = true;
+            this.label10.Location = new System.Drawing.Point(717, 250);
+            this.label10.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+            this.label10.Name = "label10";
+            this.label10.Size = new System.Drawing.Size(0, 18);
+            this.label10.TabIndex = 209;
+            this.label10.Visible = false;
+            // 
+            // label11
+            // 
+            this.label11.AutoSize = true;
+            this.label11.Location = new System.Drawing.Point(717, 244);
+            this.label11.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+            this.label11.Name = "label11";
+            this.label11.Size = new System.Drawing.Size(0, 18);
+            this.label11.TabIndex = 208;
+            this.label11.Visible = false;
+            // 
+            // XmlWatcher
+            // 
+            this.XmlWatcher.EnableRaisingEvents = true;
+            this.XmlWatcher.Filter = "*.HTML";
+            this.XmlWatcher.IncludeSubdirectories = true;
+            this.XmlWatcher.SynchronizingObject = this;
+            this.XmlWatcher.Created += new System.IO.FileSystemEventHandler(this.XmlWatcher_Created);
+            // 
+            // bidui
+            // 
+            this.bidui.AutoSize = true;
+            this.bidui.Location = new System.Drawing.Point(919, 769);
+            this.bidui.Margin = new System.Windows.Forms.Padding(4);
+            this.bidui.Name = "bidui";
+            this.bidui.Size = new System.Drawing.Size(88, 22);
+            this.bidui.TabIndex = 216;
+            this.bidui.Text = "SN比对";
+            this.bidui.UseVisualStyleBackColor = true;
+            // 
+            // NoteForChange
+            // 
+            this.NoteForChange.AutoSize = true;
+            this.NoteForChange.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.NoteForChange.Location = new System.Drawing.Point(440, 155);
+            this.NoteForChange.Name = "NoteForChange";
+            this.NoteForChange.Size = new System.Drawing.Size(144, 28);
+            this.NoteForChange.TabIndex = 230;
+            this.NoteForChange.Text = "切换工单提示";
+            this.NoteForChange.UseVisualStyleBackColor = true;
+            // 
+            // ma_softversion_label
+            // 
+            this.ma_softversion_label.AutoSize = true;
+            this.ma_softversion_label.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.ma_softversion_label.Location = new System.Drawing.Point(9, 155);
+            this.ma_softversion_label.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+            this.ma_softversion_label.Name = "ma_softversion_label";
+            this.ma_softversion_label.Size = new System.Drawing.Size(110, 31);
+            this.ma_softversion_label.TabIndex = 227;
+            this.ma_softversion_label.Text = "软件版本";
+            // 
+            // ma_qty_label
+            // 
+            this.ma_qty_label.AutoSize = true;
+            this.ma_qty_label.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.ma_qty_label.Location = new System.Drawing.Point(435, 8);
+            this.ma_qty_label.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+            this.ma_qty_label.Name = "ma_qty_label";
+            this.ma_qty_label.Size = new System.Drawing.Size(110, 31);
+            this.ma_qty_label.TabIndex = 220;
+            this.ma_qty_label.Text = "工单数量";
+            // 
+            // ms_makecode_label
+            // 
+            this.ms_makecode_label.AutoSize = true;
+            this.ms_makecode_label.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.ms_makecode_label.Location = new System.Drawing.Point(9, 7);
+            this.ms_makecode_label.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+            this.ms_makecode_label.Name = "ms_makecode_label";
+            this.ms_makecode_label.Size = new System.Drawing.Size(110, 31);
+            this.ms_makecode_label.TabIndex = 217;
+            this.ms_makecode_label.Text = "归属工单";
+            // 
+            // pr_detail_label
+            // 
+            this.pr_detail_label.AutoSize = true;
+            this.pr_detail_label.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.pr_detail_label.Location = new System.Drawing.Point(435, 83);
+            this.pr_detail_label.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+            this.pr_detail_label.Name = "pr_detail_label";
+            this.pr_detail_label.Size = new System.Drawing.Size(110, 31);
+            this.pr_detail_label.TabIndex = 218;
+            this.pr_detail_label.Text = "产品规格";
+            // 
+            // ma_prodcode_label
+            // 
+            this.ma_prodcode_label.AutoSize = true;
+            this.ma_prodcode_label.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.ma_prodcode_label.Location = new System.Drawing.Point(9, 83);
+            this.ma_prodcode_label.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+            this.ma_prodcode_label.Name = "ma_prodcode_label";
+            this.ma_prodcode_label.Size = new System.Drawing.Size(110, 31);
+            this.ma_prodcode_label.TabIndex = 219;
+            this.ma_prodcode_label.Text = "产品编号";
+            // 
+            // ob_sendqty
+            // 
+            this.ob_sendqty.AutoSize = true;
+            this.ob_sendqty.CutLength = null;
+            this.ob_sendqty.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.ob_sendqty.ForeColor = System.Drawing.Color.Black;
+            this.ob_sendqty.Location = new System.Drawing.Point(650, 167);
+            this.ob_sendqty.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+            this.ob_sendqty.MaximumSize = new System.Drawing.Size(225, 0);
+            this.ob_sendqty.Name = "ob_sendqty";
+            this.ob_sendqty.Size = new System.Drawing.Size(0, 31);
+            this.ob_sendqty.TabIndex = 231;
+            this.ob_sendqty.Tag = "ob_batchqty";
+            this.ob_sendqty.Visible = false;
+            // 
+            // ob_nowcheckqty
+            // 
+            this.ob_nowcheckqty.AutoSize = true;
+            this.ob_nowcheckqty.CutLength = null;
+            this.ob_nowcheckqty.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.ob_nowcheckqty.ForeColor = System.Drawing.Color.Black;
+            this.ob_nowcheckqty.Location = new System.Drawing.Point(731, 167);
+            this.ob_nowcheckqty.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+            this.ob_nowcheckqty.MaximumSize = new System.Drawing.Size(225, 0);
+            this.ob_nowcheckqty.Name = "ob_nowcheckqty";
+            this.ob_nowcheckqty.Size = new System.Drawing.Size(0, 31);
+            this.ob_nowcheckqty.TabIndex = 228;
+            this.ob_nowcheckqty.Tag = "ob_nowcheckqty";
+            this.ob_nowcheckqty.Visible = false;
+            // 
+            // ma_softversion
+            // 
+            this.ma_softversion.AutoSize = true;
+            this.ma_softversion.CutLength = null;
+            this.ma_softversion.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.ma_softversion.Location = new System.Drawing.Point(146, 155);
+            this.ma_softversion.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+            this.ma_softversion.MaximumSize = new System.Drawing.Size(225, 0);
+            this.ma_softversion.Name = "ma_softversion";
+            this.ma_softversion.Size = new System.Drawing.Size(0, 31);
+            this.ma_softversion.TabIndex = 229;
+            // 
+            // ma_code
+            // 
+            this.ma_code.AllPower = null;
+            this.ma_code.Caller = null;
+            this.ma_code.Condition = null;
+            this.ma_code.DBTitle = null;
+            this.ma_code.FormName = null;
+            this.ma_code.Location = new System.Drawing.Point(145, 7);
+            this.ma_code.Margin = new System.Windows.Forms.Padding(4);
+            this.ma_code.Name = "ma_code";
+            this.ma_code.Power = null;
+            this.ma_code.ReturnData = null;
+            this.ma_code.SelectField = null;
+            this.ma_code.SetValueField = null;
+            this.ma_code.Size = new System.Drawing.Size(172, 32);
+            this.ma_code.TabIndex = 225;
+            this.ma_code.TableName = null;
+            this.ma_code.Tag = "ma_code";
+            this.ma_code.TextBoxEnable = true;
+            // 
+            // LockMakeCode
+            // 
+            this.LockMakeCode.AutoSize = true;
+            this.LockMakeCode.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.LockMakeCode.LeaveEvent = false;
+            this.LockMakeCode.Location = new System.Drawing.Point(341, 9);
+            this.LockMakeCode.Name = "LockMakeCode";
+            this.LockMakeCode.Size = new System.Drawing.Size(72, 28);
+            this.LockMakeCode.TabIndex = 224;
+            this.LockMakeCode.Text = "锁定";
+            this.LockMakeCode.UseVisualStyleBackColor = true;
+            // 
+            // pr_spec
+            // 
+            this.pr_spec.AutoSize = true;
+            this.pr_spec.CutLength = "qweqwe";
+            this.pr_spec.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.pr_spec.Location = new System.Drawing.Point(566, 83);
+            this.pr_spec.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+            this.pr_spec.MaximumSize = new System.Drawing.Size(270, 0);
+            this.pr_spec.Name = "pr_spec";
+            this.pr_spec.Size = new System.Drawing.Size(0, 31);
+            this.pr_spec.TabIndex = 223;
+            // 
+            // ma_qty
+            // 
+            this.ma_qty.AutoSize = true;
+            this.ma_qty.CutLength = null;
+            this.ma_qty.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.ma_qty.Location = new System.Drawing.Point(565, 8);
+            this.ma_qty.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+            this.ma_qty.MaximumSize = new System.Drawing.Size(225, 0);
+            this.ma_qty.Name = "ma_qty";
+            this.ma_qty.Size = new System.Drawing.Size(0, 31);
+            this.ma_qty.TabIndex = 222;
+            // 
+            // ma_prodcode
+            // 
+            this.ma_prodcode.AutoSize = true;
+            this.ma_prodcode.CutLength = null;
+            this.ma_prodcode.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.ma_prodcode.Location = new System.Drawing.Point(146, 83);
+            this.ma_prodcode.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+            this.ma_prodcode.MaximumSize = new System.Drawing.Size(225, 0);
+            this.ma_prodcode.Name = "ma_prodcode";
+            this.ma_prodcode.Size = new System.Drawing.Size(0, 31);
+            this.ma_prodcode.TabIndex = 221;
+            // 
+            // biduisn
+            // 
+            this.biduisn.AllPower = "ifall";
+            this.biduisn.BackColor = System.Drawing.Color.White;
+            this.biduisn.Font = new System.Drawing.Font("宋体", 10.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.biduisn.ID = null;
+            this.biduisn.Location = new System.Drawing.Point(1043, 757);
+            this.biduisn.Margin = new System.Windows.Forms.Padding(4);
+            this.biduisn.Name = "biduisn";
+            this.biduisn.Power = null;
+            this.biduisn.Size = new System.Drawing.Size(270, 32);
+            this.biduisn.Str = null;
+            this.biduisn.Str1 = null;
+            this.biduisn.Str2 = null;
+            this.biduisn.TabIndex = 215;
+            this.biduisn.Tag = "IfRead";
+            this.biduisn.KeyDown += new System.Windows.Forms.KeyEventHandler(this.biduisn_KeyDown);
+            // 
+            // PrintList
+            // 
+            this.PrintList.Font = new System.Drawing.Font("微软雅黑", 9F);
+            this.PrintList.Location = new System.Drawing.Point(747, 226);
+            this.PrintList.Margin = new System.Windows.Forms.Padding(9, 10, 9, 10);
+            this.PrintList.Name = "PrintList";
+            this.PrintList.Size = new System.Drawing.Size(204, 42);
+            this.PrintList.TabIndex = 198;
+            // 
+            // normalButton1
+            // 
+            this.normalButton1.AllPower = null;
+            this.normalButton1.BackColor = System.Drawing.Color.Transparent;
+            this.normalButton1.DownImage = ((System.Drawing.Image)(resources.GetObject("normalButton1.DownImage")));
+            this.normalButton1.Image = null;
+            this.normalButton1.IsShowBorder = true;
+            this.normalButton1.Location = new System.Drawing.Point(747, 406);
+            this.normalButton1.Margin = new System.Windows.Forms.Padding(4);
+            this.normalButton1.MoveImage = ((System.Drawing.Image)(resources.GetObject("normalButton1.MoveImage")));
+            this.normalButton1.Name = "normalButton1";
+            this.normalButton1.NormalImage = ((System.Drawing.Image)(resources.GetObject("normalButton1.NormalImage")));
+            this.normalButton1.Power = null;
+            this.normalButton1.Size = new System.Drawing.Size(156, 42);
+            this.normalButton1.TabIndex = 197;
+            this.normalButton1.Text = "打印不良";
+            this.normalButton1.UseVisualStyleBackColor = false;
+            this.normalButton1.Visible = false;
+            this.normalButton1.Click += new System.EventHandler(this.normalButton1_Click);
+            // 
+            // StepCount
+            // 
+            this.StepCount.LineCode = null;
+            this.StepCount.Location = new System.Drawing.Point(436, 219);
+            this.StepCount.Margin = new System.Windows.Forms.Padding(6, 10, 6, 10);
+            this.StepCount.Name = "StepCount";
+            this.StepCount.Size = new System.Drawing.Size(96, 33);
+            this.StepCount.Source = null;
+            this.StepCount.StepCode = null;
+            this.StepCount.TabIndex = 194;
+            // 
+            // Filter
+            // 
+            this.Filter.BackColor = System.Drawing.Color.Transparent;
+            this.Filter.Font = new System.Drawing.Font("宋体", 10.8F);
+            this.Filter.Location = new System.Drawing.Point(140, 412);
+            this.Filter.Name = "Filter";
+            this.Filter.PlaceHolder = "不良名称搜索";
+            this.Filter.Size = new System.Drawing.Size(264, 33);
+            this.Filter.TabIndex = 76;
+            this.Filter.UserControlTextChanged += new UAS_MES_NEW.CustomControl.TextBoxWithIcon.TextBoxWithPlaceHolder.OnTextChange(this.Filter_UserControlTextChanged);
+            // 
+            // Save
+            // 
+            this.Save.AllPower = null;
+            this.Save.BackColor = System.Drawing.Color.Transparent;
+            this.Save.DownImage = ((System.Drawing.Image)(resources.GetObject("Save.DownImage")));
+            this.Save.Image = null;
+            this.Save.IsShowBorder = true;
+            this.Save.Location = new System.Drawing.Point(716, 746);
+            this.Save.MoveImage = ((System.Drawing.Image)(resources.GetObject("Save.MoveImage")));
+            this.Save.Name = "Save";
+            this.Save.NormalImage = ((System.Drawing.Image)(resources.GetObject("Save.NormalImage")));
+            this.Save.Power = null;
+            this.Save.Size = new System.Drawing.Size(98, 39);
+            this.Save.TabIndex = 70;
+            this.Save.Text = "保存";
+            this.Save.UseVisualStyleBackColor = false;
+            this.Save.Click += new System.EventHandler(this.Save_Click);
+            // 
+            // AutoBadCode
+            // 
+            this.AutoBadCode.AutoSize = true;
+            this.AutoBadCode.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.AutoBadCode.Location = new System.Drawing.Point(1131, 231);
+            this.AutoBadCode.Name = "AutoBadCode";
+            this.AutoBadCode.Size = new System.Drawing.Size(144, 28);
+            this.AutoBadCode.TabIndex = 69;
+            this.AutoBadCode.Text = "恢复出厂设置";
+            this.AutoBadCode.UseVisualStyleBackColor = true;
+            this.AutoBadCode.Visible = false;
+            // 
+            // bc_code
+            // 
+            this.bc_code.AllPower = null;
+            this.bc_code.BackColor = System.Drawing.Color.White;
+            this.bc_code.Font = new System.Drawing.Font("宋体", 10.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.bc_code.ID = null;
+            this.bc_code.Location = new System.Drawing.Point(141, 332);
+            this.bc_code.Margin = new System.Windows.Forms.Padding(4);
+            this.bc_code.Name = "bc_code";
+            this.bc_code.Power = null;
+            this.bc_code.Size = new System.Drawing.Size(262, 32);
+            this.bc_code.Str = null;
+            this.bc_code.Str1 = null;
+            this.bc_code.Str2 = null;
+            this.bc_code.TabIndex = 70;
+            this.bc_code.KeyDown += new System.Windows.Forms.KeyEventHandler(this.bc_code_KeyDown);
+            // 
+            // OperateResult
+            // 
+            this.OperateResult.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.OperateResult.Location = new System.Drawing.Point(1005, 272);
+            this.OperateResult.Margin = new System.Windows.Forms.Padding(4);
+            this.OperateResult.Name = "OperateResult";
+            this.OperateResult.Size = new System.Drawing.Size(308, 458);
+            this.OperateResult.TabIndex = 52;
+            this.OperateResult.Text = "";
+            // 
+            // CleanInfo
+            // 
+            this.CleanInfo.AllPower = null;
+            this.CleanInfo.BackColor = System.Drawing.Color.Transparent;
+            this.CleanInfo.DownImage = ((System.Drawing.Image)(resources.GetObject("CleanInfo.DownImage")));
+            this.CleanInfo.Image = ((System.Drawing.Image)(resources.GetObject("CleanInfo.Image")));
+            this.CleanInfo.IsShowBorder = true;
+            this.CleanInfo.Location = new System.Drawing.Point(634, 224);
+            this.CleanInfo.Margin = new System.Windows.Forms.Padding(4);
+            this.CleanInfo.MoveImage = ((System.Drawing.Image)(resources.GetObject("CleanInfo.MoveImage")));
+            this.CleanInfo.Name = "CleanInfo";
+            this.CleanInfo.NormalImage = ((System.Drawing.Image)(resources.GetObject("CleanInfo.NormalImage")));
+            this.CleanInfo.Power = null;
+            this.CleanInfo.Size = new System.Drawing.Size(92, 36);
+            this.CleanInfo.TabIndex = 47;
+            this.CleanInfo.Text = "清除内容";
+            this.CleanInfo.UseVisualStyleBackColor = true;
+            this.CleanInfo.Visible = false;
+            this.CleanInfo.Click += new System.EventHandler(this.CleanInfo_Click);
+            // 
+            // ChooseedReject
+            // 
+            this.ChooseedReject.Image = ((System.Drawing.Image)(resources.GetObject("ChooseedReject.Image")));
+            this.ChooseedReject.Location = new System.Drawing.Point(438, 520);
+            this.ChooseedReject.Margin = new System.Windows.Forms.Padding(4);
+            this.ChooseedReject.Name = "ChooseedReject";
+            this.ChooseedReject.Size = new System.Drawing.Size(75, 34);
+            this.ChooseedReject.TabIndex = 45;
+            this.ChooseedReject.UseVisualStyleBackColor = true;
+            this.ChooseedReject.Click += new System.EventHandler(this.ChooseedReject_Click);
+            // 
+            // WaitReject
+            // 
+            this.WaitReject.Image = ((System.Drawing.Image)(resources.GetObject("WaitReject.Image")));
+            this.WaitReject.Location = new System.Drawing.Point(438, 615);
+            this.WaitReject.Margin = new System.Windows.Forms.Padding(4);
+            this.WaitReject.Name = "WaitReject";
+            this.WaitReject.Size = new System.Drawing.Size(75, 34);
+            this.WaitReject.TabIndex = 44;
+            this.WaitReject.UseVisualStyleBackColor = true;
+            this.WaitReject.Click += new System.EventHandler(this.WaitReject_Click);
+            // 
+            // bc_remark
+            // 
+            this.bc_remark.AllPower = null;
+            this.bc_remark.BackColor = System.Drawing.Color.White;
+            this.bc_remark.ID = null;
+            this.bc_remark.Location = new System.Drawing.Point(1051, 596);
+            this.bc_remark.Margin = new System.Windows.Forms.Padding(4);
+            this.bc_remark.Multiline = true;
+            this.bc_remark.Name = "bc_remark";
+            this.bc_remark.Power = null;
+            this.bc_remark.Size = new System.Drawing.Size(19, 13);
+            this.bc_remark.Str = null;
+            this.bc_remark.Str1 = null;
+            this.bc_remark.Str2 = null;
+            this.bc_remark.TabIndex = 41;
+            this.bc_remark.Visible = false;
+            // 
+            // bc_groupcode
+            // 
+            this.bc_groupcode.Font = new System.Drawing.Font("宋体", 10.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.bc_groupcode.FormattingEnabled = true;
+            this.bc_groupcode.Location = new System.Drawing.Point(141, 273);
+            this.bc_groupcode.Margin = new System.Windows.Forms.Padding(4);
+            this.bc_groupcode.Name = "bc_groupcode";
+            this.bc_groupcode.Size = new System.Drawing.Size(262, 30);
+            this.bc_groupcode.TabIndex = 21;
+            this.bc_groupcode.SelectedIndexChanged += new System.EventHandler(this.bc_groupcode_SelectedIndexChanged);
+            // 
+            // ms_sncode
+            // 
+            this.ms_sncode.AllPower = "ifall";
+            this.ms_sncode.BackColor = System.Drawing.Color.White;
+            this.ms_sncode.Font = new System.Drawing.Font("宋体", 10.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.ms_sncode.ID = null;
+            this.ms_sncode.Location = new System.Drawing.Point(420, 747);
+            this.ms_sncode.Margin = new System.Windows.Forms.Padding(4);
+            this.ms_sncode.Name = "ms_sncode";
+            this.ms_sncode.Power = null;
+            this.ms_sncode.Size = new System.Drawing.Size(270, 32);
+            this.ms_sncode.Str = null;
+            this.ms_sncode.Str1 = null;
+            this.ms_sncode.Str2 = null;
+            this.ms_sncode.TabIndex = 68;
+            this.ms_sncode.Tag = "IfRead";
+            this.ms_sncode.KeyDown += new System.Windows.Forms.KeyEventHandler(this.ms_code_KeyDown);
+            // 
+            // mcd_totalng
+            // 
+            this.mcd_totalng.AutoSize = true;
+            this.mcd_totalng.CutLength = null;
+            this.mcd_totalng.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.mcd_totalng.Location = new System.Drawing.Point(1039, 156);
+            this.mcd_totalng.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+            this.mcd_totalng.MaximumSize = new System.Drawing.Size(225, 0);
+            this.mcd_totalng.Name = "mcd_totalng";
+            this.mcd_totalng.Size = new System.Drawing.Size(0, 31);
+            this.mcd_totalng.TabIndex = 257;
+            this.mcd_totalng.Tag = "mcd_inqty";
+            // 
+            // label9
+            // 
+            this.label9.AutoSize = true;
+            this.label9.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.label9.Location = new System.Drawing.Point(892, 156);
+            this.label9.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+            this.label9.Name = "label9";
+            this.label9.Size = new System.Drawing.Size(134, 31);
+            this.label9.TabIndex = 256;
+            this.label9.Text = "累计不良数";
+            // 
+            // mcd_okqty
+            // 
+            this.mcd_okqty.AutoSize = true;
+            this.mcd_okqty.CutLength = null;
+            this.mcd_okqty.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.mcd_okqty.Location = new System.Drawing.Point(1243, 95);
+            this.mcd_okqty.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+            this.mcd_okqty.MaximumSize = new System.Drawing.Size(225, 0);
+            this.mcd_okqty.Name = "mcd_okqty";
+            this.mcd_okqty.Size = new System.Drawing.Size(0, 31);
+            this.mcd_okqty.TabIndex = 255;
+            this.mcd_okqty.Tag = "mcd_inqty";
+            // 
+            // label8
+            // 
+            this.label8.AutoSize = true;
+            this.label8.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.label8.Location = new System.Drawing.Point(1106, 95);
+            this.label8.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+            this.label8.Name = "label8";
+            this.label8.Size = new System.Drawing.Size(86, 31);
+            this.label8.TabIndex = 254;
+            this.label8.Text = "良品数";
+            // 
+            // mcd_ngqty
+            // 
+            this.mcd_ngqty.AutoSize = true;
+            this.mcd_ngqty.CutLength = null;
+            this.mcd_ngqty.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.mcd_ngqty.Location = new System.Drawing.Point(1039, 95);
+            this.mcd_ngqty.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+            this.mcd_ngqty.MaximumSize = new System.Drawing.Size(225, 0);
+            this.mcd_ngqty.Name = "mcd_ngqty";
+            this.mcd_ngqty.Size = new System.Drawing.Size(0, 31);
+            this.mcd_ngqty.TabIndex = 253;
+            this.mcd_ngqty.Tag = "mcd_inqty";
+            // 
+            // 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(892, 95);
+            this.label1.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+            this.label1.Name = "label1";
+            this.label1.Size = new System.Drawing.Size(134, 31);
+            this.label1.TabIndex = 252;
+            this.label1.Text = "当前不良数";
+            // 
+            // ob_checkno
+            // 
+            this.ob_checkno.AutoSize = true;
+            this.ob_checkno.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.ob_checkno.ForeColor = System.Drawing.Color.Black;
+            this.ob_checkno.Location = new System.Drawing.Point(1296, 155);
+            this.ob_checkno.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+            this.ob_checkno.Name = "ob_checkno";
+            this.ob_checkno.Size = new System.Drawing.Size(0, 31);
+            this.ob_checkno.TabIndex = 251;
+            this.ob_checkno.Tag = "ob_checkno";
+            this.ob_checkno.Visible = false;
+            // 
+            // SendCheck
+            // 
+            this.SendCheck.AllPower = null;
+            this.SendCheck.BackColor = System.Drawing.Color.Transparent;
+            this.SendCheck.DownImage = ((System.Drawing.Image)(resources.GetObject("SendCheck.DownImage")));
+            this.SendCheck.Enabled = false;
+            this.SendCheck.Image = null;
+            this.SendCheck.IsShowBorder = true;
+            this.SendCheck.Location = new System.Drawing.Point(1212, 155);
+            this.SendCheck.MoveImage = ((System.Drawing.Image)(resources.GetObject("SendCheck.MoveImage")));
+            this.SendCheck.Name = "SendCheck";
+            this.SendCheck.NormalImage = ((System.Drawing.Image)(resources.GetObject("SendCheck.NormalImage")));
+            this.SendCheck.Power = null;
+            this.SendCheck.Size = new System.Drawing.Size(98, 39);
+            this.SendCheck.TabIndex = 249;
+            this.SendCheck.Text = "送检";
+            this.SendCheck.UseVisualStyleBackColor = false;
+            // 
+            // ob_batchqty
+            // 
+            this.ob_batchqty.AutoSize = true;
+            this.ob_batchqty.CutLength = null;
+            this.ob_batchqty.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.ob_batchqty.ForeColor = System.Drawing.Color.Black;
+            this.ob_batchqty.Location = new System.Drawing.Point(1150, 155);
+            this.ob_batchqty.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+            this.ob_batchqty.MaximumSize = new System.Drawing.Size(225, 0);
+            this.ob_batchqty.Name = "ob_batchqty";
+            this.ob_batchqty.Size = new System.Drawing.Size(0, 31);
+            this.ob_batchqty.TabIndex = 250;
+            this.ob_batchqty.Tag = "ob_batchqty";
+            // 
+            // mcd_remainqty
+            // 
+            this.mcd_remainqty.AutoSize = true;
+            this.mcd_remainqty.CutLength = null;
+            this.mcd_remainqty.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.mcd_remainqty.Location = new System.Drawing.Point(1039, 38);
+            this.mcd_remainqty.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+            this.mcd_remainqty.MaximumSize = new System.Drawing.Size(225, 0);
+            this.mcd_remainqty.Name = "mcd_remainqty";
+            this.mcd_remainqty.Size = new System.Drawing.Size(0, 31);
+            this.mcd_remainqty.TabIndex = 248;
+            this.mcd_remainqty.Tag = "mcd_remainqty";
+            // 
+            // mc_restqty_label
+            // 
+            this.mc_restqty_label.AutoSize = true;
+            this.mc_restqty_label.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.mc_restqty_label.Location = new System.Drawing.Point(892, 38);
+            this.mc_restqty_label.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+            this.mc_restqty_label.Name = "mc_restqty_label";
+            this.mc_restqty_label.Size = new System.Drawing.Size(110, 31);
+            this.mc_restqty_label.TabIndex = 246;
+            this.mc_restqty_label.Text = "待采集数";
+            // 
+            // mcd_inqty
+            // 
+            this.mcd_inqty.AutoSize = true;
+            this.mcd_inqty.CutLength = null;
+            this.mcd_inqty.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.mcd_inqty.Location = new System.Drawing.Point(1240, 38);
+            this.mcd_inqty.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+            this.mcd_inqty.MaximumSize = new System.Drawing.Size(225, 0);
+            this.mcd_inqty.Name = "mcd_inqty";
+            this.mcd_inqty.Size = new System.Drawing.Size(0, 31);
+            this.mcd_inqty.TabIndex = 247;
+            this.mcd_inqty.Tag = "mcd_inqty";
+            // 
+            // mcd_inqty_label
+            // 
+            this.mcd_inqty_label.AutoSize = true;
+            this.mcd_inqty_label.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.mcd_inqty_label.Location = new System.Drawing.Point(1104, 38);
+            this.mcd_inqty_label.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+            this.mcd_inqty_label.Name = "mcd_inqty_label";
+            this.mcd_inqty_label.Size = new System.Drawing.Size(110, 31);
+            this.mcd_inqty_label.TabIndex = 245;
+            this.mcd_inqty_label.Text = "已采集数";
+            // 
+            // Make_TestCollectionOh
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 18F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.BackColor = System.Drawing.SystemColors.Control;
+            this.ClientSize = new System.Drawing.Size(1332, 802);
+            this.Controls.Add(this.mcd_totalng);
+            this.Controls.Add(this.label9);
+            this.Controls.Add(this.mcd_okqty);
+            this.Controls.Add(this.label8);
+            this.Controls.Add(this.mcd_ngqty);
+            this.Controls.Add(this.label1);
+            this.Controls.Add(this.ob_checkno);
+            this.Controls.Add(this.SendCheck);
+            this.Controls.Add(this.ob_batchqty);
+            this.Controls.Add(this.mcd_remainqty);
+            this.Controls.Add(this.mc_restqty_label);
+            this.Controls.Add(this.mcd_inqty);
+            this.Controls.Add(this.mcd_inqty_label);
+            this.Controls.Add(this.ob_sendqty);
+            this.Controls.Add(this.ob_nowcheckqty);
+            this.Controls.Add(this.NoteForChange);
+            this.Controls.Add(this.ma_softversion);
+            this.Controls.Add(this.ma_softversion_label);
+            this.Controls.Add(this.ma_code);
+            this.Controls.Add(this.LockMakeCode);
+            this.Controls.Add(this.pr_spec);
+            this.Controls.Add(this.ma_qty);
+            this.Controls.Add(this.ma_prodcode);
+            this.Controls.Add(this.ma_qty_label);
+            this.Controls.Add(this.ms_makecode_label);
+            this.Controls.Add(this.pr_detail_label);
+            this.Controls.Add(this.ma_prodcode_label);
+            this.Controls.Add(this.bidui);
+            this.Controls.Add(this.biduisn);
+            this.Controls.Add(this.StopWatch);
+            this.Controls.Add(this.StartWatch);
+            this.Controls.Add(this.ChooseFolder);
+            this.Controls.Add(this.FolderPath);
+            this.Controls.Add(this.label7);
+            this.Controls.Add(this.label10);
+            this.Controls.Add(this.label11);
+            this.Controls.Add(this.PrintList);
+            this.Controls.Add(this.normalButton1);
+            this.Controls.Add(this.StepCount);
+            this.Controls.Add(this.pr_sendchecktype);
+            this.Controls.Add(this.ma_salecode);
+            this.Controls.Add(this.Lock_label);
+            this.Controls.Add(this.Filter);
+            this.Controls.Add(this.Save);
+            this.Controls.Add(this.AutoBadCode);
+            this.Controls.Add(this.bc_code);
+            this.Controls.Add(this.label2);
+            this.Controls.Add(this.OperateResult);
+            this.Controls.Add(this.ChoosedRejectList);
+            this.Controls.Add(this.CleanInfo);
+            this.Controls.Add(this.label6);
+            this.Controls.Add(this.ChooseedReject);
+            this.Controls.Add(this.WaitReject);
+            this.Controls.Add(this.bc_remark);
+            this.Controls.Add(this.label5);
+            this.Controls.Add(this.label4);
+            this.Controls.Add(this.WaitRejectList);
+            this.Controls.Add(this.Reject);
+            this.Controls.Add(this.GoodProduct);
+            this.Controls.Add(this.label3);
+            this.Controls.Add(this.bc_groupcode);
+            this.Controls.Add(this.bc_remark_label);
+            this.Controls.Add(this.ms_sncode_label);
+            this.Controls.Add(this.bc_groupcode_label);
+            this.Controls.Add(this.ms_sncode);
+            this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
+            this.KeyPreview = true;
+            this.Margin = new System.Windows.Forms.Padding(4);
+            this.Name = "Make_TestCollectionOh";
+            this.Tag = "Make!TestCollectionOh";
+            this.Text = " ";
+            this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Make_TestCollection_FormClosing);
+            this.Load += new System.EventHandler(this.TestCollection_Load);
+            this.SizeChanged += new System.EventHandler(this.测试采集_SizeChanged);
+            this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Make_TestCollection_KeyDown);
+            ((System.ComponentModel.ISupportInitialize)(this.BadInfSource)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.XmlWatcher)).EndInit();
+            this.ResumeLayout(false);
+            this.PerformLayout();
+
+        }
+
+        #endregion
+        private System.Windows.Forms.Label ms_sncode_label;
+        private CustomControl.TextBoxWithIcon.SnCollectionBox ms_sncode;
+        private System.Windows.Forms.Label bc_groupcode_label;
+        private System.Windows.Forms.Label bc_remark_label;
+        private CustomControl.ComBoxWithFocus.ComBoxWithFocus bc_groupcode;
+        private System.Windows.Forms.Label label2;
+        private System.Windows.Forms.Label label3;
+        private System.Windows.Forms.RadioButton GoodProduct;
+        private System.Windows.Forms.RadioButton Reject;
+        private System.Windows.Forms.ListView WaitRejectList;
+        private System.Windows.Forms.Label label4;
+        private System.Windows.Forms.Label label5;
+        private CustomControl.TextBoxWithIcon.EnterTextBox bc_remark;
+        private CustomControl.ButtonUtil.ArrowLeftButton WaitReject;
+        private CustomControl.ButtonUtil.ArrowRightButton ChooseedReject;
+        private System.Windows.Forms.ColumnHeader columnHeader1;
+        private System.Windows.Forms.Label label6;
+        private CustomControl.ButtonUtil.NormalButton CleanInfo;
+        private System.Windows.Forms.ColumnHeader columnHeader5;
+        private System.Windows.Forms.ListView ChoosedRejectList;
+        private System.Windows.Forms.ColumnHeader columnHeader6;
+        private System.Windows.Forms.ColumnHeader columnHeader7;
+        private CustomControl.RichText.RichTextAutoBottom OperateResult;
+        private System.Windows.Forms.ColumnHeader columnHeader3;
+        private CustomControl.TextBoxWithIcon.EnterTextBox bc_code;
+        private ReSetCheckBox AutoBadCode;
+        private System.Windows.Forms.ColumnHeader columnHeader4;
+        private CustomControl.ButtonUtil.NormalButton Save;
+        private System.Windows.Forms.ColumnHeader columnHeader2;
+        private System.Windows.Forms.ColumnHeader columnHeader8;
+        private System.Windows.Forms.ColumnHeader columnHeader9;
+        private System.Windows.Forms.ColumnHeader columnHeader10;
+        private System.Windows.Forms.BindingSource BadInfSource;
+        private CustomControl.TextBoxWithIcon.TextBoxWithPlaceHolder Filter;
+        private System.Windows.Forms.Timer ControlLockTimer;
+        private System.Windows.Forms.Label Lock_label;
+        private System.Windows.Forms.Label ma_salecode;
+        private System.Windows.Forms.Label pr_sendchecktype;
+        private CustomControl.TextBoxWithIcon.SourceStepCount StepCount;
+        private CustomControl.ButtonUtil.NormalButton normalButton1;
+        private CustomControl.ComBoxWithFocus.PrinterCombox PrintList;
+        private System.Windows.Forms.Button StopWatch;
+        private System.Windows.Forms.Button StartWatch;
+        private System.Windows.Forms.Button ChooseFolder;
+        private System.Windows.Forms.TextBox FolderPath;
+        private System.Windows.Forms.Label label7;
+        private System.Windows.Forms.Label label10;
+        private System.Windows.Forms.Label label11;
+        private System.IO.FileSystemWatcher XmlWatcher;
+        private System.Windows.Forms.CheckBox bidui;
+        private CustomControl.TextBoxWithIcon.SnCollectionBox biduisn;
+        private CustomControl.ValueLabel.ValueLabel ob_sendqty;
+        private CustomControl.ValueLabel.ValueLabel ob_nowcheckqty;
+        private System.Windows.Forms.CheckBox NoteForChange;
+        private CustomControl.ValueLabel.ValueLabel ma_softversion;
+        private System.Windows.Forms.Label ma_softversion_label;
+        private CustomControl.TextBoxWithIcon.MaCodeSearchTextBox ma_code;
+        private LockCheckBox LockMakeCode;
+        private CustomControl.ValueLabel.ValueLabel pr_spec;
+        private CustomControl.ValueLabel.ValueLabel ma_qty;
+        private CustomControl.ValueLabel.ValueLabel ma_prodcode;
+        private System.Windows.Forms.Label ma_qty_label;
+        private System.Windows.Forms.Label ms_makecode_label;
+        private System.Windows.Forms.Label pr_detail_label;
+        private System.Windows.Forms.Label ma_prodcode_label;
+        private CustomControl.ValueLabel.ValueLabel mcd_totalng;
+        private System.Windows.Forms.Label label9;
+        private CustomControl.ValueLabel.ValueLabel mcd_okqty;
+        private System.Windows.Forms.Label label8;
+        private CustomControl.ValueLabel.ValueLabel mcd_ngqty;
+        private System.Windows.Forms.Label label1;
+        private System.Windows.Forms.Label ob_checkno;
+        private CustomControl.ButtonUtil.NormalButton SendCheck;
+        private CustomControl.ValueLabel.ValueLabel ob_batchqty;
+        private CustomControl.ValueLabel.ValueLabel mcd_remainqty;
+        private System.Windows.Forms.Label mc_restqty_label;
+        private CustomControl.ValueLabel.ValueLabel mcd_inqty;
+        private System.Windows.Forms.Label mcd_inqty_label;
+    }
+}

+ 1026 - 0
UAS_MES_LT/FunctionCode/Make/Make_TestCollectionOh.cs

@@ -0,0 +1,1026 @@
+using System;
+using System.Data;
+using System.Text;
+using System.Threading;
+using System.Drawing;
+using System.Windows.Forms;
+using UAS_MES_NEW.DataOperate;
+using UAS_MES_NEW.Entity;
+using UAS_MES_NEW.PublicMethod;
+using System.Collections.Generic;
+using UAS_MES_NEW.CustomControl.PowerControlForm;
+using UAS_MES_NEW.PublicForm;
+using LabelManager2;
+using System.IO;
+using System.Text.RegularExpressions;
+
+namespace UAS_MES_NEW.Make
+{
+    public partial class Make_TestCollectionOh : Form
+    {
+        DataHelper dh = null;
+        DataTable dt = null;
+        //当前工序的名称
+
+        string ErrorMessage = "";
+        //用于保存是否之前输入的ms_sncode
+        string LastSncode;
+
+        string oMakeCode = "";
+
+        string oMSID = "";
+
+        string ifrework = "";
+
+        string reworkstatus = "";
+
+        LogStringBuilder sql = new LogStringBuilder();
+
+        AutoSizeFormClass asc = new AutoSizeFormClass();
+        /// <summary>
+        /// 已选的不良
+        /// </summary>
+        List<string> ChoosedList = new List<string>();
+        /// <summary>
+        /// 待选的不良
+        /// </summary>
+        List<string> WaitList = new List<string>();
+
+        bool AutoCut = false;
+
+        bool LockSn = false;
+
+        string labelname;
+
+        DataTable Dbfind;
+
+        ApplicationClass lbl;
+        Thread thread;
+       // Document doc;
+
+        public Make_TestCollectionOh()
+        {
+            InitializeComponent();
+        }
+
+        private void TestCollection_Load(object sender, EventArgs e)
+        {
+            GoodProduct.Checked = true;
+            asc.controllInitializeSize(this);
+
+            ms_sncode.Focus();
+            //设置锁定工单
+            LockMakeCode.GetMakeCodeCtl(ma_code);
+            ma_code.SetLockCheckBox(LockMakeCode);
+            ControlLockTimer.Tick += ControlLockTimer_Tick;
+            ControlLockTimer.Interval = 100;
+
+            labelname = System.Windows.Forms.Application.StartupPath + @"\badsn.lab";
+
+            //thread = new Thread(NewPrint);
+           // SetLoadingWindow stw = new SetLoadingWindow(thread, "初始化打印程序");
+            //BaseUtil.SetFormCenter(stw);
+           // stw.ShowDialog();
+
+            //工单号放大镜配置
+            ma_code.TableName = "make left join product on ma_prodcode=pr_code";
+            ma_code.SelectField = "ma_code # 工单号,ma_prodcode # 产品编号,ma_qty # 工单数量,pr_spec # 产品规格,ma_softversion # 软件版本,ma_salecode # 销售单号,pr_sendchecktype # 产品送检方式";
+            ma_code.FormName = Name;
+            ma_code.SetValueField = new string[] { "ma_code", "ma_prodcode", "ma_qty", "pr_spec", "ma_softversion", "ma_salecode", "nvl(pr_sendchecktype,'LineCode')pr_sendchecktype" };
+            ma_code.Condition = "ma_statuscode='STARTED'";
+            ma_code.DbChange += Ma_code_DbChange;
+            dh = SystemInf.dh;
+            StepCount.StepCode = User.CurrentStepCode;
+            StepCount.Source = User.UserSourceCode;
+            StepCount.LineCode = User.UserLineCode;
+            StepCount.Dh = dh;
+            StepCount.Start();
+        }
+
+        private void ControlLockTimer_Tick(object sender, EventArgs e)
+        {
+            this.Activate();
+            ms_sncode.Focus();
+
+        }
+
+        private void Ma_code_DbChange(object sender, EventArgs e)
+        {
+            Dbfind = ma_code.ReturnData;
+            BaseUtil.SetFormValue(this.Controls, Dbfind);
+            LoadBadGroupData();
+            LoadCollectedNum();
+            LoadCheckQTY();
+        }
+
+        /// <summary>
+        /// 将已选不良移动到待选不良
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void WaitReject_Click(object sender, EventArgs e)
+        {
+            int CheckedNum = 0;
+            //已存在在ListView中的Item是不能添加到其他ListView中的,需要调用其克隆的方法
+            for (int i = ChoosedRejectList.Items.Count - 1; i >= 0; i--)
+            {
+                if (ChoosedRejectList.Items[i].Checked)
+                {
+                    ChoosedRejectList.Items[i].Checked = false;
+                    WaitRejectList.Items.Add((ListViewItem)ChoosedRejectList.Items[i].Clone());
+                    ChoosedRejectList.Items[i].Remove();
+                    CheckedNum++;
+                }
+            }
+            if (CheckedNum == 0)
+            {
+                for (int i = ChoosedRejectList.Items.Count - 1; i >= 0; i--)
+                {
+                    WaitRejectList.Items.Add((ListViewItem)ChoosedRejectList.Items[i].Clone());
+                    ChoosedRejectList.Items[i].Remove();
+                }
+            }
+        }
+
+        /// <summary>
+        /// 将不良信息移动到已选不良
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void ChooseedReject_Click(object sender, EventArgs e)
+        {
+            if (ms_sncode.Text == "")
+            {
+                OperateResult.AppendText(">>序列号不能为空\n", Color.Red);
+                ms_sncode.Focus();
+                return;
+            }
+            int CheckedNum = 0;
+            //是否已经添加到不良
+            bool AddToReject = false;
+            for (int i = WaitRejectList.Items.Count - 1; i >= 0; i--)
+            {
+                if (WaitRejectList.Items[i].Checked)
+                {
+                    AddToReject = false;
+                    for (int j = 0; j < ChoosedRejectList.Items.Count; j++)
+                    {
+                        if ((ChoosedRejectList.Items[j].SubItems[2].Text == WaitRejectList.Items[i].SubItems[2].Text))
+                        {
+                            AddToReject = true;
+                            OperateResult.AppendText(">>已存在" + ChoosedRejectList.Items[j].SubItems[2].Text + "不良\n", Color.Red);
+                            break;
+                        }
+                    }
+                    //未添加则进行添加
+                    if (!AddToReject)
+                    {
+                        WaitRejectList.Items[i].Checked = false;
+                        ChoosedRejectList.Items.Add((ListViewItem)WaitRejectList.Items[i].Clone());
+                        WaitRejectList.Items[i].Remove();
+                        CheckedNum++;
+                    }
+                }
+            }
+            if (CheckedNum == 0)
+            {
+                OperateResult.AppendText(">>请勾选不良代码\n", Color.Red);
+            }
+        }
+
+        private void CleanInfo_Click(object sender, EventArgs e)
+        {
+            OperateResult.Clear();
+        }
+
+        private void ms_code_KeyDown(object sender, KeyEventArgs e)
+        {
+            if (e.KeyCode == Keys.Enter)
+            {
+                if (bidui.Checked && biduisn.Text != ms_sncode.Text)
+                {
+                    OperateResult.AppendText(">>SN比对不一致\n", Color.Red, ms_sncode);
+                    return;
+                }
+                ChoosedRejectList.Items.Clear();
+                WaitList.Clear();
+                ChoosedList.Clear();
+                if (LogicHandler.CheckStepAttribute(Tag.ToString(), User.UserSourceCode, out ErrorMessage))
+                {
+                    bool NoteAlready = LogicHandler.CheckDiffMakeCodeBeforeStepCheck(ms_sncode.Text, ma_code.Text, NoteForChange.Checked, out oMakeCode, out ErrorMessage);
+                    if (!NoteAlready)
+                    {
+                        OperateResult.AppendText(">>" + ErrorMessage + "\n", Color.Red, ms_sncode);
+                        return;
+                    }
+                    if (LogicHandler.CheckStepSNAndMacode(oMakeCode, User.UserSourceCode, ms_sncode.Text, User.UserCode, out oMakeCode, out oMSID, out ErrorMessage))
+                    {
+                        //是否提示过工单切换框,检测前后执行
+                        if (!LogicHandler.CheckDiffMakeCodeAfterStepCheck(ms_sncode.Text, oMakeCode, NoteForChange.Checked, NoteAlready, ma_code, out ErrorMessage))
+                        {
+                            OperateResult.AppendText(">>" + ErrorMessage + "\n", Color.Red, ms_sncode);
+                            return;
+                        }
+                        if (ma_code.Text != oMakeCode && oMakeCode != null)
+                        {
+                            dt = (DataTable)dh.ExecuteSql("select ma_code,ma_prodcode,ma_softversion,ma_salecode,pr_spec,nvl(pr_sendchecktype,'LineCode')pr_sendchecktype,ma_qty from make left join product on ma_prodcode=pr_code where ma_code='" + oMakeCode + "'", "select");
+                            if (dt.Rows.Count > 0)
+                            {
+                                BaseUtil.SetFormValue(this.Controls, dt);
+                                LockMakeCode.Checked = true;
+                            }
+                        }
+                        dt = (DataTable)dh.ExecuteSql("select ms_nextstepcode,ms_sncode,ms_reworkstatus,nvl(ms_ifrework,0)ms_ifrework,ms_stepcode,ms_status,nvl(st_ifrepair,0) st_ifrepair from makeserial left join step on ms_stepcode=st_code where ms_id='" + oMSID + "'", "select");
+                        string status = dt.Rows[0]["ms_status"].ToString();
+                        reworkstatus = dt.Rows[0]["ms_reworkstatus"].ToString();
+                        string stepcode = dt.Rows[0]["ms_stepcode"].ToString();
+                        string ifrepair = dt.Rows[0]["st_ifrepair"].ToString();
+                        string sncode = dt.Rows[0]["ms_sncode"].ToString();
+                        if (sncode != ms_sncode.Text)
+                        {
+                            OperateResult.AppendText(">>" + ms_sncode.Text + " 序列号已执行过转号,不允许使用TSN采集\n", Color.Red, ms_sncode);
+                            return;
+                        }
+                        ifrework = dt.Rows[0]["ms_ifrework"].ToString();
+                        if (GoodProduct.Checked)
+                        {
+                            if (ifrework != "0")
+                            {
+                                if (stepcode == User.CurrentStepCode && (reworkstatus == "1" || reworkstatus == "2") && ifrepair == "0")
+                                {
+                                    OperateResult.AppendText(">>" + ms_sncode.Text + " 序列号已执行过" + User.CurrentStepName + "工序,采集结果为良品\n", Color.Red, ms_sncode);
+                                    return;
+                                }
+                            }
+                            else
+                            {
+                                if (stepcode == User.CurrentStepCode && (status == "1" || status == "2") && ifrepair == "0")
+                                {
+                                    OperateResult.AppendText(">>" + ms_sncode.Text + " 序列号已执行过" + User.CurrentStepName + "工序,采集结果为良品\n", Color.Red, ms_sncode);
+                                    return;
+                                }
+                            }
+                        }
+                        SetCollectResult();
+                    }
+                    else OperateResult.AppendText(">>" + ErrorMessage + "\n", Color.Red, ms_sncode,biduisn);
+                }
+                else OperateResult.AppendText(">>" + ErrorMessage + "\n", Color.Red, ms_sncode, biduisn);
+            }
+        }
+
+        private void bc_groupcode_SelectedIndexChanged(object sender, EventArgs e)
+        {
+            LoadBadCodeListView();
+        }
+
+        /// <summary>
+        /// 填充不良组别信息
+        /// </summary>
+        private void LoadBadGroupData()
+        {
+            //如果ms_makecode的值修改过再去查询
+            sql.Clear();
+            sql.Append("select bg_code||':'||bg_name bg_name,bg_code from badgroup left join (select pb_badgroup,pr_kind ");
+            sql.Append("from product left join productkind on pk_name=pr_kind ");
+            sql.Append("left join productbadgroup on pk_code=PB_KINDCODE where pr_code='" + ma_prodcode.Text + "')");
+            sql.Append("on pb_badgroup=bg_code where bg_statuscode='AUDITED' order by case when bg_code='" + User.DefaultBadGroup + "' then 0 else 1 end");
+            DataTable dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
+            bc_groupcode.DisplayMember = "bg_name";
+            bc_groupcode.ValueMember = "bg_code";
+            bc_groupcode.DataSource = dt;
+        }
+
+
+        /// <summary>
+        /// 加载不良代码的ListView的信息
+        /// </summary>
+        private void LoadBadCodeListView()
+        {
+            object bg_code = bc_groupcode.SelectedValue;
+            sql.Clear();
+            sql.Append("select bg_code||':'||bg_name bg_code,bc_code,bc_name,'' bc_remark from badgroupdetail ");
+            sql.Append("left join badgroup on  bg_id=bgd_bgid left join badcode on bgd_badcode=bc_code where ");
+            sql.Append("bg_code='" + (bg_code != null ? bg_code.ToString() : "") + "' and bg_code is not null order by bgd_detno");
+            DataTable dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
+            BadInfSource.DataSource = dt;
+            //往listview中添加数据
+            WaitRejectList.Items.Clear();
+            WaitRejectList.BeginUpdate();
+            for (int i = 0; i < dt.Rows.Count; i++)
+            {
+                if (!ChoosedList.Contains(dt.Rows[i]["bc_code"].ToString()))
+                {
+                    ListViewItem lvi = new ListViewItem();
+                    //第一列是勾选列,设置列头文本为空
+                    lvi.Text = "";
+                    WaitList.Add(dt.Rows[i]["bc_code"].ToString());
+                    for (int j = 0; j < dt.Columns.Count; j++)
+                        lvi.SubItems.Add(dt.Rows[i][j].ToString());
+                    WaitRejectList.Items.Add(lvi);
+                }
+            }
+            WaitRejectList.EndUpdate();
+        }
+
+        /// <summary>
+        /// 加载已选不良的ListView
+        /// </summary>
+        private void LoadChoosedBadListView()
+        {
+            sql.Clear();
+            sql.Append("select nvl(bg_code,mb_bgcode)||':'||nvl(bg_name,mb_badcode) bg_code,nvl(mb_badcode,bc_code) bc_code,bc_name,mb_badremark from makebad  ");
+            sql.Append("left join badgroup on mb_bgcode=bg_code left join badcode on mb_badcode=bc_code ");
+            sql.Append(" where mb_sncode='" + ms_sncode.Text + "' and mb_makecode='" + ma_code.Text + "' and mb_status=0");
+            dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
+            ChoosedRejectList.Items.Clear();
+            ChoosedRejectList.BeginUpdate();
+            for (int i = 0; i < dt.Rows.Count; i++)
+            {
+                ListViewItem lvi = new ListViewItem();
+                //第一列是勾选列,设置列头文本为空
+                lvi.Text = "";
+                ChoosedList.Add(dt.Rows[i]["bc_code"].ToString());
+                for (int j = 0; j < dt.Columns.Count; j++)
+                    lvi.SubItems.Add(dt.Rows[i][j].ToString());
+                ChoosedRejectList.Items.Add(lvi);
+            }
+            ChoosedRejectList.EndUpdate();
+        }
+
+        /// <summary>
+        /// 设置良品或者不良品的采集结果
+        /// </summary>
+        private void SetCollectResult()
+        {
+            string ErrorMessage = "";
+            //如果勾选的是不良品
+            if (Reject.Checked)
+            {
+                LoadBadCodeListView();
+                LoadChoosedBadListView();
+                OperateResult.AppendText(">>请采集不良代码\n", Color.Green);
+                bc_code.Focus();
+            }
+            else if (GoodProduct.Checked)
+            {
+                //如果不是返修的
+                if (ifrework == "0")
+                {
+                    dt = (DataTable)dh.ExecuteSql("select mb_id,bc_name,mbr_mbid from makebad left join makebadreason on mbr_mbid=mb_id left join badcode on mb_badcode=bc_code where mb_sncode='" + ms_sncode.Text + "' and mb_makecode='" + ma_code.Text + "' and mb_status=0", "select");
+                    for (int i = 0; i < dt.Rows.Count; i++)
+                    {
+                        if (dt.Rows[i]["mb_id"].ToString() != dt.Rows[i]["mbr_mbid"].ToString())
+                            ErrorMessage += "【" + dt.Rows[i]["bc_name"].ToString() + "】";
+                    }
+                    //存在不良记录
+                    if (ErrorMessage != "")
+                    {
+                        OperateResult.AppendText(">>序列号:" + ms_sncode.Text + " 已经判为不良品,不允许修改!\n", Color.Red);
+                        return;
+                    }
+                    else
+                    {
+                        if (AutoBadCode.Checked)
+                        {
+                            string str = BaseUtil.GetDataFromDevice("DEVICES");
+                            str = str.Replace("LIST OF DEVICES ATTACHED", "").Replace("\n", "");
+                            if (!(str.Length == 0))
+                            {
+                                Console.WriteLine("有链接");
+                                BaseUtil.GetDataFromDevice("RESET");
+                            }
+                            else
+                            {
+                                OperateResult.AppendText(">>无设备链接,无法恢复出厂设置,采集失败\n", Color.Red, ms_sncode);
+                                return;
+                            }
+                        }
+                        //良品信息采集
+                        if (LogicHandler.SetStepResult(ma_code.Text, User.UserSourceCode, ms_sncode.Text, "良品采集", "检测合格", User.UserCode, out ErrorMessage))
+                        {
+                            //if (WriteSoftWare.Checked)
+                            //{
+                            //    string Message = BaseUtil.GetDataFromDevice("INSTALL", SoftWarePath.Text);
+                            //    OperateResult.AppendText(">>" + Message + "\n");
+                            //}
+                            //提示正确返回时传递的信息
+                            if (ErrorMessage.Contains("AFTERSUCCESS"))
+                                OperateResult.AppendText(">>" + ErrorMessage + "\n");
+                            ////恢复出厂设置
+                            //if (AutoBadCode.Checked)
+                            //    BaseUtil.GetDataFromDevice("RESET");
+                            LastSncode = ms_sncode.Text;
+                            OperateResult.AppendText(">>" + ms_sncode.Text + "良品采集成功\n", Color.Green, ms_sncode, biduisn);
+                            if (bidui.Checked)
+                                biduisn.Focus();
+                            //记录操作日志
+                            LogicHandler.DoCommandLog(Tag.ToString(), User.UserCode, ma_code.Text, User.UserLineCode, User.UserSourceCode, "采集良品", "采集良品成功", LastSncode, ob_checkno.Text);
+                        }
+                        else OperateResult.AppendText(">>" + ErrorMessage + "\n", Color.Red, ms_sncode, biduisn);
+                    }
+                }
+                else
+                {
+                    if (reworkstatus != "3")
+                    {
+                        if (LogicHandler.SetStepResult(ma_code.Text, User.UserSourceCode, ms_sncode.Text, "良品采集", "检测合格", User.UserCode, out ErrorMessage))
+                        {
+                            //提示正确返回时传递的信息
+                            if (ErrorMessage.Contains("AFTERSUCCESS"))
+                                OperateResult.AppendText(">>" + ErrorMessage + "\n");
+                            LastSncode = ms_sncode.Text;
+                            OperateResult.AppendText(">>" + ms_sncode.Text + "成功采集为良品\n", Color.Green, ms_sncode, biduisn);
+                            if (bidui.Checked)
+                                biduisn.Focus();
+                            //记录操作日志
+                            LogicHandler.DoCommandLog(Tag.ToString(), User.UserCode, ma_code.Text, User.UserLineCode, User.UserSourceCode, "采集良品", "采集良品成功", LastSncode, ob_checkno.Text);
+                        }
+                        else OperateResult.AppendText(">>" + ErrorMessage + "\n", Color.Red, ms_sncode, biduisn);
+                    }
+                    else
+                    {
+                        OperateResult.AppendText(">>返修的不良序列号必须先进行维修\n", Color.Red);
+                    }
+                }
+            }
+            //加载页面信息
+            LoadCollectedNum();
+            LoadCheckQTY();
+        }
+
+        private void 测试采集_SizeChanged(object sender, EventArgs e)
+        {
+            asc.controlAutoSize(this);
+        }
+
+        private void LoadCollectedNum()
+        {
+            dt = (DataTable)dh.ExecuteSql("select mcd_inqty,ma_qty-mcd_inqty mcd_remainqty,mcd_ngqty,mcd_okqty,mcd_totalng from make left join makecraftdetail_view on mcd_macode=ma_code where ma_code='" + ma_code.Text + "' and mcd_stepcode='" + User.CurrentStepCode + "'", "select");
+            BaseUtil.SetFormValue(Controls, dt);
+        }
+
+        private void Save_Click(object sender, EventArgs e)
+        {
+            if (ms_sncode.Text == "")
+            {
+                OperateResult.AppendText(">>序列号不允许为空\n", Color.Red);
+                return;
+            }
+            if (GoodProduct.Checked)
+                ms_code_KeyDown(sender, new KeyEventArgs(Keys.Enter));
+            else if (Reject.Checked)
+            {
+                if (LogicHandler.CheckStepAttribute(Tag.ToString(), User.UserSourceCode, out ErrorMessage))
+                {
+                    //判断界面工单是否为空时的序列号是否自动归属工单
+                    string oStatus = "";
+                    if (!LogicHandler.GetMakeInfo(ms_sncode.Text, out oMakeCode, out oStatus, out ErrorMessage))
+                    {
+                        if (ma_code.Text == "")
+                        {
+                            OperateResult.AppendText(">>" + ErrorMessage + "\n", Color.Red, ms_sncode);
+                            return;
+                        }
+                    }
+                    if (LogicHandler.CheckStepSNAndMacode(ma_code.Text == "" ? oMakeCode : ma_code.Text, User.UserSourceCode, ms_sncode.Text, User.UserCode, out oMakeCode, out oMSID, out ErrorMessage))
+                    {
+                        dt = (DataTable)dh.ExecuteSql("select ma_code,ma_prodcode,ma_softversion,pr_spec,ma_qty from make left join product on ma_prodcode=pr_code where ma_code='" + oMakeCode + "'", "select");
+                        if (dt.Rows.Count > 0)
+                        {
+                            BaseUtil.SetFormValue(this.Controls, dt);
+                            LockMakeCode.Checked = true;
+                        }
+                    }
+                    else
+                    {
+                        OperateResult.AppendText(">>" + ErrorMessage + "\n", Color.Red, ms_sncode);
+                        return;
+                    }
+                }
+                else
+                {
+                    OperateResult.AppendText(">>" + ErrorMessage + "\n", Color.Red, ms_sncode);
+                    return;
+                }
+                int RejectCount = ChoosedRejectList.Items.Count;
+                string[] bccode = new string[RejectCount];
+                string[] bcremark = new string[RejectCount];
+                string[] bgcode = new string[RejectCount];
+                string[] bgname = new string[RejectCount];
+                string[] bcname = new string[RejectCount];
+
+                if (ChoosedRejectList.Items.Count == 0)
+                {
+                    OperateResult.AppendText(">>不良品必须选择不良原因和不良代码!\n", Color.Red);
+                    return;
+                }
+                else
+                {
+                    for (int i = 0; i < RejectCount; i++)
+                    {
+                        //获取不良代码组
+                        bgcode[i] = ChoosedRejectList.Items[i].SubItems[1].Text.Split(':')[0];
+                        //获取不良代码组名称
+                        bgname[i] = ChoosedRejectList.Items[i].SubItems[1].Text.Split(':')[1];
+                        //获取所有的不良代码
+                        bccode[i] = ChoosedRejectList.Items[i].SubItems[2].Text;
+                        //获取不良名称
+                        bcname[i] = ChoosedRejectList.Items[i].SubItems[3].Text;
+                        //获取所有的不良备注
+                        bcremark[i] = bc_remark.Text;
+                    }
+                }
+
+            
+
+                //如果之前是良品的
+                dt = dh.getFieldsDataByCondition("makeserial", new string[] { "ms_status", "ms_checkno", "ms_outboxcode" }, "ms_id='" + oMSID + "' and ms_stepcode='" + User.CurrentStepCode + "'");
+                if (dt.Rows.Count > 0)
+                {
+                    string status = dt.Rows[0]["ms_status"].ToString();
+                    string outboxcode = dt.Rows[0]["ms_outboxcode"].ToString();
+                    if (outboxcode != "")
+                    {
+                        OperateResult.AppendText(">>序列号:" + ms_sncode.Text + "已装箱,请先进行拆箱\n", Color.Red);
+                        BaseUtil.CleanForm(this);
+                        return;
+                    }
+                    if (status == "1" || status == "2")
+                    {
+                        dh.UpdateByCondition("steppassed", "sp_result='不良品',sp_ifng=-1,sp_ymd=to_char(sysdate,'yyyymmdd'),sp_hm=to_char(sysdate,'hh24miss')", "sp_id=(select max(sp_id) from steppassed where sp_sncode='" + ms_sncode.Text + "')");
+                        dh.UpdateByCondition("makecraftdetail", "mcd_okqty=mcd_okqty-1", "mcd_macode='" + ma_code.Text + "' and mcd_stepcode='" + User.CurrentStepCode + "'");
+                        dh.UpdateByCondition("makeserial", "ms_nextstepcode='',ms_badtimes=nvl(ms_badtimes,0)+1", "ms_id='" + oMSID + "'");
+                        LogicHandler.InsertMakeProcess(ms_sncode.Text, ma_code.Text, User.UserSourceCode, "良品采集成不良", "测试不良", User.UserCode);
+                        LogicHandler.DoCommandLog(Tag.ToString(), User.UserCode, ma_code.Text, User.UserLineCode, User.UserSourceCode, "测试不良", "良品采集成不良", ms_sncode.Text, ob_checkno.Text);
+                    }
+                    string checkno = dt.Rows[0]["ms_checkno"].ToString();
+                    //存在抽检批次更新为空
+                    if (checkno != "")
+                        dh.UpdateByCondition("makeserial", "ms_checkno=''", "ms_id='" + oMSID + "'");
+                }
+                else
+                {
+                    LogicHandler.InsertMakeProcess(ms_sncode.Text, ma_code.Text, User.UserSourceCode, "采集成不良", "测试不良", User.UserCode);
+                    LogicHandler.DoCommandLog(Tag.ToString(), User.UserCode, ma_code.Text, User.UserLineCode, User.UserSourceCode, "采集成不良", "测试不良", ms_sncode.Text, ob_checkno.Text);
+                }
+                //不良信息采集,mb_status<>0的是之前维修保存的,不能删除
+                dh.ExecuteSql("delete from makebad where mb_sncode='" + ms_sncode.Text + "' and mb_makecode='" + ma_code.Text + "' and nvl(mb_status,0)=0", "delete");
+                //normalButton1_Click(this, e);
+                if (LogicHandler.SetTestNGDetail(ms_sncode.Text, ma_code.Text, User.UserCode, User.UserSourceCode, "检查未通过", bgcode, bccode, bgname, bcname, bcremark, out ErrorMessage))
+                {
+                    //存在的不良代码和
+                    dt = (DataTable)dh.ExecuteSql("select sr_badcode from STEPRETURN where sr_stepcode='" + User.CurrentStepCode + "'", "select");
+                    if (dt.Rows.Count > 0)
+                    {
+                        int BadCodeInStep = 0;
+                        string badname = "";
+                        for (int i = 0; i < dt.Rows.Count; i++)
+                        {
+                            for (int j = 0; j < bccode.Length; j++)
+                            {
+                                if (dt.Rows[i]["sr_badcode"].ToString() == bccode[j])
+                                {
+                                    badname += "[" + bcname[j] + "]";
+                                    BadCodeInStep += 1;
+                                }
+                            }
+                        }
+                        //选中的不良代码必须全在工序默认的不良代码中才通过判断
+                        if (BadCodeInStep == bccode.Length)
+                        {
+                            dh.UpdateByCondition("makebad", "mb_status=-1", "mb_sncode='" + ms_sncode.Text + "' and mb_makecode='" + ma_code.Text + "' and mb_stepcode='" + User.CurrentStepCode + "'");
+                            dh.UpdateByCondition("makeserial", "ms_stepcode='',ms_status=1,ms_nextstepcode='" + User.CurrentStepCode + "'", "ms_id='" + oMSID + "'");
+                            LogicHandler.DoCommandLog(Tag.ToString(), User.UserCode, ma_code.Text, User.UserLineCode, User.UserSourceCode, "快速维修成功", "快速维修", "", ob_checkno.Text);
+                            OperateResult.AppendText(">>本次采集不良代码" + badname + "存在于本工序" + User.CurrentStepCode + "中,请解除故障后重新测试本站\n", Color.Black);
+                        }
+                        else OperateResult.AppendText(">>" + ms_sncode.Text + "成功采集为不良\n", Color.Green);
+                    }
+                    else OperateResult.AppendText(">>" + ms_sncode.Text + "成功采集为不良\n", Color.Green);
+                    LastSncode = ms_sncode.Text;
+                    //采集完不良,聚焦序列号
+                    ms_sncode.Focus();
+                    //记录操作日志
+                    ms_sncode.Text = "";
+                    //清除不良信息
+                    bc_code.Text = "";
+                    ChoosedRejectList.Items.Clear();
+                    LoadCollectedNum();
+                    WaitList.Clear();
+                    ChoosedList.Clear();
+                }
+                else OperateResult.AppendText(">>" + ErrorMessage + "\n", Color.Red);
+            }
+        }
+
+        private void bc_code_KeyDown(object sender, KeyEventArgs e)
+        {
+            if (e.KeyCode == Keys.Enter)
+            {
+                sql.Clear();
+                sql.Append("select  bg_code||':'||bg_name bg_code,bc_code,bc_name,'' bc_remark from  badgroupdetail left join ");
+                sql.Append("badgroup on  bg_id=bgd_bgid left join badcode on bgd_badcode = bc_code where bc_code='" + bc_code.Text + "'  and rownum=1 ");
+                DataTable dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
+                if (dt.Rows.Count > 0)
+                {
+                    for (int i = 0; i < ChoosedRejectList.Items.Count; i++)
+                    {
+                        if (ChoosedRejectList.Items[i].ListView.Items[i].SubItems[2].Text == bc_code.Text)
+                        {
+                            OperateResult.AppendText(">>已添加过不良代码" + bc_code.Text + "\n", Color.Red, bc_code);
+                            return;
+                        }
+                    }
+                    ListViewItem lvi = new ListViewItem();
+                    lvi.Text = "";
+                    for (int j = 0; j < dt.Columns.Count; j++)
+                        lvi.SubItems.Add(dt.Rows[0][j].ToString());
+                    ChoosedRejectList.Items.Add(lvi);
+                    bc_code.Clear();
+                }
+                else OperateResult.AppendText(">>" + bc_code.Text + "不良代码不存在\n", Color.Red, bc_code);
+            }
+        }
+
+        private void LoadCheckQTY()
+        {
+            sql.Clear();
+            string condition = "";
+            int nowcheckqty = int.Parse(ob_nowcheckqty.Text == "" ? "0" : ob_nowcheckqty.Text);
+            int batchqty = int.Parse(ob_batchqty.Text == "" ? "0" : ob_batchqty.Text);
+            if (nowcheckqty + 1 == batchqty && AutoCut)
+            {
+                condition = "and ob_status='UNCHECK' and ob_checkno='" + ob_checkno.Text + "'";
+            }
+            else
+            {
+                condition = "and ob_status='ENTERING' ";
+            }
+            if (pr_sendchecktype.Text == "SaleCode")
+            {
+                condition += " and ob_salecode='" + ma_salecode.Text + "'";
+            }
+            sql.Append("select ob_batchqty,ob_nowcheckqty,ob_checkno from oqcbatch where ");
+            sql.Append("ob_linecode='" + User.UserLineCode + "' and ob_prodcode='" + ma_prodcode.Text + "' and ");
+            sql.Append("ob_stepcode='" + User.CurrentStepCode + "' " + condition);
+            DataTable dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
+            if (dt.Rows.Count > 0)
+            {
+                ob_sendqty.Text = dh.getFieldDataByCondition("oqcbatch", "sum(ob_nowcheckqty)", "ob_makecode='" + ma_code.Text + "' and  ob_status<>'ENTERING'").ToString();
+                ob_batchqty.Text = dt.Rows[0]["ob_batchqty"].ToString();
+                ob_nowcheckqty.Text = dt.Rows[0]["ob_nowcheckqty"].ToString();
+                ob_checkno.Text = dt.Rows[0]["ob_checkno"].ToString();
+                nowcheckqty = int.Parse(ob_nowcheckqty.Text == "" ? "0" : ob_nowcheckqty.Text);
+                batchqty = int.Parse(ob_batchqty.Text == "" ? "0" : ob_batchqty.Text);
+                if (nowcheckqty == batchqty)
+                {
+                    ob_nowcheckqty.ForeColor = Color.Red;
+                    OperateResult.AppendText(">>当前采集数量已达到送检数量\n", Color.Red);
+                    if (AutoCut)
+                    {
+                        OperateResult.AppendText(">>批次" + ob_checkno.Text + "自动断批\n", Color.Blue);
+                    }
+                }
+            }
+            else
+            {
+                BaseUtil.CleanControlsText(ob_batchqty, ob_nowcheckqty, ob_checkno);
+                SendCheck.Enabled = false;
+            }
+            if (ob_batchqty.Text != "")
+            {
+                SendCheck.Enabled = true;
+            }
+            else
+            {
+                SendCheck.Enabled = false;
+            }
+        }
+
+        private void GoodProduct_CheckedChanged(object sender, EventArgs e)
+        {
+            if (GoodProduct.Checked)
+            {
+                bc_code.Enabled = false;
+                WaitReject.Enabled = false;
+                ChooseedReject.Enabled = false;
+                Save.Visible = false;
+            }
+            else
+            {
+                bc_code.Enabled = true;
+                WaitReject.Enabled = true;
+                ChooseedReject.Enabled = true;
+                Save.Visible = true;
+            }
+            if (ms_sncode.Text == "")
+            {
+                ms_sncode.Focus();
+            }
+        }
+
+        private void SendCheck_Click(object sender, EventArgs e)
+        {
+            sql.Clear();
+            sql.Append("update oqcbatch set ob_status='UNCHECK' where ob_checkno ='" + ob_checkno.Text + "'");
+            dh.ExecuteSql(sql.GetString(), "select");
+            ob_sendqty.Text = dh.getFieldDataByCondition("oqcbatch", "sum(ob_nowcheckqty)", "ob_makecode='" + ma_code.Text + "' and  ob_status<>'ENTERING'").ToString();
+            ob_nowcheckqty.Text = "";
+            ob_batchqty.Text = "";
+            ob_nowcheckqty.ForeColor = Color.Black;
+            SendCheck.Enabled = false;
+            OperateResult.AppendText(">>批次" + ob_checkno.Text + "送检成功\n", Color.Blue);
+            ms_sncode.Focus();
+            LogicHandler.InsertMakeProcess(LastSncode, ma_code.Text, User.UserSourceCode, "手动送检", "手动送检成功", User.UserCode);
+            //记录操作日志
+            LogicHandler.DoCommandLog(Tag.ToString(), User.UserCode, ma_code.Text, User.UserLineCode, User.UserSourceCode, "手动送检", "手动送检成功", "", ob_checkno.Text);
+            ob_checkno.Text = "";
+        }
+
+        private void ob_checkno_TextChanged(object sender, EventArgs e)
+        {
+            if (ob_checkno.Text != "")
+            {
+                string Cut = dh.getFieldDataByCondition("product left join oqcbatch on ob_prodcode=pr_code", "pr_ifautocutcheckno", "ob_checkno='" + ob_checkno.Text + "'").ToString();
+                if (Cut == "" || Cut == "0")
+                    AutoCut = false;
+                else
+                    AutoCut = true;
+                SendCheck.Enabled = true;
+            }
+        }
+
+        /// <summary>
+        /// 工单变化修改数量
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void ma_code_UserControlTextChanged(object sender, EventArgs e)
+        {
+            if (ma_code.Text.Length > 4)
+            {
+                BaseUtil.CleanControlsText(mcd_inqty, mcd_remainqty, ob_batchqty, ob_nowcheckqty, ob_sendqty);
+                LoadCollectedNum();
+                LoadCheckQTY();
+            }
+        }
+
+        private void Make_TestCollection_FormClosing(object sender, FormClosingEventArgs e)
+        {
+            BaseUtil.ClosePrint(lbl);
+            //if (engine != null)
+            //    engine.Quit(BarTender.BtSaveOptions.btDoNotSaveChanges);
+            dh.Dispose();
+        }
+
+        private void ma_prodcode_TextChanged(object sender, EventArgs e)
+        {
+            LoadBadGroupData();
+        }
+
+        private void Filter_UserControlTextChanged(object sender, EventArgs e)
+        {
+            try
+            {
+                DataRow[] dr = (BadInfSource.DataSource as DataTable).Select("bc_code like '%" + Filter.Text + "%' or bc_name like '%" + Filter.Text + "%'");
+                DataTable dt = (BadInfSource.DataSource as DataTable).Clone();
+                for (int i = 0; i < dr.Length; i++)
+                {
+                    dt.Rows.Add(dr[i].ItemArray);
+                }
+                WaitRejectList.Items.Clear();
+                WaitRejectList.BeginUpdate();
+                for (int i = 0; i < dt.Rows.Count; i++)
+                {
+                    if (!ChoosedList.Contains(dt.Rows[i]["bc_code"].ToString()))
+                    {
+                        ListViewItem lvi = new ListViewItem();
+                        //第一列是勾选列,设置列头文本为空
+                        lvi.Text = "";
+                        WaitList.Add(dt.Rows[i]["bc_code"].ToString());
+                        for (int j = 0; j < dt.Columns.Count; j++)
+                            lvi.SubItems.Add(dt.Rows[i][j].ToString());
+                        WaitRejectList.Items.Add(lvi);
+                    }
+                }
+                WaitRejectList.EndUpdate();
+            }
+            catch (Exception)
+            {
+
+            }
+        }
+
+        private void WaitRejectList_DoubleClick(object sender, EventArgs e)
+        {
+            for (int i = WaitRejectList.Items.Count - 1; i >= 0; i--)
+            {
+                if (WaitRejectList.Items[i].Checked)
+                {
+                    //双击右移
+                    ChooseedReject.PerformClick();
+                }
+            }
+        }
+
+        private void Make_TestCollection_KeyDown(object sender, KeyEventArgs e)
+        {
+            if (e.Modifiers == Keys.Control && e.KeyCode == Keys.Q)
+            {
+                if (!LockSn)
+                {
+                    ControlLockTimer.Start();
+                    LockSn = true;
+                    Lock_label.Visible = true;
+                }
+                else
+                {
+                    ControlLockTimer.Stop();
+                    LockSn = false;
+                    Lock_label.Visible = false;
+                }
+            }
+        }
+
+        //创建打印进程
+        private void NewPrint()
+        {
+            try
+            {
+                // engine = new BarTender.Application();
+                lbl = new ApplicationClass();
+                BaseUtil.WriteLbl();
+            }
+            catch (Exception ex)
+            {
+                OperateResult.AppendText("未正确安装CodeSoft软件\n" + ex.Message, Color.Red);
+            }
+        }
+
+        private void normalButton1_Click(object sender, EventArgs e)
+        {
+            //if (ChoosedRejectList.Items.Count == 0 || ms_sncode.Text == "")
+            //{
+            //    MessageBox.Show("未录入不良或SN为空");
+            //}
+
+            //string BADINFO = "";
+
+            //for (int i = 0; i < ChoosedRejectList.Items.Count; i++)
+            //{
+            //    BADINFO = BADINFO + ChoosedRejectList.Items[i].ListView.Items[i].SubItems[3].Text + "    ";
+            //}
+            //BADINFO = BADINFO.Substring(0, BADINFO.Length - 1);
+            //FileInfo PrintFile = new FileInfo(labelname);
+            //if (!PrintFile.Exists)
+            //{
+            //    MessageBox.Show("打印文件不存在");
+            //    return ;
+            //}
+            //doc = lbl.Documents.Open(labelname, true);
+            //if (doc == null)
+            //{
+            //    MessageBox.Show("标签文件打开失败");
+            //    return ;
+            //}
+            //for (int j = 1; j < doc.Variables.FormVariables.Count+1; j++)
+            //{
+            //    switch (doc.Variables.FormVariables.Item(j).Name)
+            //    {
+            //        case "SN":
+            //            doc.Variables.FormVariables.Item(j).Value = ms_sncode.Text;
+            //            break;
+            //        case "BAD":
+            //            doc.Variables.FormVariables.Item(j).Value = BADINFO;
+            //            break;
+            //    }
+            //    //  doc.Variables.FormVariables.Item(1).Value = (Prefix.Text + Date.Value.ToString("yyMMdd") + lpad(4, (i).ToString()));
+
+            //}
+            ////保存本次赋值进行打印
+            //doc.Printer.SwitchTo(PrintList.Text);
+            //doc.PrintDocument(1);
+
+
+
+        }
+
+        private void StartWatch_Click(object sender, EventArgs e)
+        {
+            if (FolderPath.Text == "")
+            {
+                OperateResult.AppendText("请选择监控文件夹\n");
+                return;
+            }
+            else
+            {
+                if (!Directory.Exists(FolderPath.Text))
+                {
+                    OperateResult.AppendText("监控文件夹不存在\n");
+                    return;
+                }
+            }
+            XmlWatcher.Path = FolderPath.Text;
+            XmlWatcher.Filter = "*.HTML";
+            XmlWatcher.EnableRaisingEvents = true;
+            //设置缓存数据
+            BaseUtil.SetCacheData("FolderPath", FolderPath.Text);
+            //设置按钮不可点击
+            StartWatch.Enabled = false;
+            ChooseFolder.Enabled = false;
+            StopWatch.Enabled = true;
+            OperateResult.AppendText("开始执行监控\n");
+        }
+
+        private void StopWatch_Click(object sender, EventArgs e)
+        {
+            XmlWatcher.EnableRaisingEvents = false;
+            StartWatch.Enabled = true;
+            ChooseFolder.Enabled = true;
+            StopWatch.Enabled = false;
+            OperateResult.AppendText("停止执行监控\n");
+        }
+
+        private void XmlWatcher_Created(object sender, FileSystemEventArgs e)
+        {
+            while (true)
+            {
+                try
+                {
+                    using (Stream stream = File.Open(e.FullPath, FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite))
+                    {
+                        if (stream != null)
+                            break;
+                    }
+                }
+                catch (Exception ex)
+                {
+                    Console.WriteLine(ex.Message);
+                }
+            }
+            StreamReader _Sr = new StreamReader(FolderPath.Text + @"\" + e.Name, Encoding.UTF8);
+            string line;
+            string ssn = "";
+            string barcode = "";
+            string pass = "";
+            try
+            {
+                while ((line = _Sr.ReadLine()) != null)
+                {
+                    if (line.Contains("<HR COLOR=\"#6699CC\" SIZE=\"10\""))
+                    {
+                        Regex regex = new Regex("<b>[^>]*>.*?|</b>");
+                        barcode = regex.Matches(line)[1].Value.Replace("\"", "").Replace(" ","").Replace("<b>UUTID:","").Replace("</b>", "");
+                        pass = regex.Matches(line)[2].Value.Replace("\"", "");
+                    }
+                }
+                if (pass.Contains("PASS"))
+                {
+                    ssn = dh.getFieldDataByCondition("craftmaterial", "cm_sncode", "cm_barcode = '" + barcode + "' and cm_status = 0").ToString();
+                    if (ssn == "")
+                    {
+                        OperateResult.AppendText("主板号"+barcode+"未读取到上料记录,过站失败\n", Color.Red);
+                    }
+                    else
+                    {
+                        ms_sncode.Text = ssn;
+                        ms_code_KeyDown(this, new KeyEventArgs(Keys.Enter));
+                    }
+                }
+                else {
+                    OperateResult.AppendText("未读取到PASS检测结果,过站失败\n", Color.Red);
+                }
+
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+                _Sr.Close();
+            }
+            _Sr.Close();
+        }
+
+        private void ChooseFolder_Click(object sender, EventArgs e)
+        {
+            FolderBrowserDialog folder = new FolderBrowserDialog();
+            folder.Description = "选择监控文件夹";
+            DialogResult result = folder.ShowDialog();
+            if (result == DialogResult.OK)
+            {
+                FolderPath.Text = folder.SelectedPath;
+            }
+        }
+
+        private void biduisn_KeyDown(object sender, KeyEventArgs e)
+        {
+            if (e.KeyCode == Keys.Enter)
+            {
+                if (bidui.Checked&&biduisn.Text!="")
+                {
+                    ms_sncode.Focus();
+                    ms_sncode.SelectAll();
+                }
+            }
+        }
+    }
+}

+ 413 - 0
UAS_MES_LT/FunctionCode/Make/Make_TestCollectionOh.resx

@@ -0,0 +1,413 @@
+<?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>
+  <metadata name="BadInfSource.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>17, 17</value>
+  </metadata>
+  <metadata name="ControlLockTimer.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>172, 17</value>
+  </metadata>
+  <metadata name="XmlWatcher.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>453, 17</value>
+  </metadata>
+  <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+  <data name="SendCheck.DownImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAAEUAAAAWCAYAAACWl1FwAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
+        dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFcSURBVFhH5di7UsJAFMbxtDT6QMI76IAFT0npIE0K
+        GcRORxHklpAIBHLfbILV8XxeNsMznJ35F5vu+82kWYuILD4N7oq75roCw27sb/x5WBdc27btntY64o/i
+        DnZjPxy4S6A0R6PHO1WUNHc9ep4uxIXd2D8eP/XZowWUThBG+n3p0stsKbbJ0qFDFFfscQuUbpzm9Pqx
+        Eh8c4PGLkuX0Nl+LDw4GJckUTRaO+OBQo+SKpitXfHAwKClfZuuN+OBgUDJV0NzxxAeHM5TFxhffGUpe
+        aFp5n+KDg0FRfHH8nfjgUKPoktztXnxwMCgFX7xdID441ChlRf7+ID44GBTNl21wFB8capSqot0xFB8c
+        /lE6Wa70IU5oH0Ziw/5cFebpoPUwHPbL04nCJKUgisWF3dgPB3gABc9v7fvBoBcnaVKdvkha2I39cPjx
+        oPrhusndcPinpIXd2N8gIusbTaFspKtR2SQAAAAASUVORK5CYII=
+</value>
+  </data>
+  <data name="SendCheck.MoveImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAAEUAAAAWCAYAAACWl1FwAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
+        dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFzSURBVFhH5djNSgJRGMZxL2P2gTfQFbZvHSEZFBEW
+        CEIQBEIgVFiS9qXWoDmp4/fHzDmjM2a+vU/QqUVX0DvwXxxn9fwYXJwYEcXWNzIWt83dcq7AsBv7LXgA
+        ZI0r71/aaqjCJf8o7sFu7IcDFwdK4vimrv1oSZXRnArdQFzYjf3pQkOzRxIoVWc6X5X6M7ruBGIr9mbU
+        9MIVe9hAcXvBO125WnxwgMcXSpcPF20tPjgYlI5eUK6lxAcHg9Lmw3nTFx8cDEpLLSjr+OKDg0FpqojO
+        Gp744GBQ3vyITutT8cHBoDheRCe1ifjgYFBe+ZCxJ+KDg0GpT0NKv4zFBweDUpuEdFQdiQ8OBsXmw2Fl
+        JD44/KCM53TwNBQfHAzKMx/2Hgfig8M3SrXYUasUfz67DwOxYf9dV5urg+RWzta4aEnxn83OfV9c2I39
+        cIAHUOJceTNbUfmW94GX0sJu7IcDPH5fXCe4EvfXxe5/D7ux3yKi2CfkPhTy27lqkwAAAABJRU5ErkJg
+        gg==
+</value>
+  </data>
+  <data name="SendCheck.NormalImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAAEUAAAAWCAYAAACWl1FwAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
+        dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGVSURBVFhH5di7agJRFIXhDSKoYBQEC8FCECwEQRBE
+        4uUVEtTiPKVlom2wttM6IfF+15njXHRnL19jD/zFmanWV8zAEDNTp9OJS6/Sm2QUht3YH4cHtdvtF6k7
+        mUwG1tqd3FR3YTf2w0FKUVOu6XT68Xgw3+8PtWH/bDYbCkeLGo1Gz/d9JwzvrL0gCKx49KlerxtIBUGo
+        PjjAg2q1mqDc2fN99cEBHlStVk0oB+t56oMDPKhSqZggDNm1N/XBAR5ULpeNvGD46rrqgwM8qFQqGV8O
+        56ujPjjAg4rFosFL5ni5qA8O8KBCoWBuns/701l9cIAH5fN5QfF4dzipDw7woFwuZ+zN483+oD44wIOy
+        2azB52i13asPDvCgTCZjHGt5sdmqDw7woHQ6bRzX8ny1UR8c4EHJZNJc5fC7XKsPDvCgRCLR2x9Pzt9q
+        zT+Lpdqw/3A6W/HoUywWa32Nx8OL4zwffM8X6sJu7IcDPCgajaak7udoNNjsdgc81BZ2Yz8c4PH8cR2J
+        ROJSU3qXjMKwG/vjzEz/skOI3Zqgv7AAAAAASUVORK5CYII=
+</value>
+  </data>
+  <data name="normalButton1.DownImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAAEUAAAAWCAYAAACWl1FwAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
+        dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFcSURBVFhH5di7UsJAFMbxtDT6QMI76IAFT0npIE0K
+        GcRORxHklpAIBHLfbILV8XxeNsMznJ35F5vu+82kWYuILD4N7oq75roCw27sb/x5WBdc27btntY64o/i
+        DnZjPxy4S6A0R6PHO1WUNHc9ep4uxIXd2D8eP/XZowWUThBG+n3p0stsKbbJ0qFDFFfscQuUbpzm9Pqx
+        Eh8c4PGLkuX0Nl+LDw4GJckUTRaO+OBQo+SKpitXfHAwKClfZuuN+OBgUDJV0NzxxAeHM5TFxhffGUpe
+        aFp5n+KDg0FRfHH8nfjgUKPoktztXnxwMCgFX7xdID441ChlRf7+ID44GBTNl21wFB8capSqot0xFB8c
+        /lE6Wa70IU5oH0Ziw/5cFebpoPUwHPbL04nCJKUgisWF3dgPB3gABc9v7fvBoBcnaVKdvkha2I39cPjx
+        oPrhusndcPinpIXd2N8gIusbTaFspKtR2SQAAAAASUVORK5CYII=
+</value>
+  </data>
+  <data name="normalButton1.MoveImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAAEUAAAAWCAYAAACWl1FwAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
+        dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFzSURBVFhH5djNSgJRGMZxL2P2gTfQFbZvHSEZFBEW
+        CEIQBEIgVFiS9qXWoDmp4/fHzDmjM2a+vU/QqUVX0DvwXxxn9fwYXJwYEcXWNzIWt83dcq7AsBv7LXgA
+        ZI0r71/aaqjCJf8o7sFu7IcDFwdK4vimrv1oSZXRnArdQFzYjf3pQkOzRxIoVWc6X5X6M7ruBGIr9mbU
+        9MIVe9hAcXvBO125WnxwgMcXSpcPF20tPjgYlI5eUK6lxAcHg9Lmw3nTFx8cDEpLLSjr+OKDg0FpqojO
+        Gp744GBQ3vyITutT8cHBoDheRCe1ifjgYFBe+ZCxJ+KDg0GpT0NKv4zFBweDUpuEdFQdiQ8OBsXmw2Fl
+        JD44/KCM53TwNBQfHAzKMx/2Hgfig8M3SrXYUasUfz67DwOxYf9dV5urg+RWzta4aEnxn83OfV9c2I39
+        cIAHUOJceTNbUfmW94GX0sJu7IcDPH5fXCe4EvfXxe5/D7ux3yKi2CfkPhTy27lqkwAAAABJRU5ErkJg
+        gg==
+</value>
+  </data>
+  <data name="normalButton1.NormalImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAAEUAAAAWCAYAAACWl1FwAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
+        dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGVSURBVFhH5di7agJRFIXhDSKoYBQEC8FCECwEQRBE
+        4uUVEtTiPKVlom2wttM6IfF+15njXHRnL19jD/zFmanWV8zAEDNTp9OJS6/Sm2QUht3YH4cHtdvtF6k7
+        mUwG1tqd3FR3YTf2w0FKUVOu6XT68Xgw3+8PtWH/bDYbCkeLGo1Gz/d9JwzvrL0gCKx49KlerxtIBUGo
+        PjjAg2q1mqDc2fN99cEBHlStVk0oB+t56oMDPKhSqZggDNm1N/XBAR5ULpeNvGD46rrqgwM8qFQqGV8O
+        56ujPjjAg4rFosFL5ni5qA8O8KBCoWBuns/701l9cIAH5fN5QfF4dzipDw7woFwuZ+zN483+oD44wIOy
+        2azB52i13asPDvCgTCZjHGt5sdmqDw7woHQ6bRzX8ny1UR8c4EHJZNJc5fC7XKsPDvCgRCLR2x9Pzt9q
+        zT+Lpdqw/3A6W/HoUywWa32Nx8OL4zwffM8X6sJu7IcDPCgajaak7udoNNjsdgc81BZ2Yz8c4PH8cR2J
+        ROJSU3qXjMKwG/vjzEz/skOI3Zqgv7AAAAAASUVORK5CYII=
+</value>
+  </data>
+  <data name="Save.DownImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAAEUAAAAWCAYAAACWl1FwAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
+        dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFcSURBVFhH5di7UsJAFMbxtDT6QMI76IAFT0npIE0K
+        GcRORxHklpAIBHLfbILV8XxeNsMznJ35F5vu+82kWYuILD4N7oq75roCw27sb/x5WBdc27btntY64o/i
+        DnZjPxy4S6A0R6PHO1WUNHc9ep4uxIXd2D8eP/XZowWUThBG+n3p0stsKbbJ0qFDFFfscQuUbpzm9Pqx
+        Eh8c4PGLkuX0Nl+LDw4GJckUTRaO+OBQo+SKpitXfHAwKClfZuuN+OBgUDJV0NzxxAeHM5TFxhffGUpe
+        aFp5n+KDg0FRfHH8nfjgUKPoktztXnxwMCgFX7xdID441ChlRf7+ID44GBTNl21wFB8capSqot0xFB8c
+        /lE6Wa70IU5oH0Ziw/5cFebpoPUwHPbL04nCJKUgisWF3dgPB3gABc9v7fvBoBcnaVKdvkha2I39cPjx
+        oPrhusndcPinpIXd2N8gIusbTaFspKtR2SQAAAAASUVORK5CYII=
+</value>
+  </data>
+  <data name="Save.MoveImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAAEUAAAAWCAYAAACWl1FwAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
+        dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFzSURBVFhH5djNSgJRGMZxL2P2gTfQFbZvHSEZFBEW
+        CEIQBEIgVFiS9qXWoDmp4/fHzDmjM2a+vU/QqUVX0DvwXxxn9fwYXJwYEcXWNzIWt83dcq7AsBv7LXgA
+        ZI0r71/aaqjCJf8o7sFu7IcDFwdK4vimrv1oSZXRnArdQFzYjf3pQkOzRxIoVWc6X5X6M7ruBGIr9mbU
+        9MIVe9hAcXvBO125WnxwgMcXSpcPF20tPjgYlI5eUK6lxAcHg9Lmw3nTFx8cDEpLLSjr+OKDg0FpqojO
+        Gp744GBQ3vyITutT8cHBoDheRCe1ifjgYFBe+ZCxJ+KDg0GpT0NKv4zFBweDUpuEdFQdiQ8OBsXmw2Fl
+        JD44/KCM53TwNBQfHAzKMx/2Hgfig8M3SrXYUasUfz67DwOxYf9dV5urg+RWzta4aEnxn83OfV9c2I39
+        cIAHUOJceTNbUfmW94GX0sJu7IcDPH5fXCe4EvfXxe5/D7ux3yKi2CfkPhTy27lqkwAAAABJRU5ErkJg
+        gg==
+</value>
+  </data>
+  <data name="Save.NormalImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAAEUAAAAWCAYAAACWl1FwAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
+        dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGVSURBVFhH5di7agJRFIXhDSKoYBQEC8FCECwEQRBE
+        4uUVEtTiPKVlom2wttM6IfF+15njXHRnL19jD/zFmanWV8zAEDNTp9OJS6/Sm2QUht3YH4cHtdvtF6k7
+        mUwG1tqd3FR3YTf2w0FKUVOu6XT68Xgw3+8PtWH/bDYbCkeLGo1Gz/d9JwzvrL0gCKx49KlerxtIBUGo
+        PjjAg2q1mqDc2fN99cEBHlStVk0oB+t56oMDPKhSqZggDNm1N/XBAR5ULpeNvGD46rrqgwM8qFQqGV8O
+        56ujPjjAg4rFosFL5ni5qA8O8KBCoWBuns/701l9cIAH5fN5QfF4dzipDw7woFwuZ+zN483+oD44wIOy
+        2azB52i13asPDvCgTCZjHGt5sdmqDw7woHQ6bRzX8ny1UR8c4EHJZNJc5fC7XKsPDvCgRCLR2x9Pzt9q
+        zT+Lpdqw/3A6W/HoUywWa32Nx8OL4zwffM8X6sJu7IcDPCgajaak7udoNNjsdgc81BZ2Yz8c4PH8cR2J
+        ROJSU3qXjMKwG/vjzEz/skOI3Zqgv7AAAAAASUVORK5CYII=
+</value>
+  </data>
+  <data name="CleanInfo.DownImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAAEUAAAAWCAYAAACWl1FwAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
+        dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFcSURBVFhH5di7UsJAFMbxtDT6QMI76IAFT0npIE0K
+        GcRORxHklpAIBHLfbILV8XxeNsMznJ35F5vu+82kWYuILD4N7oq75roCw27sb/x5WBdc27btntY64o/i
+        DnZjPxy4S6A0R6PHO1WUNHc9ep4uxIXd2D8eP/XZowWUThBG+n3p0stsKbbJ0qFDFFfscQuUbpzm9Pqx
+        Eh8c4PGLkuX0Nl+LDw4GJckUTRaO+OBQo+SKpitXfHAwKClfZuuN+OBgUDJV0NzxxAeHM5TFxhffGUpe
+        aFp5n+KDg0FRfHH8nfjgUKPoktztXnxwMCgFX7xdID441ChlRf7+ID44GBTNl21wFB8capSqot0xFB8c
+        /lE6Wa70IU5oH0Ziw/5cFebpoPUwHPbL04nCJKUgisWF3dgPB3gABc9v7fvBoBcnaVKdvkha2I39cPjx
+        oPrhusndcPinpIXd2N8gIusbTaFspKtR2SQAAAAASUVORK5CYII=
+</value>
+  </data>
+  <data name="CleanInfo.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        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
+</value>
+  </data>
+  <data name="CleanInfo.MoveImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAAEUAAAAWCAYAAACWl1FwAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
+        dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFzSURBVFhH5djNSgJRGMZxL2P2gTfQFbZvHSEZFBEW
+        CEIQBEIgVFiS9qXWoDmp4/fHzDmjM2a+vU/QqUVX0DvwXxxn9fwYXJwYEcXWNzIWt83dcq7AsBv7LXgA
+        ZI0r71/aaqjCJf8o7sFu7IcDFwdK4vimrv1oSZXRnArdQFzYjf3pQkOzRxIoVWc6X5X6M7ruBGIr9mbU
+        9MIVe9hAcXvBO125WnxwgMcXSpcPF20tPjgYlI5eUK6lxAcHg9Lmw3nTFx8cDEpLLSjr+OKDg0FpqojO
+        Gp744GBQ3vyITutT8cHBoDheRCe1ifjgYFBe+ZCxJ+KDg0GpT0NKv4zFBweDUpuEdFQdiQ8OBsXmw2Fl
+        JD44/KCM53TwNBQfHAzKMx/2Hgfig8M3SrXYUasUfz67DwOxYf9dV5urg+RWzta4aEnxn83OfV9c2I39
+        cIAHUOJceTNbUfmW94GX0sJu7IcDPH5fXCe4EvfXxe5/D7ux3yKi2CfkPhTy27lqkwAAAABJRU5ErkJg
+        gg==
+</value>
+  </data>
+  <data name="CleanInfo.NormalImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAAEUAAAAWCAYAAACWl1FwAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
+        dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGVSURBVFhH5di7agJRFIXhDSKoYBQEC8FCECwEQRBE
+        4uUVEtTiPKVlom2wttM6IfF+15njXHRnL19jD/zFmanWV8zAEDNTp9OJS6/Sm2QUht3YH4cHtdvtF6k7
+        mUwG1tqd3FR3YTf2w0FKUVOu6XT68Xgw3+8PtWH/bDYbCkeLGo1Gz/d9JwzvrL0gCKx49KlerxtIBUGo
+        PjjAg2q1mqDc2fN99cEBHlStVk0oB+t56oMDPKhSqZggDNm1N/XBAR5ULpeNvGD46rrqgwM8qFQqGV8O
+        56ujPjjAg4rFosFL5ni5qA8O8KBCoWBuns/701l9cIAH5fN5QfF4dzipDw7woFwuZ+zN483+oD44wIOy
+        2azB52i13asPDvCgTCZjHGt5sdmqDw7woHQ6bRzX8ny1UR8c4EHJZNJc5fC7XKsPDvCgRCLR2x9Pzt9q
+        zT+Lpdqw/3A6W/HoUywWa32Nx8OL4zwffM8X6sJu7IcDPCgajaak7udoNNjsdgc81BZ2Yz8c4PH8cR2J
+        ROJSU3qXjMKwG/vjzEz/skOI3Zqgv7AAAAAASUVORK5CYII=
+</value>
+  </data>
+  <data name="ChooseedReject.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAACUAAAAXCAYAAACMLIalAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6
+        JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAB3RJTUUH3wYWEw4tELKVawAAAslJREFU
+        SEuN1kuojVEYxvHtco77JUUpURQliQxcE+0BMlIkBpJQJmJwBqRMKAZKykSMkJEwUaIwcElIKQzccz2i
+        3HP3f77Wu8679n6d7a3f4Fuf5znZ+9trfbV6vb4bD7vxBPvQF/r3tcZJ65NwFY8R9TzCTcyCZVJDw3Bj
+        LM7jTze+YiPCsrTWEx34iajDXMRoNPXkSTcn4w6iEvMWS2CZ1JA7RJ/mAUR57xiGoOjJYzewEK8RlZgH
+        mI6cs3FrI9Hqk/+NXWhD0VONLSbr8BlRkdFzo68854KeabiPKG/0SGxAzhXjbvTGTvxCVGSOYxiKMrtO
+        luE9orzpxGLkXDHuxiAcRlTi7UUfFGV2jR7YhlYP/j1MRc7m8YsYhQuISsw3bEbO2bi1gTiCKO/pF6m/
+        WfRUY4vJFNxFVGLeYSlyzsatjcEVRHnvKPQtpQY3WnQWodUvUpviTORc0DMbTxHljZ5jPc9tVUHjcMNb
+        j4+Iisw1jEeVsbHrZBU+IMqbT+hI8ebhphmAs4hKvO2oMn5sDf1xBlHW60zRcrjhrUGr/+ENTECVsbHr
+        ZAVabRFfsCXFu4ZFbz5eICowzzEPORf0aDPVaRDlvT1orwpsWPD0jOhUj8JGz8Bq5JyNWxuBc4jy3ilU
+        G3IxWkh08ySisNGvZQd6ocrZ2DXaodeeKO/dQtPX74t0SOpjjMKeTvrBKIrsOtFZqjMuypuX0ORcVKRD
+        slXRZWhT7Cph7DqZg2eI8kYP9lrkXFS0AP+zWc5Aztm4NR0ZlxDljV5f9Narl4CixxdNxG1EBUY/6eXI
+        ORu31g+HEOU9vWkMRdFTTVocjtOIwuYHtkKnf1Fk18kmfEfUYa5jHHKuGBa0Y+9HFPYOQrtyU4mtQW+v
+        bxDljc7Auci5pmFxJbSx6VegjbLRK+j1Nr/si5+0pm3kBPTiFvWIHvx/v21WU6v9BRMV4fPlTpe/AAAA
+        AElFTkSuQmCC
+</value>
+  </data>
+  <data name="WaitReject.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAACUAAAAXCAYAAACMLIalAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6
+        JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAB3RJTUUH3wYWEw4tELKVawAAAs1JREFU
+        SEuN10uoTVEcx3HvV3nkEUPlFVKUDBDliGImiZQkiYkBGSgZGEiiyIASRgp5JVIGhlLkmTJC5K2833l8
+        f9v6rbP2PX+d+6/PYP3X/f3v7Zy91963S1SNRqM0EVfwCA8CD3EbM1FlynIP3bEN/5sj2jucovViwwbj
+        DP60sQu9UOVcXidL8Q5R3u5gSoo3i6b1xG5E4dIFDEGVc3mdTIc+hShvzzEXaUIqNQpr8RXRALuPSagy
+        ZbmHkbiKKG9fsAb1OW4k8/AS0QDTV7EIOecqegNxHFHefmMn9M0053iRTMBdRAPsF7aiK5qDKK/RA9uh
+        XxrNsFMYhNqcctBQ6BqJwqUTGIDaIK+TVfiMKG/XMQo513FQb+xDFC7dwhjUBpVrzMEzRHl7glnIuVxF
+        cz2+IxpgrzEfLYOK3jjcRJS3T1iBljlVpeZCvEE0wH5gA1oGFT0dDecQ5U3Xow5RHaa1ObloTsM9RANK
+        h9AXLYNST3t7EWVLR9Ef8R+kYuMkonBJx8Nk+A9I6X+VerPxAVHeXmEqwjm52NApqudONMT0ke9By6NE
+        lXq6G48gypuOh/0IP/FcaXMx3iIaZN+wDs6kCXmGjMAlRHn7ic3ohtqcXGlDh+BG6GKOBtkLVM8nK2aY
+        3ir0YI3y9h7LkXO1KjY6e07pdh+L2sByDZ1TTxHlTeeUrsOcy1U2oVv6LKIhpdNoeTR4negc+ogobzeg
+        cy3ncpVNjMY1RENMF+wO6PlWG+Y1dM1sga6haIbpsTYMOZurbGIG2r3/6Lm2EjnnKnr9cBBRvnQA8R3p
+        ZrIE7d4UdV3k12BxFb3huIgob74jq7eOllIz0Q9sQrs7Ui9wepGrci6vk/HQgzzKm+7IZUgTOpQ2kj7o
+        zB15DHqhq3IurxPdaY8R5U37C1K8XmyU9PGfh25xfV0R/UeTz52y3EtWQ9dqNEP4HY3LfwGra+NvPdw7
+        fgAAAABJRU5ErkJggg==
+</value>
+  </data>
+</root>

+ 25 - 0
UAS_MES_LT/FunctionCode/Packing/Packing_PackageCollection.cs

@@ -410,6 +410,31 @@ namespace UAS_MES_NEW.Packing
                                     //pa_outboxcode.Text = LogicHandler.GetOutBoxCode("PACKAGE", ms_makecode, pr_code.Text, User.UserCode);
                                     LogicHandler.DoCommandLog(Tag.ToString(), User.UserCode, oMakeCode, User.UserLineCode, User.UserSourceCode, "卡通箱采集", "卡通箱" + pa_outboxcode.Text + "自动生成", sn_code.Text, PreFix.Text + ":" + OutBoxLength.Text);
                                 }
+                                if (dh.CheckExist("PACKBIND", "pkb_sn='" + sn_code.Text + "'") || dh.CheckExist("PACKBIND", "pkb_box='" + pa_outboxcode.Text + "'"))
+                                {
+                                    if (!dh.CheckExist("PACKBIND", "pkb_sn='" + sn_code.Text + "' and pkb_box ='" + pa_outboxcode.Text + "' "))
+                                    {
+                                        OperateResult.AppendText(">>SN号" + sn_code.Text + ",卡通箱号" + pa_outboxcode.Text + "不属于卡通箱绑定关系\n", Color.Red, sn_code);
+                                        return;
+                                    }
+                                    if (!dh.CheckExist("packagedetail", "pd_outboxcode='" + pa_outboxcode.Text + "'"))
+                                    {
+                                        if (dh.getFieldDataByCondition("PACKBIND", "min(pkb_sn)", "pkb_box ='" + pa_outboxcode.Text + "'").ToString() != sn_code.Text)
+                                        {
+                                            OperateResult.AppendText(">>SN号" + sn_code.Text + "不属于卡通箱号" + pa_outboxcode.Text + "关联第一个号\n", Color.Red, sn_code);
+                                            return;
+                                        }
+                                    }
+                                    else
+                                    {
+                                        string maxout = dh.getFieldDataByCondition("packagedetail", "max(pd_barcode)", "pd_outboxcode ='" + pa_outboxcode.Text + "'").ToString();
+                                        if (int.Parse(dh.getFieldDataByCondition("PACKBIND", "count(1)", "pkb_sn between '" + maxout + "' and '" + sn_code.Text + "'").ToString()) > 2)
+                                        {
+                                            OperateResult.AppendText(">>SN号" + sn_code.Text + "需要顺序采集进卡通箱" + pa_outboxcode.Text + ",暂时无法采集此号\n", Color.Red, sn_code);
+                                            return;
+                                        }
+                                    }
+                                }
                                 //if (!CheckOutBoxLength(ms_salecode_text))
                                 //{
                                 //    return;

File diff suppressed because it is too large
+ 240 - 162
UAS_MES_LT/FunctionCode/Packing/Packing_PackageCollectionWeigh.Designer.cs


+ 2 - 0
UAS_MES_LT/FunctionCode/Special/Special_Reset.cs

@@ -58,6 +58,7 @@ namespace UAS_MES_NEW.Special
                 dh.ExecuteSql("update makeserial set ms_bs = '',ms_key='',ms_keyid='',MS_HARDWREID='',MS_KEYSTATEID='',MS_BIOS='',ms_ec='',ms_uuid='',MS_KEYPARTNUMBER='',ms_bt='',ms_mac='',ms_imei='' where ms_sncode = '" + sncode + "' and ms_makecode = '" + ms_makecode.Text + "'", "update");
             }
             dh.ExecuteSql("delete makebad where mb_sncode = '" + sncode + "' and mb_status = 0", "delete");
+            dh.ExecuteSql("delete from LABELPRINTLOG where lpl_value = '" + sncode + "'", "delete");
             sql.Clear();
             sql.Append("update craftmaterial set cm_status=-1,cm_lastdeco=-1,cm_dropman='" + User.UserCode + "',");
             sql.Append("cm_dropdate =sysdate,CM_REMARK = '重置站点拆解',cm_dropstep='" + User.CurrentStepCode + "',");
@@ -101,6 +102,7 @@ namespace UAS_MES_NEW.Special
                        dh.ExecuteSql("insert into PACKAGEBACKUP select * from package where pa_outboxcode='" + sb[i].ToString() + "'", "insert");
                        dh.ExecuteSql("insert into PACKAGEBACKUPDETAIL select * from packagedetail where pd_outboxcode='" + sb[i].ToString() + "'", "insert");
                        dh.ExecuteSql("delete from package where pa_outboxcode = '" + sb[i].ToString() + "'", "delete");
+                       dh.ExecuteSql("delete from LABELPRINTLOG where lpl_value = '" + sb[i].ToString() + "'", "delete");
                         //删除箱的明细
                         dh.ExecuteSql("delete from packagedetail where pd_outboxcode='" + sb[i].ToString() + "'", "delete");
                         LogicHandler.DoCommandLog(Tag.ToString(), User.UserCode, ms_makecode.Text, User.UserLineCode, User.UserSourceCode, "站点重置", "站点重置至" + stname, sb[i].ToString(), "");

+ 197 - 204
UAS_MES_LT/FunctionCode/Warehouse/Warehouse_FinishedProductOut.Designer.cs

@@ -33,17 +33,6 @@
             this.pi_inoutno_label = new System.Windows.Forms.Label();
             this.pi_titile_label = new System.Windows.Forms.Label();
             this.pi_title = new System.Windows.Forms.Label();
-            this.panel1 = new System.Windows.Forms.Panel();
-            this.datacount = new UAS_MES_NEW.CustomControl.ValueLabel.ValueLabel();
-            this.Label = new System.Windows.Forms.Label();
-            this.boxqty = new UAS_MES_NEW.CustomControl.ValueLabel.ValueLabel();
-            this.getqty = new UAS_MES_NEW.CustomControl.ValueLabel.ValueLabel();
-            this.ungetqty = new UAS_MES_NEW.CustomControl.ValueLabel.ValueLabel();
-            this.outqty = new UAS_MES_NEW.CustomControl.ValueLabel.ValueLabel();
-            this.label10 = new System.Windows.Forms.Label();
-            this.label8 = new System.Windows.Forms.Label();
-            this.label6 = new System.Windows.Forms.Label();
-            this.label4 = new System.Windows.Forms.Label();
             this.palletBtn = new System.Windows.Forms.RadioButton();
             this.serBtn = new System.Windows.Forms.RadioButton();
             this.bigboxBtn = new System.Windows.Forms.RadioButton();
@@ -68,7 +57,16 @@
             this.NewProdInOut = new UAS_MES_NEW.CustomControl.ButtonUtil.NormalButton();
             this.ProdDetail = new UAS_MES_NEW.CustomControl.ButtonUtil.NormalButton();
             this.pi_inoutno = new UAS_MES_NEW.CustomControl.TextBoxWithIcon.SearchTextBox();
-            this.panel1.SuspendLayout();
+            this.datacount = new UAS_MES_NEW.CustomControl.ValueLabel.ValueLabel();
+            this.Label = new System.Windows.Forms.Label();
+            this.boxqty = new UAS_MES_NEW.CustomControl.ValueLabel.ValueLabel();
+            this.getqty = new UAS_MES_NEW.CustomControl.ValueLabel.ValueLabel();
+            this.ungetqty = new UAS_MES_NEW.CustomControl.ValueLabel.ValueLabel();
+            this.outqty = new UAS_MES_NEW.CustomControl.ValueLabel.ValueLabel();
+            this.label10 = new System.Windows.Forms.Label();
+            this.label8 = new System.Windows.Forms.Label();
+            this.label6 = new System.Windows.Forms.Label();
+            this.label4 = new System.Windows.Forms.Label();
             ((System.ComponentModel.ISupportInitialize)(this.bindingSource)).BeginInit();
             ((System.ComponentModel.ISupportInitialize)(this.InOutDetailDGV)).BeginInit();
             this.SuspendLayout();
@@ -77,9 +75,10 @@
             // 
             this.pi_inoutno_label.AutoSize = true;
             this.pi_inoutno_label.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
-            this.pi_inoutno_label.Location = new System.Drawing.Point(5, 20);
+            this.pi_inoutno_label.Location = new System.Drawing.Point(8, 30);
+            this.pi_inoutno_label.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
             this.pi_inoutno_label.Name = "pi_inoutno_label";
-            this.pi_inoutno_label.Size = new System.Drawing.Size(74, 21);
+            this.pi_inoutno_label.Size = new System.Drawing.Size(110, 31);
             this.pi_inoutno_label.TabIndex = 211;
             this.pi_inoutno_label.Text = "出货单号";
             // 
@@ -87,9 +86,10 @@
             // 
             this.pi_titile_label.AutoSize = true;
             this.pi_titile_label.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
-            this.pi_titile_label.Location = new System.Drawing.Point(252, 20);
+            this.pi_titile_label.Location = new System.Drawing.Point(378, 30);
+            this.pi_titile_label.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
             this.pi_titile_label.Name = "pi_titile_label";
-            this.pi_titile_label.Size = new System.Drawing.Size(74, 21);
+            this.pi_titile_label.Size = new System.Drawing.Size(110, 31);
             this.pi_titile_label.TabIndex = 212;
             this.pi_titile_label.Text = "客户名称";
             // 
@@ -97,144 +97,20 @@
             // 
             this.pi_title.AutoSize = true;
             this.pi_title.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
-            this.pi_title.Location = new System.Drawing.Point(326, 23);
+            this.pi_title.Location = new System.Drawing.Point(489, 34);
+            this.pi_title.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
             this.pi_title.Name = "pi_title";
-            this.pi_title.Size = new System.Drawing.Size(0, 17);
+            this.pi_title.Size = new System.Drawing.Size(0, 24);
             this.pi_title.TabIndex = 213;
             // 
-            // panel1
-            // 
-            this.panel1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
-            this.panel1.Controls.Add(this.datacount);
-            this.panel1.Controls.Add(this.Label);
-            this.panel1.Controls.Add(this.boxqty);
-            this.panel1.Controls.Add(this.getqty);
-            this.panel1.Controls.Add(this.ungetqty);
-            this.panel1.Controls.Add(this.outqty);
-            this.panel1.Controls.Add(this.label10);
-            this.panel1.Controls.Add(this.label8);
-            this.panel1.Controls.Add(this.label6);
-            this.panel1.Controls.Add(this.label4);
-            this.panel1.Location = new System.Drawing.Point(563, 66);
-            this.panel1.Margin = new System.Windows.Forms.Padding(2);
-            this.panel1.Name = "panel1";
-            this.panel1.Size = new System.Drawing.Size(169, 195);
-            this.panel1.TabIndex = 217;
-            // 
-            // datacount
-            // 
-            this.datacount.AutoSize = true;
-            this.datacount.CutLength = null;
-            this.datacount.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
-            this.datacount.Location = new System.Drawing.Point(95, 155);
-            this.datacount.MaximumSize = new System.Drawing.Size(200, 0);
-            this.datacount.Name = "datacount";
-            this.datacount.Size = new System.Drawing.Size(0, 21);
-            this.datacount.TabIndex = 230;
-            // 
-            // Label
-            // 
-            this.Label.AutoSize = true;
-            this.Label.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
-            this.Label.Location = new System.Drawing.Point(9, 155);
-            this.Label.Name = "Label";
-            this.Label.Size = new System.Drawing.Size(74, 21);
-            this.Label.TabIndex = 229;
-            this.Label.Text = "当前明细";
-            // 
-            // boxqty
-            // 
-            this.boxqty.AutoSize = true;
-            this.boxqty.CutLength = null;
-            this.boxqty.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
-            this.boxqty.Location = new System.Drawing.Point(95, 120);
-            this.boxqty.MaximumSize = new System.Drawing.Size(200, 0);
-            this.boxqty.Name = "boxqty";
-            this.boxqty.Size = new System.Drawing.Size(0, 21);
-            this.boxqty.TabIndex = 227;
-            // 
-            // getqty
-            // 
-            this.getqty.AutoSize = true;
-            this.getqty.CutLength = null;
-            this.getqty.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
-            this.getqty.Location = new System.Drawing.Point(95, 84);
-            this.getqty.MaximumSize = new System.Drawing.Size(200, 0);
-            this.getqty.Name = "getqty";
-            this.getqty.Size = new System.Drawing.Size(0, 21);
-            this.getqty.TabIndex = 226;
-            // 
-            // ungetqty
-            // 
-            this.ungetqty.AutoSize = true;
-            this.ungetqty.CutLength = null;
-            this.ungetqty.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
-            this.ungetqty.Location = new System.Drawing.Point(95, 44);
-            this.ungetqty.MaximumSize = new System.Drawing.Size(200, 0);
-            this.ungetqty.Name = "ungetqty";
-            this.ungetqty.Size = new System.Drawing.Size(0, 21);
-            this.ungetqty.TabIndex = 225;
-            // 
-            // outqty
-            // 
-            this.outqty.AutoSize = true;
-            this.outqty.CutLength = null;
-            this.outqty.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
-            this.outqty.Location = new System.Drawing.Point(95, 11);
-            this.outqty.MaximumSize = new System.Drawing.Size(200, 0);
-            this.outqty.Name = "outqty";
-            this.outqty.Size = new System.Drawing.Size(0, 21);
-            this.outqty.TabIndex = 224;
-            // 
-            // label10
-            // 
-            this.label10.AutoSize = true;
-            this.label10.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
-            this.label10.Location = new System.Drawing.Point(9, 120);
-            this.label10.Name = "label10";
-            this.label10.Size = new System.Drawing.Size(58, 21);
-            this.label10.TabIndex = 222;
-            this.label10.Text = "总箱数";
-            // 
-            // label8
-            // 
-            this.label8.AutoSize = true;
-            this.label8.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
-            this.label8.Location = new System.Drawing.Point(9, 84);
-            this.label8.Name = "label8";
-            this.label8.Size = new System.Drawing.Size(74, 21);
-            this.label8.TabIndex = 220;
-            this.label8.Text = "已采集数";
-            // 
-            // 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(9, 44);
-            this.label6.Name = "label6";
-            this.label6.Size = new System.Drawing.Size(74, 21);
-            this.label6.TabIndex = 218;
-            this.label6.Text = "待采集数";
-            // 
-            // label4
-            // 
-            this.label4.AutoSize = true;
-            this.label4.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
-            this.label4.Location = new System.Drawing.Point(9, 11);
-            this.label4.Name = "label4";
-            this.label4.Size = new System.Drawing.Size(74, 21);
-            this.label4.TabIndex = 218;
-            this.label4.Text = "出货数量";
-            // 
             // palletBtn
             // 
             this.palletBtn.AutoSize = true;
             this.palletBtn.Checked = true;
             this.palletBtn.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
-            this.palletBtn.Location = new System.Drawing.Point(14, 427);
-            this.palletBtn.Margin = new System.Windows.Forms.Padding(2);
+            this.palletBtn.Location = new System.Drawing.Point(21, 640);
             this.palletBtn.Name = "palletBtn";
-            this.palletBtn.Size = new System.Drawing.Size(76, 25);
+            this.palletBtn.Size = new System.Drawing.Size(111, 35);
             this.palletBtn.TabIndex = 219;
             this.palletBtn.TabStop = true;
             this.palletBtn.Text = "栈板号";
@@ -245,10 +121,9 @@
             // 
             this.serBtn.AutoSize = true;
             this.serBtn.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
-            this.serBtn.Location = new System.Drawing.Point(183, 427);
-            this.serBtn.Margin = new System.Windows.Forms.Padding(2);
+            this.serBtn.Location = new System.Drawing.Point(274, 640);
             this.serBtn.Name = "serBtn";
-            this.serBtn.Size = new System.Drawing.Size(108, 25);
+            this.serBtn.Size = new System.Drawing.Size(159, 35);
             this.serBtn.TabIndex = 220;
             this.serBtn.Text = "单台序列号";
             this.serBtn.UseVisualStyleBackColor = true;
@@ -258,10 +133,9 @@
             // 
             this.bigboxBtn.AutoSize = true;
             this.bigboxBtn.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
-            this.bigboxBtn.Location = new System.Drawing.Point(97, 427);
-            this.bigboxBtn.Margin = new System.Windows.Forms.Padding(2);
+            this.bigboxBtn.Location = new System.Drawing.Point(146, 640);
             this.bigboxBtn.Name = "bigboxBtn";
-            this.bigboxBtn.Size = new System.Drawing.Size(60, 25);
+            this.bigboxBtn.Size = new System.Drawing.Size(87, 35);
             this.bigboxBtn.TabIndex = 221;
             this.bigboxBtn.Text = "箱号";
             this.bigboxBtn.UseVisualStyleBackColor = true;
@@ -271,26 +145,29 @@
             // 
             this.pi_id.AutoSize = true;
             this.pi_id.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
-            this.pi_id.Location = new System.Drawing.Point(460, 21);
+            this.pi_id.Location = new System.Drawing.Point(690, 32);
+            this.pi_id.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
             this.pi_id.Name = "pi_id";
-            this.pi_id.Size = new System.Drawing.Size(0, 21);
+            this.pi_id.Size = new System.Drawing.Size(0, 31);
             this.pi_id.TabIndex = 229;
             this.pi_id.Visible = false;
             // 
             // pi_type
             // 
             this.pi_type.AutoSize = true;
-            this.pi_type.Location = new System.Drawing.Point(235, 48);
+            this.pi_type.Location = new System.Drawing.Point(352, 72);
+            this.pi_type.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
             this.pi_type.Name = "pi_type";
-            this.pi_type.Size = new System.Drawing.Size(0, 12);
+            this.pi_type.Size = new System.Drawing.Size(0, 18);
             this.pi_type.TabIndex = 230;
             this.pi_type.Visible = false;
             // 
             // Search
             // 
-            this.Search.Location = new System.Drawing.Point(203, 51);
+            this.Search.Location = new System.Drawing.Point(304, 76);
+            this.Search.Margin = new System.Windows.Forms.Padding(4);
             this.Search.Name = "Search";
-            this.Search.Size = new System.Drawing.Size(68, 21);
+            this.Search.Size = new System.Drawing.Size(102, 32);
             this.Search.TabIndex = 239;
             this.Search.Text = "查询";
             this.Search.UseVisualStyleBackColor = true;
@@ -299,32 +176,34 @@
             // pallecode
             // 
             this.pallecode.BackColor = System.Drawing.Color.Transparent;
-            this.pallecode.Location = new System.Drawing.Point(9, 51);
+            this.pallecode.Location = new System.Drawing.Point(14, 76);
+            this.pallecode.Margin = new System.Windows.Forms.Padding(4);
             this.pallecode.Name = "pallecode";
             this.pallecode.PlaceHolder = "栈板/箱搜索";
-            this.pallecode.Size = new System.Drawing.Size(170, 28);
+            this.pallecode.Size = new System.Drawing.Size(255, 42);
             this.pallecode.TabIndex = 238;
             this.pallecode.UserControlTextChanged += new UAS_MES_NEW.CustomControl.TextBoxWithIcon.TextBoxWithPlaceHolder.OnTextChange(this.pallecode_UserControlTextChanged);
             // 
             // OperateResult
             // 
             this.OperateResult.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
-            this.OperateResult.Location = new System.Drawing.Point(563, 266);
+            this.OperateResult.Location = new System.Drawing.Point(844, 399);
+            this.OperateResult.Margin = new System.Windows.Forms.Padding(4);
             this.OperateResult.Name = "OperateResult";
-            this.OperateResult.Size = new System.Drawing.Size(170, 245);
+            this.OperateResult.Size = new System.Drawing.Size(253, 366);
             this.OperateResult.TabIndex = 228;
             this.OperateResult.Text = "";
             // 
             // pi_type_check
             // 
+            this.pi_type_check.AllPower = null;
             this.pi_type_check.AutoSize = true;
             this.pi_type_check.Enabled = false;
             this.pi_type_check.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
-            this.pi_type_check.Location = new System.Drawing.Point(453, 427);
-            this.pi_type_check.Margin = new System.Windows.Forms.Padding(2);
+            this.pi_type_check.Location = new System.Drawing.Point(680, 640);
             this.pi_type_check.Name = "pi_type_check";
             this.pi_type_check.Power = null;
-            this.pi_type_check.Size = new System.Drawing.Size(109, 25);
+            this.pi_type_check.Size = new System.Drawing.Size(160, 35);
             this.pi_type_check.TabIndex = 225;
             this.pi_type_check.Text = "按订单出货";
             this.pi_type_check.UseVisualStyleBackColor = true;
@@ -337,13 +216,12 @@
             this.Clean.Font = new System.Drawing.Font("微软雅黑", 9F);
             this.Clean.Image = null;
             this.Clean.IsShowBorder = true;
-            this.Clean.Location = new System.Drawing.Point(479, 475);
-            this.Clean.Margin = new System.Windows.Forms.Padding(2);
+            this.Clean.Location = new System.Drawing.Point(718, 712);
             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(74, 20);
+            this.Clean.Size = new System.Drawing.Size(111, 30);
             this.Clean.TabIndex = 224;
             this.Clean.Text = "取消采集";
             this.Clean.UseVisualStyleBackColor = false;
@@ -351,13 +229,13 @@
             // 
             // cancel
             // 
+            this.cancel.AllPower = null;
             this.cancel.AutoSize = true;
             this.cancel.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
-            this.cancel.Location = new System.Drawing.Point(150, 475);
-            this.cancel.Margin = new System.Windows.Forms.Padding(2);
+            this.cancel.Location = new System.Drawing.Point(225, 712);
             this.cancel.Name = "cancel";
             this.cancel.Power = null;
-            this.cancel.Size = new System.Drawing.Size(61, 25);
+            this.cancel.Size = new System.Drawing.Size(88, 35);
             this.cancel.TabIndex = 223;
             this.cancel.Text = "取消";
             this.cancel.UseVisualStyleBackColor = true;
@@ -367,11 +245,10 @@
             this.input.AllPower = null;
             this.input.BackColor = System.Drawing.Color.White;
             this.input.ID = null;
-            this.input.Location = new System.Drawing.Point(9, 475);
-            this.input.Margin = new System.Windows.Forms.Padding(2);
+            this.input.Location = new System.Drawing.Point(14, 712);
             this.input.Name = "input";
             this.input.Power = null;
-            this.input.Size = new System.Drawing.Size(125, 21);
+            this.input.Size = new System.Drawing.Size(186, 28);
             this.input.Str = null;
             this.input.Str1 = null;
             this.input.Str2 = null;
@@ -390,11 +267,10 @@
             this.pr_spec,
             this.blank});
             this.InOutDetailDGV.EnableContentClick = true;
-            this.InOutDetailDGV.Location = new System.Drawing.Point(9, 84);
-            this.InOutDetailDGV.Margin = new System.Windows.Forms.Padding(2);
+            this.InOutDetailDGV.Location = new System.Drawing.Point(14, 126);
             this.InOutDetailDGV.Name = "InOutDetailDGV";
             this.InOutDetailDGV.RowTemplate.Height = 27;
-            this.InOutDetailDGV.Size = new System.Drawing.Size(544, 339);
+            this.InOutDetailDGV.Size = new System.Drawing.Size(816, 508);
             this.InOutDetailDGV.TabIndex = 218;
             this.InOutDetailDGV.DataSourceChanged += new System.EventHandler(this.InOutDetailDGV_DataSourceChanged);
             // 
@@ -453,13 +329,12 @@
             this.ConfirmOut.Font = new System.Drawing.Font("微软雅黑", 9F);
             this.ConfirmOut.Image = null;
             this.ConfirmOut.IsShowBorder = true;
-            this.ConfirmOut.Location = new System.Drawing.Point(563, 20);
-            this.ConfirmOut.Margin = new System.Windows.Forms.Padding(2);
+            this.ConfirmOut.Location = new System.Drawing.Point(844, 30);
             this.ConfirmOut.MoveImage = ((System.Drawing.Image)(resources.GetObject("ConfirmOut.MoveImage")));
             this.ConfirmOut.Name = "ConfirmOut";
             this.ConfirmOut.NormalImage = ((System.Drawing.Image)(resources.GetObject("ConfirmOut.NormalImage")));
             this.ConfirmOut.Power = null;
-            this.ConfirmOut.Size = new System.Drawing.Size(75, 27);
+            this.ConfirmOut.Size = new System.Drawing.Size(112, 40);
             this.ConfirmOut.TabIndex = 216;
             this.ConfirmOut.Text = "确认出货";
             this.ConfirmOut.UseVisualStyleBackColor = false;
@@ -473,16 +348,16 @@
             this.NewProdInOut.Font = new System.Drawing.Font("微软雅黑", 9F);
             this.NewProdInOut.Image = null;
             this.NewProdInOut.IsShowBorder = true;
-            this.NewProdInOut.Location = new System.Drawing.Point(654, 21);
-            this.NewProdInOut.Margin = new System.Windows.Forms.Padding(2);
+            this.NewProdInOut.Location = new System.Drawing.Point(981, 32);
             this.NewProdInOut.MoveImage = ((System.Drawing.Image)(resources.GetObject("NewProdInOut.MoveImage")));
             this.NewProdInOut.Name = "NewProdInOut";
             this.NewProdInOut.NormalImage = ((System.Drawing.Image)(resources.GetObject("NewProdInOut.NormalImage")));
             this.NewProdInOut.Power = null;
-            this.NewProdInOut.Size = new System.Drawing.Size(75, 26);
+            this.NewProdInOut.Size = new System.Drawing.Size(112, 39);
             this.NewProdInOut.TabIndex = 215;
             this.NewProdInOut.Text = "新增出货单";
             this.NewProdInOut.UseVisualStyleBackColor = false;
+            this.NewProdInOut.Visible = false;
             this.NewProdInOut.Click += new System.EventHandler(this.NewProdInOut_Click);
             // 
             // ProdDetail
@@ -493,13 +368,12 @@
             this.ProdDetail.Font = new System.Drawing.Font("微软雅黑", 9F);
             this.ProdDetail.Image = null;
             this.ProdDetail.IsShowBorder = true;
-            this.ProdDetail.Location = new System.Drawing.Point(488, 20);
-            this.ProdDetail.Margin = new System.Windows.Forms.Padding(2);
+            this.ProdDetail.Location = new System.Drawing.Point(732, 30);
             this.ProdDetail.MoveImage = ((System.Drawing.Image)(resources.GetObject("ProdDetail.MoveImage")));
             this.ProdDetail.Name = "ProdDetail";
             this.ProdDetail.NormalImage = ((System.Drawing.Image)(resources.GetObject("ProdDetail.NormalImage")));
             this.ProdDetail.Power = null;
-            this.ProdDetail.Size = new System.Drawing.Size(65, 27);
+            this.ProdDetail.Size = new System.Drawing.Size(98, 40);
             this.ProdDetail.TabIndex = 214;
             this.ProdDetail.Text = "产品明细";
             this.ProdDetail.UseVisualStyleBackColor = false;
@@ -512,23 +386,147 @@
             this.pi_inoutno.Condition = null;
             this.pi_inoutno.DBTitle = null;
             this.pi_inoutno.FormName = null;
-            this.pi_inoutno.Location = new System.Drawing.Point(77, 21);
-            this.pi_inoutno.Margin = new System.Windows.Forms.Padding(2);
+            this.pi_inoutno.Location = new System.Drawing.Point(116, 32);
             this.pi_inoutno.Name = "pi_inoutno";
             this.pi_inoutno.Power = null;
             this.pi_inoutno.ReturnData = null;
             this.pi_inoutno.SelectField = null;
             this.pi_inoutno.SetValueField = null;
-            this.pi_inoutno.Size = new System.Drawing.Size(158, 20);
+            this.pi_inoutno.Size = new System.Drawing.Size(237, 30);
             this.pi_inoutno.TabIndex = 0;
             this.pi_inoutno.TableName = null;
             this.pi_inoutno.TextBoxEnable = true;
             // 
+            // datacount
+            // 
+            this.datacount.AutoSize = true;
+            this.datacount.CutLength = null;
+            this.datacount.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.datacount.Location = new System.Drawing.Point(991, 343);
+            this.datacount.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+            this.datacount.MaximumSize = new System.Drawing.Size(300, 0);
+            this.datacount.Name = "datacount";
+            this.datacount.Size = new System.Drawing.Size(0, 31);
+            this.datacount.TabIndex = 249;
+            // 
+            // Label
+            // 
+            this.Label.AutoSize = true;
+            this.Label.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.Label.Location = new System.Drawing.Point(863, 343);
+            this.Label.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+            this.Label.Name = "Label";
+            this.Label.Size = new System.Drawing.Size(110, 31);
+            this.Label.TabIndex = 248;
+            this.Label.Text = "当前明细";
+            // 
+            // boxqty
+            // 
+            this.boxqty.AutoSize = true;
+            this.boxqty.CutLength = null;
+            this.boxqty.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.boxqty.Location = new System.Drawing.Point(991, 291);
+            this.boxqty.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+            this.boxqty.MaximumSize = new System.Drawing.Size(300, 0);
+            this.boxqty.Name = "boxqty";
+            this.boxqty.Size = new System.Drawing.Size(0, 31);
+            this.boxqty.TabIndex = 247;
+            // 
+            // getqty
+            // 
+            this.getqty.AutoSize = true;
+            this.getqty.CutLength = null;
+            this.getqty.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.getqty.Location = new System.Drawing.Point(991, 237);
+            this.getqty.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+            this.getqty.MaximumSize = new System.Drawing.Size(300, 0);
+            this.getqty.Name = "getqty";
+            this.getqty.Size = new System.Drawing.Size(0, 31);
+            this.getqty.TabIndex = 246;
+            // 
+            // ungetqty
+            // 
+            this.ungetqty.AutoSize = true;
+            this.ungetqty.CutLength = null;
+            this.ungetqty.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.ungetqty.Location = new System.Drawing.Point(991, 177);
+            this.ungetqty.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+            this.ungetqty.MaximumSize = new System.Drawing.Size(300, 0);
+            this.ungetqty.Name = "ungetqty";
+            this.ungetqty.Size = new System.Drawing.Size(0, 31);
+            this.ungetqty.TabIndex = 245;
+            // 
+            // outqty
+            // 
+            this.outqty.AutoSize = true;
+            this.outqty.CutLength = null;
+            this.outqty.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.outqty.Location = new System.Drawing.Point(991, 127);
+            this.outqty.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+            this.outqty.MaximumSize = new System.Drawing.Size(300, 0);
+            this.outqty.Name = "outqty";
+            this.outqty.Size = new System.Drawing.Size(0, 31);
+            this.outqty.TabIndex = 244;
+            // 
+            // label10
+            // 
+            this.label10.AutoSize = true;
+            this.label10.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.label10.Location = new System.Drawing.Point(863, 291);
+            this.label10.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+            this.label10.Name = "label10";
+            this.label10.Size = new System.Drawing.Size(86, 31);
+            this.label10.TabIndex = 243;
+            this.label10.Text = "总箱数";
+            // 
+            // label8
+            // 
+            this.label8.AutoSize = true;
+            this.label8.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.label8.Location = new System.Drawing.Point(863, 237);
+            this.label8.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+            this.label8.Name = "label8";
+            this.label8.Size = new System.Drawing.Size(110, 31);
+            this.label8.TabIndex = 242;
+            this.label8.Text = "已采集数";
+            // 
+            // 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(863, 177);
+            this.label6.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+            this.label6.Name = "label6";
+            this.label6.Size = new System.Drawing.Size(110, 31);
+            this.label6.TabIndex = 240;
+            this.label6.Text = "待采集数";
+            // 
+            // label4
+            // 
+            this.label4.AutoSize = true;
+            this.label4.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.label4.Location = new System.Drawing.Point(863, 127);
+            this.label4.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+            this.label4.Name = "label4";
+            this.label4.Size = new System.Drawing.Size(110, 31);
+            this.label4.TabIndex = 241;
+            this.label4.Text = "出货数量";
+            // 
             // Warehouse_FinishedProductOut
             // 
-            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
+            this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 18F);
             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-            this.ClientSize = new System.Drawing.Size(740, 518);
+            this.ClientSize = new System.Drawing.Size(1110, 777);
+            this.Controls.Add(this.datacount);
+            this.Controls.Add(this.Label);
+            this.Controls.Add(this.boxqty);
+            this.Controls.Add(this.getqty);
+            this.Controls.Add(this.ungetqty);
+            this.Controls.Add(this.outqty);
+            this.Controls.Add(this.label10);
+            this.Controls.Add(this.label8);
+            this.Controls.Add(this.label6);
+            this.Controls.Add(this.label4);
             this.Controls.Add(this.Search);
             this.Controls.Add(this.pallecode);
             this.Controls.Add(this.pi_type);
@@ -542,7 +540,6 @@
             this.Controls.Add(this.serBtn);
             this.Controls.Add(this.palletBtn);
             this.Controls.Add(this.InOutDetailDGV);
-            this.Controls.Add(this.panel1);
             this.Controls.Add(this.ConfirmOut);
             this.Controls.Add(this.NewProdInOut);
             this.Controls.Add(this.ProdDetail);
@@ -551,17 +548,14 @@
             this.Controls.Add(this.pi_inoutno_label);
             this.Controls.Add(this.pi_inoutno);
             this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
-            this.Margin = new System.Windows.Forms.Padding(2);
             this.Name = "Warehouse_FinishedProductOut";
             this.Tag = "Warehouse!FinishedProductIn";
             this.Text = "成品出货";
             this.Load += new System.EventHandler(this.Warehouse_FinishedProductOut_Load);
             this.SizeChanged += new System.EventHandler(this.Warehouse_FinishedProductOut_SizeChanged);
-            this.panel1.ResumeLayout(true);
-            this.panel1.PerformLayout();
             ((System.ComponentModel.ISupportInitialize)(this.bindingSource)).EndInit();
             ((System.ComponentModel.ISupportInitialize)(this.InOutDetailDGV)).EndInit();
-            this.ResumeLayout(true);
+            this.ResumeLayout(false);
             this.PerformLayout();
 
         }
@@ -575,11 +569,6 @@
         private CustomControl.ButtonUtil.NormalButton ProdDetail;
         private CustomControl.ButtonUtil.NormalButton NewProdInOut;
         private CustomControl.ButtonUtil.NormalButton ConfirmOut;
-        private System.Windows.Forms.Panel panel1;
-        private System.Windows.Forms.Label label10;
-        private System.Windows.Forms.Label label8;
-        private System.Windows.Forms.Label label6;
-        private System.Windows.Forms.Label label4;
         private CustomControl.DataGrid_View.DataGridViewWithSerialNum InOutDetailDGV;
         private System.Windows.Forms.RadioButton palletBtn;
         private System.Windows.Forms.RadioButton serBtn;
@@ -591,10 +580,6 @@
         private CustomControl.RichText.RichTextAutoBottom OperateResult;
         private System.Windows.Forms.Label pi_id;
         private System.Windows.Forms.Label pi_type;
-        private CustomControl.ValueLabel.ValueLabel outqty;
-        private CustomControl.ValueLabel.ValueLabel ungetqty;
-        private CustomControl.ValueLabel.ValueLabel getqty;
-        private CustomControl.ValueLabel.ValueLabel boxqty;
         private System.Windows.Forms.BindingSource bindingSource;
         private System.Windows.Forms.DataGridViewTextBoxColumn pim_outboxcode;
         private System.Windows.Forms.DataGridViewTextBoxColumn pim_mac;
@@ -606,5 +591,13 @@
         private CustomControl.TextBoxWithIcon.TextBoxWithPlaceHolder pallecode;
         private CustomControl.ValueLabel.ValueLabel datacount;
         private System.Windows.Forms.Label Label;
+        private CustomControl.ValueLabel.ValueLabel boxqty;
+        private CustomControl.ValueLabel.ValueLabel getqty;
+        private CustomControl.ValueLabel.ValueLabel ungetqty;
+        private CustomControl.ValueLabel.ValueLabel outqty;
+        private System.Windows.Forms.Label label10;
+        private System.Windows.Forms.Label label8;
+        private System.Windows.Forms.Label label6;
+        private System.Windows.Forms.Label label4;
     }
 }

+ 2 - 2
UAS_MES_LT/FunctionCode/Warehouse/Warehouse_FinishedProductOut.cs

@@ -73,7 +73,7 @@ namespace UAS_MES_NEW.Warehouse
         /// </summary>
         private void LoadFormData()
         {
-            BaseUtil.CleanControls(panel1.Controls);
+            //BaseUtil.CleanControls(panel1.Controls);
             sql.Clear();
             sql.Append("select pi_id,pi_title,pi_inoutno,pi_type from prodinout where pi_inoutno = '" + pi_inoutno.Text + "'");
             dtpi = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
@@ -221,7 +221,7 @@ namespace UAS_MES_NEW.Warehouse
                             LogicHandler.DoCommandLog(Tag.ToString(), User.UserCode, "", User.UserLineCode, User.UserSourceCode, "出货单" + pi_inoutno.Text + "确认出货", "出货单" + pi_inoutno.Text + "确认出货成功", pi_inoutno.Text, "");
                             OperateResult.AppendText("出货单" + pi_inoutno.Text + "出库成功\n", Color.Black, pi_inoutno);
                             BaseUtil.CleanDGVData(InOutDetailDGV);
-                            BaseUtil.CleanControls(panel1.Controls);
+                            //BaseUtil.CleanControls(panel1.Controls);
                         }
                     }
                     else

+ 0 - 18
UAS_MES_LT/FunctionCode/Warehouse/Warehouse_FinishedProductOut.resx

@@ -177,24 +177,6 @@
   <metadata name="blank.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
     <value>True</value>
   </metadata>
-  <metadata name="pim_outboxcode.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-    <value>True</value>
-  </metadata>
-  <metadata name="pim_mac.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-    <value>True</value>
-  </metadata>
-  <metadata name="pim_prodcode.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-    <value>True</value>
-  </metadata>
-  <metadata name="pr_detail.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-    <value>True</value>
-  </metadata>
-  <metadata name="pr_spec.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-    <value>True</value>
-  </metadata>
-  <metadata name="blank.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-    <value>True</value>
-  </metadata>
   <data name="ConfirmOut.DownImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
     <value>
         iVBORw0KGgoAAAANSUhEUgAAAEUAAAAWCAYAAACWl1FwAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m

+ 25 - 8
UAS_MES_LT/PublicMethod/LogicHandler.cs

@@ -1138,13 +1138,22 @@ namespace UAS_MES_NEW.PublicMethod
                         dt = (DataTable)dh.ExecuteSql("select cm_barcode from craftmaterial where cm_barcode='" + iSN + "' and cm_status=0", "select");
                         if (dt.Rows.Count > 0)
                         {
-                            ErrMessage = "条码" + iSN + "已经上料";
+                            ErrMessage = "条码" + iSN + "已经上料"; 
+                            return false;
+                        }
+                    }
+                    if (iFSonCode == "LT.41.133.001A")
+                    {
+                        dt = (DataTable)dh.ExecuteSql("select * from ( select count(1) cn from CRAFTMATERIAL where cm_barcode='" + iSN + "' and cm_status = 0 ) where cn>=100", "select");
+                        if (dt.Rows.Count > 0)
+                        {
+                            ErrMessage = "条码" + iSN + "所属物料" + iFSonCode + ",已使用100次";
                             return false;
                         }
                     }
-                    int sp_length = int.Parse(iLength != "" ? iLength : "0");
-                    //若有多个,以|分割
-                    string[] pres = iPrefix.Split('|');
+                        //int sp_length = int.Parse(iLength != "" ? iLength : "0");
+                        //若有多个,以|分割
+                        string[] pres = iPrefix.Split('|');
                     bool f = false;
                     for (int i = 0; i < pres.Length; i++)
                     {
@@ -1157,12 +1166,20 @@ namespace UAS_MES_NEW.PublicMethod
                     }
                     if (f)
                     {
-                        //进行长度匹配
-                        if (iSN.Length == sp_length || sp_length == 0)
-                        {
+                        string[] lengths = iLength.Split('|');
+                        if (lengths.Length == 0)
                             return true;
+                        else
+                        {
+                            for (int i = 0; i < lengths.Length; i++)
+                            {
+                                if (int.Parse(lengths[i] != "" ? lengths[i] : "0")== iSN.Length|| int.Parse(lengths[i] != "" ? lengths[i] : "0") == 0)
+                                {
+                                    return true;
+                                }
+                            }
                         }
-                        else ErrMessage = iSN + "长度不匹配";
+                         ErrMessage = iSN + "长度不匹配";
                     }
                     else ErrMessage = iSN + "前缀不匹配";
                     break;

+ 4 - 4
UAS_MES_LT/PublicMethod/Print.cs

@@ -89,7 +89,7 @@ namespace UAS_MES_NEW.PublicMethod
                     //查询的结果的参数个数大于1需要给标签的多个参数赋值
                     if (Param.Rows.Count > 0)
                     {
-                        int LoopTime = Param.Rows.Count > 100 ? 100 : Param.Rows.Count;
+                        int LoopTime = Param.Rows.Count > 200 ? 200 : Param.Rows.Count;
                         for (int j = 0; j < LoopTime; j++)
                         {
                             for (int k = 0; k < doc2.NamedSubStrings.Count; k++)
@@ -184,7 +184,7 @@ namespace UAS_MES_NEW.PublicMethod
                     //查询的结果的参数个数大于1需要给标签的多个参数赋值
                     if (Param.Rows.Count > 0)
                     {
-                        int LoopTime = Param.Rows.Count > 100 ? 100 : Param.Rows.Count;
+                        int LoopTime = Param.Rows.Count > 200 ? 200 : Param.Rows.Count;
                         for (int j = 0; j < LoopTime; j++)
                         {
                             for (int k = 0; k < doc.Variables.FormVariables.Count; k++)
@@ -287,7 +287,7 @@ namespace UAS_MES_NEW.PublicMethod
                     //查询的结果的参数个数大于1需要给标签的多个参数赋值
                     if (Param.Rows.Count > 0)
                     {
-                        int LoopTime = Param.Rows.Count > 100 ? 100 : Param.Rows.Count;
+                        int LoopTime = Param.Rows.Count > 200 ? 200 : Param.Rows.Count;
                         for (int j = 0; j < LoopTime; j++)
                         {
                             for (int k = 0; k < doc.Variables.FormVariables.Count; k++)
@@ -389,7 +389,7 @@ namespace UAS_MES_NEW.PublicMethod
     //                //查询的结果的参数个数大于1需要给标签的多个参数赋值
     //                if (Param.Rows.Count > 0)
     //                {
-    //                    int LoopTime = Param.Rows.Count > 100 ? 100 : Param.Rows.Count;
+    //                    int LoopTime = Param.Rows.Count > 200 ? 200 : Param.Rows.Count;
     //                    for (int j = 0; j < LoopTime; j++)
     //                    {
     //                        for (int k = 0; k < format.SubStrings.Count; k++)

+ 87 - 0
UAS_MES_ZT/App.config

@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="utf-8"?>
+<configuration>
+  <configSections>
+    <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+      <section name="UAS_MES_NEW.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
+      <section name="UAS_MES.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
+    </sectionGroup>
+    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
+    <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+      <section name="UAS_MES_NEW.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
+      <section name="UAS_MES.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
+    </sectionGroup>
+  </configSections>
+  <startup useLegacyV2RuntimeActivationPolicy="true"> 
+    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" />
+    <supportedRuntime version="v2.0.50727" />
+  </startup>
+  <userSettings>
+    <UAS_MES_NEW.Properties.Settings>
+      <setting name="ProjectName" serializeAs="String">
+        <value>优软科技MES</value>
+      </setting>
+      <setting name="LastLoginUser" serializeAs="String">
+        <value />
+      </setting>
+      <setting name="LastLoginSob" serializeAs="String">
+        <value />
+      </setting>
+      <setting name="LastLoginResource" serializeAs="String">
+        <value />
+      </setting>
+      <setting name="DefaultCollectionValue" serializeAs="String">
+        <value>DefaultValue</value>
+      </setting>
+      <setting name="PortName" serializeAs="String">
+        <value />
+      </setting>
+      <setting name="BaudRate" serializeAs="String">
+        <value />
+      </setting>
+      <setting name="FTPAddress" serializeAs="String">
+        <value>ftp://10.8.0.82|vsftpd|vsftpd</value>
+      </setting>
+    </UAS_MES_NEW.Properties.Settings>
+    <UAS_MES.Properties.Settings>
+      <setting name="ProjectName" serializeAs="String">
+        <value>优软科技MES</value>
+      </setting>
+      <setting name="LastLoginUser" serializeAs="String">
+        <value />
+      </setting>
+      <setting name="LastLoginSob" serializeAs="String">
+        <value />
+      </setting>
+      <setting name="LastLoginResource" serializeAs="String">
+        <value />
+      </setting>
+      <setting name="DefaultCollectionValue" serializeAs="String">
+        <value>DefaultValue</value>
+      </setting>
+      <setting name="PortName" serializeAs="String">
+        <value />
+      </setting>
+      <setting name="BaudRate" serializeAs="String">
+        <value />
+      </setting>
+      <setting name="FTPAddress" serializeAs="String">
+        <value>\\172.16.66.51\lable</value>
+      </setting>
+    </UAS_MES.Properties.Settings>
+  </userSettings>
+  <applicationSettings>
+    <UAS_MES_NEW.Properties.Settings>
+      <setting name="MES" serializeAs="String">
+        <value>Connection Timeout=0;Pooling=false;Password=select!#%*(;User ID=LIANT;Pooling=false;Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.11.201)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=orcl)));</value>
+      </setting>
+    </UAS_MES_NEW.Properties.Settings>
+  </applicationSettings>
+  <runtime>
+    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
+      <dependentAssembly>
+        <assemblyIdentity name="NPOI" publicKeyToken="0df73ec7942b34e1" culture="neutral" />
+        <bindingRedirect oldVersion="0.0.0.0-1.2.5.0" newVersion="1.2.5.0" />
+      </dependentAssembly>
+    </assemblyBinding>
+  </runtime>
+</configuration>

+ 444 - 0
UAS_MES_ZT/CustomControl/AccordionMenu/AccordionMenu.Designer.cs

@@ -0,0 +1,444 @@
+namespace UAS_MES_NEW.CustomControl.AccordionMenu
+{
+    partial class AccordionMenu
+    {
+        /// <summary> 
+        /// 必需的设计器变量。
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary> 
+        /// 清理所有正在使用的资源。
+        /// </summary>
+        /// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region 组件设计器生成的代码
+
+        /// <summary> 
+        /// 设计器支持所需的方法 - 不要修改
+        /// 使用代码编辑器修改此方法的内容。
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.components = new System.ComponentModel.Container();
+            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(AccordionMenu));
+            this.SMT作业_lsv = new System.Windows.Forms.ListView();
+            this.timer1 = new System.Windows.Forms.Timer(this.components);
+            this.产线作业_lsv = new System.Windows.Forms.ListView();
+            this.特殊作业_lsv = new System.Windows.Forms.ListView();
+            this.仓库作业_lsv = new System.Windows.Forms.ListView();
+            this.查询分析_lsv = new System.Windows.Forms.ListView();
+            this.库存管理_lsv = new System.Windows.Forms.ListView();
+            this.系统设置_lsv = new System.Windows.Forms.ListView();
+            this.OQC作业_lsv = new System.Windows.Forms.ListView();
+            this.人员管理_lsv = new System.Windows.Forms.ListView();
+            this.库存管理 = new UAS_MES_NEW.CustomControl.ButtonUtil.NormalButton();
+            this.SMT作业 = new UAS_MES_NEW.CustomControl.ButtonUtil.NormalButton();
+            this.人员管理 = new UAS_MES_NEW.CustomControl.ButtonUtil.NormalButton();
+            this.OQC作业 = new UAS_MES_NEW.CustomControl.ButtonUtil.NormalButton();
+            this.系统设置 = new UAS_MES_NEW.CustomControl.ButtonUtil.NormalButton();
+            this.查询分析 = new UAS_MES_NEW.CustomControl.ButtonUtil.NormalButton();
+            this.仓库作业 = new UAS_MES_NEW.CustomControl.ButtonUtil.NormalButton();
+            this.特殊作业 = new UAS_MES_NEW.CustomControl.ButtonUtil.NormalButton();
+            this.产线作业 = new UAS_MES_NEW.CustomControl.ButtonUtil.NormalButton();
+            this.包装作业_lsv = new System.Windows.Forms.ListView();
+            this.包装作业 = new UAS_MES_NEW.CustomControl.ButtonUtil.NormalButton();
+            this.SuspendLayout();
+            // 
+            // SMT作业_lsv
+            // 
+            this.SMT作业_lsv.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.SMT作业_lsv.Location = new System.Drawing.Point(349, 108);
+            this.SMT作业_lsv.Margin = new System.Windows.Forms.Padding(4);
+            this.SMT作业_lsv.Name = "SMT作业_lsv";
+            this.SMT作业_lsv.Size = new System.Drawing.Size(160, 309);
+            this.SMT作业_lsv.TabIndex = 3;
+            this.SMT作业_lsv.UseCompatibleStateImageBehavior = false;
+            this.SMT作业_lsv.View = System.Windows.Forms.View.SmallIcon;
+            this.SMT作业_lsv.Visible = false;
+            // 
+            // 产线作业_lsv
+            // 
+            this.产线作业_lsv.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.产线作业_lsv.Location = new System.Drawing.Point(523, 108);
+            this.产线作业_lsv.Margin = new System.Windows.Forms.Padding(4);
+            this.产线作业_lsv.Name = "产线作业_lsv";
+            this.产线作业_lsv.Size = new System.Drawing.Size(160, 309);
+            this.产线作业_lsv.TabIndex = 4;
+            this.产线作业_lsv.UseCompatibleStateImageBehavior = false;
+            this.产线作业_lsv.View = System.Windows.Forms.View.SmallIcon;
+            this.产线作业_lsv.Visible = false;
+            // 
+            // 特殊作业_lsv
+            // 
+            this.特殊作业_lsv.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.特殊作业_lsv.Location = new System.Drawing.Point(700, 108);
+            this.特殊作业_lsv.Margin = new System.Windows.Forms.Padding(4);
+            this.特殊作业_lsv.Name = "特殊作业_lsv";
+            this.特殊作业_lsv.Size = new System.Drawing.Size(160, 309);
+            this.特殊作业_lsv.TabIndex = 0;
+            this.特殊作业_lsv.UseCompatibleStateImageBehavior = false;
+            this.特殊作业_lsv.View = System.Windows.Forms.View.SmallIcon;
+            this.特殊作业_lsv.Visible = false;
+            // 
+            // 仓库作业_lsv
+            // 
+            this.仓库作业_lsv.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.仓库作业_lsv.Location = new System.Drawing.Point(876, 108);
+            this.仓库作业_lsv.Margin = new System.Windows.Forms.Padding(4);
+            this.仓库作业_lsv.Name = "仓库作业_lsv";
+            this.仓库作业_lsv.Size = new System.Drawing.Size(160, 309);
+            this.仓库作业_lsv.TabIndex = 6;
+            this.仓库作业_lsv.UseCompatibleStateImageBehavior = false;
+            this.仓库作业_lsv.View = System.Windows.Forms.View.SmallIcon;
+            this.仓库作业_lsv.Visible = false;
+            // 
+            // 查询分析_lsv
+            // 
+            this.查询分析_lsv.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.查询分析_lsv.Location = new System.Drawing.Point(1047, 108);
+            this.查询分析_lsv.Margin = new System.Windows.Forms.Padding(4);
+            this.查询分析_lsv.Name = "查询分析_lsv";
+            this.查询分析_lsv.Size = new System.Drawing.Size(160, 309);
+            this.查询分析_lsv.TabIndex = 7;
+            this.查询分析_lsv.UseCompatibleStateImageBehavior = false;
+            this.查询分析_lsv.View = System.Windows.Forms.View.SmallIcon;
+            this.查询分析_lsv.Visible = false;
+            // 
+            // 库存管理_lsv
+            // 
+            this.库存管理_lsv.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.库存管理_lsv.Location = new System.Drawing.Point(5, 108);
+            this.库存管理_lsv.Margin = new System.Windows.Forms.Padding(4);
+            this.库存管理_lsv.Name = "库存管理_lsv";
+            this.库存管理_lsv.Size = new System.Drawing.Size(160, 309);
+            this.库存管理_lsv.TabIndex = 1;
+            this.库存管理_lsv.UseCompatibleStateImageBehavior = false;
+            this.库存管理_lsv.View = System.Windows.Forms.View.SmallIcon;
+            this.库存管理_lsv.Visible = false;
+            // 
+            // 系统设置_lsv
+            // 
+            this.系统设置_lsv.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.系统设置_lsv.Location = new System.Drawing.Point(177, 108);
+            this.系统设置_lsv.Margin = new System.Windows.Forms.Padding(4);
+            this.系统设置_lsv.Name = "系统设置_lsv";
+            this.系统设置_lsv.Size = new System.Drawing.Size(160, 309);
+            this.系统设置_lsv.TabIndex = 2;
+            this.系统设置_lsv.UseCompatibleStateImageBehavior = false;
+            this.系统设置_lsv.View = System.Windows.Forms.View.SmallIcon;
+            this.系统设置_lsv.Visible = false;
+            // 
+            // OQC作业_lsv
+            // 
+            this.OQC作业_lsv.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.OQC作业_lsv.Location = new System.Drawing.Point(1217, 108);
+            this.OQC作业_lsv.Margin = new System.Windows.Forms.Padding(4);
+            this.OQC作业_lsv.Name = "OQC作业_lsv";
+            this.OQC作业_lsv.Size = new System.Drawing.Size(160, 309);
+            this.OQC作业_lsv.TabIndex = 11;
+            this.OQC作业_lsv.Tag = "OQC作业_lsv";
+            this.OQC作业_lsv.UseCompatibleStateImageBehavior = false;
+            this.OQC作业_lsv.View = System.Windows.Forms.View.SmallIcon;
+            this.OQC作业_lsv.Visible = false;
+            // 
+            // 人员管理_lsv
+            // 
+            this.人员管理_lsv.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.人员管理_lsv.Location = new System.Drawing.Point(1387, 108);
+            this.人员管理_lsv.Margin = new System.Windows.Forms.Padding(4);
+            this.人员管理_lsv.Name = "人员管理_lsv";
+            this.人员管理_lsv.Size = new System.Drawing.Size(160, 309);
+            this.人员管理_lsv.TabIndex = 13;
+            this.人员管理_lsv.Tag = "人员管理_lsv";
+            this.人员管理_lsv.UseCompatibleStateImageBehavior = false;
+            this.人员管理_lsv.View = System.Windows.Forms.View.SmallIcon;
+            this.人员管理_lsv.Visible = false;
+            // 
+            // 库存管理
+            // 
+            this.库存管理.AllPower = null;
+            this.库存管理.BackColor = System.Drawing.Color.Transparent;
+            this.库存管理.DownImage = ((System.Drawing.Image)(resources.GetObject("库存管理.DownImage")));
+            this.库存管理.Font = new System.Drawing.Font("微软雅黑", 10.8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.库存管理.ForeColor = System.Drawing.SystemColors.ControlDarkDark;
+            this.库存管理.Image = ((System.Drawing.Image)(resources.GetObject("库存管理.Image")));
+            this.库存管理.IsShowBorder = true;
+            this.库存管理.Location = new System.Drawing.Point(5, 30);
+            this.库存管理.Margin = new System.Windows.Forms.Padding(4);
+            this.库存管理.MoveImage = ((System.Drawing.Image)(resources.GetObject("库存管理.MoveImage")));
+            this.库存管理.Name = "库存管理";
+            this.库存管理.NormalImage = ((System.Drawing.Image)(resources.GetObject("库存管理.NormalImage")));
+            this.库存管理.Power = null;
+            this.库存管理.Size = new System.Drawing.Size(161, 50);
+            this.库存管理.TabIndex = 15;
+            this.库存管理.Text = "库存管理";
+            this.库存管理.UseVisualStyleBackColor = true;
+            this.库存管理.Visible = false;
+            // 
+            // SMT作业
+            // 
+            this.SMT作业.AllPower = null;
+            this.SMT作业.BackColor = System.Drawing.Color.Transparent;
+            this.SMT作业.DownImage = ((System.Drawing.Image)(resources.GetObject("SMT作业.DownImage")));
+            this.SMT作业.Font = new System.Drawing.Font("微软雅黑", 10.8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.SMT作业.ForeColor = System.Drawing.SystemColors.ControlDarkDark;
+            this.SMT作业.Image = ((System.Drawing.Image)(resources.GetObject("SMT作业.Image")));
+            this.SMT作业.IsShowBorder = true;
+            this.SMT作业.Location = new System.Drawing.Point(346, 30);
+            this.SMT作业.Margin = new System.Windows.Forms.Padding(4);
+            this.SMT作业.MoveImage = ((System.Drawing.Image)(resources.GetObject("SMT作业.MoveImage")));
+            this.SMT作业.Name = "SMT作业";
+            this.SMT作业.NormalImage = ((System.Drawing.Image)(resources.GetObject("SMT作业.NormalImage")));
+            this.SMT作业.Power = null;
+            this.SMT作业.Size = new System.Drawing.Size(161, 50);
+            this.SMT作业.TabIndex = 14;
+            this.SMT作业.Text = "SMT作业";
+            this.SMT作业.UseVisualStyleBackColor = true;
+            this.SMT作业.Visible = false;
+            // 
+            // 人员管理
+            // 
+            this.人员管理.AllPower = null;
+            this.人员管理.BackColor = System.Drawing.Color.Transparent;
+            this.人员管理.DownImage = ((System.Drawing.Image)(resources.GetObject("人员管理.DownImage")));
+            this.人员管理.Font = new System.Drawing.Font("微软雅黑", 10.8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.人员管理.ForeColor = System.Drawing.SystemColors.ControlDarkDark;
+            this.人员管理.Image = global::UAS_MES_NEW.Properties.Resources._2_0btn_36;
+            this.人员管理.IsShowBorder = true;
+            this.人员管理.Location = new System.Drawing.Point(1387, 30);
+            this.人员管理.Margin = new System.Windows.Forms.Padding(4);
+            this.人员管理.MoveImage = ((System.Drawing.Image)(resources.GetObject("人员管理.MoveImage")));
+            this.人员管理.Name = "人员管理";
+            this.人员管理.NormalImage = ((System.Drawing.Image)(resources.GetObject("人员管理.NormalImage")));
+            this.人员管理.Power = null;
+            this.人员管理.Size = new System.Drawing.Size(161, 50);
+            this.人员管理.TabIndex = 12;
+            this.人员管理.Text = "人员管理";
+            this.人员管理.UseVisualStyleBackColor = true;
+            this.人员管理.Visible = false;
+            // 
+            // OQC作业
+            // 
+            this.OQC作业.AllPower = null;
+            this.OQC作业.BackColor = System.Drawing.Color.Transparent;
+            this.OQC作业.DownImage = ((System.Drawing.Image)(resources.GetObject("OQC作业.DownImage")));
+            this.OQC作业.Font = new System.Drawing.Font("微软雅黑", 10.8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.OQC作业.ForeColor = System.Drawing.SystemColors.ControlDarkDark;
+            this.OQC作业.Image = global::UAS_MES_NEW.Properties.Resources._2_0btn_36;
+            this.OQC作业.IsShowBorder = true;
+            this.OQC作业.Location = new System.Drawing.Point(1217, 30);
+            this.OQC作业.Margin = new System.Windows.Forms.Padding(4);
+            this.OQC作业.MoveImage = ((System.Drawing.Image)(resources.GetObject("OQC作业.MoveImage")));
+            this.OQC作业.Name = "OQC作业";
+            this.OQC作业.NormalImage = ((System.Drawing.Image)(resources.GetObject("OQC作业.NormalImage")));
+            this.OQC作业.Power = null;
+            this.OQC作业.Size = new System.Drawing.Size(161, 50);
+            this.OQC作业.TabIndex = 10;
+            this.OQC作业.Text = "OQC作业";
+            this.OQC作业.UseVisualStyleBackColor = true;
+            this.OQC作业.Visible = false;
+            // 
+            // 系统设置
+            // 
+            this.系统设置.AllPower = null;
+            this.系统设置.BackColor = System.Drawing.Color.Transparent;
+            this.系统设置.DownImage = ((System.Drawing.Image)(resources.GetObject("系统设置.DownImage")));
+            this.系统设置.Font = new System.Drawing.Font("微软雅黑", 10.8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.系统设置.ForeColor = System.Drawing.SystemColors.ControlDarkDark;
+            this.系统设置.Image = ((System.Drawing.Image)(resources.GetObject("系统设置.Image")));
+            this.系统设置.IsShowBorder = true;
+            this.系统设置.Location = new System.Drawing.Point(177, 30);
+            this.系统设置.Margin = new System.Windows.Forms.Padding(4);
+            this.系统设置.MoveImage = ((System.Drawing.Image)(resources.GetObject("系统设置.MoveImage")));
+            this.系统设置.Name = "系统设置";
+            this.系统设置.NormalImage = ((System.Drawing.Image)(resources.GetObject("系统设置.NormalImage")));
+            this.系统设置.Power = null;
+            this.系统设置.Size = new System.Drawing.Size(161, 50);
+            this.系统设置.TabIndex = 2;
+            this.系统设置.Text = "系统设置";
+            this.系统设置.UseVisualStyleBackColor = true;
+            this.系统设置.Visible = false;
+            // 
+            // 查询分析
+            // 
+            this.查询分析.AllPower = null;
+            this.查询分析.BackColor = System.Drawing.Color.Transparent;
+            this.查询分析.DownImage = ((System.Drawing.Image)(resources.GetObject("查询分析.DownImage")));
+            this.查询分析.Font = new System.Drawing.Font("微软雅黑", 10.8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.查询分析.ForeColor = System.Drawing.SystemColors.ControlDarkDark;
+            this.查询分析.Image = global::UAS_MES_NEW.Properties.Resources._2_0btn_36;
+            this.查询分析.IsShowBorder = true;
+            this.查询分析.Location = new System.Drawing.Point(1047, 30);
+            this.查询分析.Margin = new System.Windows.Forms.Padding(4);
+            this.查询分析.MoveImage = ((System.Drawing.Image)(resources.GetObject("查询分析.MoveImage")));
+            this.查询分析.Name = "查询分析";
+            this.查询分析.NormalImage = ((System.Drawing.Image)(resources.GetObject("查询分析.NormalImage")));
+            this.查询分析.Power = null;
+            this.查询分析.Size = new System.Drawing.Size(161, 50);
+            this.查询分析.TabIndex = 7;
+            this.查询分析.Text = "查询分析";
+            this.查询分析.UseVisualStyleBackColor = true;
+            this.查询分析.Visible = false;
+            // 
+            // 仓库作业
+            // 
+            this.仓库作业.AllPower = null;
+            this.仓库作业.BackColor = System.Drawing.Color.Transparent;
+            this.仓库作业.DownImage = ((System.Drawing.Image)(resources.GetObject("仓库作业.DownImage")));
+            this.仓库作业.Font = new System.Drawing.Font("微软雅黑", 10.8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.仓库作业.ForeColor = System.Drawing.SystemColors.ControlDarkDark;
+            this.仓库作业.Image = global::UAS_MES_NEW.Properties.Resources._2_0btn_36;
+            this.仓库作业.IsShowBorder = true;
+            this.仓库作业.Location = new System.Drawing.Point(876, 30);
+            this.仓库作业.Margin = new System.Windows.Forms.Padding(0);
+            this.仓库作业.MoveImage = ((System.Drawing.Image)(resources.GetObject("仓库作业.MoveImage")));
+            this.仓库作业.Name = "仓库作业";
+            this.仓库作业.NormalImage = ((System.Drawing.Image)(resources.GetObject("仓库作业.NormalImage")));
+            this.仓库作业.Power = null;
+            this.仓库作业.Size = new System.Drawing.Size(161, 50);
+            this.仓库作业.TabIndex = 6;
+            this.仓库作业.Text = "仓库作业";
+            this.仓库作业.UseVisualStyleBackColor = true;
+            this.仓库作业.Visible = false;
+            // 
+            // 特殊作业
+            // 
+            this.特殊作业.AllPower = null;
+            this.特殊作业.BackColor = System.Drawing.Color.Transparent;
+            this.特殊作业.DownImage = ((System.Drawing.Image)(resources.GetObject("特殊作业.DownImage")));
+            this.特殊作业.Font = new System.Drawing.Font("微软雅黑", 10.8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.特殊作业.ForeColor = System.Drawing.SystemColors.ControlDarkDark;
+            this.特殊作业.Image = global::UAS_MES_NEW.Properties.Resources._2_0btn_36;
+            this.特殊作业.IsShowBorder = true;
+            this.特殊作业.Location = new System.Drawing.Point(700, 30);
+            this.特殊作业.Margin = new System.Windows.Forms.Padding(4);
+            this.特殊作业.MoveImage = ((System.Drawing.Image)(resources.GetObject("特殊作业.MoveImage")));
+            this.特殊作业.Name = "特殊作业";
+            this.特殊作业.NormalImage = ((System.Drawing.Image)(resources.GetObject("特殊作业.NormalImage")));
+            this.特殊作业.Power = null;
+            this.特殊作业.Size = new System.Drawing.Size(161, 50);
+            this.特殊作业.TabIndex = 0;
+            this.特殊作业.Text = "特殊作业";
+            this.特殊作业.UseVisualStyleBackColor = true;
+            this.特殊作业.Visible = false;
+            // 
+            // 产线作业
+            // 
+            this.产线作业.AllPower = null;
+            this.产线作业.BackColor = System.Drawing.Color.Transparent;
+            this.产线作业.DownImage = ((System.Drawing.Image)(resources.GetObject("产线作业.DownImage")));
+            this.产线作业.Font = new System.Drawing.Font("微软雅黑", 10.8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.产线作业.ForeColor = System.Drawing.SystemColors.ControlDarkDark;
+            this.产线作业.Image = global::UAS_MES_NEW.Properties.Resources._2_0btn_36;
+            this.产线作业.IsShowBorder = true;
+            this.产线作业.Location = new System.Drawing.Point(523, 30);
+            this.产线作业.Margin = new System.Windows.Forms.Padding(4);
+            this.产线作业.MoveImage = ((System.Drawing.Image)(resources.GetObject("产线作业.MoveImage")));
+            this.产线作业.Name = "产线作业";
+            this.产线作业.NormalImage = ((System.Drawing.Image)(resources.GetObject("产线作业.NormalImage")));
+            this.产线作业.Power = null;
+            this.产线作业.Size = new System.Drawing.Size(161, 50);
+            this.产线作业.TabIndex = 4;
+            this.产线作业.Text = "产线作业";
+            this.产线作业.UseVisualStyleBackColor = true;
+            this.产线作业.Visible = false;
+            // 
+            // 包装作业_lsv
+            // 
+            this.包装作业_lsv.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.包装作业_lsv.Location = new System.Drawing.Point(1555, 108);
+            this.包装作业_lsv.Margin = new System.Windows.Forms.Padding(4);
+            this.包装作业_lsv.Name = "包装作业_lsv";
+            this.包装作业_lsv.Size = new System.Drawing.Size(160, 309);
+            this.包装作业_lsv.TabIndex = 17;
+            this.包装作业_lsv.Tag = "包装作业_lsv";
+            this.包装作业_lsv.UseCompatibleStateImageBehavior = false;
+            this.包装作业_lsv.View = System.Windows.Forms.View.SmallIcon;
+            this.包装作业_lsv.Visible = false;
+            // 
+            // 包装作业
+            // 
+            this.包装作业.AllPower = null;
+            this.包装作业.BackColor = System.Drawing.Color.Transparent;
+            this.包装作业.DownImage = ((System.Drawing.Image)(resources.GetObject("包装作业.DownImage")));
+            this.包装作业.Font = new System.Drawing.Font("微软雅黑", 10.8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.包装作业.ForeColor = System.Drawing.SystemColors.ControlDarkDark;
+            this.包装作业.Image = global::UAS_MES_NEW.Properties.Resources._2_0btn_36;
+            this.包装作业.IsShowBorder = true;
+            this.包装作业.Location = new System.Drawing.Point(1555, 30);
+            this.包装作业.Margin = new System.Windows.Forms.Padding(4);
+            this.包装作业.MoveImage = ((System.Drawing.Image)(resources.GetObject("包装作业.MoveImage")));
+            this.包装作业.Name = "包装作业";
+            this.包装作业.NormalImage = ((System.Drawing.Image)(resources.GetObject("包装作业.NormalImage")));
+            this.包装作业.Power = null;
+            this.包装作业.Size = new System.Drawing.Size(161, 50);
+            this.包装作业.TabIndex = 16;
+            this.包装作业.Text = "包装作业";
+            this.包装作业.UseVisualStyleBackColor = true;
+            this.包装作业.Visible = false;
+            // 
+            // AccordionMenu
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 15F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.Controls.Add(this.包装作业_lsv);
+            this.Controls.Add(this.包装作业);
+            this.Controls.Add(this.库存管理);
+            this.Controls.Add(this.SMT作业);
+            this.Controls.Add(this.人员管理_lsv);
+            this.Controls.Add(this.人员管理);
+            this.Controls.Add(this.OQC作业_lsv);
+            this.Controls.Add(this.OQC作业);
+            this.Controls.Add(this.系统设置);
+            this.Controls.Add(this.系统设置_lsv);
+            this.Controls.Add(this.库存管理_lsv);
+            this.Controls.Add(this.查询分析_lsv);
+            this.Controls.Add(this.查询分析);
+            this.Controls.Add(this.仓库作业);
+            this.Controls.Add(this.仓库作业_lsv);
+            this.Controls.Add(this.特殊作业_lsv);
+            this.Controls.Add(this.产线作业_lsv);
+            this.Controls.Add(this.特殊作业);
+            this.Controls.Add(this.产线作业);
+            this.Controls.Add(this.SMT作业_lsv);
+            this.Margin = new System.Windows.Forms.Padding(4);
+            this.Name = "AccordionMenu";
+            this.Size = new System.Drawing.Size(1741, 452);
+            this.Load += new System.EventHandler(this.AccordionMenu_Load);
+            this.ResumeLayout(false);
+
+        }
+
+        #endregion
+        private System.Windows.Forms.ListView SMT作业_lsv;
+        private System.Windows.Forms.Timer timer1;
+        private System.Windows.Forms.ListView 产线作业_lsv;
+        private System.Windows.Forms.ListView 特殊作业_lsv;
+        private System.Windows.Forms.ListView 仓库作业_lsv;
+        private System.Windows.Forms.ListView 查询分析_lsv;
+        private System.Windows.Forms.ListView 库存管理_lsv;
+        private System.Windows.Forms.ListView 系统设置_lsv;
+        private ButtonUtil.NormalButton 系统设置;
+        private System.Windows.Forms.ListView OQC作业_lsv;
+        private System.Windows.Forms.ListView 人员管理_lsv;
+        private ButtonUtil.NormalButton SMT作业;
+        private ButtonUtil.NormalButton 库存管理;
+        private ButtonUtil.NormalButton 产线作业;
+        private ButtonUtil.NormalButton 特殊作业;
+        private ButtonUtil.NormalButton 仓库作业;
+        private ButtonUtil.NormalButton 查询分析;
+        private ButtonUtil.NormalButton OQC作业;
+        private ButtonUtil.NormalButton 人员管理;
+        private System.Windows.Forms.ListView 包装作业_lsv;
+        private ButtonUtil.NormalButton 包装作业;
+    }
+}

+ 317 - 0
UAS_MES_ZT/CustomControl/AccordionMenu/AccordionMenu.cs

@@ -0,0 +1,317 @@
+using System;
+using System.Drawing;
+using System.Windows.Forms;
+using System.Collections;
+using System.Reflection;
+using System.Data;
+using System.Text;
+using UAS_MES_NEW.DataOperate;
+using UAS_MES_NEW.Entity;
+using System.Collections.Generic;
+
+namespace UAS_MES_NEW.CustomControl.AccordionMenu
+{
+    public partial class AccordionMenu : UserControl
+    {
+        #region 变量
+        /// <summary>
+        /// 记录当前功能面板中的按钮
+        /// </summary>
+        private ArrayList ArrFunButton = new ArrayList();
+        /// <summary>
+        /// 记录当前功能面板中的listview
+        /// </summary>
+        private ArrayList ArrFunListView = new ArrayList();
+        /// <summary>
+        /// 已经打开的Form
+        /// </summary>
+        public static Dictionary<string, int> OpenedFormName = new Dictionary<string, int>();
+        /// <summary>
+        /// 功能面板的宽度
+        /// </summary>
+        private int m_nPanFunWidth = 160;
+        //功能面板隐藏后的宽度
+        private int m_nPanFunHideWidth = 0;
+        //Tabpage的索引
+        public static int WinIndex = 0;
+        /// <summary>
+        /// Button和ListView的个数,因为两者数量必相等,所以用一个变量代替
+        /// </summary>
+        private string[] Module;
+        #endregion
+        private DataHelper dh;
+
+        private StringBuilder sql = new StringBuilder();
+
+        public AccordionMenu()
+        {
+            InitializeComponent();
+        }
+
+        private void AccordionMenu_Load(object sender, EventArgs e)
+        {
+            //设置功能面板的位置和宽带
+            this.Width = m_nPanFunWidth;
+
+            //查询该用户所在的组别有权限查看的模块
+            dh = SystemInf.dh;
+
+            if (User.UserAccountType == "admin")
+            {
+                sql.Clear();
+                sql.Append("select distinct sn_detno,sn_module,sn_modulecode,sn_caller ugp_caller,1 ugp_ifdelete,1 ugp_ifread,1 ugp_ifspecial,1 ugp_ifall,");
+                sql.Append("1 ugp_ifwrite from CS$SYSNAVATION left join CS$USERGROUPPOWER on sn_caller=ugp_caller  where sn_using=1  order by sn_modulecode,sn_detno");
+            }
+            else
+            {
+                sql.Clear();
+                sql.Append("select  sn_detno,sn_module,sn_modulecode,ugp_caller,max(ugp_ifdelete)ugp_ifdelete,max(ugp_ifread)ugp_ifread");
+                sql.Append(",max(ugp_ifspecial)ugp_ifspecial,max(ugp_ifwrite)ugp_ifwrite,max(ugp_ifall)ugp_ifall from CS$USERGROUPPOWER ");
+                sql.Append("left join CS$SYSNAVATION on sn_caller=ugp_caller  where sn_using=1 and ugp_groupcode in ( select eg_groupcode from cs$empgroup ");
+                sql.Append("left join cs$userresource on ur_groupcode = eg_groupcode where eg_emcode = '" + User.UserCode + "') group by sn_detno,sn_module,sn_modulecode,ugp_caller order by sn_modulecode,sn_detno");
+            }
+            DataTable dt = (DataTable)dh.ExecuteSql(sql.ToString(), "select");
+            //查询到没有结果直接返回,避免后面处理空值
+            if (dt.Rows.Count == 0 && User.UserAccountType != "admin")
+            {
+                return;
+            }
+            //设置ListView的样式
+            foreach (Control c in this.Controls)
+            {
+                //设置ListView的格式和记录控件的个数
+                if (c is ListView)
+                {
+                    ListView ls = c as ListView;
+                    ls.View = View.SmallIcon;
+                    ls.SmallImageList = new ImageList();
+                    ls.SmallImageList.ImageSize = new Size(10, 30);
+                    ls.Height = 200;
+                }
+            }
+            //用于存储模块的数组
+            Module = new string[dt.Rows.Count];
+            //用于拼接模块名称的字符串 例如(a,b,c)
+            string Modules = "";
+            //查询出的用户可见的Caller
+            string[] Caller_List = new string[dt.Rows.Count];
+            string Callers = "";
+            //将查询出的数据添加到队列中
+            for (int i = 0; i < dt.Rows.Count; i++)
+            {
+                //在这个Caller范围内的是用户可见的导航
+                if (dt.Rows[i]["UGP_IFREAD"].ToString() == "1" || dt.Rows[i]["UGP_IFALL"].ToString() == "1")
+                {
+                    Callers += "'" + dt.Rows[i]["ugp_caller"].ToString() + "',";
+                }
+                //用一个数组记录所有的模块
+                Module[i] = dt.Rows[i]["sn_module"].ToString();
+                if (!Modules.Contains(dt.Rows[i]["sn_module"].ToString()))
+                    Modules += "'" + dt.Rows[i]["sn_module"].ToString() + "',";
+                this.Controls[dt.Rows[i]["sn_module"].ToString()].Visible = true;
+                this.Controls[dt.Rows[i]["sn_module"].ToString() + "_lsv"].Visible = true;
+                //添加权限
+                Dictionary<string, bool> dic = new Dictionary<string, bool>();
+                dic.Add("IFDELETE", dt.Rows[i]["UGP_IFDELETE"].ToString() != "1" ? false : true);
+                dic.Add("IFREAD", dt.Rows[i]["UGP_IFREAD"].ToString() != "1" ? false : true);
+                dic.Add("IFWRITE", dt.Rows[i]["UGP_IFWRITE"].ToString() != "1" ? false : true);
+                dic.Add("IFSPECIAL", dt.Rows[i]["UGP_IFSPECIAL"].ToString() != "1" ? false : true);
+                dic.Add("IFALL", dt.Rows[i]["UGP_IFALL"].ToString() != "1" ? false : true);
+                //之后通过Call来获取页面操作的权限
+                if (SystemInf.Caller.ContainsKey(dt.Rows[i]["ugp_caller"].ToString()))
+                {
+                    SystemInf.Caller.Remove(dt.Rows[i]["ugp_caller"].ToString());
+                }
+                SystemInf.Caller.Add(dt.Rows[i]["ugp_caller"].ToString(), dic);
+                //重复项目会导致导航栏出现展示空缺,如果包含有该项则不进行添加
+                //添加导航的按钮和对应的ListView
+                if (!ArrFunButton.Contains(this.Controls[dt.Rows[i]["sn_module"].ToString()]))
+                {
+                    ArrFunButton.Add(this.Controls[dt.Rows[i]["sn_module"].ToString()]);
+                    ArrFunListView.Add(this.Controls[dt.Rows[i]["sn_module"].ToString() + "_lsv"]);
+                }
+            }
+            if (Callers != "")
+            {
+                Callers = Callers.Substring(0, Callers.Length - 1);
+            }
+            else
+            {
+                Callers = "''";
+            }
+            //根据模块的名称查询出所有的子模块
+            sql.Clear();
+            sql.Append("select sn_id,sn_displayname,sn_classname,sn_module,sn_modulecode,sn_using,sn_caller,sn_detno from CS$SYSNAVATION where sn_using=1 and sn_caller in(" + Callers + ") order by sn_modulecode,sn_detno");
+            dt = (DataTable)dh.ExecuteSql(sql.ToString(), "select");
+            sql.Clear();
+            //模块的数量,需要单独控制这个变量的增加
+            int Module_count = 0;
+            for (int i = 0; i < dt.Rows.Count; i++)
+            {
+                //如果查询的子栏目的所属模块和按钮之前的模块相等,并且启用了导航
+                if (Module[Module_count] == dt.Rows[i]["sn_module"].ToString())
+                {
+                    ListView lsv = this.Controls[Module[Module_count] + "_lsv"] as ListView;
+                    ListViewItem lsvi = new ListViewItem();
+                    lsvi.Tag = dt.Rows[i]["sn_classname"].ToString();
+                    lsvi.Text = dt.Rows[i]["sn_displayname"].ToString();
+                    lsvi.ToolTipText = dt.Rows[i]["sn_caller"].ToString();
+                    lsvi.Name = dt.Rows[i]["sn_id"].ToString();
+                    lsv.Items.Add(lsvi);
+                }
+                else
+                {
+                    //条件不相等的i+1用来做判断了,所以需要-1
+                    i = i - 1;
+                    Module_count++;
+                }
+            }
+            int nCount = ArrFunButton.Count;
+            //布置各功能按钮的位置和ListView的属性
+            for (int i = nCount - 1; i >= 0; i--)
+            {
+                Button btn = ArrFunButton[i] as Button;
+                btn.Width = this.Width - 4;
+                btn.Left = 0;
+
+                //将按钮的单击事件和具体代码对应起来
+                btn.Click += new EventHandler(Btn_Click);
+                if (i == 0)
+                {
+                    btn.Top = 0;
+                    btn.Anchor = AnchorStyles.Left | AnchorStyles.Top;
+                }
+                else
+                {
+                    if (i == nCount - 1)
+                        btn.Top = this.Height - btn.Height - 4;
+                    else
+                        btn.Top = (ArrFunButton[i + 1] as Button).Top - btn.Height;
+                    btn.Anchor = AnchorStyles.Left | AnchorStyles.Bottom;
+                }
+                //鼠标在按钮上移动时,同样判断当前工具条是否隐藏
+                btn.MouseMove += new MouseEventHandler(FunListView_MouseMove);
+
+                //设置listview的anchor属性
+                ListView lsv = ArrFunListView[i] as ListView;
+                if (lsv != null)
+                {
+                    lsv.Anchor = AnchorStyles.Left | AnchorStyles.Top |
+                        AnchorStyles.Right | AnchorStyles.Bottom;
+                    //隐藏功能listview
+                    lsv.Visible = false;
+                    //设置listview双击事件
+                    lsv.Click += lsvFun_DoubleClick;
+                    lsv.DoubleClick += new EventHandler(lsvFun_DoubleClick);
+                    lsv.MouseMove += new MouseEventHandler(FunListView_MouseMove);
+                }
+            }
+            //将第一个功能按钮点一下
+            (ArrFunButton[0] as Button).PerformClick();
+            //别忘了打开记时器
+            this.timer1.Enabled = true;
+        }
+
+        public void Btn_Click(object sender, EventArgs e)
+        {
+            Button btnNow = sender as Button;
+            if (btnNow == null)
+                return;
+
+            int nIndex = this.ArrFunButton.IndexOf(btnNow);
+            //将该按钮前面的置顶
+            for (int i = 1; i <= nIndex; i++)
+            {
+                Button btn = ArrFunButton[i] as Button;
+                btn.Top = ((Button)ArrFunButton[i - 1]).Bottom;
+                btn.Anchor = AnchorStyles.Left | AnchorStyles.Top;
+            }
+
+            //将下面的按钮下移
+            for (int i = ArrFunButton.Count - 1; i > nIndex; i--)
+            {
+                Button btn = ArrFunButton[i] as Button;
+                if (i == ArrFunButton.Count - 1)//最后一个
+                    btn.Top = this.Height - btn.Height;
+                else
+                    btn.Top = ((Button)ArrFunButton[i + 1]).Top - btn.Height;
+                btn.Anchor = AnchorStyles.Left | AnchorStyles.Bottom;
+            }
+            //显示对应的listview
+            for (int i = 0; i < ArrFunButton.Count; i++)
+            {
+                ListView lsv = ArrFunListView[i] as ListView;
+                //当前按钮对应的ListView
+                if (i == nIndex)
+                {
+                    lsv.Left = 0;
+                    lsv.Width = btnNow.Width;
+                    lsv.Top = btnNow.Bottom;
+
+                    for (int j = 0; j < lsv.Items.Count; j++)
+                    {
+                        lsv.Items[j].ImageIndex = 0;
+                    }
+                    if (nIndex == ArrFunListView.Count - 1)//最后一个
+                        lsv.Height = this.Height - btnNow.Bottom - 4;
+                    else
+                        lsv.Height = (ArrFunButton[i + 1] as Button).Top - btnNow.Bottom;
+                    //将当前ListView显示出来
+                    if (!lsv.Visible)
+                        lsv.Visible = true;
+                }
+                else //隐藏其他listview
+                {
+                    if (lsv.Visible)
+                        lsv.Visible = false;
+                }
+            }
+        }
+
+        //隐藏后鼠标在本工具条上移动时,将它显示出来
+        private void FunListView_MouseMove(object sender, MouseEventArgs e)
+        {
+            if (this.Width == m_nPanFunHideWidth)
+            {
+                this.Width = m_nPanFunWidth;
+                this.timer1.Enabled = true;
+            }
+        }
+
+        //双击listview后根据当前项执行操作
+        private void lsvFun_DoubleClick(object sender, EventArgs e)
+        {
+            //双击后执行一个功能
+            ListView lsv = sender as ListView;
+            if (lsv == null)
+                return;
+            if (lsv.SelectedItems.Count == 0)
+                return;
+            //ListView点击的数据
+            ListViewItem item = lsv.SelectedItems[0];
+            //利用反射根据类的名称创建实例
+            Form OpenForm = (Form)Assembly.GetExecutingAssembly().CreateInstance("UAS_MES." + item.Tag);
+            OpenForm.Text = item.Text;
+            //用Tag保存Caller
+            OpenForm.Tag = item.ToolTipText;
+            TabControl tc = (TabControl)this.Parent.Parent.Controls["MainTabControl"];
+            //如果窗体不存在进行打开,item.ToolTip是Caller
+            if (!OpenedFormName.ContainsKey(item.ToolTipText))
+            {
+                TabPage tb = new TabPage { Name = item.Name, Tag = item.ToolTipText, Text = OpenForm.Text };
+                OpenForm.TopLevel = false;
+                tc.TabPages.Add(tb);
+                //直接选中新打开的界面
+                tc.SelectedTab = tb;
+                tb.Controls.Add(OpenForm);
+                OpenedFormName.Add(item.ToolTipText, WinIndex);
+                tc.TabIndex = WinIndex;
+                WinIndex++;
+                OpenForm.Show();
+            }
+            //如果窗体已存在展示该窗体
+            else
+                tc.SelectTab(item.Name);
+        }
+    }
+}

+ 783 - 0
UAS_MES_ZT/CustomControl/AccordionMenu/AccordionMenu.resx

@@ -0,0 +1,783 @@
+<?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>
+  <metadata name="timer1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>17, 17</value>
+  </metadata>
+  <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+  <data name="库存管理.DownImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAAEUAAAAWCAYAAACWl1FwAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
+        dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFcSURBVFhH5di7UsJAFMbxtDT6QMI76IAFT0npIE0K
+        GcRORxHklpAIBHLfbILV8XxeNsMznJ35F5vu+82kWYuILD4N7oq75roCw27sb/x5WBdc27btntY64o/i
+        DnZjPxy4S6A0R6PHO1WUNHc9ep4uxIXd2D8eP/XZowWUThBG+n3p0stsKbbJ0qFDFFfscQuUbpzm9Pqx
+        Eh8c4PGLkuX0Nl+LDw4GJckUTRaO+OBQo+SKpitXfHAwKClfZuuN+OBgUDJV0NzxxAeHM5TFxhffGUpe
+        aFp5n+KDg0FRfHH8nfjgUKPoktztXnxwMCgFX7xdID441ChlRf7+ID44GBTNl21wFB8capSqot0xFB8c
+        /lE6Wa70IU5oH0Ziw/5cFebpoPUwHPbL04nCJKUgisWF3dgPB3gABc9v7fvBoBcnaVKdvkha2I39cPjx
+        oPrhusndcPinpIXd2N8gIusbTaFspKtR2SQAAAAASUVORK5CYII=
+</value>
+  </data>
+  <data name="库存管理.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        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
+</value>
+  </data>
+  <data name="库存管理.MoveImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAAEUAAAAWCAYAAACWl1FwAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
+        dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFzSURBVFhH5djNSgJRGMZxL2P2gTfQFbZvHSEZFBEW
+        CEIQBEIgVFiS9qXWoDmp4/fHzDmjM2a+vU/QqUVX0DvwXxxn9fwYXJwYEcXWNzIWt83dcq7AsBv7LXgA
+        ZI0r71/aaqjCJf8o7sFu7IcDFwdK4vimrv1oSZXRnArdQFzYjf3pQkOzRxIoVWc6X5X6M7ruBGIr9mbU
+        9MIVe9hAcXvBO125WnxwgMcXSpcPF20tPjgYlI5eUK6lxAcHg9Lmw3nTFx8cDEpLLSjr+OKDg0FpqojO
+        Gp744GBQ3vyITutT8cHBoDheRCe1ifjgYFBe+ZCxJ+KDg0GpT0NKv4zFBweDUpuEdFQdiQ8OBsXmw2Fl
+        JD44/KCM53TwNBQfHAzKMx/2Hgfig8M3SrXYUasUfz67DwOxYf9dV5urg+RWzta4aEnxn83OfV9c2I39
+        cIAHUOJceTNbUfmW94GX0sJu7IcDPH5fXCe4EvfXxe5/D7ux3yKi2CfkPhTy27lqkwAAAABJRU5ErkJg
+        gg==
+</value>
+  </data>
+  <data name="库存管理.NormalImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAAEUAAAAWCAYAAACWl1FwAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
+        dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGVSURBVFhH5di7agJRFIXhDSKoYBQEC8FCECwEQRBE
+        4uUVEtTiPKVlom2wttM6IfF+15njXHRnL19jD/zFmanWV8zAEDNTp9OJS6/Sm2QUht3YH4cHtdvtF6k7
+        mUwG1tqd3FR3YTf2w0FKUVOu6XT68Xgw3+8PtWH/bDYbCkeLGo1Gz/d9JwzvrL0gCKx49KlerxtIBUGo
+        PjjAg2q1mqDc2fN99cEBHlStVk0oB+t56oMDPKhSqZggDNm1N/XBAR5ULpeNvGD46rrqgwM8qFQqGV8O
+        56ujPjjAg4rFosFL5ni5qA8O8KBCoWBuns/701l9cIAH5fN5QfF4dzipDw7woFwuZ+zN483+oD44wIOy
+        2azB52i13asPDvCgTCZjHGt5sdmqDw7woHQ6bRzX8ny1UR8c4EHJZNJc5fC7XKsPDvCgRCLR2x9Pzt9q
+        zT+Lpdqw/3A6W/HoUywWa32Nx8OL4zwffM8X6sJu7IcDPCgajaak7udoNNjsdgc81BZ2Yz8c4PH8cR2J
+        ROJSU3qXjMKwG/vjzEz/skOI3Zqgv7AAAAAASUVORK5CYII=
+</value>
+  </data>
+  <data name="SMT作业.DownImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAAEUAAAAWCAYAAACWl1FwAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
+        dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFcSURBVFhH5di7UsJAFMbxtDT6QMI76IAFT0npIE0K
+        GcRORxHklpAIBHLfbILV8XxeNsMznJ35F5vu+82kWYuILD4N7oq75roCw27sb/x5WBdc27btntY64o/i
+        DnZjPxy4S6A0R6PHO1WUNHc9ep4uxIXd2D8eP/XZowWUThBG+n3p0stsKbbJ0qFDFFfscQuUbpzm9Pqx
+        Eh8c4PGLkuX0Nl+LDw4GJckUTRaO+OBQo+SKpitXfHAwKClfZuuN+OBgUDJV0NzxxAeHM5TFxhffGUpe
+        aFp5n+KDg0FRfHH8nfjgUKPoktztXnxwMCgFX7xdID441ChlRf7+ID44GBTNl21wFB8capSqot0xFB8c
+        /lE6Wa70IU5oH0Ziw/5cFebpoPUwHPbL04nCJKUgisWF3dgPB3gABc9v7fvBoBcnaVKdvkha2I39cPjx
+        oPrhusndcPinpIXd2N8gIusbTaFspKtR2SQAAAAASUVORK5CYII=
+</value>
+  </data>
+  <data name="SMT作业.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        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
+</value>
+  </data>
+  <data name="SMT作业.MoveImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAAEUAAAAWCAYAAACWl1FwAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
+        dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFzSURBVFhH5djNSgJRGMZxL2P2gTfQFbZvHSEZFBEW
+        CEIQBEIgVFiS9qXWoDmp4/fHzDmjM2a+vU/QqUVX0DvwXxxn9fwYXJwYEcXWNzIWt83dcq7AsBv7LXgA
+        ZI0r71/aaqjCJf8o7sFu7IcDFwdK4vimrv1oSZXRnArdQFzYjf3pQkOzRxIoVWc6X5X6M7ruBGIr9mbU
+        9MIVe9hAcXvBO125WnxwgMcXSpcPF20tPjgYlI5eUK6lxAcHg9Lmw3nTFx8cDEpLLSjr+OKDg0FpqojO
+        Gp744GBQ3vyITutT8cHBoDheRCe1ifjgYFBe+ZCxJ+KDg0GpT0NKv4zFBweDUpuEdFQdiQ8OBsXmw2Fl
+        JD44/KCM53TwNBQfHAzKMx/2Hgfig8M3SrXYUasUfz67DwOxYf9dV5urg+RWzta4aEnxn83OfV9c2I39
+        cIAHUOJceTNbUfmW94GX0sJu7IcDPH5fXCe4EvfXxe5/D7ux3yKi2CfkPhTy27lqkwAAAABJRU5ErkJg
+        gg==
+</value>
+  </data>
+  <data name="SMT作业.NormalImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAAEUAAAAWCAYAAACWl1FwAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
+        dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGVSURBVFhH5di7agJRFIXhDSKoYBQEC8FCECwEQRBE
+        4uUVEtTiPKVlom2wttM6IfF+15njXHRnL19jD/zFmanWV8zAEDNTp9OJS6/Sm2QUht3YH4cHtdvtF6k7
+        mUwG1tqd3FR3YTf2w0FKUVOu6XT68Xgw3+8PtWH/bDYbCkeLGo1Gz/d9JwzvrL0gCKx49KlerxtIBUGo
+        PjjAg2q1mqDc2fN99cEBHlStVk0oB+t56oMDPKhSqZggDNm1N/XBAR5ULpeNvGD46rrqgwM8qFQqGV8O
+        56ujPjjAg4rFosFL5ni5qA8O8KBCoWBuns/701l9cIAH5fN5QfF4dzipDw7woFwuZ+zN483+oD44wIOy
+        2azB52i13asPDvCgTCZjHGt5sdmqDw7woHQ6bRzX8ny1UR8c4EHJZNJc5fC7XKsPDvCgRCLR2x9Pzt9q
+        zT+Lpdqw/3A6W/HoUywWa32Nx8OL4zwffM8X6sJu7IcDPCgajaak7udoNNjsdgc81BZ2Yz8c4PH8cR2J
+        ROJSU3qXjMKwG/vjzEz/skOI3Zqgv7AAAAAASUVORK5CYII=
+</value>
+  </data>
+  <data name="人员管理.DownImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAAEUAAAAWCAYAAACWl1FwAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
+        dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFcSURBVFhH5di7UsJAFMbxtDT6QMI76IAFT0npIE0K
+        GcRORxHklpAIBHLfbILV8XxeNsMznJ35F5vu+82kWYuILD4N7oq75roCw27sb/x5WBdc27btntY64o/i
+        DnZjPxy4S6A0R6PHO1WUNHc9ep4uxIXd2D8eP/XZowWUThBG+n3p0stsKbbJ0qFDFFfscQuUbpzm9Pqx
+        Eh8c4PGLkuX0Nl+LDw4GJckUTRaO+OBQo+SKpitXfHAwKClfZuuN+OBgUDJV0NzxxAeHM5TFxhffGUpe
+        aFp5n+KDg0FRfHH8nfjgUKPoktztXnxwMCgFX7xdID441ChlRf7+ID44GBTNl21wFB8capSqot0xFB8c
+        /lE6Wa70IU5oH0Ziw/5cFebpoPUwHPbL04nCJKUgisWF3dgPB3gABc9v7fvBoBcnaVKdvkha2I39cPjx
+        oPrhusndcPinpIXd2N8gIusbTaFspKtR2SQAAAAASUVORK5CYII=
+</value>
+  </data>
+  <data name="人员管理.MoveImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAAEUAAAAWCAYAAACWl1FwAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
+        dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFzSURBVFhH5djNSgJRGMZxL2P2gTfQFbZvHSEZFBEW
+        CEIQBEIgVFiS9qXWoDmp4/fHzDmjM2a+vU/QqUVX0DvwXxxn9fwYXJwYEcXWNzIWt83dcq7AsBv7LXgA
+        ZI0r71/aaqjCJf8o7sFu7IcDFwdK4vimrv1oSZXRnArdQFzYjf3pQkOzRxIoVWc6X5X6M7ruBGIr9mbU
+        9MIVe9hAcXvBO125WnxwgMcXSpcPF20tPjgYlI5eUK6lxAcHg9Lmw3nTFx8cDEpLLSjr+OKDg0FpqojO
+        Gp744GBQ3vyITutT8cHBoDheRCe1ifjgYFBe+ZCxJ+KDg0GpT0NKv4zFBweDUpuEdFQdiQ8OBsXmw2Fl
+        JD44/KCM53TwNBQfHAzKMx/2Hgfig8M3SrXYUasUfz67DwOxYf9dV5urg+RWzta4aEnxn83OfV9c2I39
+        cIAHUOJceTNbUfmW94GX0sJu7IcDPH5fXCe4EvfXxe5/D7ux3yKi2CfkPhTy27lqkwAAAABJRU5ErkJg
+        gg==
+</value>
+  </data>
+  <data name="人员管理.NormalImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAAEUAAAAWCAYAAACWl1FwAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
+        dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGVSURBVFhH5di7agJRFIXhDSKoYBQEC8FCECwEQRBE
+        4uUVEtTiPKVlom2wttM6IfF+15njXHRnL19jD/zFmanWV8zAEDNTp9OJS6/Sm2QUht3YH4cHtdvtF6k7
+        mUwG1tqd3FR3YTf2w0FKUVOu6XT68Xgw3+8PtWH/bDYbCkeLGo1Gz/d9JwzvrL0gCKx49KlerxtIBUGo
+        PjjAg2q1mqDc2fN99cEBHlStVk0oB+t56oMDPKhSqZggDNm1N/XBAR5ULpeNvGD46rrqgwM8qFQqGV8O
+        56ujPjjAg4rFosFL5ni5qA8O8KBCoWBuns/701l9cIAH5fN5QfF4dzipDw7woFwuZ+zN483+oD44wIOy
+        2azB52i13asPDvCgTCZjHGt5sdmqDw7woHQ6bRzX8ny1UR8c4EHJZNJc5fC7XKsPDvCgRCLR2x9Pzt9q
+        zT+Lpdqw/3A6W/HoUywWa32Nx8OL4zwffM8X6sJu7IcDPCgajaak7udoNNjsdgc81BZ2Yz8c4PH8cR2J
+        ROJSU3qXjMKwG/vjzEz/skOI3Zqgv7AAAAAASUVORK5CYII=
+</value>
+  </data>
+  <data name="OQC作业.DownImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAAEUAAAAWCAYAAACWl1FwAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
+        dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFcSURBVFhH5di7UsJAFMbxtDT6QMI76IAFT0npIE0K
+        GcRORxHklpAIBHLfbILV8XxeNsMznJ35F5vu+82kWYuILD4N7oq75roCw27sb/x5WBdc27btntY64o/i
+        DnZjPxy4S6A0R6PHO1WUNHc9ep4uxIXd2D8eP/XZowWUThBG+n3p0stsKbbJ0qFDFFfscQuUbpzm9Pqx
+        Eh8c4PGLkuX0Nl+LDw4GJckUTRaO+OBQo+SKpitXfHAwKClfZuuN+OBgUDJV0NzxxAeHM5TFxhffGUpe
+        aFp5n+KDg0FRfHH8nfjgUKPoktztXnxwMCgFX7xdID441ChlRf7+ID44GBTNl21wFB8capSqot0xFB8c
+        /lE6Wa70IU5oH0Ziw/5cFebpoPUwHPbL04nCJKUgisWF3dgPB3gABc9v7fvBoBcnaVKdvkha2I39cPjx
+        oPrhusndcPinpIXd2N8gIusbTaFspKtR2SQAAAAASUVORK5CYII=
+</value>
+  </data>
+  <data name="OQC作业.MoveImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAAEUAAAAWCAYAAACWl1FwAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
+        dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFzSURBVFhH5djNSgJRGMZxL2P2gTfQFbZvHSEZFBEW
+        CEIQBEIgVFiS9qXWoDmp4/fHzDmjM2a+vU/QqUVX0DvwXxxn9fwYXJwYEcXWNzIWt83dcq7AsBv7LXgA
+        ZI0r71/aaqjCJf8o7sFu7IcDFwdK4vimrv1oSZXRnArdQFzYjf3pQkOzRxIoVWc6X5X6M7ruBGIr9mbU
+        9MIVe9hAcXvBO125WnxwgMcXSpcPF20tPjgYlI5eUK6lxAcHg9Lmw3nTFx8cDEpLLSjr+OKDg0FpqojO
+        Gp744GBQ3vyITutT8cHBoDheRCe1ifjgYFBe+ZCxJ+KDg0GpT0NKv4zFBweDUpuEdFQdiQ8OBsXmw2Fl
+        JD44/KCM53TwNBQfHAzKMx/2Hgfig8M3SrXYUasUfz67DwOxYf9dV5urg+RWzta4aEnxn83OfV9c2I39
+        cIAHUOJceTNbUfmW94GX0sJu7IcDPH5fXCe4EvfXxe5/D7ux3yKi2CfkPhTy27lqkwAAAABJRU5ErkJg
+        gg==
+</value>
+  </data>
+  <data name="OQC作业.NormalImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAAEUAAAAWCAYAAACWl1FwAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
+        dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGVSURBVFhH5di7agJRFIXhDSKoYBQEC8FCECwEQRBE
+        4uUVEtTiPKVlom2wttM6IfF+15njXHRnL19jD/zFmanWV8zAEDNTp9OJS6/Sm2QUht3YH4cHtdvtF6k7
+        mUwG1tqd3FR3YTf2w0FKUVOu6XT68Xgw3+8PtWH/bDYbCkeLGo1Gz/d9JwzvrL0gCKx49KlerxtIBUGo
+        PjjAg2q1mqDc2fN99cEBHlStVk0oB+t56oMDPKhSqZggDNm1N/XBAR5ULpeNvGD46rrqgwM8qFQqGV8O
+        56ujPjjAg4rFosFL5ni5qA8O8KBCoWBuns/701l9cIAH5fN5QfF4dzipDw7woFwuZ+zN483+oD44wIOy
+        2azB52i13asPDvCgTCZjHGt5sdmqDw7woHQ6bRzX8ny1UR8c4EHJZNJc5fC7XKsPDvCgRCLR2x9Pzt9q
+        zT+Lpdqw/3A6W/HoUywWa32Nx8OL4zwffM8X6sJu7IcDPCgajaak7udoNNjsdgc81BZ2Yz8c4PH8cR2J
+        ROJSU3qXjMKwG/vjzEz/skOI3Zqgv7AAAAAASUVORK5CYII=
+</value>
+  </data>
+  <data name="系统设置.DownImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAAEUAAAAWCAYAAACWl1FwAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
+        dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFcSURBVFhH5di7UsJAFMbxtDT6QMI76IAFT0npIE0K
+        GcRORxHklpAIBHLfbILV8XxeNsMznJ35F5vu+82kWYuILD4N7oq75roCw27sb/x5WBdc27btntY64o/i
+        DnZjPxy4S6A0R6PHO1WUNHc9ep4uxIXd2D8eP/XZowWUThBG+n3p0stsKbbJ0qFDFFfscQuUbpzm9Pqx
+        Eh8c4PGLkuX0Nl+LDw4GJckUTRaO+OBQo+SKpitXfHAwKClfZuuN+OBgUDJV0NzxxAeHM5TFxhffGUpe
+        aFp5n+KDg0FRfHH8nfjgUKPoktztXnxwMCgFX7xdID441ChlRf7+ID44GBTNl21wFB8capSqot0xFB8c
+        /lE6Wa70IU5oH0Ziw/5cFebpoPUwHPbL04nCJKUgisWF3dgPB3gABc9v7fvBoBcnaVKdvkha2I39cPjx
+        oPrhusndcPinpIXd2N8gIusbTaFspKtR2SQAAAAASUVORK5CYII=
+</value>
+  </data>
+  <data name="系统设置.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        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
+</value>
+  </data>
+  <data name="系统设置.MoveImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAAEUAAAAWCAYAAACWl1FwAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
+        dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFzSURBVFhH5djNSgJRGMZxL2P2gTfQFbZvHSEZFBEW
+        CEIQBEIgVFiS9qXWoDmp4/fHzDmjM2a+vU/QqUVX0DvwXxxn9fwYXJwYEcXWNzIWt83dcq7AsBv7LXgA
+        ZI0r71/aaqjCJf8o7sFu7IcDFwdK4vimrv1oSZXRnArdQFzYjf3pQkOzRxIoVWc6X5X6M7ruBGIr9mbU
+        9MIVe9hAcXvBO125WnxwgMcXSpcPF20tPjgYlI5eUK6lxAcHg9Lmw3nTFx8cDEpLLSjr+OKDg0FpqojO
+        Gp744GBQ3vyITutT8cHBoDheRCe1ifjgYFBe+ZCxJ+KDg0GpT0NKv4zFBweDUpuEdFQdiQ8OBsXmw2Fl
+        JD44/KCM53TwNBQfHAzKMx/2Hgfig8M3SrXYUasUfz67DwOxYf9dV5urg+RWzta4aEnxn83OfV9c2I39
+        cIAHUOJceTNbUfmW94GX0sJu7IcDPH5fXCe4EvfXxe5/D7ux3yKi2CfkPhTy27lqkwAAAABJRU5ErkJg
+        gg==
+</value>
+  </data>
+  <data name="系统设置.NormalImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAAEUAAAAWCAYAAACWl1FwAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
+        dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGVSURBVFhH5di7agJRFIXhDSKoYBQEC8FCECwEQRBE
+        4uUVEtTiPKVlom2wttM6IfF+15njXHRnL19jD/zFmanWV8zAEDNTp9OJS6/Sm2QUht3YH4cHtdvtF6k7
+        mUwG1tqd3FR3YTf2w0FKUVOu6XT68Xgw3+8PtWH/bDYbCkeLGo1Gz/d9JwzvrL0gCKx49KlerxtIBUGo
+        PjjAg2q1mqDc2fN99cEBHlStVk0oB+t56oMDPKhSqZggDNm1N/XBAR5ULpeNvGD46rrqgwM8qFQqGV8O
+        56ujPjjAg4rFosFL5ni5qA8O8KBCoWBuns/701l9cIAH5fN5QfF4dzipDw7woFwuZ+zN483+oD44wIOy
+        2azB52i13asPDvCgTCZjHGt5sdmqDw7woHQ6bRzX8ny1UR8c4EHJZNJc5fC7XKsPDvCgRCLR2x9Pzt9q
+        zT+Lpdqw/3A6W/HoUywWa32Nx8OL4zwffM8X6sJu7IcDPCgajaak7udoNNjsdgc81BZ2Yz8c4PH8cR2J
+        ROJSU3qXjMKwG/vjzEz/skOI3Zqgv7AAAAAASUVORK5CYII=
+</value>
+  </data>
+  <data name="查询分析.DownImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAAEUAAAAWCAYAAACWl1FwAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
+        dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFcSURBVFhH5di7UsJAFMbxtDT6QMI76IAFT0npIE0K
+        GcRORxHklpAIBHLfbILV8XxeNsMznJ35F5vu+82kWYuILD4N7oq75roCw27sb/x5WBdc27btntY64o/i
+        DnZjPxy4S6A0R6PHO1WUNHc9ep4uxIXd2D8eP/XZowWUThBG+n3p0stsKbbJ0qFDFFfscQuUbpzm9Pqx
+        Eh8c4PGLkuX0Nl+LDw4GJckUTRaO+OBQo+SKpitXfHAwKClfZuuN+OBgUDJV0NzxxAeHM5TFxhffGUpe
+        aFp5n+KDg0FRfHH8nfjgUKPoktztXnxwMCgFX7xdID441ChlRf7+ID44GBTNl21wFB8capSqot0xFB8c
+        /lE6Wa70IU5oH0Ziw/5cFebpoPUwHPbL04nCJKUgisWF3dgPB3gABc9v7fvBoBcnaVKdvkha2I39cPjx
+        oPrhusndcPinpIXd2N8gIusbTaFspKtR2SQAAAAASUVORK5CYII=
+</value>
+  </data>
+  <data name="查询分析.MoveImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAAEUAAAAWCAYAAACWl1FwAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
+        dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFzSURBVFhH5djNSgJRGMZxL2P2gTfQFbZvHSEZFBEW
+        CEIQBEIgVFiS9qXWoDmp4/fHzDmjM2a+vU/QqUVX0DvwXxxn9fwYXJwYEcXWNzIWt83dcq7AsBv7LXgA
+        ZI0r71/aaqjCJf8o7sFu7IcDFwdK4vimrv1oSZXRnArdQFzYjf3pQkOzRxIoVWc6X5X6M7ruBGIr9mbU
+        9MIVe9hAcXvBO125WnxwgMcXSpcPF20tPjgYlI5eUK6lxAcHg9Lmw3nTFx8cDEpLLSjr+OKDg0FpqojO
+        Gp744GBQ3vyITutT8cHBoDheRCe1ifjgYFBe+ZCxJ+KDg0GpT0NKv4zFBweDUpuEdFQdiQ8OBsXmw2Fl
+        JD44/KCM53TwNBQfHAzKMx/2Hgfig8M3SrXYUasUfz67DwOxYf9dV5urg+RWzta4aEnxn83OfV9c2I39
+        cIAHUOJceTNbUfmW94GX0sJu7IcDPH5fXCe4EvfXxe5/D7ux3yKi2CfkPhTy27lqkwAAAABJRU5ErkJg
+        gg==
+</value>
+  </data>
+  <data name="查询分析.NormalImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAAEUAAAAWCAYAAACWl1FwAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
+        dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGVSURBVFhH5di7agJRFIXhDSKoYBQEC8FCECwEQRBE
+        4uUVEtTiPKVlom2wttM6IfF+15njXHRnL19jD/zFmanWV8zAEDNTp9OJS6/Sm2QUht3YH4cHtdvtF6k7
+        mUwG1tqd3FR3YTf2w0FKUVOu6XT68Xgw3+8PtWH/bDYbCkeLGo1Gz/d9JwzvrL0gCKx49KlerxtIBUGo
+        PjjAg2q1mqDc2fN99cEBHlStVk0oB+t56oMDPKhSqZggDNm1N/XBAR5ULpeNvGD46rrqgwM8qFQqGV8O
+        56ujPjjAg4rFosFL5ni5qA8O8KBCoWBuns/701l9cIAH5fN5QfF4dzipDw7woFwuZ+zN483+oD44wIOy
+        2azB52i13asPDvCgTCZjHGt5sdmqDw7woHQ6bRzX8ny1UR8c4EHJZNJc5fC7XKsPDvCgRCLR2x9Pzt9q
+        zT+Lpdqw/3A6W/HoUywWa32Nx8OL4zwffM8X6sJu7IcDPCgajaak7udoNNjsdgc81BZ2Yz8c4PH8cR2J
+        ROJSU3qXjMKwG/vjzEz/skOI3Zqgv7AAAAAASUVORK5CYII=
+</value>
+  </data>
+  <data name="仓库作业.DownImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAAEUAAAAWCAYAAACWl1FwAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
+        dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFcSURBVFhH5di7UsJAFMbxtDT6QMI76IAFT0npIE0K
+        GcRORxHklpAIBHLfbILV8XxeNsMznJ35F5vu+82kWYuILD4N7oq75roCw27sb/x5WBdc27btntY64o/i
+        DnZjPxy4S6A0R6PHO1WUNHc9ep4uxIXd2D8eP/XZowWUThBG+n3p0stsKbbJ0qFDFFfscQuUbpzm9Pqx
+        Eh8c4PGLkuX0Nl+LDw4GJckUTRaO+OBQo+SKpitXfHAwKClfZuuN+OBgUDJV0NzxxAeHM5TFxhffGUpe
+        aFp5n+KDg0FRfHH8nfjgUKPoktztXnxwMCgFX7xdID441ChlRf7+ID44GBTNl21wFB8capSqot0xFB8c
+        /lE6Wa70IU5oH0Ziw/5cFebpoPUwHPbL04nCJKUgisWF3dgPB3gABc9v7fvBoBcnaVKdvkha2I39cPjx
+        oPrhusndcPinpIXd2N8gIusbTaFspKtR2SQAAAAASUVORK5CYII=
+</value>
+  </data>
+  <data name="仓库作业.MoveImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAAEUAAAAWCAYAAACWl1FwAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
+        dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFzSURBVFhH5djNSgJRGMZxL2P2gTfQFbZvHSEZFBEW
+        CEIQBEIgVFiS9qXWoDmp4/fHzDmjM2a+vU/QqUVX0DvwXxxn9fwYXJwYEcXWNzIWt83dcq7AsBv7LXgA
+        ZI0r71/aaqjCJf8o7sFu7IcDFwdK4vimrv1oSZXRnArdQFzYjf3pQkOzRxIoVWc6X5X6M7ruBGIr9mbU
+        9MIVe9hAcXvBO125WnxwgMcXSpcPF20tPjgYlI5eUK6lxAcHg9Lmw3nTFx8cDEpLLSjr+OKDg0FpqojO
+        Gp744GBQ3vyITutT8cHBoDheRCe1ifjgYFBe+ZCxJ+KDg0GpT0NKv4zFBweDUpuEdFQdiQ8OBsXmw2Fl
+        JD44/KCM53TwNBQfHAzKMx/2Hgfig8M3SrXYUasUfz67DwOxYf9dV5urg+RWzta4aEnxn83OfV9c2I39
+        cIAHUOJceTNbUfmW94GX0sJu7IcDPH5fXCe4EvfXxe5/D7ux3yKi2CfkPhTy27lqkwAAAABJRU5ErkJg
+        gg==
+</value>
+  </data>
+  <data name="仓库作业.NormalImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAAEUAAAAWCAYAAACWl1FwAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
+        dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGVSURBVFhH5di7agJRFIXhDSKoYBQEC8FCECwEQRBE
+        4uUVEtTiPKVlom2wttM6IfF+15njXHRnL19jD/zFmanWV8zAEDNTp9OJS6/Sm2QUht3YH4cHtdvtF6k7
+        mUwG1tqd3FR3YTf2w0FKUVOu6XT68Xgw3+8PtWH/bDYbCkeLGo1Gz/d9JwzvrL0gCKx49KlerxtIBUGo
+        PjjAg2q1mqDc2fN99cEBHlStVk0oB+t56oMDPKhSqZggDNm1N/XBAR5ULpeNvGD46rrqgwM8qFQqGV8O
+        56ujPjjAg4rFosFL5ni5qA8O8KBCoWBuns/701l9cIAH5fN5QfF4dzipDw7woFwuZ+zN483+oD44wIOy
+        2azB52i13asPDvCgTCZjHGt5sdmqDw7woHQ6bRzX8ny1UR8c4EHJZNJc5fC7XKsPDvCgRCLR2x9Pzt9q
+        zT+Lpdqw/3A6W/HoUywWa32Nx8OL4zwffM8X6sJu7IcDPCgajaak7udoNNjsdgc81BZ2Yz8c4PH8cR2J
+        ROJSU3qXjMKwG/vjzEz/skOI3Zqgv7AAAAAASUVORK5CYII=
+</value>
+  </data>
+  <data name="特殊作业.DownImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAAEUAAAAWCAYAAACWl1FwAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
+        dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFcSURBVFhH5di7UsJAFMbxtDT6QMI76IAFT0npIE0K
+        GcRORxHklpAIBHLfbILV8XxeNsMznJ35F5vu+82kWYuILD4N7oq75roCw27sb/x5WBdc27btntY64o/i
+        DnZjPxy4S6A0R6PHO1WUNHc9ep4uxIXd2D8eP/XZowWUThBG+n3p0stsKbbJ0qFDFFfscQuUbpzm9Pqx
+        Eh8c4PGLkuX0Nl+LDw4GJckUTRaO+OBQo+SKpitXfHAwKClfZuuN+OBgUDJV0NzxxAeHM5TFxhffGUpe
+        aFp5n+KDg0FRfHH8nfjgUKPoktztXnxwMCgFX7xdID441ChlRf7+ID44GBTNl21wFB8capSqot0xFB8c
+        /lE6Wa70IU5oH0Ziw/5cFebpoPUwHPbL04nCJKUgisWF3dgPB3gABc9v7fvBoBcnaVKdvkha2I39cPjx
+        oPrhusndcPinpIXd2N8gIusbTaFspKtR2SQAAAAASUVORK5CYII=
+</value>
+  </data>
+  <data name="特殊作业.MoveImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAAEUAAAAWCAYAAACWl1FwAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
+        dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFzSURBVFhH5djNSgJRGMZxL2P2gTfQFbZvHSEZFBEW
+        CEIQBEIgVFiS9qXWoDmp4/fHzDmjM2a+vU/QqUVX0DvwXxxn9fwYXJwYEcXWNzIWt83dcq7AsBv7LXgA
+        ZI0r71/aaqjCJf8o7sFu7IcDFwdK4vimrv1oSZXRnArdQFzYjf3pQkOzRxIoVWc6X5X6M7ruBGIr9mbU
+        9MIVe9hAcXvBO125WnxwgMcXSpcPF20tPjgYlI5eUK6lxAcHg9Lmw3nTFx8cDEpLLSjr+OKDg0FpqojO
+        Gp744GBQ3vyITutT8cHBoDheRCe1ifjgYFBe+ZCxJ+KDg0GpT0NKv4zFBweDUpuEdFQdiQ8OBsXmw2Fl
+        JD44/KCM53TwNBQfHAzKMx/2Hgfig8M3SrXYUasUfz67DwOxYf9dV5urg+RWzta4aEnxn83OfV9c2I39
+        cIAHUOJceTNbUfmW94GX0sJu7IcDPH5fXCe4EvfXxe5/D7ux3yKi2CfkPhTy27lqkwAAAABJRU5ErkJg
+        gg==
+</value>
+  </data>
+  <data name="特殊作业.NormalImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAAEUAAAAWCAYAAACWl1FwAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
+        dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGVSURBVFhH5di7agJRFIXhDSKoYBQEC8FCECwEQRBE
+        4uUVEtTiPKVlom2wttM6IfF+15njXHRnL19jD/zFmanWV8zAEDNTp9OJS6/Sm2QUht3YH4cHtdvtF6k7
+        mUwG1tqd3FR3YTf2w0FKUVOu6XT68Xgw3+8PtWH/bDYbCkeLGo1Gz/d9JwzvrL0gCKx49KlerxtIBUGo
+        PjjAg2q1mqDc2fN99cEBHlStVk0oB+t56oMDPKhSqZggDNm1N/XBAR5ULpeNvGD46rrqgwM8qFQqGV8O
+        56ujPjjAg4rFosFL5ni5qA8O8KBCoWBuns/701l9cIAH5fN5QfF4dzipDw7woFwuZ+zN483+oD44wIOy
+        2azB52i13asPDvCgTCZjHGt5sdmqDw7woHQ6bRzX8ny1UR8c4EHJZNJc5fC7XKsPDvCgRCLR2x9Pzt9q
+        zT+Lpdqw/3A6W/HoUywWa32Nx8OL4zwffM8X6sJu7IcDPCgajaak7udoNNjsdgc81BZ2Yz8c4PH8cR2J
+        ROJSU3qXjMKwG/vjzEz/skOI3Zqgv7AAAAAASUVORK5CYII=
+</value>
+  </data>
+  <data name="产线作业.DownImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAAEUAAAAWCAYAAACWl1FwAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
+        dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFcSURBVFhH5di7UsJAFMbxtDT6QMI76IAFT0npIE0K
+        GcRORxHklpAIBHLfbILV8XxeNsMznJ35F5vu+82kWYuILD4N7oq75roCw27sb/x5WBdc27btntY64o/i
+        DnZjPxy4S6A0R6PHO1WUNHc9ep4uxIXd2D8eP/XZowWUThBG+n3p0stsKbbJ0qFDFFfscQuUbpzm9Pqx
+        Eh8c4PGLkuX0Nl+LDw4GJckUTRaO+OBQo+SKpitXfHAwKClfZuuN+OBgUDJV0NzxxAeHM5TFxhffGUpe
+        aFp5n+KDg0FRfHH8nfjgUKPoktztXnxwMCgFX7xdID441ChlRf7+ID44GBTNl21wFB8capSqot0xFB8c
+        /lE6Wa70IU5oH0Ziw/5cFebpoPUwHPbL04nCJKUgisWF3dgPB3gABc9v7fvBoBcnaVKdvkha2I39cPjx
+        oPrhusndcPinpIXd2N8gIusbTaFspKtR2SQAAAAASUVORK5CYII=
+</value>
+  </data>
+  <data name="产线作业.MoveImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAAEUAAAAWCAYAAACWl1FwAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
+        dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFzSURBVFhH5djNSgJRGMZxL2P2gTfQFbZvHSEZFBEW
+        CEIQBEIgVFiS9qXWoDmp4/fHzDmjM2a+vU/QqUVX0DvwXxxn9fwYXJwYEcXWNzIWt83dcq7AsBv7LXgA
+        ZI0r71/aaqjCJf8o7sFu7IcDFwdK4vimrv1oSZXRnArdQFzYjf3pQkOzRxIoVWc6X5X6M7ruBGIr9mbU
+        9MIVe9hAcXvBO125WnxwgMcXSpcPF20tPjgYlI5eUK6lxAcHg9Lmw3nTFx8cDEpLLSjr+OKDg0FpqojO
+        Gp744GBQ3vyITutT8cHBoDheRCe1ifjgYFBe+ZCxJ+KDg0GpT0NKv4zFBweDUpuEdFQdiQ8OBsXmw2Fl
+        JD44/KCM53TwNBQfHAzKMx/2Hgfig8M3SrXYUasUfz67DwOxYf9dV5urg+RWzta4aEnxn83OfV9c2I39
+        cIAHUOJceTNbUfmW94GX0sJu7IcDPH5fXCe4EvfXxe5/D7ux3yKi2CfkPhTy27lqkwAAAABJRU5ErkJg
+        gg==
+</value>
+  </data>
+  <data name="产线作业.NormalImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAAEUAAAAWCAYAAACWl1FwAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
+        dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGVSURBVFhH5di7agJRFIXhDSKoYBQEC8FCECwEQRBE
+        4uUVEtTiPKVlom2wttM6IfF+15njXHRnL19jD/zFmanWV8zAEDNTp9OJS6/Sm2QUht3YH4cHtdvtF6k7
+        mUwG1tqd3FR3YTf2w0FKUVOu6XT68Xgw3+8PtWH/bDYbCkeLGo1Gz/d9JwzvrL0gCKx49KlerxtIBUGo
+        PjjAg2q1mqDc2fN99cEBHlStVk0oB+t56oMDPKhSqZggDNm1N/XBAR5ULpeNvGD46rrqgwM8qFQqGV8O
+        56ujPjjAg4rFosFL5ni5qA8O8KBCoWBuns/701l9cIAH5fN5QfF4dzipDw7woFwuZ+zN483+oD44wIOy
+        2azB52i13asPDvCgTCZjHGt5sdmqDw7woHQ6bRzX8ny1UR8c4EHJZNJc5fC7XKsPDvCgRCLR2x9Pzt9q
+        zT+Lpdqw/3A6W/HoUywWa32Nx8OL4zwffM8X6sJu7IcDPCgajaak7udoNNjsdgc81BZ2Yz8c4PH8cR2J
+        ROJSU3qXjMKwG/vjzEz/skOI3Zqgv7AAAAAASUVORK5CYII=
+</value>
+  </data>
+  <data name="包装作业.DownImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAAEUAAAAWCAYAAACWl1FwAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
+        dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFcSURBVFhH5di7UsJAFMbxtDT6QMI76IAFT0npIE0K
+        GcRORxHklpAIBHLfbILV8XxeNsMznJ35F5vu+82kWYuILD4N7oq75roCw27sb/x5WBdc27btntY64o/i
+        DnZjPxy4S6A0R6PHO1WUNHc9ep4uxIXd2D8eP/XZowWUThBG+n3p0stsKbbJ0qFDFFfscQuUbpzm9Pqx
+        Eh8c4PGLkuX0Nl+LDw4GJckUTRaO+OBQo+SKpitXfHAwKClfZuuN+OBgUDJV0NzxxAeHM5TFxhffGUpe
+        aFp5n+KDg0FRfHH8nfjgUKPoktztXnxwMCgFX7xdID441ChlRf7+ID44GBTNl21wFB8capSqot0xFB8c
+        /lE6Wa70IU5oH0Ziw/5cFebpoPUwHPbL04nCJKUgisWF3dgPB3gABc9v7fvBoBcnaVKdvkha2I39cPjx
+        oPrhusndcPinpIXd2N8gIusbTaFspKtR2SQAAAAASUVORK5CYII=
+</value>
+  </data>
+  <data name="包装作业.MoveImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAAEUAAAAWCAYAAACWl1FwAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
+        dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFzSURBVFhH5djNSgJRGMZxL2P2gTfQFbZvHSEZFBEW
+        CEIQBEIgVFiS9qXWoDmp4/fHzDmjM2a+vU/QqUVX0DvwXxxn9fwYXJwYEcXWNzIWt83dcq7AsBv7LXgA
+        ZI0r71/aaqjCJf8o7sFu7IcDFwdK4vimrv1oSZXRnArdQFzYjf3pQkOzRxIoVWc6X5X6M7ruBGIr9mbU
+        9MIVe9hAcXvBO125WnxwgMcXSpcPF20tPjgYlI5eUK6lxAcHg9Lmw3nTFx8cDEpLLSjr+OKDg0FpqojO
+        Gp744GBQ3vyITutT8cHBoDheRCe1ifjgYFBe+ZCxJ+KDg0GpT0NKv4zFBweDUpuEdFQdiQ8OBsXmw2Fl
+        JD44/KCM53TwNBQfHAzKMx/2Hgfig8M3SrXYUasUfz67DwOxYf9dV5urg+RWzta4aEnxn83OfV9c2I39
+        cIAHUOJceTNbUfmW94GX0sJu7IcDPH5fXCe4EvfXxe5/D7ux3yKi2CfkPhTy27lqkwAAAABJRU5ErkJg
+        gg==
+</value>
+  </data>
+  <data name="包装作业.NormalImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAAEUAAAAWCAYAAACWl1FwAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
+        dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGVSURBVFhH5di7agJRFIXhDSKoYBQEC8FCECwEQRBE
+        4uUVEtTiPKVlom2wttM6IfF+15njXHRnL19jD/zFmanWV8zAEDNTp9OJS6/Sm2QUht3YH4cHtdvtF6k7
+        mUwG1tqd3FR3YTf2w0FKUVOu6XT68Xgw3+8PtWH/bDYbCkeLGo1Gz/d9JwzvrL0gCKx49KlerxtIBUGo
+        PjjAg2q1mqDc2fN99cEBHlStVk0oB+t56oMDPKhSqZggDNm1N/XBAR5ULpeNvGD46rrqgwM8qFQqGV8O
+        56ujPjjAg4rFosFL5ni5qA8O8KBCoWBuns/701l9cIAH5fN5QfF4dzipDw7woFwuZ+zN483+oD44wIOy
+        2azB52i13asPDvCgTCZjHGt5sdmqDw7woHQ6bRzX8ny1UR8c4EHJZNJc5fC7XKsPDvCgRCLR2x9Pzt9q
+        zT+Lpdqw/3A6W/HoUywWa32Nx8OL4zwffM8X6sJu7IcDPCgajaak7udoNNjsdgc81BZ2Yz8c4PH8cR2J
+        ROJSU3qXjMKwG/vjzEz/skOI3Zqgv7AAAAAASUVORK5CYII=
+</value>
+  </data>
+</root>

+ 74 - 0
UAS_MES_ZT/CustomControl/AccordionMenu/NavagationBar.Designer.cs

@@ -0,0 +1,74 @@
+namespace UAS_MES_NEW.CustomControl.AccordionMenu
+{
+    partial class NavagationBar
+    {
+        /// <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 Component 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()
+        {
+            ((System.ComponentModel.ISupportInitialize)(this)).BeginInit();
+            this.SuspendLayout();
+            // 
+            // NavagationBar
+            // 
+            this.Appearance.Button.Font = new System.Drawing.Font("微软雅黑", 12F);
+            this.Appearance.Button.Options.UseFont = true;
+            this.Appearance.ButtonHotTracked.Font = new System.Drawing.Font("微软雅黑", 12F);
+            this.Appearance.ButtonHotTracked.Options.UseFont = true;
+            this.Appearance.ButtonPressed.Font = new System.Drawing.Font("微软雅黑", 12F);
+            this.Appearance.ButtonPressed.Options.UseFont = true;
+            this.Appearance.Hint.Font = new System.Drawing.Font("微软雅黑", 12F);
+            this.Appearance.Hint.Options.UseFont = true;
+            this.Appearance.Item.Font = new System.Drawing.Font("微软雅黑", 10F);
+            this.Appearance.Item.Options.UseFont = true;
+            this.Appearance.ItemActive.Font = new System.Drawing.Font("微软雅黑", 10F);
+            this.Appearance.ItemActive.Options.UseFont = true;
+            this.Appearance.ItemHotTracked.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+            this.Appearance.ItemHotTracked.Options.UseFont = true;
+            this.Appearance.ItemPressed.Font = new System.Drawing.Font("微软雅黑", 10F);
+            this.Appearance.ItemPressed.Options.UseFont = true;
+            this.Appearance.NavigationPaneHeader.Font = new System.Drawing.Font("微软雅黑", 12F);
+            this.Appearance.NavigationPaneHeader.Options.UseFont = true;
+            this.Appearance.NavPaneContentButton.Font = new System.Drawing.Font("微软雅黑", 12F);
+            this.Appearance.NavPaneContentButton.Options.UseFont = true;
+            this.Appearance.NavPaneContentButtonHotTracked.Font = new System.Drawing.Font("微软雅黑", 12F);
+            this.Appearance.NavPaneContentButtonHotTracked.Options.UseFont = true;
+            this.Appearance.NavPaneContentButtonPressed.Font = new System.Drawing.Font("微软雅黑", 12F);
+            this.Appearance.NavPaneContentButtonPressed.Options.UseFont = true;
+            this.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.LinkInterval = 2;
+            this.NavigationPaneGroupClientHeight = 300;
+            this.OptionsNavPane.ExpandedWidth = 140;
+            this.ShowGroupHint = false;
+            this.ShowLinkHint = false;
+            this.Text = " ";
+            ((System.ComponentModel.ISupportInitialize)(this)).EndInit();
+            this.ResumeLayout(false);
+
+        }
+
+        #endregion
+    }
+}

+ 156 - 0
UAS_MES_ZT/CustomControl/AccordionMenu/NavagationBar.cs

@@ -0,0 +1,156 @@
+using System;
+using System.Collections.Generic;
+using System.Drawing;
+using System.Data;
+using System.Text;
+using System.Windows.Forms;
+using UAS_MES_NEW.DataOperate;
+using UAS_MES_NEW.Entity;
+using DevExpress.XtraNavBar;
+using System.Collections;
+using System.Reflection;
+
+namespace UAS_MES_NEW.CustomControl.AccordionMenu
+{
+    public partial class NavagationBar : NavBarControl
+    {
+
+        StringBuilder sql = new StringBuilder();
+
+        public static int WinIndex = 0;
+        /// <summary>
+        /// 记录当前功能面板中的按钮
+        /// </summary>
+        private ArrayList ArrFunButton = new ArrayList();
+        /// <summary>
+        /// 记录当前功能面板中的listview
+        /// </summary>
+        private ArrayList ArrFunListView = new ArrayList();
+        /// <summary>
+        /// 已经打开的Form
+        /// </summary>
+        public static Dictionary<string, int> OpenedFormName = new Dictionary<string, int>();
+
+        public NavagationBar()
+        {
+            InitializeComponent();
+            DataHelper dh = SystemInf.dh;
+            if (dh == null)
+                return;
+            if (User.UserAccountType == "admin")
+            {
+                sql.Clear();
+                sql.Append("select distinct sn_id,sn_detno,sn_module,sn_modulecode,sn_classname,sn_displayname,sn_caller ugp_caller,1 ugp_ifdelete,1 ugp_ifread,1 ugp_ifspecial,1 ugp_ifall,");
+                sql.Append("1 ugp_ifwrite from CS$SYSNAVATION left join CS$USERGROUPPOWER on sn_caller=ugp_caller  where sn_using=1  order by sn_modulecode,sn_detno");
+            }
+            else
+            {
+                sql.Clear();
+                sql.Append("select  sn_id,sn_detno,sn_module,sn_displayname,sn_modulecode,sn_classname,ugp_caller,max(ugp_ifdelete)ugp_ifdelete,max(ugp_ifread)ugp_ifread");
+                sql.Append(",max(ugp_ifspecial)ugp_ifspecial,max(ugp_ifwrite)ugp_ifwrite,max(ugp_ifall)ugp_ifall from CS$USERGROUPPOWER ");
+                sql.Append("left join CS$SYSNAVATION on sn_caller=ugp_caller  where sn_using=1 and ugp_groupcode in ( select eg_groupcode from cs$empgroup ");
+                sql.Append("left join cs$userresource on ur_groupcode = eg_groupcode where eg_emcode = '" + User.UserCode + "') group by sn_id,sn_caller,sn_detno,sn_modulecode,sn_classname,sn_module,sn_displayname,ugp_caller order by sn_modulecode,sn_detno");
+            }
+            DataTable dt = (DataTable)dh.ExecuteSql(sql.ToString(), "select");
+            if (dt.Rows.Count == 0 && User.UserAccountType != "admin")
+            {
+                return;
+            }
+            for (int i = 0; i < dt.Rows.Count; i++)
+            {
+                bool ContainGroup = false;
+                string module_name = dt.Rows[i]["sn_module"].ToString();
+                string caller = dt.Rows[i]["sn_displayname"].ToString();
+                NavBarItem nbi = new NavBarItem(caller);
+                nbi.Tag = dt.Rows[i]["sn_classname"].ToString();
+                nbi.LinkClicked += Nbi_LinkClicked;
+                nbi.Tag = dt.Rows[i]["sn_classname"].ToString();
+                nbi.Hint = dt.Rows[i]["ugp_caller"].ToString();
+                nbi.Name = dt.Rows[i]["sn_id"].ToString();
+                for (int j = 0; j < Groups.Count; j++)
+                {
+                    if (Groups[j].Caption == module_name)
+                    {
+                        ContainGroup = true;
+                        if (dt.Rows[i]["ugp_ifread"].ToString() != "0" || dt.Rows[i]["ugp_ifall"].ToString() != "0")
+                        {
+                            Groups[j].ItemLinks.Add(nbi);
+                        }
+                    }
+                    else
+                    {
+                        ContainGroup = false;
+                    }
+                }
+                if (!ContainGroup)
+                {
+                    NavBarGroup nbg = new NavBarGroup(module_name);
+                    //如果加载Icon失败则加载默认图片
+                    try
+                    {
+                        nbg.LargeImage = new Bitmap(@Application.StartupPath + "/Resources/" + dt.Rows[i]["sn_module"].ToString() + ".png");
+                    }
+                    catch (Exception)
+                    {
+                        try
+                        {
+                            nbg.LargeImage = new Bitmap(@Application.StartupPath + "/Resources/defaulticon.png");
+                        }
+                        catch (Exception)
+                        {
+                            nbg.ImageUri = null;
+                        }
+                    }
+                    Groups.Add(nbg);
+                    nbg.ItemLinks.Add(nbi);
+                }
+            }
+            //查询出的用户可见的Caller
+            //将查询出的数据添加到队列中
+            for (int i = 0; i < dt.Rows.Count; i++)
+            {
+                //添加权限
+                Dictionary<string, bool> dic = new Dictionary<string, bool>();
+                dic.Add("IFDELETE", dt.Rows[i]["UGP_IFDELETE"].ToString() != "1" ? false : true);
+                dic.Add("IFREAD", dt.Rows[i]["UGP_IFREAD"].ToString() != "1" ? false : true);
+                dic.Add("IFWRITE", dt.Rows[i]["UGP_IFWRITE"].ToString() != "1" ? false : true);
+                dic.Add("IFSPECIAL", dt.Rows[i]["UGP_IFSPECIAL"].ToString() != "1" ? false : true);
+                dic.Add("IFALL", dt.Rows[i]["UGP_IFALL"].ToString() != "1" ? false : true);
+                //之后通过Call来获取页面操作的权限
+                if (SystemInf.Caller.ContainsKey(dt.Rows[i]["ugp_caller"].ToString()))
+                {
+                    SystemInf.Caller.Remove(dt.Rows[i]["ugp_caller"].ToString());
+                }
+                SystemInf.Caller.Add(dt.Rows[i]["ugp_caller"].ToString(), dic);
+            }
+        }
+
+        private void Nbi_LinkClicked(object sender, NavBarLinkEventArgs e)
+        {
+            NavBarItem nbi = (sender as NavBarItem);
+            Form OpenForm = (Form)Assembly.GetExecutingAssembly().CreateInstance("UAS_MES_NEW." + nbi.Tag.ToString());
+            OpenForm.Dock = DockStyle.Fill;
+            OpenForm.Text = nbi.Caption;
+            //用Tag保存Caller
+            OpenForm.Tag = nbi.Hint;
+            TabControl tc = (TabControl)this.Parent.Controls["MainTabControl"];
+            //如果窗体不存在进行打开,item.ToolTip是Caller
+            if (!OpenedFormName.ContainsKey(nbi.Hint))
+            {
+                TabPage tb = new TabPage { Name = nbi.Name, Tag = nbi.Hint, Text = OpenForm.Text };
+                OpenForm.TopLevel = false;
+                tc.TabPages.Add(tb);
+                //直接选中新打开的界面
+                tc.SelectedTab = tb;
+                tb.Controls.Add(OpenForm);
+                OpenedFormName.Add(nbi.Hint, WinIndex);
+                tc.TabIndex = WinIndex;
+                WinIndex++;
+                OpenForm.Show();
+            }
+            //如果窗体已存在展示该窗体
+            else
+                tc.SelectTab(nbi.Name);
+        }
+    }
+}

+ 123 - 0
UAS_MES_ZT/CustomControl/AccordionMenu/NavagationBar.resx

@@ -0,0 +1,123 @@
+<?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>
+  <metadata name="$this.TrayLargeIcon" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>False</value>
+  </metadata>
+</root>

+ 48 - 0
UAS_MES_ZT/CustomControl/BaseForm/BaseForm.Designer.cs

@@ -0,0 +1,48 @@
+namespace UAS_MES_NEW.CustomControl.BaseForm
+{
+    partial class BaseForm
+    {
+        /// <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.SuspendLayout();
+            // 
+            // BaseForm
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 15F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.ClientSize = new System.Drawing.Size(725, 425);
+            this.Name = "BaseForm";
+            this.Text = "BaseForm";
+            this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.BaseForm_FormClosing);
+            this.Load += new System.EventHandler(this.BaseForm_Load);
+            this.ResumeLayout(false);
+
+        }
+
+        #endregion
+    }
+}

+ 37 - 0
UAS_MES_ZT/CustomControl/BaseForm/BaseForm.cs

@@ -0,0 +1,37 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+
+namespace UAS_MES_NEW.CustomControl.BaseForm
+{
+    public partial class BaseForm : Form
+    {
+        public BaseForm()
+        {
+            InitializeComponent();
+        }
+
+        private void BaseForm_Load(object sender, EventArgs e)
+        {
+            if (!DesignMode)
+            {
+                Main main = Application.OpenForms["Main"] as Main;
+                main.TopMost = false;
+            }
+        }
+
+        private void BaseForm_FormClosing(object sender, FormClosingEventArgs e)
+        {
+            if (!DesignMode)
+            {
+                //Main main = Application.OpenForms["Main"] as Main;
+                //main.TopMost = (main.Controls["headBar1"].Controls["AlwaysTop"] as CheckBox).Checked;
+            }
+        }
+    }
+}

+ 120 - 0
UAS_MES_ZT/CustomControl/BaseForm/BaseForm.resx

@@ -0,0 +1,120 @@
+<?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>
+</root>

+ 37 - 0
UAS_MES_ZT/CustomControl/ButtonUtil/ArrowLeftButton.Designer.cs

@@ -0,0 +1,37 @@
+namespace UAS_MES_NEW.CustomControl.ButtonUtil
+{
+    partial class ArrowLeftButton
+    {
+        /// <summary> 
+        /// 必需的设计器变量。
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary> 
+        /// 清理所有正在使用的资源。
+        /// </summary>
+        /// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region 组件设计器生成的代码
+
+        /// <summary> 
+        /// 设计器支持所需的方法 - 不要修改
+        /// 使用代码编辑器修改此方法的内容。
+        /// </summary>
+        private void InitializeComponent()
+        {
+            components = new System.ComponentModel.Container();
+           // this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+        }
+
+        #endregion
+    }
+}

+ 14 - 0
UAS_MES_ZT/CustomControl/ButtonUtil/ArrowLeftButton.cs

@@ -0,0 +1,14 @@
+using System.Windows.Forms;
+using UAS_MES_NEW.Properties;
+
+namespace UAS_MES_NEW.CustomControl.ButtonUtil
+{
+    public partial class ArrowLeftButton : Button
+    {
+        public ArrowLeftButton()
+        {
+            InitializeComponent();
+            this.Image = Resources.two_arrow_left;
+        }
+    }
+}

+ 37 - 0
UAS_MES_ZT/CustomControl/ButtonUtil/ArrowRightButton.Designer.cs

@@ -0,0 +1,37 @@
+namespace UAS_MES_NEW.CustomControl.ButtonUtil
+{
+    partial class ArrowRightButton
+    {
+        /// <summary> 
+        /// 必需的设计器变量。
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary> 
+        /// 清理所有正在使用的资源。
+        /// </summary>
+        /// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region 组件设计器生成的代码
+
+        /// <summary> 
+        /// 设计器支持所需的方法 - 不要修改
+        /// 使用代码编辑器修改此方法的内容。
+        /// </summary>
+        private void InitializeComponent()
+        {
+            components = new System.ComponentModel.Container();
+            //this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+        }
+
+        #endregion
+    }
+}

+ 14 - 0
UAS_MES_ZT/CustomControl/ButtonUtil/ArrowRightButton.cs

@@ -0,0 +1,14 @@
+using System.Windows.Forms;
+using UAS_MES_NEW.Properties;
+
+namespace UAS_MES_NEW.CustomControl.ButtonUtil
+{
+    public partial class ArrowRightButton : Button
+    {
+        public ArrowRightButton()
+        {
+            InitializeComponent();
+            this.Image = Resources.two_arrow_right;
+        }
+    }
+}

+ 36 - 0
UAS_MES_ZT/CustomControl/ButtonUtil/ChooseAllButton.Designer.cs

@@ -0,0 +1,36 @@
+namespace UAS_MES_NEW.CustomControl.ButtonUtil
+{
+    partial class ChooseAllButton
+    {
+        /// <summary> 
+        /// 必需的设计器变量。
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary> 
+        /// 清理所有正在使用的资源。
+        /// </summary>
+        /// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region 组件设计器生成的代码
+
+        /// <summary> 
+        /// 设计器支持所需的方法 - 不要修改
+        /// 使用代码编辑器修改此方法的内容。
+        /// </summary>
+        private void InitializeComponent()
+        {
+            components = new System.ComponentModel.Container();
+        }
+
+        #endregion
+    }
+}

+ 49 - 0
UAS_MES_ZT/CustomControl/ButtonUtil/ChooseAllButton.cs

@@ -0,0 +1,49 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Data;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace UAS_MES_NEW.CustomControl.ButtonUtil
+{
+    public partial class ChooseAllButton : Button
+    {
+        DataGridView DGV;
+        bool AllChecked = false;
+
+        public ChooseAllButton()
+        {
+            InitializeComponent();
+        }
+
+        public void ChooseAll(DataGridView dgv)
+        {
+            DGV = dgv;
+            Click += ChooseAll_Click;
+        }
+
+        private void ChooseAll_Click(object sender, EventArgs e)
+        {
+            if (AllChecked)
+            {
+                for (int i = 0; i < DGV.RowCount; i++)
+                {
+                    DGV.Rows[i].Cells[0].Value = false;
+                }
+                AllChecked = false;
+            }
+            else
+            {
+                for (int i = 0; i < DGV.RowCount; i++)
+                {
+                    DGV.Rows[i].Cells[0].Value = true;
+                }
+                AllChecked = true;
+            }
+        }
+    }
+}

+ 36 - 0
UAS_MES_ZT/CustomControl/ButtonUtil/CloseButton.Designer.cs

@@ -0,0 +1,36 @@
+namespace UAS_MES_NEW.CustomControl.ButtonUtil
+{
+    partial class CloseButton
+    {
+        /// <summary> 
+        /// 必需的设计器变量。
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary> 
+        /// 清理所有正在使用的资源。
+        /// </summary>
+        /// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region 组件设计器生成的代码
+
+        /// <summary> 
+        /// 设计器支持所需的方法 - 不要修改
+        /// 使用代码编辑器修改此方法的内容。
+        /// </summary>
+        private void InitializeComponent()
+        {
+            components = new System.ComponentModel.Container();
+        }
+
+        #endregion
+    }
+}

+ 25 - 0
UAS_MES_ZT/CustomControl/ButtonUtil/CloseButton.cs

@@ -0,0 +1,25 @@
+using System;
+using System.Windows.Forms;
+using UAS_MES_NEW.Properties;
+
+namespace UAS_MES_NEW.CustomControl.ButtonUtil
+{
+    public partial class CloseButton : Button
+    {
+
+        public CloseButton()
+        {
+            InitializeComponent();
+            this.Click += CloseButton_Click;
+            this.Image = Resources._2_0btn_36;
+        }
+
+        private void CloseButton_Click(object sender, EventArgs e)
+        {
+            //获取打开窗体的集合,找到当前的Form的名称然后关闭
+            FormCollection fmCollection = Application.OpenForms;
+            Control c = this.Parent;
+            fmCollection[c.Name].Close();
+        }
+    }
+}

+ 36 - 0
UAS_MES_ZT/CustomControl/ButtonUtil/DeleteButton.Designer.cs

@@ -0,0 +1,36 @@
+namespace UAS_MES_NEW.CustomControl.ButtonUtil
+{
+    partial class DeleteButton
+    {
+        /// <summary> 
+        /// 必需的设计器变量。
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary> 
+        /// 清理所有正在使用的资源。
+        /// </summary>
+        /// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region 组件设计器生成的代码
+
+        /// <summary> 
+        /// 设计器支持所需的方法 - 不要修改
+        /// 使用代码编辑器修改此方法的内容。
+        /// </summary>
+        private void InitializeComponent()
+        {
+            components = new System.ComponentModel.Container();
+        }
+
+        #endregion
+    }
+}

+ 52 - 0
UAS_MES_ZT/CustomControl/ButtonUtil/DeleteButton.cs

@@ -0,0 +1,52 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Data;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using UAS_MES_NEW.Properties;
+
+namespace UAS_MES_NEW.CustomControl.ButtonUtil
+{
+    public partial class DeleteButton : Button
+    {
+
+        private string Power1;
+
+        public DeleteButton()
+        {
+            InitializeComponent();
+            this.Image = Resources._2_0btn_36;
+        }
+
+        string AllPower1;
+
+        public string AllPower
+        {
+            get
+            {
+                return AllPower1;
+            }
+
+            set
+            {
+                AllPower1 = value;
+            }
+        }
+
+        public string Power
+        {
+            get
+            {
+                return Power1;
+            }
+
+            set
+            {
+                Power1 = value;
+            }
+        }
+    }
+}

+ 37 - 0
UAS_MES_ZT/CustomControl/ButtonUtil/LockMakeCode.Designer.cs

@@ -0,0 +1,37 @@
+namespace UAS_MES_NEW.CustomControl.ButtonUtil
+{
+    partial class LockMakeCode
+    {
+        /// <summary> 
+        /// 必需的设计器变量。
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary> 
+        /// 清理所有正在使用的资源。
+        /// </summary>
+        /// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region 组件设计器生成的代码
+
+        /// <summary> 
+        /// 设计器支持所需的方法 - 不要修改
+        /// 使用代码编辑器修改此方法的内容。
+        /// </summary>
+        private void InitializeComponent()
+        {
+            components = new System.ComponentModel.Container();
+           // this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+        }
+
+        #endregion
+    }
+}

+ 411 - 0
UAS_MES_ZT/CustomControl/ButtonUtil/LockMakeCode.cs

@@ -0,0 +1,411 @@
+using System;
+using System.ComponentModel;
+using System.Drawing;
+using System.Drawing.Drawing2D;
+using System.Drawing.Text;
+using System.Windows.Forms;
+using UAS_MES_NEW.Enum;
+using UAS_MES_NEW.Properties;
+using UAS_MES_NEW.PublicMethod;
+
+namespace UAS_MES_NEW.CustomControl.ButtonUtil
+{
+    public partial class LockMakeCode : Button
+    {
+        #region 变量
+        /// <summary>
+        /// 鼠标状态
+        /// </summary>
+        private EMouseState _mouseState = EMouseState.Normal;
+        /// <summary>
+        /// 文本对齐方式
+        /// </summary>
+        private TextFormatFlags _textAlign = TextFormatFlags.VerticalCenter | TextFormatFlags.HorizontalCenter;
+        /// <summary>
+        /// 默认时的按钮图片
+        /// </summary>
+        private Image _normalImage = null;
+        /// <summary>
+        /// 鼠标按下时的图片
+        /// </summary>
+        private Image _downImage = null;
+        /// <summary>
+        /// 鼠标划过时的图片
+        /// </summary>
+        private Image _moveImage = null;
+        /// <summary>
+        /// 是否按下了鼠标
+        /// </summary>
+        private bool _isShowBorder = true;
+        /// <summary>
+        /// 权限标识符
+        /// </summary>
+        string Power1;
+
+        public string Power
+        {
+            get
+            {
+                return Power1;
+            }
+
+            set
+            {
+                Power1 = value;
+            }
+        }
+        string AllPower1;
+
+        public string AllPower
+        {
+            get
+            {
+                return AllPower1;
+            }
+
+            set
+            {
+                AllPower1 = value;
+            }
+        }
+       
+        #endregion
+
+        #region 构造函数
+        public LockMakeCode()
+        {
+            InitializeComponent();
+            this.SetStyle(
+                  ControlStyles.AllPaintingInWmPaint |
+                  ControlStyles.OptimizedDoubleBuffer |
+                  ControlStyles.ResizeRedraw |
+                  ControlStyles.Selectable |
+                  ControlStyles.DoubleBuffer |
+                  ControlStyles.SupportsTransparentBackColor |
+                  ControlStyles.UserPaint, true);
+            this.SetStyle(ControlStyles.Opaque, false);
+            base.BackColor = Color.Transparent;
+            this.UpdateStyles();
+        }
+        #endregion
+
+        #region 属性
+        /// <summary>
+        /// 默认大小
+        /// </summary>
+        protected override Size DefaultSize
+        {
+            get { return new Size(75, 28); }
+        }
+        /// <summary>
+        /// 默认图片
+        /// </summary>
+        [Description("默认图片")]
+        public virtual Image NormalImage
+        {
+            get
+            {
+                if (this._normalImage == null)
+                    this._normalImage = Resources.normal;
+                return this._normalImage;
+            }
+            set
+            {
+                this._normalImage = value;
+                base.Invalidate();
+            }
+        }
+        /// <summary>
+        /// 鼠标按下时的图片
+        /// </summary>
+        [Description("鼠标按下时的图片")]
+        public virtual Image DownImage
+        {
+            get
+            {
+                if (this._downImage == null)
+                    this._downImage = Resources.down;
+                return this._downImage;
+            }
+            set
+            {
+                this._downImage = value;
+                base.Invalidate();
+            }
+        }
+        /// <summary>
+        /// 鼠标划过时的图片
+        /// </summary>
+        [Description("鼠标划过时的图片")]
+        public virtual Image MoveImage
+        {
+            get
+            {
+                if (this._moveImage == null)
+                    this._moveImage = Resources.highlight;
+                return this._moveImage;
+            }
+            set
+            {
+                this._moveImage = value;
+
+                base.Invalidate();
+            }
+        }
+        /// <summary>
+        /// 是否显示发光边框
+        /// </summary>
+        [Description("是否显示发光边框")]
+        public virtual bool IsShowBorder
+        {
+            get { return this._isShowBorder; }
+            set { this._isShowBorder = value; }
+        }
+        /// <summary>
+        /// 与控件相关的文本
+        /// </summary>
+        [DefaultValue("QQButton")]
+        public override string Text
+        {
+            get { return base.Text; }
+            set
+            {
+                base.Text = value;
+                base.Invalidate(this.TextRect);
+            }
+        }
+        /// <summary>
+        /// 按钮上显示的图片
+        /// </summary>
+        [Description("按钮上显示的图片")]
+        public virtual new Image Image
+        {
+            get { return base.Image; }
+            set
+            {
+                base.Image = value;
+                base.Invalidate();
+            }
+        }
+
+        /// <summary>
+        /// 按钮上文字的对齐方式
+        /// </summary>
+        [Description("按钮上文字的对齐方式")]
+        new public ContentAlignment TextAlign
+        {
+            get { return base.TextAlign; }
+            set
+            {
+                base.TextAlign = value;
+                switch (base.TextAlign)
+                {
+                    case ContentAlignment.BottomCenter:
+                        this._textAlign = TextFormatFlags.Bottom |
+                                          TextFormatFlags.HorizontalCenter |
+                                          TextFormatFlags.SingleLine;
+                        break;
+                    case ContentAlignment.BottomLeft:
+                        this._textAlign = TextFormatFlags.Bottom |
+                                          TextFormatFlags.Left |
+                                          TextFormatFlags.SingleLine;
+                        break;
+                    case ContentAlignment.BottomRight:
+                        this._textAlign = TextFormatFlags.Bottom |
+                                          TextFormatFlags.Right |
+                                          TextFormatFlags.SingleLine;
+                        break;
+                    case ContentAlignment.MiddleCenter:
+                        this._textAlign = TextFormatFlags.SingleLine |
+                                          TextFormatFlags.HorizontalCenter |
+                                          TextFormatFlags.VerticalCenter;
+                        break;
+                    case ContentAlignment.MiddleLeft:
+                        this._textAlign = TextFormatFlags.Left |
+                                          TextFormatFlags.VerticalCenter |
+                                          TextFormatFlags.SingleLine;
+                        break;
+                    case ContentAlignment.MiddleRight:
+                        this._textAlign = TextFormatFlags.Right |
+                                          TextFormatFlags.VerticalCenter |
+                                          TextFormatFlags.SingleLine;
+                        break;
+                    case ContentAlignment.TopCenter:
+                        this._textAlign = TextFormatFlags.Top |
+                                          TextFormatFlags.HorizontalCenter |
+                                          TextFormatFlags.SingleLine;
+                        break;
+                    case ContentAlignment.TopLeft:
+                        this._textAlign = TextFormatFlags.Top |
+                                          TextFormatFlags.Left |
+                                          TextFormatFlags.SingleLine;
+                        break;
+                    case ContentAlignment.TopRight:
+                        this._textAlign = TextFormatFlags.Top |
+                                          TextFormatFlags.Right |
+                                          TextFormatFlags.SingleLine;
+                        break;
+                }
+                base.Invalidate(this.TextRect);
+            }
+        }
+
+        /// <summary>
+        /// 整个按钮的区域
+        /// </summary>
+        internal Rectangle AllRect
+        {
+            get { return new Rectangle(0, 0, this.Width, this.Height); }
+        }
+        /// <summary>
+        /// 文字区域
+        /// </summary>
+        internal Rectangle TextRect
+        {
+            get { return new Rectangle(2, 2, this.AllRect.Width - 4, this.AllRect.Height - 4); }
+        }
+        /// <summary>
+        /// 鼠标状态
+        /// </summary>
+        internal EMouseState MouseState
+        {
+            get { return this._mouseState; }
+            set
+            {
+                this._mouseState = value;
+                base.Invalidate();
+            }
+        }
+
+ 
+
+        #endregion
+
+        #region Override 方法
+        /// <summary>
+        /// 引发 System.Windows.Forms.Form.Paint 事件。
+        /// </summary>
+        /// <param name="pevent">包含事件数据的 System.Windows.Forms.PaintEventArgs。</param>
+        protected override void OnPaint(PaintEventArgs pevent)
+        {
+            Graphics g = pevent.Graphics;
+            g.SmoothingMode = SmoothingMode.AntiAlias;
+            g.TextRenderingHint = TextRenderingHint.ClearTypeGridFit;
+            //g.DrawImage(AssemblyHelper.GetAssemblyImage("Button.all_btn_White-side.png"), this.AllRect);
+            if (base.Enabled)
+            {
+                if (this.IsShowBorder)
+                {
+                    if (this.Focused)//得到焦点的时候,绘制边框
+                    {
+                        using (Image light = Resources.Light)
+                        {
+                            g.DrawImage(light, this.AllRect);
+                            //DrawHelper.RendererBackground(g, this.AllRect, light, true);
+                        }
+                    }
+                }
+
+                switch (this.MouseState)
+                {
+                    case EMouseState.Leave:
+                    case EMouseState.Normal:
+                        if (base.Focused)
+                        {
+                            if (this.IsShowBorder)
+                            {
+                                using (Image focus = Resources.focus)
+                                {
+                                    DrawHelper.RendererBackground(g, this.TextRect, focus, true);
+                                }
+                            }
+                            else
+                            {
+                                DrawHelper.RendererBackground(g, this.TextRect, this.NormalImage, true);
+                            }
+                        }
+                        else
+                        {
+                            DrawHelper.RendererBackground(g, this.TextRect, this.NormalImage, true);
+                        }
+                        break;
+                    case EMouseState.Up:
+                    case EMouseState.Move:
+                        DrawHelper.RendererBackground(g, this.TextRect, this.MoveImage, true);
+                        break;
+                    case EMouseState.Down:
+                        DrawHelper.RendererBackground(g, this.TextRect, this.DownImage, true);
+                        break;
+                }
+
+                //if (this.Image != null)
+                //{
+                //int y = (this.Height - this.Image.Height) / 2;
+                //int x = 10;
+
+                //if (!string.IsNullOrEmpty(this.Text))
+                //    x = (this.AllRect.Width - (TextHelper.GetStringLen(this.Text) * 6 + this.Image.Width)) / 2;
+                //else
+                //    x = (this.Width - this.Image.Width) / 2;//将图片绘制在按钮居中位置
+                //Rectangle rect = new Rectangle(x, y, this.Image.Width, this.Image.Height);
+                //Rectangle imgRect = new Rectangle(0, 0, this.Image.Width, this.Image.Height);
+                ////绘制图片
+                //g.DrawImage(this.Image, rect, imgRect, GraphicsUnit.Pixel);
+                ////绘制文字
+                //Rectangle textRect = new Rectangle(this.TextRect.X + this.Image.Width, this.TextRect.Y, this.TextRect.Width, this.TextRect.Height);
+                //TextRenderer.DrawText(g, this.Text, this.Font, textRect, this.ForeColor, _textAlign);
+                //}
+                //else
+                //{
+                //绘制按钮上的文字
+                TextRenderer.DrawText(g, this.Text, this.Font, this.TextRect, this.ForeColor, this._textAlign);
+                //}
+            }
+            else
+            {
+                using (Image gray = Resources.gray)
+                {
+                    DrawHelper.RendererBackground(g, this.TextRect, gray, true);
+                }
+                TextRenderer.DrawText(g, this.Text, this.Font, this.TextRect, Color.Gray, this._textAlign);
+            }
+        }
+        /// <summary>
+        /// 引发 System.Windows.Forms.Form.MouseEnter 事件。
+        /// </summary>
+        /// <param name="e">包含事件数据的 System.EventArgs。</param>
+        protected override void OnMouseEnter(EventArgs e)
+        {
+            base.OnMouseEnter(e);
+            this.MouseState = EMouseState.Move;
+        }
+        /// <summary>
+        /// 引发 System.Windows.Forms.Form.MouseLeave 事件。
+        /// </summary>
+        /// <param name="e">包含事件数据的 System.EventArgs。</param>
+        protected override void OnMouseLeave(EventArgs e)
+        {
+            base.OnMouseLeave(e);
+            this.MouseState = EMouseState.Leave;
+        }
+        /// <summary>
+        /// 引发 System.Windows.Forms.Form.MouseDown 事件。
+        /// </summary>
+        /// <param name="mevent">包含事件数据的 System.Windows.Forms.MouseEventArgs。</param>
+        protected override void OnMouseDown(MouseEventArgs mevent)
+        {
+            base.OnMouseDown(mevent);
+            this.MouseState = EMouseState.Down;
+        }
+        /// <summary>
+        /// 引发 System.Windows.Forms.Form.MouseUp 事件。
+        /// </summary>
+        /// <param name="mevent">包含事件数据的 System.Windows.Forms.MouseEventArgs。</param>
+        protected override void OnMouseUp(MouseEventArgs mevent)
+        {
+            base.OnMouseUp(mevent);
+            this.MouseState = EMouseState.Up;
+        }
+        #endregion
+    }
+}

+ 37 - 0
UAS_MES_ZT/CustomControl/ButtonUtil/NormalButton.Designer.cs

@@ -0,0 +1,37 @@
+namespace UAS_MES_NEW.CustomControl.ButtonUtil
+{
+    partial class NormalButton
+    {
+        /// <summary> 
+        /// 必需的设计器变量。
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary> 
+        /// 清理所有正在使用的资源。
+        /// </summary>
+        /// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region 组件设计器生成的代码
+
+        /// <summary> 
+        /// 设计器支持所需的方法 - 不要修改
+        /// 使用代码编辑器修改此方法的内容。
+        /// </summary>
+        private void InitializeComponent()
+        {
+            components = new System.ComponentModel.Container();
+           // this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+        }
+
+        #endregion
+    }
+}

+ 414 - 0
UAS_MES_ZT/CustomControl/ButtonUtil/NormalButton.cs

@@ -0,0 +1,414 @@
+using System;
+using System.ComponentModel;
+using System.Drawing;
+using System.Drawing.Drawing2D;
+using System.Drawing.Text;
+using System.Windows.Forms;
+using UAS_MES_NEW.Enum;
+using UAS_MES_NEW.Properties;
+using UAS_MES_NEW.PublicMethod;
+
+namespace UAS_MES_NEW.CustomControl.ButtonUtil
+{
+    public partial class NormalButton : Button
+    {
+
+        #region 变量
+        /// <summary>
+        /// 鼠标状态
+        /// </summary>
+        private EMouseState _mouseState = EMouseState.Normal;
+        /// <summary>
+        /// 文本对齐方式
+        /// </summary>
+        private TextFormatFlags _textAlign = TextFormatFlags.VerticalCenter | TextFormatFlags.HorizontalCenter;
+        /// <summary>
+        /// 默认时的按钮图片
+        /// </summary>
+        private Image _normalImage = null;
+        /// <summary>
+        /// 鼠标按下时的图片
+        /// </summary>
+        private Image _downImage = null;
+        /// <summary>
+        /// 鼠标划过时的图片
+        /// </summary>
+        private Image _moveImage = null;
+        /// <summary>
+        /// 是否按下了鼠标
+        /// </summary>
+        private bool _isShowBorder = true;
+        /// <summary>
+        /// 权限标识符
+        /// </summary>
+        string Power1;
+
+        public string Power
+        {
+            get
+            {
+                return Power1;
+            }
+
+            set
+            {
+                Power1 = value;
+            }
+        }
+        string AllPower1;
+
+        public string AllPower
+        {
+            get
+            {
+                return AllPower1;
+            }
+
+            set
+            {
+                AllPower1 = value;
+            }
+        }
+       
+        #endregion
+
+        #region 构造函数
+        public NormalButton()
+        {
+            InitializeComponent();
+            this.SetStyle(
+                  ControlStyles.AllPaintingInWmPaint |
+                  ControlStyles.OptimizedDoubleBuffer |
+                  ControlStyles.ResizeRedraw |
+                  ControlStyles.Selectable |
+                  ControlStyles.DoubleBuffer |
+                  ControlStyles.SupportsTransparentBackColor |
+                  ControlStyles.UserPaint, true);
+            this.SetStyle(ControlStyles.Opaque, false);
+            base.BackColor = Color.Transparent;
+            this.UpdateStyles();
+        }
+        #endregion
+
+        #region 属性
+        /// <summary>
+        /// 默认大小
+        /// </summary>
+        protected override Size DefaultSize
+        {
+            get { return new Size(75, 28); }
+        }
+        /// <summary>
+        /// 默认图片
+        /// </summary>
+        [Description("默认图片")]
+        public virtual Image NormalImage
+        {
+            get
+            {
+                if (this._normalImage == null)
+                    this._normalImage = Resources.normal;
+                return this._normalImage;
+            }
+            set
+            {
+                this._normalImage = value;
+                base.Invalidate();
+            }
+        }
+        /// <summary>
+        /// 鼠标按下时的图片
+        /// </summary>
+        [Description("鼠标按下时的图片")]
+        public virtual Image DownImage
+        {
+            get
+            {
+                if (this._downImage == null)
+                    this._downImage = Resources.down;
+                return this._downImage;
+            }
+            set
+            {
+                this._downImage = value;
+                base.Invalidate();
+            }
+        }
+        /// <summary>
+        /// 鼠标划过时的图片
+        /// </summary>
+        [Description("鼠标划过时的图片")]
+        public virtual Image MoveImage
+        {
+            get
+            {
+                if (this._moveImage == null)
+                    this._moveImage = Resources.highlight;
+                return this._moveImage;
+            }
+            set
+            {
+                this._moveImage = value;
+
+                base.Invalidate();
+            }
+        }
+        /// <summary>
+        /// 是否显示发光边框
+        /// </summary>
+        [Description("是否显示发光边框")]
+        public virtual bool IsShowBorder
+        {
+            get { return this._isShowBorder; }
+            set { this._isShowBorder = value; }
+        }
+        /// <summary>
+        /// 与控件相关的文本
+        /// </summary>
+        [DefaultValue("QQButton")]
+        public override string Text
+        {
+            get { return base.Text; }
+            set
+            {
+                base.Text = value;
+                base.Invalidate(this.TextRect);
+            }
+        }
+        /// <summary>
+        /// 按钮上显示的图片
+        /// </summary>
+        [Description("按钮上显示的图片")]
+        public virtual new Image Image
+        {
+            get { return base.Image; }
+            set
+            {
+                base.Image = value;
+                base.Invalidate();
+            }
+        }
+
+        /// <summary>
+        /// 按钮上文字的对齐方式
+        /// </summary>
+        [Description("按钮上文字的对齐方式")]
+        new public ContentAlignment TextAlign
+        {
+            get { return base.TextAlign; }
+            set
+            {
+                base.TextAlign = value;
+                switch (base.TextAlign)
+                {
+                    case ContentAlignment.BottomCenter:
+                        this._textAlign = TextFormatFlags.Bottom |
+                                          TextFormatFlags.HorizontalCenter |
+                                          TextFormatFlags.SingleLine;
+                        break;
+                    case ContentAlignment.BottomLeft:
+                        this._textAlign = TextFormatFlags.Bottom |
+                                          TextFormatFlags.Left |
+                                          TextFormatFlags.SingleLine;
+                        break;
+                    case ContentAlignment.BottomRight:
+                        this._textAlign = TextFormatFlags.Bottom |
+                                          TextFormatFlags.Right |
+                                          TextFormatFlags.SingleLine;
+                        break;
+                    case ContentAlignment.MiddleCenter:
+                        this._textAlign = TextFormatFlags.SingleLine |
+                                          TextFormatFlags.HorizontalCenter |
+                                          TextFormatFlags.VerticalCenter;
+                        break;
+                    case ContentAlignment.MiddleLeft:
+                        this._textAlign = TextFormatFlags.Left |
+                                          TextFormatFlags.VerticalCenter |
+                                          TextFormatFlags.SingleLine;
+                        break;
+                    case ContentAlignment.MiddleRight:
+                        this._textAlign = TextFormatFlags.Right |
+                                          TextFormatFlags.VerticalCenter |
+                                          TextFormatFlags.SingleLine;
+                        break;
+                    case ContentAlignment.TopCenter:
+                        this._textAlign = TextFormatFlags.Top |
+                                          TextFormatFlags.HorizontalCenter |
+                                          TextFormatFlags.SingleLine;
+                        break;
+                    case ContentAlignment.TopLeft:
+                        this._textAlign = TextFormatFlags.Top |
+                                          TextFormatFlags.Left |
+                                          TextFormatFlags.SingleLine;
+                        break;
+                    case ContentAlignment.TopRight:
+                        this._textAlign = TextFormatFlags.Top |
+                                          TextFormatFlags.Right |
+                                          TextFormatFlags.SingleLine;
+                        break;
+                }
+                base.Invalidate(this.TextRect);
+            }
+        }
+
+        /// <summary>
+        /// 整个按钮的区域
+        /// </summary>
+        internal Rectangle AllRect
+        {
+            get { return new Rectangle(0, 0, this.Width, this.Height); }
+        }
+        /// <summary>
+        /// 文字区域
+        /// </summary>
+        internal Rectangle TextRect
+        {
+            get { return new Rectangle(2, 2, this.AllRect.Width - 4, this.AllRect.Height - 4); }
+        }
+        /// <summary>
+        /// 鼠标状态
+        /// </summary>
+        internal EMouseState MouseState
+        {
+            get { return this._mouseState; }
+            set
+            {
+                this._mouseState = value;
+                base.Invalidate();
+            }
+        }
+
+ 
+
+        #endregion
+
+        #region Override 方法
+        /// <summary>
+        /// 引发 System.Windows.Forms.Form.Paint 事件。
+        /// </summary>
+        /// <param name="pevent">包含事件数据的 System.Windows.Forms.PaintEventArgs。</param>
+        protected override void OnPaint(PaintEventArgs pevent)
+        {
+            Graphics g = pevent.Graphics;
+            g.SmoothingMode = SmoothingMode.AntiAlias;
+            g.TextRenderingHint = TextRenderingHint.ClearTypeGridFit;
+            //g.DrawImage(AssemblyHelper.GetAssemblyImage("Button.all_btn_White-side.png"), this.AllRect);
+            if (base.Enabled)
+            {
+                if (this.IsShowBorder)
+                {
+                    if (this.Focused)//得到焦点的时候,绘制边框
+                    {
+                        using (Image light = Resources.Light)
+                        {
+                            //g.DrawImage(light, this.AllRect);
+                            //DrawHelper.RendererBackground(g, this.AllRect, light, true);
+                        }
+                    }
+                }
+
+                switch (this.MouseState)
+                {
+                    case EMouseState.Leave:
+                        DrawHelper.RendererBackground(g, this.TextRect, this.NormalImage, true);
+                        break;
+                    case EMouseState.Normal:
+                        if (base.Focused)
+                        {
+                            if (this.IsShowBorder)
+                            {
+                                using (Image focus = Resources.focus)
+                                {
+                                    DrawHelper.RendererBackground(g, this.TextRect, focus, true);
+                                }
+                            }
+                            else
+                            {
+                                DrawHelper.RendererBackground(g, this.TextRect, this.NormalImage, true);
+                            }
+                        }
+                        else
+                        {
+                            DrawHelper.RendererBackground(g, this.TextRect, this.NormalImage, true);
+                        }
+                        break;
+                    case EMouseState.Up:
+                    case EMouseState.Move:
+                        DrawHelper.RendererBackground(g, this.TextRect, this.MoveImage, true);
+                        break;
+                    case EMouseState.Down:
+                        DrawHelper.RendererBackground(g, this.TextRect, this.DownImage, true);
+                        break;
+                }
+
+                //if (this.Image != null)
+                //{
+                //int y = (this.Height - this.Image.Height) / 2;
+                //int x = 10;
+
+                //if (!string.IsNullOrEmpty(this.Text))
+                //    x = (this.AllRect.Width - (TextHelper.GetStringLen(this.Text) * 6 + this.Image.Width)) / 2;
+                //else
+                //    x = (this.Width - this.Image.Width) / 2;//将图片绘制在按钮居中位置
+                //Rectangle rect = new Rectangle(x, y, this.Image.Width, this.Image.Height);
+                //Rectangle imgRect = new Rectangle(0, 0, this.Image.Width, this.Image.Height);
+                ////绘制图片
+                //g.DrawImage(this.Image, rect, imgRect, GraphicsUnit.Pixel);
+                ////绘制文字
+                //Rectangle textRect = new Rectangle(this.TextRect.X + this.Image.Width, this.TextRect.Y, this.TextRect.Width, this.TextRect.Height);
+                //TextRenderer.DrawText(g, this.Text, this.Font, textRect, this.ForeColor, _textAlign);
+                //}
+                //else
+                //{
+                //绘制按钮上的文字
+                TextRenderer.DrawText(g, this.Text, this.Font, this.TextRect, this.ForeColor, this._textAlign);
+                //}
+            }
+            else
+            {
+                using (Image gray = Resources.gray)
+                {
+                    DrawHelper.RendererBackground(g, this.TextRect, gray, true);
+                }
+                TextRenderer.DrawText(g, this.Text, this.Font, this.TextRect, Color.Gray, this._textAlign);
+            }
+        }
+        /// <summary>
+        /// 引发 System.Windows.Forms.Form.MouseEnter 事件。
+        /// </summary>
+        /// <param name="e">包含事件数据的 System.EventArgs。</param>
+        protected override void OnMouseEnter(EventArgs e)
+        {
+            base.OnMouseEnter(e);
+            this.MouseState = EMouseState.Move;
+        }
+        /// <summary>
+        /// 引发 System.Windows.Forms.Form.MouseLeave 事件。
+        /// </summary>
+        /// <param name="e">包含事件数据的 System.EventArgs。</param>
+        protected override void OnMouseLeave(EventArgs e)
+        {
+            base.OnMouseLeave(e);
+            this.MouseState = EMouseState.Leave;
+        }
+        /// <summary>
+        /// 引发 System.Windows.Forms.Form.MouseDown 事件。
+        /// </summary>
+        /// <param name="mevent">包含事件数据的 System.Windows.Forms.MouseEventArgs。</param>
+        protected override void OnMouseDown(MouseEventArgs mevent)
+        {
+            base.OnMouseDown(mevent);
+            this.MouseState = EMouseState.Down;
+        }
+        /// <summary>
+        /// 引发 System.Windows.Forms.Form.MouseUp 事件。
+        /// </summary>
+        /// <param name="mevent">包含事件数据的 System.Windows.Forms.MouseEventArgs。</param>
+        protected override void OnMouseUp(MouseEventArgs mevent)
+        {
+            base.OnMouseUp(mevent);
+            this.MouseState = EMouseState.Up;
+        }
+        #endregion
+    }
+}

+ 43 - 0
UAS_MES_ZT/CustomControl/ClickPicBox/ClickPicBox.Designer.cs

@@ -0,0 +1,43 @@
+namespace UAS_MES_NEW.CustomControl.ClickPicBox
+{
+    partial class ClickPicBox
+    {
+        /// <summary> 
+        /// 必需的设计器变量。
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary> 
+        /// 清理所有正在使用的资源。
+        /// </summary>
+        /// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region 组件设计器生成的代码
+
+        /// <summary> 
+        /// 设计器支持所需的方法 - 不要修改
+        /// 使用代码编辑器修改此方法的内容。
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.SuspendLayout();
+            // 
+            // ClickPicBox
+            // 
+            this.Name = "ClickPicBox";
+            this.Size = new System.Drawing.Size(280, 150);
+            this.ResumeLayout(false);
+
+        }
+
+        #endregion
+    }
+}

+ 43 - 0
UAS_MES_ZT/CustomControl/ClickPicBox/ClickPicBox.cs

@@ -0,0 +1,43 @@
+using System.Windows.Forms;
+
+namespace UAS_MES_NEW.CustomControl.ClickPicBox
+{
+    public partial class ClickPicBox : PictureBox
+    {
+        private string Power1;
+
+        public string Power
+        {
+            get
+            {
+                return Power1;
+            }
+
+            set
+            {
+                Power1 = value;
+            }
+        }
+
+        string AllPower1;
+
+        public string AllPower
+        {
+            get
+            {
+                return AllPower1;
+            }
+
+            set
+            {
+                AllPower1 = value;
+            }
+        }
+
+
+        public ClickPicBox()
+        {
+            InitializeComponent();
+        }
+    }
+}

+ 120 - 0
UAS_MES_ZT/CustomControl/ClickPicBox/ClickPicBox.resx

@@ -0,0 +1,120 @@
+<?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>
+</root>

+ 37 - 0
UAS_MES_ZT/CustomControl/ClickPicBox/LockIcon.Designer.cs

@@ -0,0 +1,37 @@
+namespace UAS_MES_NEW.CustomControl.ClickPicBox
+{
+    partial class LockIcon
+    {
+        /// <summary> 
+        /// 必需的设计器变量。
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary> 
+        /// 清理所有正在使用的资源。
+        /// </summary>
+        /// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region 组件设计器生成的代码
+
+        /// <summary> 
+        /// 设计器支持所需的方法 - 不要修改
+        /// 使用代码编辑器修改此方法的内容。
+        /// </summary>
+        private void InitializeComponent()
+        {
+            components = new System.ComponentModel.Container();
+            Click += LockIcon_Click;
+        }
+
+        #endregion
+    }
+}

+ 46 - 0
UAS_MES_ZT/CustomControl/ClickPicBox/LockIcon.cs

@@ -0,0 +1,46 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Data;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+
+namespace UAS_MES_NEW.CustomControl.ClickPicBox
+{
+    public partial class LockIcon : PictureBox
+    {
+
+        static Control MaCtl;
+
+        private bool Locked = false;
+
+        public LockIcon()
+        {
+            InitializeComponent();
+            Image = Properties.Resources.lock_open_24px;
+        }
+
+        /// <summary>
+        /// 获取存放工单的控件
+        /// </summary>
+        public static void GetMakeCodeCtl(Control ctl)
+        {
+            MaCtl = ctl;
+        }
+
+        private void LockIcon_Click(object sender, EventArgs e)
+        {
+            if (Locked)
+            {
+                Image = Properties.Resources.lock_open_24px;
+                Locked = false;
+            }
+            else {
+                Image = Properties.Resources.lock_lock_24px ;
+                Locked = true;
+            }
+        }
+    }
+}

+ 37 - 0
UAS_MES_ZT/CustomControl/ComBoxWithFocus/ComBoxWithFocus.Designer.cs

@@ -0,0 +1,37 @@
+namespace UAS_MES_NEW.CustomControl.ComBoxWithFocus
+{
+    partial class ComBoxWithFocus
+    {
+        /// <summary> 
+        /// 必需的设计器变量。
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary> 
+        /// 清理所有正在使用的资源。
+        /// </summary>
+        /// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region 组件设计器生成的代码
+
+        /// <summary> 
+        /// 设计器支持所需的方法 - 不要修改
+        /// 使用代码编辑器修改此方法的内容。
+        /// </summary>
+        private void InitializeComponent()
+        {
+            components = new System.ComponentModel.Container();
+           // this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+        }
+
+        #endregion
+    }
+}

+ 32 - 0
UAS_MES_ZT/CustomControl/ComBoxWithFocus/ComBoxWithFocus.cs

@@ -0,0 +1,32 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Data;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace UAS_MES_NEW.CustomControl.ComBoxWithFocus
+{
+    public partial class ComBoxWithFocus : ComboBox
+    {
+        public ComBoxWithFocus()
+        {
+            InitializeComponent();
+            this.Enter += this.ComBoxWithFocus_Enter;
+            this.Leave += this.ComBoxWithFocus_Leave;
+        }
+
+        private void ComBoxWithFocus_Enter(object sender, EventArgs e)
+        {
+            this.BackColor = Color.GreenYellow;
+        }
+
+        private void ComBoxWithFocus_Leave(object sender, EventArgs e)
+        {
+            this.BackColor = Color.White;
+        }
+    }
+}

+ 46 - 0
UAS_MES_ZT/CustomControl/ComBoxWithFocus/ComboxWithTip.Designer.cs

@@ -0,0 +1,46 @@
+namespace UAS_MES_NEW.CustomControl.ComBoxWithFocus
+{
+    partial class ComboxWithTip
+    {
+        /// <summary>
+        /// 必需的设计器变量。
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary> 
+        /// 清理所有正在使用的资源。
+        /// </summary>
+        /// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region 组件设计器生成的代码
+
+        /// <summary>
+        /// 设计器支持所需的方法 - 不要修改
+        /// 使用代码编辑器修改此方法的内容。
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.components = new System.ComponentModel.Container();
+            this.toolTip1 = new System.Windows.Forms.ToolTip(this.components);
+            this.SuspendLayout();
+            // 
+            // ComboxWithTip
+            // 
+            this.TextChanged += new System.EventHandler(this.ComboxWithTip_TextChanged);
+            this.ResumeLayout(false);
+
+        }
+
+        #endregion
+
+        private System.Windows.Forms.ToolTip toolTip1;
+    }
+}

+ 29 - 0
UAS_MES_ZT/CustomControl/ComBoxWithFocus/ComboxWithTip.cs

@@ -0,0 +1,29 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Diagnostics;
+using System.Linq;
+using System.Text;
+
+namespace UAS_MES_NEW.CustomControl.ComBoxWithFocus
+{
+    public partial class ComboxWithTip : System.Windows.Forms.ComboBox
+    {
+        public ComboxWithTip()
+        {
+            InitializeComponent();
+        }
+
+        public ComboxWithTip(IContainer container)
+        {
+            container.Add(this);
+
+            InitializeComponent();
+        }
+
+        private void ComboxWithTip_TextChanged(object sender, EventArgs e)
+        {
+            toolTip1.SetToolTip(this, this.Text);
+        }
+    }
+}

+ 126 - 0
UAS_MES_ZT/CustomControl/ComBoxWithFocus/ComboxWithTip.resx

@@ -0,0 +1,126 @@
+<?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>
+  <metadata name="toolTip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>373, 214</value>
+  </metadata>
+  <metadata name="$this.TrayLargeIcon" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>False</value>
+  </metadata>
+</root>

+ 62 - 0
UAS_MES_ZT/CustomControl/ComBoxWithFocus/PrinterCombox.Designer.cs

@@ -0,0 +1,62 @@
+namespace UAS_MES_NEW.CustomControl.ComBoxWithFocus
+{
+    partial class PrinterCombox
+    {
+        /// <summary> 
+        /// 必需的设计器变量。
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary> 
+        /// 清理所有正在使用的资源。
+        /// </summary>
+        /// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region 组件设计器生成的代码
+
+        /// <summary> 
+        /// 设计器支持所需的方法 - 不要修改
+        /// 使用代码编辑器修改此方法的内容。
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.PrinterList = new System.Windows.Forms.ComboBox();
+            this.SuspendLayout();
+            // 
+            // PrinterList
+            // 
+            this.PrinterList.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.PrinterList.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+            this.PrinterList.FormattingEnabled = true;
+            this.PrinterList.Location = new System.Drawing.Point(0, 0);
+            this.PrinterList.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
+            this.PrinterList.Name = "PrinterList";
+            this.PrinterList.Size = new System.Drawing.Size(252, 23);
+            this.PrinterList.TabIndex = 0;
+            this.Load += PrinterCombox_Load;
+            // 
+            // PrinterCombox
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 15F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.Controls.Add(this.PrinterList);
+            this.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
+            this.Name = "PrinterCombox";
+            this.Size = new System.Drawing.Size(252, 28);
+            this.ResumeLayout(false);
+
+        }
+
+        #endregion
+
+        private System.Windows.Forms.ComboBox PrinterList;
+    }
+}

+ 46 - 0
UAS_MES_ZT/CustomControl/ComBoxWithFocus/PrinterCombox.cs

@@ -0,0 +1,46 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Data;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using System.Drawing.Printing;
+
+namespace UAS_MES_NEW.CustomControl.ComBoxWithFocus
+{
+    public partial class PrinterCombox : UserControl
+    {
+        public PrinterCombox()
+        {
+            InitializeComponent();
+        }
+
+        public override string Text
+        {
+            get
+            {
+                return PrinterList.Text; 
+            }
+
+            set
+            {
+                PrinterList.Text = value;
+            }
+        }
+
+        private void PrinterCombox_Load(object sender, EventArgs e)
+        {
+            PrintDocument print = new PrintDocument();
+            string sDefault = print.PrinterSettings.PrinterName;//默认打印机名
+
+            foreach (string sPrint in PrinterSettings.InstalledPrinters)//获取所有打印机名称
+            {
+                PrinterList.Items.Add(sPrint);
+                if (sPrint == sDefault)
+                    PrinterList.SelectedIndex = PrinterList.Items.IndexOf(sPrint);
+            }
+        }
+    }
+}

+ 120 - 0
UAS_MES_ZT/CustomControl/ComBoxWithFocus/PrinterCombox.resx

@@ -0,0 +1,120 @@
+<?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>
+</root>

+ 60 - 0
UAS_MES_ZT/CustomControl/ComBoxWithFocus/SerialPortCombox.Designer.cs

@@ -0,0 +1,60 @@
+namespace UAS_MES_NEW.CustomControl.ComBoxWithFocus
+{
+    partial class SerialPortCombox
+    {
+        /// <summary> 
+        /// 必需的设计器变量。
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary> 
+        /// 清理所有正在使用的资源。
+        /// </summary>
+        /// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region 组件设计器生成的代码
+
+        /// <summary> 
+        /// 设计器支持所需的方法 - 不要修改
+        /// 使用代码编辑器修改此方法的内容。
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.ComCombox = new System.Windows.Forms.ComboBox();
+            this.SuspendLayout();
+            // 
+            // ComCombox
+            // 
+            this.ComCombox.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.ComCombox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+            this.ComCombox.FormattingEnabled = true;
+            this.ComCombox.Location = new System.Drawing.Point(0, 0);
+            this.ComCombox.Name = "ComCombox";
+            this.ComCombox.Size = new System.Drawing.Size(186, 23);
+            this.ComCombox.TabIndex = 0;
+            // 
+            // SerialPortCombox
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 15F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.Controls.Add(this.ComCombox);
+            this.Name = "SerialPortCombox";
+            this.Size = new System.Drawing.Size(186, 25);
+            this.Load += new System.EventHandler(this.SerialPortCombox_Load);
+            this.ResumeLayout(false);
+
+        }
+
+        #endregion
+
+        private System.Windows.Forms.ComboBox ComCombox;
+    }
+}

+ 38 - 0
UAS_MES_ZT/CustomControl/ComBoxWithFocus/SerialPortCombox.cs

@@ -0,0 +1,38 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Data;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using System.IO.Ports;
+
+namespace UAS_MES_NEW.CustomControl.ComBoxWithFocus
+{
+    public partial class SerialPortCombox : UserControl
+    {
+        public SerialPortCombox()
+        {
+            InitializeComponent();
+        }
+
+        public override string Text
+        {
+            get
+            {
+                return ComCombox.Text;
+            }
+
+            set
+            {
+                ComCombox.Text = value;
+            }
+        }
+
+        private void SerialPortCombox_Load(object sender, EventArgs e)
+        {
+            ComCombox.Items.AddRange(SerialPort.GetPortNames());
+        }
+    }
+}

+ 120 - 0
UAS_MES_ZT/CustomControl/ComBoxWithFocus/SerialPortCombox.resx

@@ -0,0 +1,120 @@
+<?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>
+</root>

+ 62 - 0
UAS_MES_ZT/CustomControl/CustomCheckBox/AutoPrintCheckBox.Designer.cs

@@ -0,0 +1,62 @@
+namespace UAS_MES_NEW.CustomControl.CustomCheckBox
+{
+    partial class AutoPrintCheckBox
+    {
+        /// <summary> 
+        /// 必需的设计器变量。
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary> 
+        /// 清理所有正在使用的资源。
+        /// </summary>
+        /// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
+        protected override void Dispose(bool disposing)
+        { 
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region 组件设计器生成的代码
+
+        /// <summary> 
+        /// 设计器支持所需的方法 - 不要修改
+        /// 使用代码编辑器修改此方法的内容。
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.AutoPrint = new System.Windows.Forms.CheckBox();
+            this.SuspendLayout();
+            // 
+            // AutoPrint
+            // 
+            this.AutoPrint.AutoSize = true;
+            this.AutoPrint.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.AutoPrint.Font = new System.Drawing.Font("微软雅黑", 10.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.AutoPrint.Location = new System.Drawing.Point(0, 0);
+            this.AutoPrint.Name = "AutoPrint";
+            this.AutoPrint.Size = new System.Drawing.Size(125, 34);
+            this.AutoPrint.TabIndex = 0;
+            this.AutoPrint.Text = "自动打印";
+            this.AutoPrint.UseVisualStyleBackColor = true;
+            // 
+            // AutoPrintCheckBox
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 15F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.Controls.Add(this.AutoPrint);
+            this.Name = "AutoPrintCheckBox";
+            this.Size = new System.Drawing.Size(125, 34);
+            this.ResumeLayout(false);
+            this.PerformLayout();
+
+        }
+
+        #endregion
+
+        private System.Windows.Forms.CheckBox AutoPrint;
+    }
+}

+ 63 - 0
UAS_MES_ZT/CustomControl/CustomCheckBox/AutoPrintCheckBox.cs

@@ -0,0 +1,63 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Data;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using UAS_MES_NEW.Entity;
+using UAS_MES_NEW.DataOperate;
+
+namespace UAS_MES_NEW.CustomControl.CustomCheckBox
+{
+    public partial class AutoPrintCheckBox : UserControl
+    {
+         
+        public AutoPrintCheckBox()
+        {
+            InitializeComponent();
+            this.Load += AutoPrintCheckBox_Load;
+        }
+
+        DataHelper dh;
+
+        private void AutoPrintCheckBox_Load(object sender, EventArgs e)
+        {
+            dh = SystemInf.dh;
+            if (FindForm().Tag != null)
+            {
+                if (dh.getFieldDataByCondition("CS$SYSNAVATION", "nvl(sn_defaultprint,0)", "sn_caller='" + FindForm().Tag.ToString() + "'").ToString() != "0")
+                    AutoPrint.Checked = true;
+                else
+                    AutoPrint.Checked = false;
+            }
+        }
+
+        public bool Checked
+        {
+            get
+            {
+                return AutoPrint.Checked;
+            }
+
+            set
+            {
+                AutoPrint.Checked = value;
+            }
+        }
+
+        public override string Text
+        {
+            get
+            {
+                return AutoPrint.Text;
+            }
+
+            set
+            {
+                AutoPrint.Text = value;
+            }
+        }
+    }
+}

+ 120 - 0
UAS_MES_ZT/CustomControl/CustomCheckBox/AutoPrintCheckBox.resx

@@ -0,0 +1,120 @@
+<?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>
+</root>

+ 36 - 0
UAS_MES_ZT/CustomControl/CustomCheckBox/CustomCheckBox.Designer.cs

@@ -0,0 +1,36 @@
+namespace UAS_MES_NEW.CustomControl.CustomCheckBox
+{
+    partial class CustomCheckBox
+    {
+        /// <summary> 
+        /// 必需的设计器变量。
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary> 
+        /// 清理所有正在使用的资源。
+        /// </summary>
+        /// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region 组件设计器生成的代码
+
+        /// <summary> 
+        /// 设计器支持所需的方法 - 不要修改
+        /// 使用代码编辑器修改此方法的内容。
+        /// </summary>
+        private void InitializeComponent()
+        {
+            components = new System.ComponentModel.Container();
+        }
+
+        #endregion
+    }
+}

+ 51 - 0
UAS_MES_ZT/CustomControl/CustomCheckBox/CustomCheckBox.cs

@@ -0,0 +1,51 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Data;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+
+namespace UAS_MES_NEW.CustomControl.CustomCheckBox
+{
+    public partial class CustomCheckBox : CheckBox
+    {
+
+        /// <summary>
+        /// 权限标识
+        /// </summary>
+        private string Power1;
+        public string Power
+        {
+            get
+            {
+                return Power1;
+            }
+
+            set
+            {
+                Power1 = value;
+            }
+        }
+
+        public string AllPower
+        {
+            get
+            {
+                return AllPower1;
+            }
+
+            set
+            {
+                AllPower1 = value;
+            }
+        }
+
+        private string AllPower1;
+        public CustomCheckBox()
+        {
+            InitializeComponent();
+        }
+    }
+}

+ 43 - 0
UAS_MES_ZT/CustomControl/CustomCheckBox/LockCheckBox.Designer.cs

@@ -0,0 +1,43 @@
+namespace UAS_MES_NEW.CustomControl.CustomCheckBox
+{
+    partial class LockCheckBox
+    {
+        /// <summary> 
+        /// 必需的设计器变量。
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary> 
+        /// 清理所有正在使用的资源。
+        /// </summary>
+        /// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region 组件设计器生成的代码
+
+        /// <summary> 
+        /// 设计器支持所需的方法 - 不要修改
+        /// 使用代码编辑器修改此方法的内容。
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.SuspendLayout();
+            // 
+            // LockCheckBox
+            // 
+            this.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.CheckStateChanged += new System.EventHandler(this.LockCheckBox_CheckStateChanged);
+            this.ResumeLayout(false);
+
+        }
+
+        #endregion
+    }
+}

+ 76 - 0
UAS_MES_ZT/CustomControl/CustomCheckBox/LockCheckBox.cs

@@ -0,0 +1,76 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Data;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using UAS_MES_NEW.PublicMethod;
+using UAS_MES_NEW.CustomControl.TextBoxWithIcon;
+
+namespace UAS_MES_NEW.CustomControl.CustomCheckBox
+{
+    public partial class LockCheckBox : CheckBox
+    {
+        /// <summary>
+        /// 存放工单的控件
+        /// </summary>
+        MaCodeSearchTextBox MaCtl;
+
+        bool LeaveEvent1;
+
+        public bool LeaveEvent
+        {
+            get
+            {
+                return LeaveEvent1;
+            }
+
+            set
+            {
+                LeaveEvent1 = value;
+            }
+        }
+
+        public LockCheckBox()
+        {
+            InitializeComponent();
+        }
+
+        public void GetMakeCodeCtl(MaCodeSearchTextBox ctl)
+        {
+            MaCtl = ctl;
+        }
+
+        private void LockCheckBox_CheckStateChanged(object sender, EventArgs e)
+        {
+            if (Checked)
+            {
+                if (MaCtl.Text != "")
+                {
+                    string ErrorMessage;
+                    if (LogicHandler.CheckMakeStatus(MaCtl.Text, out ErrorMessage))
+                        MaCtl.Enabled = false;
+                    else
+                    {
+                        Checked = false;
+                        MaCtl.Text = "";
+                        BaseUtil.ShowError(ErrorMessage);
+                    }
+                }
+                else
+                {
+                    Checked = false;
+                    MaCtl.Text = "";
+                    BaseUtil.ShowError("工单号不能为空");
+                }
+            }
+            else
+            {
+                MaCtl.Enabled = true;
+                MaCtl.Focus();
+            }
+        }
+    }
+}

+ 123 - 0
UAS_MES_ZT/CustomControl/CustomCheckBox/LockCheckBox.resx

@@ -0,0 +1,123 @@
+<?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>
+  <metadata name="$this.TrayLargeIcon" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>False</value>
+  </metadata>
+</root>

+ 42 - 0
UAS_MES_ZT/CustomControl/CustomCheckBox/ReSetCheckBox.Designer.cs

@@ -0,0 +1,42 @@
+namespace UAS_MES_NEW.CustomControl.CustomCheckBox
+{
+    partial class ReSetCheckBox
+    {
+        /// <summary> 
+        /// 必需的设计器变量。
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary> 
+        /// 清理所有正在使用的资源。
+        /// </summary>
+        /// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region 组件设计器生成的代码
+
+        /// <summary> 
+        /// 设计器支持所需的方法 - 不要修改
+        /// 使用代码编辑器修改此方法的内容。
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.SuspendLayout();
+            // 
+            // ReSetCheckBox
+            // 
+            this.Layout += new System.Windows.Forms.LayoutEventHandler(this.ReSetCheckBox_Layout);
+            this.ResumeLayout(false);
+
+        }
+
+        #endregion
+    }
+}

+ 31 - 0
UAS_MES_ZT/CustomControl/CustomCheckBox/ReSetCheckBox.cs

@@ -0,0 +1,31 @@
+using System.Windows.Forms;
+using UAS_MES_NEW.Entity;
+
+namespace UAS_MES_NEW.CustomControl.CustomCheckBox
+{
+    public partial class ReSetCheckBox : CheckBox
+    {
+        DataOperate.DataHelper dh = SystemInf.dh;
+
+        public ReSetCheckBox()
+        {
+            InitializeComponent();
+
+        }
+
+        private void ReSetCheckBox_Layout(object sender, LayoutEventArgs e)
+        {
+            if (dh != null)
+            {
+                if (dh.getFieldDataByCondition("Step", "st_ifreset", "st_code='" + User.CurrentStepCode + "'").ToString() == "-1")
+                {
+                    Checked = true;
+                }
+                else
+                {
+                    Checked = false;
+                }
+            }
+        }
+    }
+}

+ 123 - 0
UAS_MES_ZT/CustomControl/CustomCheckBox/ReSetCheckBox.resx

@@ -0,0 +1,123 @@
+<?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>
+  <metadata name="$this.TrayLargeIcon" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>False</value>
+  </metadata>
+</root>

+ 42 - 0
UAS_MES_ZT/CustomControl/CustomTabControl/CustomTabControl.Designer.cs

@@ -0,0 +1,42 @@
+namespace UAS_MES_NEW.CustomControl
+{
+    partial class CustomTabControl
+    {
+        /// <summary> 
+        /// 必需的设计器变量。
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary> 
+        /// 清理所有正在使用的资源。
+        /// </summary>
+        /// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region 组件设计器生成的代码
+
+        /// <summary> 
+        /// 设计器支持所需的方法 - 不要修改
+        /// 使用代码编辑器修改此方法的内容。
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.SuspendLayout();
+            // 
+            // CustomTabControl
+            // 
+            this.Name = "CustomTabControl";
+            this.Size = new System.Drawing.Size(336, 136);
+            this.ResumeLayout(false);
+        }
+
+        #endregion
+    }
+}

+ 330 - 0
UAS_MES_ZT/CustomControl/CustomTabControl/CustomTabControl.cs

@@ -0,0 +1,330 @@
+using System;
+using System.Drawing;
+using System.Windows.Forms;
+using System.Drawing.Drawing2D;
+using UAS_MES_NEW;
+using System.Runtime.InteropServices;
+
+namespace UAS_MES_NEW.CustomControl
+{
+    [ToolboxBitmap(typeof(TabControl))]
+    public partial class CustomTabControl : TabControl
+    {
+        const int CLOSE_SIZE = 16;
+        //   Bitmap image = new Bitmap("../../Resources/close.png");
+        public CustomTabControl() : base()
+        {
+            //首先判断选择的是什么样式
+            if (this._DisplayManager.Equals(TabControlDisplayManager.Custom))
+            {
+                //是否由系统绘制,true表示自行绘制
+                this.SetStyle(ControlStyles.UserPaint, true);
+                this.ItemSize = new Size(0, 15);
+                this.Padding = new Point(9, 0);
+            }
+            this.SetStyle(ControlStyles.SupportsTransparentBackColor, true);
+            this.SetStyle(ControlStyles.OptimizedDoubleBuffer, true);
+            this.SetStyle(ControlStyles.ResizeRedraw, true);
+            this.ResizeRedraw = true;
+        }
+
+        //用户选择样式
+        TabControlDisplayManager _DisplayManager = TabControlDisplayManager.Custom;
+
+        [System.ComponentModel.DefaultValue(typeof(TabControlDisplayManager), "Custom")]
+        public TabControlDisplayManager DisplayManager
+        {
+            get
+            {
+                return this._DisplayManager;
+            }
+            set
+            {
+                if (this._DisplayManager != value)
+                {
+                    if (this._DisplayManager.Equals(TabControlDisplayManager.Custom))
+                    {
+                        this.SetStyle(ControlStyles.UserPaint, true);
+                        this.ItemSize = new Size(0, 15);
+                        this.Padding = new Point(9, 0);
+                    }
+                    else
+                    {
+                        this.ItemSize = new Size(0, 0);
+                        this.Padding = new Point(6, 3);
+                        this.SetStyle(ControlStyles.UserPaint, false);
+                    }
+                }
+            }
+        }
+
+        protected override void OnPaintBackground(PaintEventArgs pevent)
+        {
+            //是否绘制该控件
+            if (this.DesignMode == true)
+            {
+                LinearGradientBrush backBrush = new LinearGradientBrush(
+                            this.Bounds,
+                            SystemColors.ControlLightLight,
+                            SystemColors.ControlLight,
+                            LinearGradientMode.Vertical);
+                pevent.Graphics.FillRectangle(backBrush, this.Bounds);
+                backBrush.Dispose();
+            }
+            else
+            {
+                this.PaintTransparentBackground(pevent.Graphics, this.ClientRectangle);
+            }
+        }
+
+        protected void PaintTransparentBackground(Graphics g, Rectangle clipRect)
+        {
+            if ((this.Parent != null))
+            {
+                clipRect.Offset(this.Location);
+                PaintEventArgs e = new PaintEventArgs(g, clipRect);
+                GraphicsState state = g.Save();
+                g.SmoothingMode = SmoothingMode.HighSpeed;
+                try
+                {
+                    g.TranslateTransform((float)-this.Location.X, (float)-this.Location.Y);
+                    this.InvokePaintBackground(this.Parent, e);
+                    this.InvokePaint(this.Parent, e);
+                }
+                finally
+                {
+                    g.Restore(state);
+                    clipRect.Offset(-this.Location.X, -this.Location.Y);
+                }
+            }
+            else
+            {
+                LinearGradientBrush backBrush = new LinearGradientBrush(this.Bounds, SystemColors.ControlLightLight, SystemColors.ControlLight, System.Drawing.Drawing2D.LinearGradientMode.Vertical);
+                g.FillRectangle(backBrush, this.Bounds);
+                backBrush.Dispose();
+            }
+        }
+        //将组件绘制到界面,加载的时候执行
+        protected override void OnPaint(PaintEventArgs e)
+        {
+
+            //  Paint the Background
+            this.PaintTransparentBackground(e.Graphics, this.ClientRectangle);
+            //绘制所有的tabPage
+            this.PaintAllTheTabs(e);
+            //绘制tabPage的边框
+            this.PaintTheTabPageBorder(e);
+            //选中的tabPage去除边框
+            this.PaintTheSelectedTab(e);
+        }
+
+        //也是调用PaintTab循环绘制出来的
+        private void PaintAllTheTabs(System.Windows.Forms.PaintEventArgs e)
+        {
+            if (this.TabCount > 0)
+            {
+                for (int index = 0; index < this.TabCount; index++)
+                {
+                    this.PaintTab(e, index);
+                }
+            }
+        }
+        //绘制tab
+        private void PaintTab(PaintEventArgs e, int index)
+        {
+            GraphicsPath path = this.GetPath(index);
+            this.PaintTabBackground(e.Graphics, index, path);
+            this.PaintTabBorder(e.Graphics, index, path);
+            this.PaintTabText(e.Graphics, index);
+            this.PaintTabImage(e.Graphics, index);
+        }
+
+        private void PaintTabBackground(Graphics graph, int index, GraphicsPath path)
+        {
+            Rectangle rect = this.GetTabRect(index);
+            Brush buttonBrush =
+                new LinearGradientBrush(
+                    rect,
+                    SystemColors.ControlLightLight,
+                    SystemColors.ControlLight,
+                    LinearGradientMode.Vertical);
+
+            if (index == this.SelectedIndex)
+            {
+                buttonBrush = new SolidBrush(SystemColors.ControlLightLight);
+            }
+
+            graph.FillPath(buttonBrush, path);
+            buttonBrush.Dispose();
+        }
+        //绘制边框
+        private void PaintTabBorder(Graphics graph, int index, GraphicsPath path)
+        {
+            Pen borderPen = new Pen(SystemColors.ControlDark);
+
+            if (index == this.SelectedIndex)
+            {
+                borderPen = new Pen(ThemedColors.ToolBorder);
+            }
+            graph.DrawPath(borderPen, path);
+            borderPen.Dispose();
+        }
+
+        private void PaintTabImage(System.Drawing.Graphics graph, int index)
+        {
+            Image tabImage = null;
+            if (this.TabPages[index].ImageIndex > -1 && this.ImageList != null)
+            {
+                tabImage = this.ImageList.Images[this.TabPages[index].ImageIndex];
+            }
+            else if (this.TabPages[index].ImageKey.Trim().Length > 0 && this.ImageList != null)
+            {
+                tabImage = this.ImageList.Images[this.TabPages[index].ImageKey];
+            }
+            if (tabImage != null)
+            {
+                Rectangle rect = this.GetTabRect(index);
+                graph.DrawImage(tabImage, rect.Right - rect.Height + 5, 4, rect.Height - 2, rect.Height - 2);
+            }
+        }
+        //绘制文字
+        private void PaintTabText(Graphics graph, int index)
+        {
+            Rectangle rect = this.GetTabRect(index);
+            Rectangle rect2 = new Rectangle(rect.Left + 8, rect.Top + 1, rect.Width - 6, rect.Height);
+            if (index == 0)
+            {
+                rect2 = new Rectangle(rect.Left + rect.Height, rect.Top + 1, rect.Width - rect.Height, rect.Height);
+            }
+            else
+            {
+                rect2 = new Rectangle(rect.Left + rect.Height - 5, rect.Top + 1, rect.Width - rect.Height + 5, rect.Height);
+            }
+
+            string tabtext = this.TabPages[index].Text;
+
+            StringFormat format = new StringFormat();
+            //字符串的水平和垂直对齐方式
+            format.Alignment = StringAlignment.Near;
+            format.LineAlignment = StringAlignment.Center;
+            format.Trimming = StringTrimming.EllipsisCharacter;
+
+            Brush forebrush = null;
+
+            if (this.TabPages[index].Enabled == false)
+            {
+                forebrush = SystemBrushes.ControlDark;
+            }
+            else
+            {
+                forebrush = SystemBrushes.ControlText;
+            }
+            Font tabFont = this.Font;
+            //选中了之后文本加粗
+            if (index == this.SelectedIndex)
+            {
+                tabFont = new Font(this.Font, FontStyle.Bold);
+                if (index == 0)
+                {
+                    //第一个的时候做特殊处理,调整文字的位置
+                    rect2 = new Rectangle(rect.Left + rect.Height, rect.Top + 1, rect.Width - rect.Height + 5, rect.Height);
+                }
+
+            }
+            graph.DrawString(tabtext, tabFont, forebrush, rect2, format);
+        }
+        //绘制边框
+        private void PaintTheTabPageBorder(System.Windows.Forms.PaintEventArgs e)
+        {
+            if (this.TabCount > 0)
+            {
+                Rectangle borderRect = this.TabPages[0].Bounds;
+                borderRect.Inflate(1, 1);
+                ControlPaint.DrawBorder(e.Graphics, borderRect, ThemedColors.ToolBorder, ButtonBorderStyle.Solid);
+            }
+        }
+        //选中tabPage的时候去除下边框
+        private void PaintTheSelectedTab(System.Windows.Forms.PaintEventArgs e)
+        {
+            Rectangle selrect;
+            int selrectRight = 0;
+
+            switch (this.SelectedIndex)
+            {
+                case -1:
+                    break;
+                case 0:
+                    selrect = this.GetTabRect(this.SelectedIndex);
+                    selrectRight = selrect.Right;
+                    e.Graphics.DrawLine(SystemPens.ControlLightLight, selrect.Left + 2, selrect.Bottom + 1, selrectRight + 8, selrect.Bottom + 1);
+                    break;
+                default:
+                    selrect = this.GetTabRect(this.SelectedIndex);
+                    selrectRight = selrect.Right;
+                    e.Graphics.DrawLine(SystemPens.ControlLightLight, selrect.Left + 11, selrect.Bottom + 1, selrectRight + 5, selrect.Bottom + 1);
+                    break;
+            }
+        }
+        //绘制tabPage的形状
+        private GraphicsPath GetPath(int index)
+        {
+            GraphicsPath path = new GraphicsPath();
+            path.Reset();
+
+            Rectangle rect = this.GetTabRect(index);
+
+            if (index == 0)
+            {   //画线的地方,采用两个点相连的方式,需要设置x1,y1,x2,y2四个坐标
+                path.AddLine(rect.Left + 1, rect.Bottom + 1, rect.Left + rect.Height, rect.Top + 2);
+                path.AddLine(rect.Left + rect.Height + 4, rect.Top, rect.Right + 8, rect.Top);
+                path.AddLine(rect.Right + 10, rect.Top + 2, rect.Right + 10, rect.Bottom + 1);
+            }
+            else
+            {
+                if (index == this.SelectedIndex)
+                {
+                    path.AddLine(rect.Left + 12, rect.Top + 5, rect.Left + 15, rect.Top + 2);
+                    path.AddLine(rect.Left + 19, rect.Top, rect.Right + 8, rect.Top);
+                    path.AddLine(rect.Right + 10, rect.Top + 2, rect.Right + 10, rect.Bottom + 1);
+                    path.AddLine(rect.Right + 10, rect.Bottom + 1, rect.Left + 11, rect.Bottom + 1);
+                }
+                else
+                {
+                    path.AddLine(rect.Left + 12, rect.Top + 5, rect.Left + 15, rect.Top + 2);
+                    path.AddLine(rect.Left + 19, rect.Top, rect.Right + 8, rect.Top);
+                    path.AddLine(rect.Right + 10, rect.Top + 2, rect.Right + 10, rect.Bottom + 1);
+                    path.AddLine(rect.Right + 10, rect.Bottom + 1, rect.Left + 11, rect.Bottom + 1);
+                }
+            }
+            return path;
+        }
+        //枚举类型 多个风格的界面
+        public enum TabControlDisplayManager
+        {
+            Default,
+            Custom
+        }
+
+        [DllImport("user32.dll")]
+        private static extern IntPtr SendMessage(IntPtr hWnd, int Msg, IntPtr wParam, IntPtr lParam);
+
+        private const int WM_SETFONT = 0x30;
+        private const int WM_FONTCHANGE = 0x1d;
+        //在启动时
+        protected override void OnCreateControl()
+        {
+            base.OnCreateControl();
+            this.OnFontChanged(EventArgs.Empty);
+        }
+        //设置字体后自适应改变宽高
+        protected override void OnFontChanged(EventArgs e)
+        {
+            base.OnFontChanged(e);
+            IntPtr hFont = this.Font.ToHfont();
+            SendMessage(this.Handle, WM_SETFONT, hFont, (IntPtr)(-1));
+            SendMessage(this.Handle, WM_FONTCHANGE, IntPtr.Zero, IntPtr.Zero);
+            this.UpdateStyles();
+            this.ItemSize = new Size(0, this.Font.Height + 2);
+        }
+    }
+}

+ 120 - 0
UAS_MES_ZT/CustomControl/CustomTabControl/CustomTabControl.resx

@@ -0,0 +1,120 @@
+<?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>
+</root>

+ 91 - 0
UAS_MES_ZT/CustomControl/CustomTabControl/ThemedColors.cs

@@ -0,0 +1,91 @@
+using System.Windows.Forms;
+using System.Windows.Forms.VisualStyles;
+using System.Drawing;
+
+
+namespace UAS_MES_NEW
+{
+    class ThemedColors
+    {
+        #region "    Variables and Constants "
+        private const string NormalColor = "NormalColor";
+        private const string HomeStead = "HomeStead";
+        private const string Metallic = "Metallic";
+        private const string NoTheme = "NoTheme";
+        private static Color[] _toolBorder;
+        #endregion
+        #region "    Properties "
+        public static int CurrentThemeIndex
+        {
+            get
+            {
+                return ThemedColors.GetCurrentThemeIndex();
+            }
+        }
+        public static string CurrentThemeName
+        {
+            get
+            {
+                return ThemedColors.GetCurrentThemeName();
+            }
+        }
+        public static Color ToolBorder
+        {
+            get
+            {
+                return ThemedColors._toolBorder[ThemedColors.CurrentThemeIndex];
+            }
+        }
+        #endregion
+        #region "    Constructors "
+        private ThemedColors()
+        {
+        }
+        static ThemedColors()
+        {
+            Color[] colorArray1;
+            colorArray1 = new Color[] { Color.FromArgb(127, 157, 185), Color.FromArgb(164, 185, 127), Color.FromArgb(165, 172, 178), Color.FromArgb(132, 130, 132) };
+            ThemedColors._toolBorder = colorArray1;
+        }
+        #endregion
+        private static int GetCurrentThemeIndex()
+        {
+            int theme = (int)ColorScheme.NoTheme;
+            if (VisualStyleInformation.IsSupportedByOS && VisualStyleInformation.IsEnabledByUser && Application.RenderWithVisualStyles)
+            {
+                switch (VisualStyleInformation.ColorScheme)
+                {
+                    case NormalColor:
+                        theme = (int)ColorScheme.NormalColor;
+                        break;
+                    case HomeStead:
+                        theme = (int)ColorScheme.HomeStead;
+                        break;
+                    case Metallic:
+                        theme = (int)ColorScheme.Metallic;
+                        break;
+                    default:
+                        theme = (int)ColorScheme.NoTheme;
+                        break;
+                }
+            }
+            return theme;
+        }
+        private static string GetCurrentThemeName()
+        {
+            string theme = NoTheme;
+            if (VisualStyleInformation.IsSupportedByOS && VisualStyleInformation.IsEnabledByUser && Application.RenderWithVisualStyles)
+            {
+                theme = VisualStyleInformation.ColorScheme;
+            }
+            return theme;
+        }
+        public enum ColorScheme
+        {
+            NormalColor = 0,
+            HomeStead = 1,
+            Metallic = 2,
+            NoTheme = 3
+        }
+    }
+}

+ 42 - 0
UAS_MES_ZT/CustomControl/DataGrid_View/DataGridViewExpand.Designer.cs

@@ -0,0 +1,42 @@
+namespace UAS_MES_NEW.CustomControl.DataGrid_View
+{
+    partial class DataGridViewExpand
+    {
+        /// <summary> 
+        /// 必需的设计器变量。
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary> 
+        /// 清理所有正在使用的资源。
+        /// </summary>
+        /// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region 组件设计器生成的代码
+        /// <summary> 
+        /// 设计器支持所需的方法 - 不要修改
+        /// 使用代码编辑器修改此方法的内容。
+        /// </summary>
+        private void InitializeComponent()
+        {
+            ((System.ComponentModel.ISupportInitialize)(this)).BeginInit();
+            this.SuspendLayout();
+            // 
+            // DataGridViewExpand
+            // 
+            this.RowTemplate.Height = 23;
+            ((System.ComponentModel.ISupportInitialize)(this)).EndInit();
+            this.ResumeLayout(false);
+
+        }
+        #endregion
+    }
+}

+ 288 - 0
UAS_MES_ZT/CustomControl/DataGrid_View/DataGridViewExpand.cs

@@ -0,0 +1,288 @@
+using System;
+using System.Collections.Generic;
+using System.Drawing;
+using System.Windows.Forms;
+using UAS_MES_NEW.Properties;
+
+namespace UAS_MES_NEW.CustomControl.DataGrid_View
+{
+    public partial class DataGridViewExpand : DataGridView
+    {
+        public DataGridViewExpand()
+             : base()
+        {
+            this.RowHeadersVisible = true;
+            this.RowHeadersWidth = 20;
+        }
+        /// <summary>
+        /// 重写GridView的行被绘之后的方法,用于添加行前面的“+“,“-”
+        /// </summary>
+        /// <param name="e"></param>
+        protected override void OnRowPostPaint(DataGridViewRowPostPaintEventArgs e)
+        {
+            base.OnRowPostPaint(e);
+
+            DataGridViewRow row = this.Rows[e.RowIndex];
+            if (row is CollapseDataGridViewRow)
+            {
+                Rectangle rect = new Rectangle(e.RowBounds.Location.X + 5, e.RowBounds.Location.Y + 5, 12, 12);
+                Image img = null;
+                if ((row as CollapseDataGridViewRow).IsCollapse)
+                {
+                    img = Resources.plus;
+                }
+                else
+                {
+                    img = Resources.minus;
+                }
+                e.Graphics.DrawImage(img, rect);
+            }
+        }
+        /// <summary>
+        /// 重写行头被点击的方法
+        /// </summary>
+        /// <param name="e"></param>
+        protected override void OnRowHeaderMouseClick(DataGridViewCellMouseEventArgs e)
+        {
+            base.OnRowHeaderMouseClick(e);
+            DataGridViewRow row = this.Rows[e.RowIndex];
+            if (row is CollapseDataGridViewRow)
+            {
+                //如果是当前行是折叠状态"+",展开本行下的所有子行。“+”==》“-”
+                if ((row as CollapseDataGridViewRow).IsCollapse == true)
+                {
+                    //把当前点击的行,设为展开状态
+                    (row as CollapseDataGridViewRow).IsCollapse = false;
+
+                    if ((row as CollapseDataGridViewRow).Rows.Count != 0)
+                    {
+                        int idxOfNotCollapse = 0;//用于记录当前展开行的索引
+                        int delCount = 0;//用于记录当前展开行下的子行的数量
+
+                        //查找本DataGridView下是否已存在展开的行,如果有,则收缩
+                        foreach (DataGridViewRow dgvRow in this.Rows)
+                        {
+                            //如果此时有其他行展开,则将其设置为折叠,保证只有一个展开项
+                            if ((dgvRow is CollapseDataGridViewRow) &&
+                                (dgvRow as CollapseDataGridViewRow).IsCollapse == false &&
+                                 dgvRow != row)
+                            {
+                                //获取要删除的行数
+                                delCount = (dgvRow as CollapseDataGridViewRow).Rows.Count;
+                                //获取当前展开行的索引
+                                idxOfNotCollapse = (dgvRow as CollapseDataGridViewRow).Index;
+                                //从DataGridView中移除当前展开行的子行
+                                RemoveAllSubRow((CollapseDataGridViewRow)dgvRow, this, false);
+                                //设置为收缩
+                                (dgvRow as CollapseDataGridViewRow).IsCollapse = true;
+                            }
+                        }
+
+                        for (int i = 0; i < (row as CollapseDataGridViewRow).Rows.Count; i++)
+                        {
+                            if (e.RowIndex < idxOfNotCollapse)//当前点击的行在当前展开的行前面
+                            {
+                                this.Rows.Insert(e.RowIndex + 1 + i, (row as CollapseDataGridViewRow).Rows[i]);
+                            }
+                            else//当前点击的行在当前展开行的后面
+                            {
+                                this.Rows.Insert(e.RowIndex + 1 + i - delCount, (row as CollapseDataGridViewRow).Rows[i]);
+                            }
+                        }
+                    }
+                }
+                else     //如果是展开状态"-",则移除子行,将当前行折叠起来"-"。“-”==》“+”
+                {
+                    if ((row as CollapseDataGridViewRow).Rows.Count != 0)
+                    {
+                        RemoveAllSubRow((CollapseDataGridViewRow)row, this, false);
+                    }
+                    (row as CollapseDataGridViewRow).IsCollapse = true;
+                }
+            }
+        }
+        /// <summary>
+        /// 递归 移除折叠行的子行
+        /// </summary>
+        /// <param name="row">可折叠行</param>
+        /// <param name="grid"></param>
+        /// <param name="flag"></param>
+        private void RemoveAllSubRow(CollapseDataGridViewRow row, DataGridView grid, bool flag)
+        {
+            if (row.Rows.Count != 0)
+            {
+                if (!row.IsCollapse)
+                {
+                    for (int i = 0; i < row.Rows.Count; i++)
+                    {
+                        if (row.Rows[i] is CollapseDataGridViewRow)
+                        {
+                            RemoveAllSubRow((CollapseDataGridViewRow)row.Rows[i], grid, true);
+                        }
+                        else
+                        {
+                            grid.Rows.Remove(row.Rows[i]);
+                        }
+                    }
+                }
+                //是否移除本行
+                if (flag)
+                {
+                    row.IsCollapse = true;
+                    grid.Rows.Remove(row);
+                }
+            }
+        }
+    }
+    /// <summary>
+    /// 可折叠展开的行类,继承自DataGridView
+    /// </summary>
+    public class CollapseDataGridViewRow : DataGridViewRow
+    {
+        private CollapseDataGridViewRowCollection collectionRow = new CollapseDataGridViewRowCollection();
+        private bool isCollapse = false;
+        /// <summary>
+        /// 是否折叠显示
+        /// </summary>
+        public bool IsCollapse
+        {
+            get { return isCollapse; }
+            set { isCollapse = value; }
+        }
+        /// <summary>
+        /// 用于存储子行的集合属性
+        /// </summary>
+        public CollapseDataGridViewRowCollection Rows
+        {
+            get
+            {
+                return collectionRow;
+            }
+            set
+            {
+                collectionRow = value;
+            }
+        }
+
+    }
+    /// <summary>
+    /// 可折叠展开的行的集合类
+    /// </summary>
+    public class CollapseDataGridViewRowCollection : IEnumerable<DataGridViewRow>, ICollection<DataGridViewRow>
+    {
+        private List<DataGridViewRow> listRow = new List<DataGridViewRow>();
+        /// <summary>
+        /// 索引属性访问器
+        /// </summary>
+        /// <param name="index">索引值</param>
+        /// <returns></returns>
+        public DataGridViewRow this[int index]
+        {
+            get
+            {
+                if (index >= listRow.Count)
+                {
+                    throw new ArgumentOutOfRangeException("index");
+                }
+                return listRow[index];
+            }
+        }
+
+        #region IEnumerable<DataGridViewRow> 成员
+        /// <summary>
+        /// 系统生成
+        /// </summary>
+        /// <returns></returns>
+        public IEnumerator<DataGridViewRow> GetEnumerator()
+        {
+
+            if (listRow.Count == 0)
+            {
+                throw new ArgumentOutOfRangeException("集合为空");
+            }
+            for (int i = 0; i < listRow.Count; i++)
+            {
+                yield return listRow[i];
+
+            }
+
+        }
+
+        #endregion
+
+        #region IEnumerable 成员
+
+        System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
+        {
+            if (listRow.Count == 0)
+            {
+                throw new ArgumentOutOfRangeException("集合为空");
+            }
+            for (int i = 0; i < listRow.Count; i++)
+            {
+                yield return listRow[i];
+
+            }
+        }
+        #endregion
+
+        #region ICollection<DataGridViewRow> 成员
+        /// <summary>
+        /// 添加新行
+        /// </summary>
+        /// <param name="item"></param>
+        public void Add(DataGridViewRow item)
+        {
+            this.listRow.Add(item);
+        }
+        /// <summary>
+        /// 清空所有行
+        /// </summary>
+        public void Clear()
+        {
+            this.listRow.Clear();
+        }
+        /// <summary>
+        /// 是否包含当前行
+        /// </summary>
+        /// <param name="item"></param>
+        /// <returns></returns>
+        public bool Contains(DataGridViewRow item)
+        {
+            return this.listRow.Contains(item);
+        }
+        /// <summary>
+        /// 复制
+        /// </summary>
+        /// <param name="array">行数组</param>
+        /// <param name="arrayIndex">索引</param>
+        public void CopyTo(DataGridViewRow[] array, int arrayIndex)
+        {
+            this.listRow.CopyTo(array, arrayIndex);
+        }
+        /// <summary>
+        /// 行的数量
+        /// </summary>
+        public int Count
+        {
+            get { return this.listRow.Count; }
+        }
+        /// <summary>
+        /// 是否只读
+        /// </summary>
+        public bool IsReadOnly
+        {
+            get { return false; }
+        }
+        /// <summary>
+        /// 移除行
+        /// </summary>
+        /// <param name="item"></param>
+        /// <returns></returns>
+        public bool Remove(DataGridViewRow item)
+        {
+            return this.listRow.Remove(item);
+        }
+        #endregion
+    }
+}

+ 123 - 0
UAS_MES_ZT/CustomControl/DataGrid_View/DataGridViewExpand.resx

@@ -0,0 +1,123 @@
+<?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>
+  <metadata name="$this.TrayLargeIcon" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>False</value>
+  </metadata>
+</root>

+ 45 - 0
UAS_MES_ZT/CustomControl/DataGrid_View/DataGridViewWithCheckBox.Designer.cs

@@ -0,0 +1,45 @@
+namespace UAS_MES_NEW.CustomControl.DataGrid_View
+{
+    partial class DataGridViewWithCheckBox
+    {
+        /// <summary> 
+        /// 必需的设计器变量。
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary> 
+        /// 清理所有正在使用的资源。
+        /// </summary>
+        /// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region 组件设计器生成的代码
+
+        /// <summary> 
+        /// 设计器支持所需的方法 - 不要修改
+        /// 使用代码编辑器修改此方法的内容。
+        /// </summary>
+        private void InitializeComponent()
+        {
+            ((System.ComponentModel.ISupportInitialize)(this)).BeginInit();
+            this.SuspendLayout();
+            // 
+            // DataGridViewWithCheckBox
+            // 
+            this.RowTemplate.Height = 27;
+            this.CellClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.DataGridViewWithCheckBox_CellContentClick);
+            ((System.ComponentModel.ISupportInitialize)(this)).EndInit();
+            this.ResumeLayout(false);
+
+        }
+
+        #endregion
+    }
+}

+ 129 - 0
UAS_MES_ZT/CustomControl/DataGrid_View/DataGridViewWithCheckBox.cs

@@ -0,0 +1,129 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Data;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+
+namespace UAS_MES_NEW.CustomControl.DataGrid_View
+{
+    public partial class DataGridViewWithCheckBox : DataGridView
+    {
+        public DataGridViewWithCheckBox()
+        {
+            InitializeComponent();
+        }
+
+        private void DataGridViewWithCheckBox_CellContentClick(object sender, DataGridViewCellEventArgs e)
+        {
+            if (Columns[0] is DataGridViewCheckBoxColumn && e.ColumnIndex >= 0 && e.RowIndex >= 0)
+            {
+                if (!(Columns[e.ColumnIndex] is DataGridViewCheckBoxColumn) && !(Columns[e.ColumnIndex] is DataGridViewComboBoxColumn))
+                {
+                    if (Rows[e.RowIndex].Cells[0].Value != null)
+                    {
+                        if (Rows[e.RowIndex].Cells[0].Value.ToString() == "0")
+                        {
+                            Rows[e.RowIndex].Cells[0].Value = 1;
+                        }
+                        else
+                        {
+                            Rows[e.RowIndex].Cells[0].Value = 0;
+                        }
+                    }
+                    else
+                    {
+                        Rows[e.RowIndex].Cells[0].Value = 0;
+                    }
+                }
+            }
+        }
+    }
+
+    public class DataGridViewCheckBoxHeaderCell : DataGridViewColumnHeaderCell
+    {
+        /// <summary>
+        ///用于接收全选的一列
+        /// </summary>
+        /// <param name="dgvc"></param>
+        public DataGridViewCheckBoxHeaderCell(DataGridView dgv, DataGridViewCheckBoxColumn dgvc)
+        {
+            DGV = dgv;
+            DGVC = dgvc;
+        }
+        DataGridView DGV;
+        DataGridViewColumn DGVC;
+        Point checkBoxLocation;
+        Size checkBoxSize;
+        bool _checked = false;
+        Point _cellLocation = new Point();
+        System.Windows.Forms.VisualStyles.CheckBoxState _cbState = System.Windows.Forms.VisualStyles.CheckBoxState.UncheckedNormal;
+        //绘制列头checkbox  
+        protected override void Paint(System.Drawing.Graphics graphics,
+           System.Drawing.Rectangle clipBounds,
+           System.Drawing.Rectangle cellBounds,
+           int rowIndex,
+           DataGridViewElementStates dataGridViewElementState,
+           object value,
+           object formattedValue,
+           string errorText,
+           DataGridViewCellStyle cellStyle,
+           DataGridViewAdvancedBorderStyle advancedBorderStyle,
+           DataGridViewPaintParts paintParts)
+        {
+            base.Paint(graphics, clipBounds, cellBounds, rowIndex, dataGridViewElementState, value, formattedValue, errorText, cellStyle, advancedBorderStyle, paintParts);
+            Point p = new Point();
+            Size s = CheckBoxRenderer.GetGlyphSize(graphics,
+            System.Windows.Forms.VisualStyles.CheckBoxState.UncheckedNormal);
+            p.X = cellBounds.Location.X + (cellBounds.Width / 2) - (s.Width / 2) - 1;//列头checkbox的X坐标  
+            p.Y = cellBounds.Location.Y + (cellBounds.Height / 2) - (s.Height / 2);//列头checkbox的Y坐标  
+            _cellLocation = cellBounds.Location;
+            checkBoxLocation = p;
+            checkBoxSize = s;
+            if (_checked)
+                _cbState = System.Windows.Forms.VisualStyles.
+                    CheckBoxState.CheckedNormal;
+            else
+                _cbState = System.Windows.Forms.VisualStyles.
+                    CheckBoxState.UncheckedNormal;
+            CheckBoxRenderer.DrawCheckBox(graphics, checkBoxLocation, _cbState);
+        }
+
+        //定义触发单击事件的委托  
+        delegate void DataGridViewCheckBoxHeaderEventHander(object sender, DataGridViewCheckboxHeaderEventArgs e);
+        class DataGridViewCheckboxHeaderEventArgs : EventArgs
+        {
+            private bool checkedState = false;
+
+            public bool CheckedState
+            {
+                get { return checkedState; }
+                set { checkedState = value; }
+            }
+        }
+
+        /// <summary>
+        /// 根据点击的位置和CheckBox所在的位置重叠来进行状态的改变
+        /// </summary>
+        /// <param name="e"></param>
+        protected override void OnMouseClick(DataGridViewCellMouseEventArgs e)
+        {
+            Point p = new Point(e.X + _cellLocation.X, e.Y + _cellLocation.Y);
+            if (p.X >= checkBoxLocation.X && p.X <= checkBoxLocation.X + checkBoxSize.Width
+            && p.Y >= checkBoxLocation.Y && p.Y <= checkBoxLocation.Y + checkBoxSize.Height)
+            {
+                _checked = !_checked;
+                //获取列头checkbox的选择状态  
+                DataGridViewCheckboxHeaderEventArgs ex = new DataGridViewCheckboxHeaderEventArgs();
+                ex.CheckedState = _checked;
+                for (int i = 0; i < DGV.RowCount; i++)
+                {
+                    DGV.Rows[i].Cells[DGVC.Name].Value = ex.CheckedState;
+                }
+            }
+            base.OnMouseClick(e);
+        }
+    }
+}

+ 123 - 0
UAS_MES_ZT/CustomControl/DataGrid_View/DataGridViewWithCheckBox.resx

@@ -0,0 +1,123 @@
+<?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>
+  <metadata name="$this.TrayLargeIcon" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>False</value>
+  </metadata>
+</root>

+ 45 - 0
UAS_MES_ZT/CustomControl/DataGrid_View/DataGridViewWithFilter.Designer.cs

@@ -0,0 +1,45 @@
+namespace UAS_MES_NEW.CustomControl.DataGrid_View
+{
+    partial class DataGridViewWithFilter
+    {
+        /// <summary> 
+        /// 必需的设计器变量。
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary> 
+        /// 清理所有正在使用的资源。
+        /// </summary>
+        /// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region 组件设计器生成的代码
+
+        /// <summary> 
+        /// 设计器支持所需的方法 - 不要修改
+        /// 使用代码编辑器修改此方法的内容。
+        /// </summary>
+        private void InitializeComponent()
+        {
+            ((System.ComponentModel.ISupportInitialize)(this)).BeginInit();
+            this.SuspendLayout();
+            // 
+            // DataGridViewWithFilter
+            // 
+            this.RowTemplate.Height = 23;
+            this.Size = new System.Drawing.Size(616, 259);
+            ((System.ComponentModel.ISupportInitialize)(this)).EndInit();
+            this.ResumeLayout(false);
+
+        }
+
+        #endregion
+    }
+}

+ 29 - 0
UAS_MES_ZT/CustomControl/DataGrid_View/DataGridViewWithFilter.cs

@@ -0,0 +1,29 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Data;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace UAS_MES_NEW.CustomControl.DataGrid_View
+{
+    public partial class DataGridViewWithFilter : DataGridView
+    {
+       
+        public DataGridViewWithFilter()
+        {
+            InitializeComponent();
+        }
+
+        public void addrow()
+        {
+            DataGridViewRow row = new DataGridViewRow();
+            DataGridViewTextBoxCell textboxcell = new DataGridViewTextBoxCell();
+            row.Cells.Add(textboxcell);
+            this.Rows.Add(row);
+        }
+    }
+}

+ 123 - 0
UAS_MES_ZT/CustomControl/DataGrid_View/DataGridViewWithFilter.resx

@@ -0,0 +1,123 @@
+<?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>
+  <metadata name="$this.TrayLargeIcon" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>False</value>
+  </metadata>
+</root>

+ 49 - 0
UAS_MES_ZT/CustomControl/DataGrid_View/DataGridViewWithSerialNum.Designer.cs

@@ -0,0 +1,49 @@
+using System.Windows.Forms;
+
+namespace UAS_MES_NEW.CustomControl.DataGrid_View
+{
+    partial class DataGridViewWithSerialNum
+    {
+       // private AutoScaleMode AutoScaleMode;
+
+        /// <summary> 
+        /// 必需的设计器变量。
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary> 
+        /// 清理所有正在使用的资源。
+        /// </summary>
+        /// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region 组件设计器生成的代码
+
+        /// <summary> 
+        /// 设计器支持所需的方法 - 不要修改
+        /// 使用代码编辑器修改此方法的内容。
+        /// </summary>
+        private void InitializeComponent()
+        {
+            ((System.ComponentModel.ISupportInitialize)(this)).BeginInit();
+            this.SuspendLayout();
+            // 
+            // DataGridViewWithSerialNum
+            // 
+            this.RowTemplate.Height = 27;
+            this.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.DataGridViewWithSerialNum_CellContentClick);
+            ((System.ComponentModel.ISupportInitialize)(this)).EndInit();
+            this.ResumeLayout(false);
+
+        }
+
+        #endregion
+    }
+}

+ 72 - 0
UAS_MES_ZT/CustomControl/DataGrid_View/DataGridViewWithSerialNum.cs

@@ -0,0 +1,72 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Data;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace UAS_MES_NEW.CustomControl.DataGrid_View
+{
+    public partial class DataGridViewWithSerialNum : DataGridView
+    {
+        SolidBrush solidBrush;
+
+        bool EnableContentClick1 = true;
+
+        public bool EnableContentClick
+        {
+            get
+            {
+                return EnableContentClick1;
+            }
+
+            set
+            {
+                EnableContentClick1 = value;
+            }
+        }
+
+        public DataGridViewWithSerialNum()
+        {
+            InitializeComponent();
+            solidBrush = new SolidBrush(RowHeadersDefaultCellStyle.ForeColor);
+        }
+
+        protected override void OnRowPostPaint(DataGridViewRowPostPaintEventArgs e)
+        {
+            e.Graphics.DrawString((e.RowIndex + 1).ToString(), e.InheritedRowStyle.Font, solidBrush, e.RowBounds.Location.X + 15, e.RowBounds.Location.Y + 5);
+            base.OnRowPostPaint(e);
+        }
+
+        private void DataGridViewWithSerialNum_CellContentClick(object sender, DataGridViewCellEventArgs e)
+        {
+            if (EnableContentClick1)
+            {
+                if (Columns[0] is DataGridViewCheckBoxColumn && e.ColumnIndex >= 0 && e.RowIndex >= 0)
+                {
+                    if (!(Columns[e.ColumnIndex] is DataGridViewCheckBoxColumn) && !(Columns[e.ColumnIndex] is DataGridViewComboBoxColumn))
+                    {
+                        if (Rows[e.RowIndex].Cells[0].Value != null)
+                        {
+                            if (Rows[e.RowIndex].Cells[0].Value.ToString() == "0")
+                            {
+                                Rows[e.RowIndex].Cells[0].Value = 1;
+                            }
+                            else
+                            {
+                                Rows[e.RowIndex].Cells[0].Value = 0;
+                            }
+                        }
+                        else
+                        {
+                            Rows[e.RowIndex].Cells[0].Value = 0;
+                        }
+                    }
+                }
+            }
+        }
+    }
+}

+ 123 - 0
UAS_MES_ZT/CustomControl/DataGrid_View/DataGridViewWithSerialNum.resx

@@ -0,0 +1,123 @@
+<?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>
+  <metadata name="$this.TrayLargeIcon" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>False</value>
+  </metadata>
+</root>

+ 44 - 0
UAS_MES_ZT/CustomControl/GroupBoxWithBorder/GroupBoxWithBorder.Designer.cs

@@ -0,0 +1,44 @@
+namespace UAS_MES_NEW.CustomControl.GroupBoxWithBorder
+{
+    partial class GroupBoxWithBorder
+    {
+        /// <summary> 
+        /// 必需的设计器变量。
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary> 
+        /// 清理所有正在使用的资源。
+        /// </summary>
+        /// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            try
+            {
+                base.Dispose(disposing);
+
+            }
+            catch (System.Exception)
+            {
+
+            }
+        }
+        #region 组件设计器生成的代码
+
+        /// <summary> 
+        /// 设计器支持所需的方法 - 不要修改
+        /// 使用代码编辑器修改此方法的内容。
+        /// </summary>
+        private void InitializeComponent()
+        {
+            components = new System.ComponentModel.Container();
+           // this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+        }
+
+        #endregion
+    }
+}

+ 66 - 0
UAS_MES_ZT/CustomControl/GroupBoxWithBorder/GroupBoxWithBorder.cs

@@ -0,0 +1,66 @@
+using System.ComponentModel;
+using System.Drawing;
+using System.Windows.Forms;
+
+namespace UAS_MES_NEW.CustomControl.GroupBoxWithBorder
+{
+    public partial class GroupBoxWithBorder : GroupBox
+    {
+        /// <summary>
+        /// 获取和设置控件高亮色
+        /// </summary>
+        /// <value>高亮色</value>
+        [TypeConverter("System.Drawing.ColorConverter"),
+        Category("LoadingCircle"),
+        Description("获取和设置控件高亮色")]
+        public Color TextColor
+        {
+            get
+            {
+                return textcolor;
+            }
+            set
+            {
+                textcolor = value;
+                Invalidate();
+            }
+        }
+
+        public Color BorderColor
+        {
+            get
+            {
+                return bordercolor;
+            }
+
+            set
+            {
+                bordercolor = value;
+                Invalidate();
+            }
+        }
+
+        private Color textcolor;
+
+        private Color bordercolor;
+
+        public GroupBoxWithBorder()
+        {
+            InitializeComponent();
+            this.Paint += this.groupBox1_Paint;
+        }
+
+        private void groupBox1_Paint(object sender, PaintEventArgs e)
+        {
+            e.Graphics.Clear(BackColor);
+            Brush br = new SolidBrush(textcolor);
+            e.Graphics.DrawString(Text, Font, br, 10, 1);
+            Pen LineColor = new Pen(bordercolor);
+            e.Graphics.DrawLine(LineColor, 1, 7, 8, 7);
+            e.Graphics.DrawLine(LineColor, e.Graphics.MeasureString(Text, Font).Width + 8, 7, Width - 2, 7);
+            e.Graphics.DrawLine(LineColor, 1, 7, 1, Height - 2);
+            e.Graphics.DrawLine(LineColor, 1, Height - 2, Width - 2, Height - 2);
+            e.Graphics.DrawLine(LineColor, Width - 2, 7, Width - 2, Height - 2);
+        }
+    }
+}

+ 152 - 0
UAS_MES_ZT/CustomControl/HeadBar/HeadBar.Designer.cs

@@ -0,0 +1,152 @@
+namespace UAS_MES_NEW.CustomControl
+{
+    partial class HeadBar
+    { /// <summary> 
+      /// 必需的设计器变量。
+      /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary> 
+        /// 清理所有正在使用的资源。
+        /// </summary>
+        /// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region 组件设计器生成的代码
+
+        /// <summary> 
+        /// 设计器支持所需的方法 - 不要修改
+        /// 使用代码编辑器修改此方法的内容。
+        /// </summary>
+        private void InitializeComponent()
+        {
+            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(HeadBar));
+            this.TitleLabel = new System.Windows.Forms.Label();
+            this.MinWindow2 = new System.Windows.Forms.PictureBox();
+            this.MinWindow = new System.Windows.Forms.PictureBox();
+            this.MinWindow1 = new System.Windows.Forms.PictureBox();
+            this.CloseWindow = new System.Windows.Forms.PictureBox();
+            this.LoginOut = new DevExpress.XtraEditors.SimpleButton();
+            this.Change_psw = new DevExpress.XtraEditors.SimpleButton();
+            this.UpperCollection = new DevExpress.XtraEditors.ToggleSwitch();
+            ((System.ComponentModel.ISupportInitialize)(this.MinWindow2)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.MinWindow)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.MinWindow1)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.CloseWindow)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.UpperCollection.Properties)).BeginInit();
+            this.SuspendLayout();
+            // 
+            // TitleLabel
+            // 
+            resources.ApplyResources(this.TitleLabel, "TitleLabel");
+            this.TitleLabel.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(240)))), ((int)(((byte)(240)))), ((int)(((byte)(240)))));
+            this.TitleLabel.ForeColor = System.Drawing.Color.RoyalBlue;
+            this.TitleLabel.Name = "TitleLabel";
+            // 
+            // MinWindow2
+            // 
+            resources.ApplyResources(this.MinWindow2, "MinWindow2");
+            this.MinWindow2.Name = "MinWindow2";
+            this.MinWindow2.TabStop = false;
+            // 
+            // MinWindow
+            // 
+            resources.ApplyResources(this.MinWindow, "MinWindow");
+            this.MinWindow.Image = global::UAS_MES_NEW.Properties.Resources.Close_up_32px_1181430_easyicon_net;
+            this.MinWindow.Name = "MinWindow";
+            this.MinWindow.TabStop = false;
+            this.MinWindow.Click += new System.EventHandler(this.MinWindow_Click);
+            // 
+            // MinWindow1
+            // 
+            resources.ApplyResources(this.MinWindow1, "MinWindow1");
+            this.MinWindow1.Name = "MinWindow1";
+            this.MinWindow1.TabStop = false;
+            this.MinWindow1.Click += new System.EventHandler(this.CloseWindow_Click);
+            // 
+            // CloseWindow
+            // 
+            resources.ApplyResources(this.CloseWindow, "CloseWindow");
+            this.CloseWindow.Image = global::UAS_MES_NEW.Properties.Resources.close_32px_1181428_easyicon_net;
+            this.CloseWindow.Name = "CloseWindow";
+            this.CloseWindow.TabStop = false;
+            this.CloseWindow.Click += new System.EventHandler(this.CloseWindow_Click);
+            // 
+            // LoginOut
+            // 
+            this.LoginOut.Appearance.Font = ((System.Drawing.Font)(resources.GetObject("LoginOut.Appearance.Font")));
+            this.LoginOut.Appearance.Options.UseFont = true;
+            this.LoginOut.ButtonStyle = DevExpress.XtraEditors.Controls.BorderStyles.NoBorder;
+            resources.ApplyResources(this.LoginOut, "LoginOut");
+            this.LoginOut.Image = global::UAS_MES_NEW.Properties.Resources.Logout_32px_581264_easyicon_net;
+            this.LoginOut.ImageLocation = DevExpress.XtraEditors.ImageLocation.MiddleLeft;
+            this.LoginOut.Name = "LoginOut";
+            this.LoginOut.Click += new System.EventHandler(this.LoginOut_Click);
+            // 
+            // Change_psw
+            // 
+            this.Change_psw.Appearance.Font = ((System.Drawing.Font)(resources.GetObject("Change_psw.Appearance.Font")));
+            this.Change_psw.Appearance.Options.UseFont = true;
+            this.Change_psw.ButtonStyle = DevExpress.XtraEditors.Controls.BorderStyles.NoBorder;
+            resources.ApplyResources(this.Change_psw, "Change_psw");
+            this.Change_psw.Image = global::UAS_MES_NEW.Properties.Resources.pwd;
+            this.Change_psw.ImageLocation = DevExpress.XtraEditors.ImageLocation.MiddleLeft;
+            this.Change_psw.Name = "Change_psw";
+            this.Change_psw.Click += new System.EventHandler(this.Change_psw_Click);
+            // 
+            // UpperCollection
+            // 
+            resources.ApplyResources(this.UpperCollection, "UpperCollection");
+            this.UpperCollection.Name = "UpperCollection";
+            this.UpperCollection.Properties.Appearance.Font = ((System.Drawing.Font)(resources.GetObject("UpperCollection.Properties.Appearance.Font")));
+            this.UpperCollection.Properties.Appearance.Options.UseFont = true;
+            this.UpperCollection.Properties.OffText = resources.GetString("UpperCollection.Properties.OffText");
+            this.UpperCollection.Properties.OnText = resources.GetString("UpperCollection.Properties.OnText");
+            this.UpperCollection.Toggled += new System.EventHandler(this.UpperCollection_Toggled);
+            // 
+            // HeadBar
+            // 
+            resources.ApplyResources(this, "$this");
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(240)))), ((int)(((byte)(240)))), ((int)(((byte)(240)))));
+            this.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
+            this.Controls.Add(this.UpperCollection);
+            this.Controls.Add(this.Change_psw);
+            this.Controls.Add(this.LoginOut);
+            this.Controls.Add(this.MinWindow2);
+            this.Controls.Add(this.TitleLabel);
+            this.Controls.Add(this.MinWindow);
+            this.Controls.Add(this.MinWindow1);
+            this.Controls.Add(this.CloseWindow);
+            this.Name = "HeadBar";
+            this.Load += new System.EventHandler(this.HeadBar_Load);
+            this.BackColorChanged += new System.EventHandler(this.HeadBar_BackColorChanged);
+            ((System.ComponentModel.ISupportInitialize)(this.MinWindow2)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.MinWindow)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.MinWindow1)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.CloseWindow)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.UpperCollection.Properties)).EndInit();
+            this.ResumeLayout(false);
+            this.PerformLayout();
+
+        }
+
+        #endregion
+
+        private System.Windows.Forms.PictureBox MinWindow1;
+        private System.Windows.Forms.PictureBox CloseWindow;
+        private System.Windows.Forms.PictureBox MinWindow;
+        private System.Windows.Forms.Label TitleLabel;
+        private System.Windows.Forms.PictureBox MinWindow2;
+        private DevExpress.XtraEditors.SimpleButton Change_psw;
+        private DevExpress.XtraEditors.SimpleButton LoginOut;
+        private DevExpress.XtraEditors.ToggleSwitch UpperCollection;
+    }
+}

+ 150 - 0
UAS_MES_ZT/CustomControl/HeadBar/HeadBar.cs

@@ -0,0 +1,150 @@
+using System;
+using System.Collections.Generic;
+using System.Runtime.InteropServices;
+using System.Windows.Forms;
+using UAS_MES_NEW.DataOperate;
+using UAS_MES_NEW.Entity;
+using UAS_MES_NEW.PublicMethod;
+using UAS_MES_NEW.PublicForm;
+
+namespace UAS_MES_NEW.CustomControl
+{
+    public partial class HeadBar : UserControl
+    {
+
+        //需要关闭前提示窗口的在这里加
+        private List<string> NeedConfirm = new List<string>() { "Main" };
+        [DllImport("user32.dll")]
+        public static extern bool ReleaseCapture();
+        [DllImport("user32.dll")]
+        public static extern bool SendMessage(IntPtr hwnd, int wMsg, int wParam, int lParam);
+        public const int WM_SYSCOMMAND = 0x0112;
+        public const int SC_MOVE = 0xF010;
+        public const int HTCAPTION = 0x0002;
+
+        //定义委托
+        public delegate void OnHeadBarClick(object sender, EventArgs e);
+        //定义事件
+        public event OnHeadBarClick HeadBarDoubleClick;
+
+        string Title1;
+
+        public string Title
+        {
+            get
+            {
+                return Title1;
+            }
+
+            set
+            {
+                Title1 = value;
+            }
+        }
+
+        public HeadBar()
+        {
+            InitializeComponent();
+        }
+        /// <summary>
+        /// 用于对窗体的关闭,判断主窗体的时候退出程序,非主窗体时关闭该窗体,同时回收内存
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        public void CloseWindow_Click(object sender, EventArgs e)
+        {
+            //判断是否需要关闭前的提示
+            if (NeedConfirm.Contains(this.FindForm().Name))
+            {
+                string logout_confirm = MessageBox.Show(this.ParentForm, "是否退出程序", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question).ToString();
+                if (logout_confirm == "Yes")
+                {
+                    this.FindForm().Close();
+                    Application.Exit();
+                }
+            }
+            else
+            {
+                this.FindForm().Close();
+            }
+        }
+
+        private void panel1_Click(object sender, EventArgs e)
+        {
+            HeadBarDoubleClick?.Invoke(sender, new EventArgs());
+        }
+
+        private void MinWindow_Click(object sender, EventArgs e)
+        {
+            this.FindForm().WindowState = FormWindowState.Minimized;
+        }
+
+        private void HeadBar_Load(object sender, EventArgs e)
+        {
+            TitleLabel.Text = Title1;
+            if (!NeedConfirm.Contains(this.FindForm().Name))
+            {
+                LoginOut.Visible = false;
+                Change_psw.Visible = false;
+                UpperCollection.Visible = false;
+            }
+        }
+
+        private void LoginOut_MouseEnter(object sender, EventArgs e)
+        {
+            this.Cursor = Cursors.Hand;
+        }
+
+        private void LoginOut_MouseLeave(object sender, EventArgs e)
+        {
+            this.Cursor = Cursors.Default;
+        }
+
+        private void Change_psw_Click(object sender, EventArgs e)
+        {
+            ChangePwd chagepwd = new ChangePwd();
+            BaseUtil.SetFormCenter(chagepwd);
+            chagepwd.ShowDialog();
+        }
+
+        private void HeadBar_BackColorChanged(object sender, EventArgs e)
+        {
+            Change_psw.BackColor = BackColor;
+            LoginOut.BackColor = BackColor;
+        }
+
+        private void LoginOut_Click(object sender, EventArgs e)
+        {
+            //判断是否需要关闭前的提示
+            if (NeedConfirm.Contains(this.FindForm().Name))
+            {
+                string logout_confirm = MessageBox.Show(this.ParentForm, "退出登录?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question).ToString();
+                if (logout_confirm == "Yes")
+                {
+                    //注销的时候切换回默认数据库
+                    SystemInf.ConnectionString = Properties.Settings.Default.Properties["MES"].DefaultValue.ToString();
+                    DataHelper.DBConnectionString = SystemInf.ConnectionString;
+                    //清除上个用户的权限信息
+                    SystemInf.Caller.Clear();
+                    //清除已经打开过的窗口的信息
+                    AccordionMenu.NavagationBar.OpenedFormName.Clear();
+                    //注销的时候将除了登陆窗口之外的全部窗口关闭
+                    for (int i = 0; i < Application.OpenForms.Count; i++)
+                    {
+                        if (Application.OpenForms[i].Name != "Login")
+                            Application.OpenForms[i].Close();
+                    }
+                    this.FindForm().Hide();
+                    Login login = new Login();
+                    login.ShowDialog();
+                    this.FindForm().Close();
+                }
+            }
+        }
+
+        private void UpperCollection_Toggled(object sender, EventArgs e)
+        {
+            SystemInf.UpperCollection = UpperCollection.IsOn;
+        }
+    }
+}

+ 432 - 0
UAS_MES_ZT/CustomControl/HeadBar/HeadBar.resx

@@ -0,0 +1,432 @@
+<?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="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
+  <data name="TitleLabel.AutoSize" type="System.Boolean, mscorlib">
+    <value>True</value>
+  </data>
+  <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+  <data name="TitleLabel.Font" type="System.Drawing.Font, System.Drawing">
+    <value>微软雅黑, 12pt, style=Bold</value>
+  </data>
+  <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
+  <data name="TitleLabel.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
+    <value>NoControl</value>
+  </data>
+  <data name="TitleLabel.Location" type="System.Drawing.Point, System.Drawing">
+    <value>8, 6</value>
+  </data>
+  <data name="TitleLabel.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
+    <value>2, 0, 2, 0</value>
+  </data>
+  <data name="TitleLabel.Size" type="System.Drawing.Size, System.Drawing">
+    <value>0, 22</value>
+  </data>
+  <data name="TitleLabel.TabIndex" type="System.Int32, mscorlib">
+    <value>7</value>
+  </data>
+  <data name="&gt;&gt;TitleLabel.Name" xml:space="preserve">
+    <value>TitleLabel</value>
+  </data>
+  <data name="&gt;&gt;TitleLabel.Type" xml:space="preserve">
+    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name="&gt;&gt;TitleLabel.Parent" xml:space="preserve">
+    <value>$this</value>
+  </data>
+  <data name="&gt;&gt;TitleLabel.ZOrder" xml:space="preserve">
+    <value>4</value>
+  </data>
+  <data name="MinWindow2.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
+    <value>Right</value>
+  </data>
+  <data name="MinWindow2.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
+    <value>NoControl</value>
+  </data>
+  <data name="MinWindow2.Location" type="System.Drawing.Point, System.Drawing">
+    <value>491, 0</value>
+  </data>
+  <data name="MinWindow2.Size" type="System.Drawing.Size, System.Drawing">
+    <value>15, 28</value>
+  </data>
+  <data name="MinWindow2.SizeMode" type="System.Windows.Forms.PictureBoxSizeMode, System.Windows.Forms">
+    <value>StretchImage</value>
+  </data>
+  <data name="MinWindow2.TabIndex" type="System.Int32, mscorlib">
+    <value>8</value>
+  </data>
+  <data name="&gt;&gt;MinWindow2.Name" xml:space="preserve">
+    <value>MinWindow2</value>
+  </data>
+  <data name="&gt;&gt;MinWindow2.Type" xml:space="preserve">
+    <value>System.Windows.Forms.PictureBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name="&gt;&gt;MinWindow2.Parent" xml:space="preserve">
+    <value>$this</value>
+  </data>
+  <data name="&gt;&gt;MinWindow2.ZOrder" xml:space="preserve">
+    <value>3</value>
+  </data>
+  <data name="MinWindow.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
+    <value>Right</value>
+  </data>
+  <data name="MinWindow.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
+    <value>NoControl</value>
+  </data>
+  <data name="MinWindow.Location" type="System.Drawing.Point, System.Drawing">
+    <value>506, 0</value>
+  </data>
+  <data name="MinWindow.Size" type="System.Drawing.Size, System.Drawing">
+    <value>30, 28</value>
+  </data>
+  <data name="MinWindow.SizeMode" type="System.Windows.Forms.PictureBoxSizeMode, System.Windows.Forms">
+    <value>StretchImage</value>
+  </data>
+  <data name="MinWindow.TabIndex" type="System.Int32, mscorlib">
+    <value>6</value>
+  </data>
+  <data name="&gt;&gt;MinWindow.Name" xml:space="preserve">
+    <value>MinWindow</value>
+  </data>
+  <data name="&gt;&gt;MinWindow.Type" xml:space="preserve">
+    <value>System.Windows.Forms.PictureBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name="&gt;&gt;MinWindow.Parent" xml:space="preserve">
+    <value>$this</value>
+  </data>
+  <data name="&gt;&gt;MinWindow.ZOrder" xml:space="preserve">
+    <value>5</value>
+  </data>
+  <data name="MinWindow1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
+    <value>Right</value>
+  </data>
+  <data name="MinWindow1.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
+    <value>NoControl</value>
+  </data>
+  <data name="MinWindow1.Location" type="System.Drawing.Point, System.Drawing">
+    <value>536, 0</value>
+  </data>
+  <data name="MinWindow1.Size" type="System.Drawing.Size, System.Drawing">
+    <value>15, 28</value>
+  </data>
+  <data name="MinWindow1.SizeMode" type="System.Windows.Forms.PictureBoxSizeMode, System.Windows.Forms">
+    <value>StretchImage</value>
+  </data>
+  <data name="MinWindow1.TabIndex" type="System.Int32, mscorlib">
+    <value>5</value>
+  </data>
+  <data name="&gt;&gt;MinWindow1.Name" xml:space="preserve">
+    <value>MinWindow1</value>
+  </data>
+  <data name="&gt;&gt;MinWindow1.Type" xml:space="preserve">
+    <value>System.Windows.Forms.PictureBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name="&gt;&gt;MinWindow1.Parent" xml:space="preserve">
+    <value>$this</value>
+  </data>
+  <data name="&gt;&gt;MinWindow1.ZOrder" xml:space="preserve">
+    <value>6</value>
+  </data>
+  <data name="CloseWindow.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
+    <value>Right</value>
+  </data>
+  <data name="CloseWindow.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
+    <value>NoControl</value>
+  </data>
+  <data name="CloseWindow.Location" type="System.Drawing.Point, System.Drawing">
+    <value>551, 0</value>
+  </data>
+  <data name="CloseWindow.Size" type="System.Drawing.Size, System.Drawing">
+    <value>30, 28</value>
+  </data>
+  <data name="CloseWindow.SizeMode" type="System.Windows.Forms.PictureBoxSizeMode, System.Windows.Forms">
+    <value>StretchImage</value>
+  </data>
+  <data name="CloseWindow.TabIndex" type="System.Int32, mscorlib">
+    <value>4</value>
+  </data>
+  <data name="&gt;&gt;CloseWindow.Name" xml:space="preserve">
+    <value>CloseWindow</value>
+  </data>
+  <data name="&gt;&gt;CloseWindow.Type" xml:space="preserve">
+    <value>System.Windows.Forms.PictureBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name="&gt;&gt;CloseWindow.Parent" xml:space="preserve">
+    <value>$this</value>
+  </data>
+  <data name="&gt;&gt;CloseWindow.ZOrder" xml:space="preserve">
+    <value>7</value>
+  </data>
+  <data name="LoginOut.Appearance.Font" type="System.Drawing.Font, System.Drawing">
+    <value>微软雅黑, 12pt</value>
+  </data>
+  <data name="LoginOut.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
+    <value>Right</value>
+  </data>
+  <data name="LoginOut.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
+    <value>NoControl</value>
+  </data>
+  <data name="LoginOut.Location" type="System.Drawing.Point, System.Drawing">
+    <value>411, 0</value>
+  </data>
+  <data name="LoginOut.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
+    <value>2, 2, 2, 2</value>
+  </data>
+  <data name="LoginOut.Size" type="System.Drawing.Size, System.Drawing">
+    <value>80, 28</value>
+  </data>
+  <data name="LoginOut.TabIndex" type="System.Int32, mscorlib">
+    <value>9</value>
+  </data>
+  <data name="LoginOut.Text" xml:space="preserve">
+    <value>注销</value>
+  </data>
+  <data name="&gt;&gt;LoginOut.Name" xml:space="preserve">
+    <value>LoginOut</value>
+  </data>
+  <data name="&gt;&gt;LoginOut.Type" xml:space="preserve">
+    <value>DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v15.2, Version=15.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
+  </data>
+  <data name="&gt;&gt;LoginOut.Parent" xml:space="preserve">
+    <value>$this</value>
+  </data>
+  <data name="&gt;&gt;LoginOut.ZOrder" xml:space="preserve">
+    <value>2</value>
+  </data>
+  <data name="Change_psw.Appearance.Font" type="System.Drawing.Font, System.Drawing">
+    <value>微软雅黑, 12pt</value>
+  </data>
+  <data name="Change_psw.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
+    <value>Right</value>
+  </data>
+  <data name="Change_psw.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
+    <value>NoControl</value>
+  </data>
+  <data name="Change_psw.Location" type="System.Drawing.Point, System.Drawing">
+    <value>298, 0</value>
+  </data>
+  <data name="Change_psw.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
+    <value>2, 2, 2, 2</value>
+  </data>
+  <data name="Change_psw.Size" type="System.Drawing.Size, System.Drawing">
+    <value>113, 28</value>
+  </data>
+  <data name="Change_psw.TabIndex" type="System.Int32, mscorlib">
+    <value>11</value>
+  </data>
+  <data name="Change_psw.Text" xml:space="preserve">
+    <value>修改密码</value>
+  </data>
+  <data name="&gt;&gt;Change_psw.Name" xml:space="preserve">
+    <value>Change_psw</value>
+  </data>
+  <data name="&gt;&gt;Change_psw.Type" xml:space="preserve">
+    <value>DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v15.2, Version=15.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
+  </data>
+  <data name="&gt;&gt;Change_psw.Parent" xml:space="preserve">
+    <value>$this</value>
+  </data>
+  <data name="&gt;&gt;Change_psw.ZOrder" xml:space="preserve">
+    <value>1</value>
+  </data>
+  <data name="UpperCollection.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
+    <value>Right</value>
+  </data>
+  <data name="UpperCollection.EditValue" type="System.Boolean, mscorlib">
+    <value>True</value>
+  </data>
+  <data name="UpperCollection.Location" type="System.Drawing.Point, System.Drawing">
+    <value>166, 0</value>
+  </data>
+  <data name="UpperCollection.Properties.Appearance.Font" type="System.Drawing.Font, System.Drawing">
+    <value>微软雅黑, 9pt</value>
+  </data>
+  <data name="UpperCollection.Properties.OffText" xml:space="preserve">
+    <value>正常采集</value>
+  </data>
+  <data name="UpperCollection.Properties.OnText" xml:space="preserve">
+    <value>大写采集</value>
+  </data>
+  <data name="UpperCollection.Size" type="System.Drawing.Size, System.Drawing">
+    <value>132, 28</value>
+  </data>
+  <assembly alias="DevExpress.Utils.v15.2" name="DevExpress.Utils.v15.2, Version=15.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
+  <data name="UpperCollection.SuperTip" type="DevExpress.Utils.SuperToolTip, DevExpress.Utils.v15.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        AAEAAAD/////AQAAAAAAAAAMAgAAAFpEZXZFeHByZXNzLlV0aWxzLnYxNS4yLCBWZXJzaW9uPTE1LjIu
+        NC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEMAwAAAFlE
+        ZXZFeHByZXNzLkRhdGEudjE1LjIsIFZlcnNpb249MTUuMi40LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVi
+        bGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURldkV4cHJlc3MuVXRpbHMuU3VwZXJUb29s
+        VGlwBwAAAA1BbGxvd0h0bWxUZXh0EUZpeGVkVG9vbFRpcFdpZHRoCkl0ZW1zQ291bnQJaXRlbVR5cGUw
+        BWl0ZW0wCWl0ZW1UeXBlMQVpdGVtMQQAAAQEBAQfRGV2RXhwcmVzcy5VdGlscy5EZWZhdWx0Qm9vbGVh
+        bgMAAAABCCVEZXZFeHByZXNzLlV0aWxzLlN1cGVyVG9vbFRpcEl0ZW1UeXBlAgAAACFEZXZFeHByZXNz
+        LlV0aWxzLlRvb2xUaXBUaXRsZUl0ZW0CAAAAJURldkV4cHJlc3MuVXRpbHMuU3VwZXJUb29sVGlwSXRl
+        bVR5cGUCAAAAHERldkV4cHJlc3MuVXRpbHMuVG9vbFRpcEl0ZW0CAAAAAgAAAAX8////H0RldkV4cHJl
+        c3MuVXRpbHMuRGVmYXVsdEJvb2xlYW4BAAAAB3ZhbHVlX18ACAMAAAACAAAAAAIAAAAF+////yVEZXZF
+        eHByZXNzLlV0aWxzLlN1cGVyVG9vbFRpcEl0ZW1UeXBlAQAAAAd2YWx1ZV9fAAgCAAAAAQAAAAkGAAAA
+        Afn////7////AAAAAAkIAAAADAkAAABRU3lzdGVtLkRyYXdpbmcsIFZlcnNpb249NC4wLjAuMCwgQ3Vs
+        dHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iMDNmNWY3ZjExZDUwYTNhBQYAAAAhRGV2RXhwcmVz
+        cy5VdGlscy5Ub29sVGlwVGl0bGVJdGVtCgAAAA1BbGxvd0h0bWxUZXh0BEljb24FSW1hZ2UKSW1hZ2VB
+        bGlnbgpJbWFnZUluZGV4E0ltYWdlVG9UZXh0RGlzdGFuY2UKTGVmdEluZGVudAhNYXhXaWR0aBJPd25l
+        ckFsbG93SHRtbFRleHQEVGV4dAQEBAQAAAAAAAEfRGV2RXhwcmVzcy5VdGlscy5EZWZhdWx0Qm9vbGVh
+        bgMAAAATU3lzdGVtLkRyYXdpbmcuSWNvbgkAAAAUU3lzdGVtLkRyYXdpbmcuSW1hZ2UJAAAAJkRldkV4
+        cHJlc3MuVXRpbHMuVG9vbFRpcEltYWdlQWxpZ25tZW50AgAAAAgICAgBAgAAAAH2/////P///wIAAAAK
+        CgX1////JkRldkV4cHJlc3MuVXRpbHMuVG9vbFRpcEltYWdlQWxpZ25tZW50AQAAAAd2YWx1ZV9fAAgC
+        AAAAAAAAAP////8OAAAAAAAAADwBAAAABgwAAAAb57O757uf5aSn5bCP5YaZ6YeH6ZuG6K6+572uBQgA
+        AAAcRGV2RXhwcmVzcy5VdGlscy5Ub29sVGlwSXRlbQoAAAANQWxsb3dIdG1sVGV4dARJY29uBUltYWdl
+        CkltYWdlQWxpZ24KSW1hZ2VJbmRleBNJbWFnZVRvVGV4dERpc3RhbmNlCkxlZnRJbmRlbnQITWF4V2lk
+        dGgST3duZXJBbGxvd0h0bWxUZXh0BFRleHQEBAQEAAAAAAABH0RldkV4cHJlc3MuVXRpbHMuRGVmYXVs
+        dEJvb2xlYW4DAAAAE1N5c3RlbS5EcmF3aW5nLkljb24JAAAAFFN5c3RlbS5EcmF3aW5nLkltYWdlCQAA
+        ACZEZXZFeHByZXNzLlV0aWxzLlRvb2xUaXBJbWFnZUFsaWdubWVudAIAAAAICAgIAQIAAAAB8/////z/
+        //8CAAAACgoB8v////X///8AAAAA/////w4AAAAGAAAAPAEAAAAGDwAAAFTlvIDlkK/ml7bvvIzmiavm
+        j4/mnqrml6Dorrrmiavmj4/liLDku4DkuYjlhoXlrrnov5vlhaXns7vnu5/ml7bpg73kvJrovazmjaLm
+        iJDlpKflhpkL
+</value>
+  </data>
+  <data name="UpperCollection.TabIndex" type="System.Int32, mscorlib">
+    <value>15</value>
+  </data>
+  <data name="&gt;&gt;UpperCollection.Name" xml:space="preserve">
+    <value>UpperCollection</value>
+  </data>
+  <data name="&gt;&gt;UpperCollection.Type" xml:space="preserve">
+    <value>DevExpress.XtraEditors.ToggleSwitch, DevExpress.XtraEditors.v15.2, Version=15.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
+  </data>
+  <data name="&gt;&gt;UpperCollection.Parent" xml:space="preserve">
+    <value>$this</value>
+  </data>
+  <data name="&gt;&gt;UpperCollection.ZOrder" xml:space="preserve">
+    <value>0</value>
+  </data>
+  <metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>True</value>
+  </metadata>
+  <data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
+    <value>6, 12</value>
+  </data>
+  <data name="$this.Size" type="System.Drawing.Size, System.Drawing">
+    <value>581, 28</value>
+  </data>
+  <data name="&gt;&gt;$this.Name" xml:space="preserve">
+    <value>HeadBar</value>
+  </data>
+  <data name="&gt;&gt;$this.Type" xml:space="preserve">
+    <value>System.Windows.Forms.UserControl, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+</root>

+ 127 - 0
UAS_MES_ZT/CustomControl/HeadBar/HeadBar.zu.resx

@@ -0,0 +1,127 @@
+<?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.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
+  <data name="CloseWindow.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
+    <value>NoControl</value>
+  </data>
+  <data name="MinWindow.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
+    <value>NoControl</value>
+  </data>
+</root>

+ 36 - 0
UAS_MES_ZT/CustomControl/ListViewExpand/ListViewExpand.Designer.cs

@@ -0,0 +1,36 @@
+namespace UAS_MES_NEW.CustomControl.ListViewExpand
+{
+    partial class ListViewExpand
+    {
+        /// <summary> 
+        /// 必需的设计器变量。
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary> 
+        /// 清理所有正在使用的资源。
+        /// </summary>
+        /// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region 组件设计器生成的代码
+
+        /// <summary> 
+        /// 设计器支持所需的方法 - 不要修改
+        /// 使用代码编辑器修改此方法的内容。
+        /// </summary>
+        private void InitializeComponent()
+        {
+            components = new System.ComponentModel.Container();
+        }
+
+        #endregion
+    }
+}

Some files were not shown because too many files changed in this diff