From 719169b2b7cb5ef75d37d9e852f8abf93d82f1b5 Mon Sep 17 00:00:00 2001 From: "ruoxing.wang" <88384874@qq.com> Date: Mon, 28 Jul 2025 14:11:57 +0800 Subject: [PATCH] =?UTF-8?q?=E9=97=A8=E6=A7=9B=E8=A3=85=E9=85=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- FacOneZPStation/FrmZP.Designer.cs | 169 +- InjectionPC/FrmMain2411.Designer.cs | 396 ++--- MESClassLibrary/BussinessHelper.cs | 2 + PaintingPC/FrmQualityOnLine.cs | 27 - PunchingMistake/DLL/Interop.OPCAutomation.dll | Bin 0 -> 28672 bytes PunchingMistake/DLL/Interop.grdes6Lib.dll | Bin 0 -> 32768 bytes PunchingMistake/DLL/Interop.gregn6Lib.dll | Bin 0 -> 353280 bytes PunchingMistake/DLL/PlaySound.dll | Bin 0 -> 4096 bytes PunchingMistake/FrmAssemble.Designer.cs | 692 ++++++-- PunchingMistake/FrmAssemble.cs | 558 +++++- PunchingMistake/FrmAssemble.resx | 9 + PunchingMistake/FrmLogin.Designer.cs | 53 +- PunchingMistake/FrmPlanSeach.Designer.cs | 270 +++ PunchingMistake/FrmPlanSeach.cs | 54 + PunchingMistake/FrmPlanSeach.resx | 162 ++ PunchingMistake/FrmProScreen3.Designer.cs | 101 +- PunchingMistake/FrmProScreen3.cs | 1297 ++++++++------ PunchingMistake/FrmQualityNew.Designer.cs | 590 ++----- PunchingMistake/FrmQualityNew.cs | 1194 +++---------- PunchingMistake/FrmQualityNew.resx | 3 + PunchingMistake/FrmQualityNew1.Designer.cs | 656 +++++++ PunchingMistake/FrmQualityNew1.cs | 1544 +++++++++++++++++ PunchingMistake/FrmQualityNew1.resx | 475 +++++ PunchingMistake/Function2.cs | 480 ++++- PunchingMistake/Function3.cs | 125 ++ PunchingMistake/Images/正确.wav | Bin 0 -> 30798 bytes PunchingMistake/Images/错误.wav | Bin 0 -> 30798 bytes PunchingMistake/PlcInvoke.cs | 344 ++++ PunchingMistake/Printer.cs | 55 + PunchingMistake/PunchingMistake.csproj | 55 +- 30 files changed, 6724 insertions(+), 2587 deletions(-) create mode 100644 PunchingMistake/DLL/Interop.OPCAutomation.dll create mode 100644 PunchingMistake/DLL/Interop.grdes6Lib.dll create mode 100644 PunchingMistake/DLL/Interop.gregn6Lib.dll create mode 100644 PunchingMistake/DLL/PlaySound.dll create mode 100644 PunchingMistake/FrmPlanSeach.Designer.cs create mode 100644 PunchingMistake/FrmPlanSeach.cs create mode 100644 PunchingMistake/FrmPlanSeach.resx create mode 100644 PunchingMistake/FrmQualityNew1.Designer.cs create mode 100644 PunchingMistake/FrmQualityNew1.cs create mode 100644 PunchingMistake/FrmQualityNew1.resx create mode 100644 PunchingMistake/Function3.cs create mode 100644 PunchingMistake/Images/正确.wav create mode 100644 PunchingMistake/Images/错误.wav create mode 100644 PunchingMistake/PlcInvoke.cs create mode 100644 PunchingMistake/Printer.cs diff --git a/FacOneZPStation/FrmZP.Designer.cs b/FacOneZPStation/FrmZP.Designer.cs index f31333a..06c2c67 100644 --- a/FacOneZPStation/FrmZP.Designer.cs +++ b/FacOneZPStation/FrmZP.Designer.cs @@ -28,7 +28,6 @@ /// private void InitializeComponent() { - this.components = new System.ComponentModel.Container(); System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FrmZP)); this.tableLayoutPanel3 = new System.Windows.Forms.TableLayoutPanel(); this.button6 = new System.Windows.Forms.Button(); @@ -48,7 +47,7 @@ this.labPName = new System.Windows.Forms.Label(); this.label8 = new System.Windows.Forms.Label(); this.labPartNo = new System.Windows.Forms.Label(); - this.timer1 = new System.Windows.Forms.Timer(this.components); + this.timer1 = new System.Windows.Forms.Timer(); this.label6 = new System.Windows.Forms.Label(); this.labBadCount = new System.Windows.Forms.Label(); this.labNum = new System.Windows.Forms.Label(); @@ -77,7 +76,7 @@ this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.51529F)); this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.62445F)); this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 32.86026F)); - this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 737F)); + this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 807F)); this.tableLayoutPanel3.Controls.Add(this.button6, 3, 0); this.tableLayoutPanel3.Controls.Add(this.button1, 0, 1); this.tableLayoutPanel3.Controls.Add(this.button5, 2, 1); @@ -86,14 +85,14 @@ this.tableLayoutPanel3.Controls.Add(this.button2, 1, 1); this.tableLayoutPanel3.Controls.Add(this.button7, 3, 1); this.tableLayoutPanel3.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel3.Location = new System.Drawing.Point(6, 1224); - this.tableLayoutPanel3.Margin = new System.Windows.Forms.Padding(6, 5, 6, 5); + this.tableLayoutPanel3.Location = new System.Drawing.Point(7, 1400); + this.tableLayoutPanel3.Margin = new System.Windows.Forms.Padding(7, 6, 7, 6); this.tableLayoutPanel3.Name = "tableLayoutPanel3"; this.tableLayoutPanel3.RowCount = 2; this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 35F)); - this.tableLayoutPanel3.Size = new System.Drawing.Size(2335, 371); + this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 40F)); + this.tableLayoutPanel3.Size = new System.Drawing.Size(2546, 423); this.tableLayoutPanel3.TabIndex = 3; // // button6 @@ -102,10 +101,10 @@ this.button6.Dock = System.Windows.Forms.DockStyle.Fill; this.button6.Font = new System.Drawing.Font("黑体", 16F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.button6.ForeColor = System.Drawing.Color.Black; - this.button6.Location = new System.Drawing.Point(1610, 12); - this.button6.Margin = new System.Windows.Forms.Padding(13, 12, 13, 12); + this.button6.Location = new System.Drawing.Point(1751, 14); + this.button6.Margin = new System.Windows.Forms.Padding(14); this.button6.Name = "button6"; - this.button6.Size = new System.Drawing.Size(712, 161); + this.button6.Size = new System.Drawing.Size(781, 183); this.button6.TabIndex = 7; this.button6.Text = "手动打印箱单"; this.button6.UseVisualStyleBackColor = false; @@ -116,10 +115,10 @@ this.button1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(128)))), ((int)(((byte)(255)))), ((int)(((byte)(128))))); this.button1.Dock = System.Windows.Forms.DockStyle.Fill; this.button1.Font = new System.Drawing.Font("黑体", 16F); - this.button1.Location = new System.Drawing.Point(6, 190); - this.button1.Margin = new System.Windows.Forms.Padding(6, 5, 6, 5); + this.button1.Location = new System.Drawing.Point(7, 217); + this.button1.Margin = new System.Windows.Forms.Padding(7, 6, 7, 6); this.button1.Name = "button1"; - this.button1.Size = new System.Drawing.Size(523, 176); + this.button1.Size = new System.Drawing.Size(568, 200); this.button1.TabIndex = 6; this.button1.Text = "打印标签"; this.button1.UseVisualStyleBackColor = false; @@ -131,10 +130,10 @@ this.button5.Dock = System.Windows.Forms.DockStyle.Fill; this.button5.Font = new System.Drawing.Font("黑体", 16F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.button5.ForeColor = System.Drawing.Color.Black; - this.button5.Location = new System.Drawing.Point(1085, 197); - this.button5.Margin = new System.Windows.Forms.Padding(13, 12, 13, 12); + this.button5.Location = new System.Drawing.Point(1180, 225); + this.button5.Margin = new System.Windows.Forms.Padding(14); this.button5.Name = "button5"; - this.button5.Size = new System.Drawing.Size(499, 162); + this.button5.Size = new System.Drawing.Size(543, 184); this.button5.TabIndex = 5; this.button5.Text = "不合格"; this.button5.UseVisualStyleBackColor = false; @@ -145,10 +144,10 @@ this.button4.BackColor = System.Drawing.Color.RoyalBlue; this.button4.Dock = System.Windows.Forms.DockStyle.Fill; this.button4.Font = new System.Drawing.Font("黑体", 16F); - this.button4.Location = new System.Drawing.Point(541, 5); - this.button4.Margin = new System.Windows.Forms.Padding(6, 5, 6, 5); + this.button4.Location = new System.Drawing.Point(589, 6); + this.button4.Margin = new System.Windows.Forms.Padding(7, 6, 7, 6); this.button4.Name = "button4"; - this.button4.Size = new System.Drawing.Size(525, 175); + this.button4.Size = new System.Drawing.Size(570, 199); this.button4.TabIndex = 4; this.button4.Text = "下一计划"; this.button4.UseVisualStyleBackColor = false; @@ -159,10 +158,10 @@ this.button3.BackColor = System.Drawing.Color.Aqua; this.button3.Dock = System.Windows.Forms.DockStyle.Fill; this.button3.Font = new System.Drawing.Font("黑体", 16F); - this.button3.Location = new System.Drawing.Point(6, 5); - this.button3.Margin = new System.Windows.Forms.Padding(6, 5, 6, 5); + this.button3.Location = new System.Drawing.Point(7, 6); + this.button3.Margin = new System.Windows.Forms.Padding(7, 6, 7, 6); this.button3.Name = "button3"; - this.button3.Size = new System.Drawing.Size(523, 175); + this.button3.Size = new System.Drawing.Size(568, 199); this.button3.TabIndex = 3; this.button3.Text = "上一计划"; this.button3.UseVisualStyleBackColor = false; @@ -174,10 +173,10 @@ this.button2.Dock = System.Windows.Forms.DockStyle.Fill; this.button2.Font = new System.Drawing.Font("黑体", 16F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.button2.ForeColor = System.Drawing.Color.Black; - this.button2.Location = new System.Drawing.Point(548, 197); - this.button2.Margin = new System.Windows.Forms.Padding(13, 12, 13, 12); + this.button2.Location = new System.Drawing.Point(596, 225); + this.button2.Margin = new System.Windows.Forms.Padding(14); this.button2.Name = "button2"; - this.button2.Size = new System.Drawing.Size(511, 162); + this.button2.Size = new System.Drawing.Size(556, 184); this.button2.TabIndex = 2; this.button2.Text = "补打标签"; this.button2.UseVisualStyleBackColor = false; @@ -188,10 +187,10 @@ this.button7.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(128))))); this.button7.Dock = System.Windows.Forms.DockStyle.Fill; this.button7.Font = new System.Drawing.Font("黑体", 16F); - this.button7.Location = new System.Drawing.Point(1603, 190); - this.button7.Margin = new System.Windows.Forms.Padding(6, 5, 6, 5); + this.button7.Location = new System.Drawing.Point(1744, 217); + this.button7.Margin = new System.Windows.Forms.Padding(7, 6, 7, 6); this.button7.Name = "button7"; - this.button7.Size = new System.Drawing.Size(726, 176); + this.button7.Size = new System.Drawing.Size(795, 200); this.button7.TabIndex = 8; this.button7.Text = "补打箱单"; this.button7.UseVisualStyleBackColor = false; @@ -203,11 +202,11 @@ this.label7.Dock = System.Windows.Forms.DockStyle.Fill; this.label7.Font = new System.Drawing.Font("黑体", 21.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.label7.ForeColor = System.Drawing.Color.White; - this.label7.Location = new System.Drawing.Point(1275, 3); + this.label7.Location = new System.Drawing.Point(1385, 3); this.label7.Margin = new System.Windows.Forms.Padding(2); this.label7.Name = "label7"; this.tableLayoutPanel4.SetRowSpan(this.label7, 2); - this.label7.Size = new System.Drawing.Size(249, 210); + this.label7.Size = new System.Drawing.Size(272, 241); this.label7.TabIndex = 32; this.label7.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; // @@ -215,10 +214,10 @@ // this.textBox2.Dock = System.Windows.Forms.DockStyle.Fill; this.textBox2.Font = new System.Drawing.Font("黑体", 26.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.textBox2.Location = new System.Drawing.Point(368, 111); - this.textBox2.Margin = new System.Windows.Forms.Padding(4); + this.textBox2.Location = new System.Drawing.Point(399, 127); + this.textBox2.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); this.textBox2.Name = "textBox2"; - this.textBox2.Size = new System.Drawing.Size(900, 77); + this.textBox2.Size = new System.Drawing.Size(979, 87); this.textBox2.TabIndex = 30; this.textBox2.KeyDown += new System.Windows.Forms.KeyEventHandler(this.textBox2_KeyDown); // @@ -227,10 +226,10 @@ this.label3.Dock = System.Windows.Forms.DockStyle.Fill; this.label3.Font = new System.Drawing.Font("黑体", 21.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.label3.ForeColor = System.Drawing.Color.White; - this.label3.Location = new System.Drawing.Point(5, 107); + this.label3.Location = new System.Drawing.Point(5, 122); this.label3.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.label3.Name = "label3"; - this.label3.Size = new System.Drawing.Size(354, 108); + this.label3.Size = new System.Drawing.Size(385, 124); this.label3.TabIndex = 29; this.label3.Text = "扫描物料条码"; this.label3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; @@ -240,10 +239,10 @@ this.labOrderNo.Dock = System.Windows.Forms.DockStyle.Fill; this.labOrderNo.Font = new System.Drawing.Font("黑体", 21.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.labOrderNo.ForeColor = System.Drawing.Color.White; - this.labOrderNo.Location = new System.Drawing.Point(1529, 218); + this.labOrderNo.Location = new System.Drawing.Point(1662, 249); this.labOrderNo.Margin = new System.Windows.Forms.Padding(2); this.labOrderNo.Name = "labOrderNo"; - this.labOrderNo.Size = new System.Drawing.Size(807, 151); + this.labOrderNo.Size = new System.Drawing.Size(887, 174); this.labOrderNo.TabIndex = 28; this.labOrderNo.Text = "A64654646464"; this.labOrderNo.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; @@ -254,10 +253,10 @@ this.label4.Dock = System.Windows.Forms.DockStyle.Fill; this.label4.Font = new System.Drawing.Font("黑体", 21.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.label4.ForeColor = System.Drawing.Color.White; - this.label4.Location = new System.Drawing.Point(1275, 218); + this.label4.Location = new System.Drawing.Point(1385, 249); this.label4.Margin = new System.Windows.Forms.Padding(2); this.label4.Name = "label4"; - this.label4.Size = new System.Drawing.Size(249, 151); + this.label4.Size = new System.Drawing.Size(272, 174); this.label4.TabIndex = 27; this.label4.Text = "计划编号"; this.label4.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; @@ -268,10 +267,10 @@ this.labStationNo.Dock = System.Windows.Forms.DockStyle.Fill; this.labStationNo.Font = new System.Drawing.Font("黑体", 21.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.labStationNo.ForeColor = System.Drawing.Color.White; - this.labStationNo.Location = new System.Drawing.Point(366, 218); + this.labStationNo.Location = new System.Drawing.Point(397, 249); this.labStationNo.Margin = new System.Windows.Forms.Padding(2); this.labStationNo.Name = "labStationNo"; - this.labStationNo.Size = new System.Drawing.Size(904, 151); + this.labStationNo.Size = new System.Drawing.Size(983, 174); this.labStationNo.TabIndex = 26; this.labStationNo.Text = "V253-MF-S后保下部延伸焊接"; this.labStationNo.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; @@ -282,10 +281,10 @@ this.label2.Dock = System.Windows.Forms.DockStyle.Fill; this.label2.Font = new System.Drawing.Font("黑体", 21.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.label2.ForeColor = System.Drawing.Color.White; - this.label2.Location = new System.Drawing.Point(3, 218); + this.label2.Location = new System.Drawing.Point(3, 249); this.label2.Margin = new System.Windows.Forms.Padding(2); this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(358, 151); + this.label2.Size = new System.Drawing.Size(389, 174); this.label2.TabIndex = 25; this.label2.Text = "工位名称"; this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; @@ -295,10 +294,10 @@ this.labPName.Dock = System.Windows.Forms.DockStyle.Fill; this.labPName.Font = new System.Drawing.Font("黑体", 21.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.labPName.ForeColor = System.Drawing.Color.White; - this.labPName.Location = new System.Drawing.Point(1529, 374); + this.labPName.Location = new System.Drawing.Point(1662, 428); this.labPName.Margin = new System.Windows.Forms.Padding(2); this.labPName.Name = "labPName"; - this.labPName.Size = new System.Drawing.Size(807, 248); + this.labPName.Size = new System.Drawing.Size(887, 284); this.labPName.TabIndex = 24; this.labPName.Text = "MF253 MF S后保"; this.labPName.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; @@ -309,10 +308,10 @@ this.label8.Dock = System.Windows.Forms.DockStyle.Fill; this.label8.Font = new System.Drawing.Font("黑体", 21.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.label8.ForeColor = System.Drawing.Color.White; - this.label8.Location = new System.Drawing.Point(1275, 374); + this.label8.Location = new System.Drawing.Point(1385, 428); this.label8.Margin = new System.Windows.Forms.Padding(2); this.label8.Name = "label8"; - this.label8.Size = new System.Drawing.Size(249, 248); + this.label8.Size = new System.Drawing.Size(272, 284); this.label8.TabIndex = 23; this.label8.Text = "产品名称"; this.label8.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; @@ -323,10 +322,10 @@ this.labPartNo.Dock = System.Windows.Forms.DockStyle.Fill; this.labPartNo.Font = new System.Drawing.Font("黑体", 42F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.labPartNo.ForeColor = System.Drawing.Color.White; - this.labPartNo.Location = new System.Drawing.Point(366, 374); + this.labPartNo.Location = new System.Drawing.Point(397, 428); this.labPartNo.Margin = new System.Windows.Forms.Padding(2); this.labPartNo.Name = "labPartNo"; - this.labPartNo.Size = new System.Drawing.Size(904, 248); + this.labPartNo.Size = new System.Drawing.Size(983, 284); this.labPartNo.TabIndex = 22; this.labPartNo.Text = "A2530822665"; this.labPartNo.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; @@ -342,10 +341,10 @@ this.label6.Dock = System.Windows.Forms.DockStyle.Fill; this.label6.Font = new System.Drawing.Font("黑体", 21.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.label6.ForeColor = System.Drawing.Color.White; - this.label6.Location = new System.Drawing.Point(3, 374); + this.label6.Location = new System.Drawing.Point(3, 428); this.label6.Margin = new System.Windows.Forms.Padding(2); this.label6.Name = "label6"; - this.label6.Size = new System.Drawing.Size(358, 248); + this.label6.Size = new System.Drawing.Size(389, 284); this.label6.TabIndex = 21; this.label6.Text = "产品代码"; this.label6.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; @@ -356,10 +355,10 @@ this.labBadCount.Dock = System.Windows.Forms.DockStyle.Fill; this.labBadCount.Font = new System.Drawing.Font("黑体", 60F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.labBadCount.ForeColor = System.Drawing.Color.Lime; - this.labBadCount.Location = new System.Drawing.Point(1529, 627); + this.labBadCount.Location = new System.Drawing.Point(1662, 717); this.labBadCount.Margin = new System.Windows.Forms.Padding(2); this.labBadCount.Name = "labBadCount"; - this.labBadCount.Size = new System.Drawing.Size(807, 451); + this.labBadCount.Size = new System.Drawing.Size(887, 515); this.labBadCount.TabIndex = 20; this.labBadCount.Text = "0"; this.labBadCount.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; @@ -370,10 +369,10 @@ this.labNum.Dock = System.Windows.Forms.DockStyle.Fill; this.labNum.Font = new System.Drawing.Font("黑体", 60F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.labNum.ForeColor = System.Drawing.Color.Lime; - this.labNum.Location = new System.Drawing.Point(366, 627); + this.labNum.Location = new System.Drawing.Point(397, 717); this.labNum.Margin = new System.Windows.Forms.Padding(2); this.labNum.Name = "labNum"; - this.labNum.Size = new System.Drawing.Size(904, 451); + this.labNum.Size = new System.Drawing.Size(983, 515); this.labNum.TabIndex = 18; this.labNum.Text = "152/210"; this.labNum.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; @@ -384,10 +383,10 @@ this.label10.Dock = System.Windows.Forms.DockStyle.Fill; this.label10.Font = new System.Drawing.Font("黑体", 21.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.label10.ForeColor = System.Drawing.Color.White; - this.label10.Location = new System.Drawing.Point(3, 627); + this.label10.Location = new System.Drawing.Point(3, 717); this.label10.Margin = new System.Windows.Forms.Padding(2); this.label10.Name = "label10"; - this.label10.Size = new System.Drawing.Size(358, 451); + this.label10.Size = new System.Drawing.Size(389, 515); this.label10.TabIndex = 17; this.label10.Text = "计划/完成数"; this.label10.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; @@ -400,7 +399,7 @@ this.label14.Location = new System.Drawing.Point(5, 1); this.label14.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.label14.Name = "label14"; - this.label14.Size = new System.Drawing.Size(354, 105); + this.label14.Size = new System.Drawing.Size(385, 120); this.label14.TabIndex = 12; this.label14.Text = "扫描本体条码"; this.label14.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; @@ -409,10 +408,10 @@ // this.textBox1.Dock = System.Windows.Forms.DockStyle.Fill; this.textBox1.Font = new System.Drawing.Font("黑体", 26.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.textBox1.Location = new System.Drawing.Point(368, 5); - this.textBox1.Margin = new System.Windows.Forms.Padding(4); + this.textBox1.Location = new System.Drawing.Point(399, 6); + this.textBox1.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); this.textBox1.Name = "textBox1"; - this.textBox1.Size = new System.Drawing.Size(900, 77); + this.textBox1.Size = new System.Drawing.Size(979, 87); this.textBox1.TabIndex = 13; this.textBox1.KeyDown += new System.Windows.Forms.KeyEventHandler(this.textBox1_KeyDown); // @@ -421,11 +420,11 @@ this.labErrMessage.Dock = System.Windows.Forms.DockStyle.Fill; this.labErrMessage.Font = new System.Drawing.Font("微软雅黑", 15F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.labErrMessage.ForeColor = System.Drawing.Color.Red; - this.labErrMessage.Location = new System.Drawing.Point(1531, 1); + this.labErrMessage.Location = new System.Drawing.Point(1664, 1); this.labErrMessage.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.labErrMessage.Name = "labErrMessage"; this.tableLayoutPanel4.SetRowSpan(this.labErrMessage, 2); - this.labErrMessage.Size = new System.Drawing.Size(803, 214); + this.labErrMessage.Size = new System.Drawing.Size(883, 245); this.labErrMessage.TabIndex = 16; this.labErrMessage.Text = "条码与产品不匹配,重新扫描"; this.labErrMessage.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; @@ -437,9 +436,9 @@ this.tableLayoutPanel4.ColumnCount = 4; this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 28.52292F)); this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 71.47708F)); - this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 253F)); - this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 810F)); - this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 37F)); + this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 276F)); + this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 890F)); + this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 40F)); this.tableLayoutPanel4.Controls.Add(this.label7, 2, 0); this.tableLayoutPanel4.Controls.Add(this.textBox2, 1, 1); this.tableLayoutPanel4.Controls.Add(this.label3, 0, 1); @@ -459,17 +458,17 @@ this.tableLayoutPanel4.Controls.Add(this.textBox1, 1, 0); this.tableLayoutPanel4.Controls.Add(this.labErrMessage, 3, 0); this.tableLayoutPanel4.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel4.Location = new System.Drawing.Point(4, 134); - this.tableLayoutPanel4.Margin = new System.Windows.Forms.Padding(4); + this.tableLayoutPanel4.Location = new System.Drawing.Point(4, 154); + this.tableLayoutPanel4.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); this.tableLayoutPanel4.Name = "tableLayoutPanel4"; this.tableLayoutPanel4.RowCount = 5; this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 16.8932F)); this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 17.47573F)); this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25F)); this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 40.52419F)); - this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 452F)); - this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 35F)); - this.tableLayoutPanel4.Size = new System.Drawing.Size(2339, 1081); + this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 517F)); + this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 40F)); + this.tableLayoutPanel4.Size = new System.Drawing.Size(2552, 1235); this.tableLayoutPanel4.TabIndex = 2; // // label12 @@ -478,10 +477,10 @@ this.label12.Dock = System.Windows.Forms.DockStyle.Fill; this.label12.Font = new System.Drawing.Font("黑体", 21.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.label12.ForeColor = System.Drawing.Color.White; - this.label12.Location = new System.Drawing.Point(1275, 627); + this.label12.Location = new System.Drawing.Point(1385, 717); this.label12.Margin = new System.Windows.Forms.Padding(2); this.label12.Name = "label12"; - this.label12.Size = new System.Drawing.Size(249, 451); + this.label12.Size = new System.Drawing.Size(272, 515); this.label12.TabIndex = 19; this.label12.Text = "不合格数"; this.label12.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; @@ -491,10 +490,10 @@ this.labTime.BackColor = System.Drawing.Color.Transparent; this.labTime.Dock = System.Windows.Forms.DockStyle.Fill; this.labTime.Font = new System.Drawing.Font("微软雅黑", 16F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.labTime.Location = new System.Drawing.Point(1743, 0); + this.labTime.Location = new System.Drawing.Point(1898, 0); this.labTime.Margin = new System.Windows.Forms.Padding(0); this.labTime.Name = "labTime"; - this.labTime.Size = new System.Drawing.Size(604, 130); + this.labTime.Size = new System.Drawing.Size(662, 149); this.labTime.TabIndex = 7; this.labTime.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; this.labTime.Click += new System.EventHandler(this.labTime_Click); @@ -508,7 +507,7 @@ this.pictureBox1.Location = new System.Drawing.Point(0, 0); this.pictureBox1.Margin = new System.Windows.Forms.Padding(0); this.pictureBox1.Name = "pictureBox1"; - this.pictureBox1.Size = new System.Drawing.Size(315, 130); + this.pictureBox1.Size = new System.Drawing.Size(343, 149); this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; this.pictureBox1.TabIndex = 0; this.pictureBox1.TabStop = false; @@ -518,10 +517,10 @@ this.label1.BackColor = System.Drawing.Color.Transparent; this.label1.Dock = System.Windows.Forms.DockStyle.Fill; this.label1.Font = new System.Drawing.Font("黑体", 22F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.label1.Location = new System.Drawing.Point(315, 0); + this.label1.Location = new System.Drawing.Point(343, 0); this.label1.Margin = new System.Windows.Forms.Padding(0); this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(1428, 130); + this.label1.Size = new System.Drawing.Size(1555, 149); this.label1.TabIndex = 1; this.label1.Text = "装配工位信息看板"; this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; @@ -532,7 +531,7 @@ this.tableLayoutPanel2.ColumnCount = 3; this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 18.10651F)); this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 81.89349F)); - this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 603F)); + this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 661F)); this.tableLayoutPanel2.Controls.Add(this.labTime, 2, 0); this.tableLayoutPanel2.Controls.Add(this.pictureBox1, 0, 0); this.tableLayoutPanel2.Controls.Add(this.label1, 1, 0); @@ -542,7 +541,7 @@ this.tableLayoutPanel2.Name = "tableLayoutPanel2"; this.tableLayoutPanel2.RowCount = 1; this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel2.Size = new System.Drawing.Size(2347, 130); + this.tableLayoutPanel2.Size = new System.Drawing.Size(2560, 149); this.tableLayoutPanel2.TabIndex = 0; // // tableLayoutPanel1 @@ -559,18 +558,18 @@ this.tableLayoutPanel1.RowCount = 3; this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10.69692F)); this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 89.30308F)); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 380F)); - this.tableLayoutPanel1.Size = new System.Drawing.Size(2347, 1600); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 434F)); + this.tableLayoutPanel1.Size = new System.Drawing.Size(2560, 1829); this.tableLayoutPanel1.TabIndex = 9; // // FrmZP // - this.AutoScaleDimensions = new System.Drawing.SizeF(11F, 21F); + this.AutoScaleDimensions = new System.Drawing.SizeF(12F, 24F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(2347, 1600); + this.ClientSize = new System.Drawing.Size(2560, 1829); this.Controls.Add(this.tableLayoutPanel1); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; - this.Margin = new System.Windows.Forms.Padding(6, 5, 6, 5); + this.Margin = new System.Windows.Forms.Padding(7, 6, 7, 6); this.Name = "FrmZP"; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; this.Text = "FrmZP"; diff --git a/InjectionPC/FrmMain2411.Designer.cs b/InjectionPC/FrmMain2411.Designer.cs index 20675e7..c5c1068 100644 --- a/InjectionPC/FrmMain2411.Designer.cs +++ b/InjectionPC/FrmMain2411.Designer.cs @@ -184,9 +184,9 @@ this.panel1.Controls.Add(this.panel2); this.panel1.Dock = System.Windows.Forms.DockStyle.Fill; this.panel1.Location = new System.Drawing.Point(0, 0); - this.panel1.Margin = new System.Windows.Forms.Padding(5, 4, 5, 4); + this.panel1.Margin = new System.Windows.Forms.Padding(5); this.panel1.Name = "panel1"; - this.panel1.Size = new System.Drawing.Size(2347, 1600); + this.panel1.Size = new System.Drawing.Size(2560, 1829); this.panel1.TabIndex = 0; // // panel7 @@ -195,10 +195,10 @@ this.panel7.Controls.Add(this.panel8); this.panel7.Dock = System.Windows.Forms.DockStyle.Fill; this.panel7.Font = new System.Drawing.Font("宋体", 21.75F, System.Drawing.FontStyle.Bold); - this.panel7.Location = new System.Drawing.Point(0, 147); - this.panel7.Margin = new System.Windows.Forms.Padding(5, 4, 5, 4); + this.panel7.Location = new System.Drawing.Point(0, 168); + this.panel7.Margin = new System.Windows.Forms.Padding(5); this.panel7.Name = "panel7"; - this.panel7.Size = new System.Drawing.Size(2347, 1453); + this.panel7.Size = new System.Drawing.Size(2560, 1661); this.panel7.TabIndex = 1; // // panel23 @@ -206,10 +206,10 @@ this.panel23.Controls.Add(this.panel27); this.panel23.Controls.Add(this.panel24); this.panel23.Dock = System.Windows.Forms.DockStyle.Fill; - this.panel23.Location = new System.Drawing.Point(0, 91); - this.panel23.Margin = new System.Windows.Forms.Padding(5, 4, 5, 4); + this.panel23.Location = new System.Drawing.Point(0, 104); + this.panel23.Margin = new System.Windows.Forms.Padding(5); this.panel23.Name = "panel23"; - this.panel23.Size = new System.Drawing.Size(2347, 1362); + this.panel23.Size = new System.Drawing.Size(2560, 1557); this.panel23.TabIndex = 1; // // panel27 @@ -217,10 +217,10 @@ this.panel27.Controls.Add(this.panel29); this.panel27.Controls.Add(this.panel28); this.panel27.Dock = System.Windows.Forms.DockStyle.Fill; - this.panel27.Location = new System.Drawing.Point(0, 976); - this.panel27.Margin = new System.Windows.Forms.Padding(5, 4, 5, 4); + this.panel27.Location = new System.Drawing.Point(0, 1115); + this.panel27.Margin = new System.Windows.Forms.Padding(5); this.panel27.Name = "panel27"; - this.panel27.Size = new System.Drawing.Size(2347, 386); + this.panel27.Size = new System.Drawing.Size(2560, 442); this.panel27.TabIndex = 1; // // panel29 @@ -228,10 +228,10 @@ this.panel29.Controls.Add(this.panel31); this.panel29.Controls.Add(this.panel30); this.panel29.Dock = System.Windows.Forms.DockStyle.Fill; - this.panel29.Location = new System.Drawing.Point(311, 0); - this.panel29.Margin = new System.Windows.Forms.Padding(5, 4, 5, 4); + this.panel29.Location = new System.Drawing.Point(339, 0); + this.panel29.Margin = new System.Windows.Forms.Padding(5); this.panel29.Name = "panel29"; - this.panel29.Size = new System.Drawing.Size(2036, 386); + this.panel29.Size = new System.Drawing.Size(2221, 442); this.panel29.TabIndex = 1; // // panel31 @@ -239,10 +239,10 @@ this.panel31.Controls.Add(this.panel33); this.panel31.Controls.Add(this.panel32); this.panel31.Dock = System.Windows.Forms.DockStyle.Fill; - this.panel31.Location = new System.Drawing.Point(122, 0); - this.panel31.Margin = new System.Windows.Forms.Padding(5, 4, 5, 4); + this.panel31.Location = new System.Drawing.Point(133, 0); + this.panel31.Margin = new System.Windows.Forms.Padding(5); this.panel31.Name = "panel31"; - this.panel31.Size = new System.Drawing.Size(1914, 386); + this.panel31.Size = new System.Drawing.Size(2088, 442); this.panel31.TabIndex = 1; // // panel33 @@ -250,10 +250,10 @@ this.panel33.Controls.Add(this.panel35); this.panel33.Controls.Add(this.panel34); this.panel33.Dock = System.Windows.Forms.DockStyle.Fill; - this.panel33.Location = new System.Drawing.Point(122, 0); - this.panel33.Margin = new System.Windows.Forms.Padding(5, 4, 5, 4); + this.panel33.Location = new System.Drawing.Point(133, 0); + this.panel33.Margin = new System.Windows.Forms.Padding(5); this.panel33.Name = "panel33"; - this.panel33.Size = new System.Drawing.Size(1792, 386); + this.panel33.Size = new System.Drawing.Size(1955, 442); this.panel33.TabIndex = 1; // // panel35 @@ -261,9 +261,9 @@ this.panel35.Controls.Add(this.panel37); this.panel35.Dock = System.Windows.Forms.DockStyle.Fill; this.panel35.Location = new System.Drawing.Point(0, 0); - this.panel35.Margin = new System.Windows.Forms.Padding(5, 4, 5, 4); + this.panel35.Margin = new System.Windows.Forms.Padding(5); this.panel35.Name = "panel35"; - this.panel35.Size = new System.Drawing.Size(1670, 386); + this.panel35.Size = new System.Drawing.Size(1822, 442); this.panel35.TabIndex = 1; // // panel37 @@ -271,9 +271,9 @@ this.panel37.Controls.Add(this.panel40); this.panel37.Dock = System.Windows.Forms.DockStyle.Fill; this.panel37.Location = new System.Drawing.Point(0, 0); - this.panel37.Margin = new System.Windows.Forms.Padding(5, 4, 5, 4); + this.panel37.Margin = new System.Windows.Forms.Padding(5); this.panel37.Name = "panel37"; - this.panel37.Size = new System.Drawing.Size(1670, 386); + this.panel37.Size = new System.Drawing.Size(1822, 442); this.panel37.TabIndex = 1; // // panel40 @@ -282,9 +282,9 @@ this.panel40.Controls.Add(this.panel41); this.panel40.Dock = System.Windows.Forms.DockStyle.Fill; this.panel40.Location = new System.Drawing.Point(0, 0); - this.panel40.Margin = new System.Windows.Forms.Padding(5, 4, 5, 4); + this.panel40.Margin = new System.Windows.Forms.Padding(5); this.panel40.Name = "panel40"; - this.panel40.Size = new System.Drawing.Size(1670, 386); + this.panel40.Size = new System.Drawing.Size(1822, 442); this.panel40.TabIndex = 1; // // panel42 @@ -293,9 +293,9 @@ this.panel42.Controls.Add(this.panel43); this.panel42.Dock = System.Windows.Forms.DockStyle.Fill; this.panel42.Location = new System.Drawing.Point(0, 0); - this.panel42.Margin = new System.Windows.Forms.Padding(5, 4, 5, 4); + this.panel42.Margin = new System.Windows.Forms.Padding(5); this.panel42.Name = "panel42"; - this.panel42.Size = new System.Drawing.Size(1548, 386); + this.panel42.Size = new System.Drawing.Size(1689, 442); this.panel42.TabIndex = 1; // // panel39 @@ -312,19 +312,19 @@ this.panel39.Controls.Add(this.label21); this.panel39.Dock = System.Windows.Forms.DockStyle.Fill; this.panel39.Location = new System.Drawing.Point(0, 0); - this.panel39.Margin = new System.Windows.Forms.Padding(5, 4, 5, 4); + this.panel39.Margin = new System.Windows.Forms.Padding(5); this.panel39.Name = "panel39"; - this.panel39.Size = new System.Drawing.Size(1426, 386); + this.panel39.Size = new System.Drawing.Size(1556, 442); this.panel39.TabIndex = 1; // // lbDevState // this.lbDevState.BackColor = System.Drawing.Color.DeepSkyBlue; this.lbDevState.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.lbDevState.Location = new System.Drawing.Point(556, 291); + this.lbDevState.Location = new System.Drawing.Point(607, 333); this.lbDevState.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0); this.lbDevState.Name = "lbDevState"; - this.lbDevState.Size = new System.Drawing.Size(347, 58); + this.lbDevState.Size = new System.Drawing.Size(378, 66); this.lbDevState.TabIndex = 16; this.lbDevState.Text = "设备已连接"; this.lbDevState.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; @@ -333,20 +333,20 @@ // textBox2 // this.textBox2.Font = new System.Drawing.Font("宋体", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.textBox2.Location = new System.Drawing.Point(220, 291); - this.textBox2.Margin = new System.Windows.Forms.Padding(5, 4, 5, 4); + this.textBox2.Location = new System.Drawing.Point(240, 333); + this.textBox2.Margin = new System.Windows.Forms.Padding(5); this.textBox2.Name = "textBox2"; - this.textBox2.Size = new System.Drawing.Size(302, 65); + this.textBox2.Size = new System.Drawing.Size(329, 74); this.textBox2.TabIndex = 13; // // label18 // this.label18.AutoSize = true; this.label18.Font = new System.Drawing.Font("宋体", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.label18.Location = new System.Drawing.Point(40, 304); + this.label18.Location = new System.Drawing.Point(44, 347); this.label18.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0); this.label18.Name = "label18"; - this.label18.Size = new System.Drawing.Size(178, 51); + this.label18.Size = new System.Drawing.Size(202, 58); this.label18.TabIndex = 12; this.label18.Text = "数量:"; // @@ -354,10 +354,10 @@ // this.label19.AutoSize = true; this.label19.Font = new System.Drawing.Font("宋体", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.label19.Location = new System.Drawing.Point(606, 178); + this.label19.Location = new System.Drawing.Point(661, 203); this.label19.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0); this.label19.Name = "label19"; - this.label19.Size = new System.Drawing.Size(238, 51); + this.label19.Size = new System.Drawing.Size(265, 58); this.label19.TabIndex = 11; this.label19.Text = "(yyMMdd)"; // @@ -365,20 +365,20 @@ // this.textBox1.Enabled = false; this.textBox1.Font = new System.Drawing.Font("宋体", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.textBox1.Location = new System.Drawing.Point(223, 172); - this.textBox1.Margin = new System.Windows.Forms.Padding(5, 4, 5, 4); + this.textBox1.Location = new System.Drawing.Point(243, 197); + this.textBox1.Margin = new System.Windows.Forms.Padding(5); this.textBox1.Name = "textBox1"; - this.textBox1.Size = new System.Drawing.Size(301, 65); + this.textBox1.Size = new System.Drawing.Size(328, 74); this.textBox1.TabIndex = 10; // // label20 // this.label20.AutoSize = true; this.label20.Font = new System.Drawing.Font("宋体", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.label20.Location = new System.Drawing.Point(41, 186); + this.label20.Location = new System.Drawing.Point(45, 213); this.label20.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0); this.label20.Name = "label20"; - this.label20.Size = new System.Drawing.Size(178, 51); + this.label20.Size = new System.Drawing.Size(202, 58); this.label20.TabIndex = 9; this.label20.Text = "批次:"; // @@ -387,10 +387,10 @@ this.comboBox2.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.comboBox2.Font = new System.Drawing.Font("宋体", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.comboBox2.FormattingEnabled = true; - this.comboBox2.Location = new System.Drawing.Point(223, 63); - this.comboBox2.Margin = new System.Windows.Forms.Padding(5, 4, 5, 4); + this.comboBox2.Location = new System.Drawing.Point(243, 72); + this.comboBox2.Margin = new System.Windows.Forms.Padding(5); this.comboBox2.Name = "comboBox2"; - this.comboBox2.Size = new System.Drawing.Size(851, 50); + this.comboBox2.Size = new System.Drawing.Size(928, 56); this.comboBox2.TabIndex = 8; this.comboBox2.TextChanged += new System.EventHandler(this.comboBox2_TextChanged); // @@ -398,10 +398,10 @@ // this.label21.AutoSize = true; this.label21.Font = new System.Drawing.Font("宋体", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.label21.Location = new System.Drawing.Point(41, 70); + this.label21.Location = new System.Drawing.Point(45, 80); this.label21.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0); this.label21.Name = "label21"; - this.label21.Size = new System.Drawing.Size(178, 51); + this.label21.Size = new System.Drawing.Size(202, 58); this.label21.TabIndex = 7; this.label21.Text = "产品:"; // @@ -409,10 +409,10 @@ // this.panel43.Controls.Add(this.label23); this.panel43.Dock = System.Windows.Forms.DockStyle.Right; - this.panel43.Location = new System.Drawing.Point(1426, 0); - this.panel43.Margin = new System.Windows.Forms.Padding(5, 4, 5, 4); + this.panel43.Location = new System.Drawing.Point(1556, 0); + this.panel43.Margin = new System.Windows.Forms.Padding(5); this.panel43.Name = "panel43"; - this.panel43.Size = new System.Drawing.Size(122, 386); + this.panel43.Size = new System.Drawing.Size(133, 442); this.panel43.TabIndex = 0; // // label23 @@ -423,7 +423,7 @@ this.label23.Location = new System.Drawing.Point(0, 0); this.label23.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0); this.label23.Name = "label23"; - this.label23.Size = new System.Drawing.Size(122, 386); + this.label23.Size = new System.Drawing.Size(133, 442); this.label23.TabIndex = 0; this.label23.Text = "手工打印条码"; this.label23.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; @@ -433,10 +433,10 @@ // this.panel41.Controls.Add(this.label22); this.panel41.Dock = System.Windows.Forms.DockStyle.Right; - this.panel41.Location = new System.Drawing.Point(1548, 0); - this.panel41.Margin = new System.Windows.Forms.Padding(5, 4, 5, 4); + this.panel41.Location = new System.Drawing.Point(1689, 0); + this.panel41.Margin = new System.Windows.Forms.Padding(5); this.panel41.Name = "panel41"; - this.panel41.Size = new System.Drawing.Size(122, 386); + this.panel41.Size = new System.Drawing.Size(133, 442); this.panel41.TabIndex = 0; // // label22 @@ -447,7 +447,7 @@ this.label22.Location = new System.Drawing.Point(0, 0); this.label22.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0); this.label22.Name = "label22"; - this.label22.Size = new System.Drawing.Size(122, 386); + this.label22.Size = new System.Drawing.Size(133, 442); this.label22.TabIndex = 0; this.label22.Text = "补打条码"; this.label22.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; @@ -457,10 +457,10 @@ // this.panel34.Controls.Add(this.label15); this.panel34.Dock = System.Windows.Forms.DockStyle.Right; - this.panel34.Location = new System.Drawing.Point(1670, 0); - this.panel34.Margin = new System.Windows.Forms.Padding(5, 4, 5, 4); + this.panel34.Location = new System.Drawing.Point(1822, 0); + this.panel34.Margin = new System.Windows.Forms.Padding(5); this.panel34.Name = "panel34"; - this.panel34.Size = new System.Drawing.Size(122, 386); + this.panel34.Size = new System.Drawing.Size(133, 442); this.panel34.TabIndex = 0; // // label15 @@ -471,7 +471,7 @@ this.label15.Location = new System.Drawing.Point(0, 0); this.label15.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0); this.label15.Name = "label15"; - this.label15.Size = new System.Drawing.Size(122, 386); + this.label15.Size = new System.Drawing.Size(133, 442); this.label15.TabIndex = 0; this.label15.Text = "删除条码"; this.label15.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; @@ -482,9 +482,9 @@ this.panel32.Controls.Add(this.label14); this.panel32.Dock = System.Windows.Forms.DockStyle.Left; this.panel32.Location = new System.Drawing.Point(0, 0); - this.panel32.Margin = new System.Windows.Forms.Padding(5, 4, 5, 4); + this.panel32.Margin = new System.Windows.Forms.Padding(5); this.panel32.Name = "panel32"; - this.panel32.Size = new System.Drawing.Size(122, 386); + this.panel32.Size = new System.Drawing.Size(133, 442); this.panel32.TabIndex = 0; // // label14 @@ -495,7 +495,7 @@ this.label14.Location = new System.Drawing.Point(0, 0); this.label14.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0); this.label14.Name = "label14"; - this.label14.Size = new System.Drawing.Size(122, 386); + this.label14.Size = new System.Drawing.Size(133, 442); this.label14.TabIndex = 0; this.label14.Text = "下一计划"; this.label14.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; @@ -506,9 +506,9 @@ this.panel30.Controls.Add(this.label13); this.panel30.Dock = System.Windows.Forms.DockStyle.Left; this.panel30.Location = new System.Drawing.Point(0, 0); - this.panel30.Margin = new System.Windows.Forms.Padding(5, 4, 5, 4); + this.panel30.Margin = new System.Windows.Forms.Padding(5); this.panel30.Name = "panel30"; - this.panel30.Size = new System.Drawing.Size(122, 386); + this.panel30.Size = new System.Drawing.Size(133, 442); this.panel30.TabIndex = 0; // // label13 @@ -519,7 +519,7 @@ this.label13.Location = new System.Drawing.Point(0, 0); this.label13.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0); this.label13.Name = "label13"; - this.label13.Size = new System.Drawing.Size(122, 386); + this.label13.Size = new System.Drawing.Size(133, 442); this.label13.TabIndex = 0; this.label13.Text = "暂停打印"; this.label13.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; @@ -530,9 +530,9 @@ this.panel28.Controls.Add(this.label12); this.panel28.Dock = System.Windows.Forms.DockStyle.Left; this.panel28.Location = new System.Drawing.Point(0, 0); - this.panel28.Margin = new System.Windows.Forms.Padding(5, 4, 5, 4); + this.panel28.Margin = new System.Windows.Forms.Padding(5); this.panel28.Name = "panel28"; - this.panel28.Size = new System.Drawing.Size(311, 386); + this.panel28.Size = new System.Drawing.Size(339, 442); this.panel28.TabIndex = 0; // // label12 @@ -544,7 +544,7 @@ this.label12.Location = new System.Drawing.Point(0, 0); this.label12.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0); this.label12.Name = "label12"; - this.label12.Size = new System.Drawing.Size(311, 386); + this.label12.Size = new System.Drawing.Size(339, 442); this.label12.TabIndex = 0; this.label12.Text = "打印信息:"; this.label12.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; @@ -555,9 +555,9 @@ this.panel24.Controls.Add(this.panel25); this.panel24.Dock = System.Windows.Forms.DockStyle.Top; this.panel24.Location = new System.Drawing.Point(0, 0); - this.panel24.Margin = new System.Windows.Forms.Padding(5, 4, 5, 4); + this.panel24.Margin = new System.Windows.Forms.Padding(5); this.panel24.Name = "panel24"; - this.panel24.Size = new System.Drawing.Size(2347, 976); + this.panel24.Size = new System.Drawing.Size(2560, 1115); this.panel24.TabIndex = 0; // // panel26 @@ -566,10 +566,10 @@ this.panel26.Controls.Add(this.panel44); this.panel26.Controls.Add(this.glacialList1); this.panel26.Dock = System.Windows.Forms.DockStyle.Fill; - this.panel26.Location = new System.Drawing.Point(380, 0); - this.panel26.Margin = new System.Windows.Forms.Padding(5, 4, 5, 4); + this.panel26.Location = new System.Drawing.Point(415, 0); + this.panel26.Margin = new System.Windows.Forms.Padding(5); this.panel26.Name = "panel26"; - this.panel26.Size = new System.Drawing.Size(1967, 976); + this.panel26.Size = new System.Drawing.Size(2145, 1115); this.panel26.TabIndex = 1; // // panel45 @@ -579,19 +579,19 @@ this.panel45.Controls.Add(this.button4); this.panel45.Controls.Add(this.textBox4); this.panel45.Controls.Add(this.label25); - this.panel45.Location = new System.Drawing.Point(296, 592); - this.panel45.Margin = new System.Windows.Forms.Padding(5, 4, 5, 4); + this.panel45.Location = new System.Drawing.Point(323, 677); + this.panel45.Margin = new System.Windows.Forms.Padding(5); this.panel45.Name = "panel45"; - this.panel45.Size = new System.Drawing.Size(1281, 132); + this.panel45.Size = new System.Drawing.Size(1397, 151); this.panel45.TabIndex = 2; // // button3 // this.button3.Font = new System.Drawing.Font("宋体", 15.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.button3.Location = new System.Drawing.Point(1129, 38); - this.button3.Margin = new System.Windows.Forms.Padding(5, 4, 5, 4); + this.button3.Location = new System.Drawing.Point(1232, 43); + this.button3.Margin = new System.Windows.Forms.Padding(5); this.button3.Name = "button3"; - this.button3.Size = new System.Drawing.Size(147, 52); + this.button3.Size = new System.Drawing.Size(160, 59); this.button3.TabIndex = 5; this.button3.Text = "取消"; this.button3.UseVisualStyleBackColor = true; @@ -600,10 +600,10 @@ // button4 // this.button4.Font = new System.Drawing.Font("宋体", 15.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.button4.Location = new System.Drawing.Point(951, 38); - this.button4.Margin = new System.Windows.Forms.Padding(5, 4, 5, 4); + this.button4.Location = new System.Drawing.Point(1037, 43); + this.button4.Margin = new System.Windows.Forms.Padding(5); this.button4.Name = "button4"; - this.button4.Size = new System.Drawing.Size(147, 52); + this.button4.Size = new System.Drawing.Size(160, 59); this.button4.TabIndex = 4; this.button4.Text = "切换"; this.button4.UseVisualStyleBackColor = true; @@ -612,20 +612,20 @@ // textBox4 // this.textBox4.Font = new System.Drawing.Font("宋体", 15.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.textBox4.Location = new System.Drawing.Point(308, 39); - this.textBox4.Margin = new System.Windows.Forms.Padding(5, 4, 5, 4); + this.textBox4.Location = new System.Drawing.Point(336, 45); + this.textBox4.Margin = new System.Windows.Forms.Padding(5); this.textBox4.Name = "textBox4"; - this.textBox4.Size = new System.Drawing.Size(605, 49); + this.textBox4.Size = new System.Drawing.Size(660, 55); this.textBox4.TabIndex = 3; // // label25 // this.label25.AutoSize = true; this.label25.Font = new System.Drawing.Font("宋体", 15.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.label25.Location = new System.Drawing.Point(26, 46); + this.label25.Location = new System.Drawing.Point(28, 53); this.label25.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0); this.label25.Name = "label25"; - this.label25.Size = new System.Drawing.Size(283, 37); + this.label25.Size = new System.Drawing.Size(319, 42); this.label25.TabIndex = 2; this.label25.Text = "扫描模具条码:"; this.label25.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; @@ -637,19 +637,19 @@ this.panel44.Controls.Add(this.button1); this.panel44.Controls.Add(this.textBox3); this.panel44.Controls.Add(this.label24); - this.panel44.Location = new System.Drawing.Point(330, 318); - this.panel44.Margin = new System.Windows.Forms.Padding(5, 4, 5, 4); + this.panel44.Location = new System.Drawing.Point(360, 363); + this.panel44.Margin = new System.Windows.Forms.Padding(5); this.panel44.Name = "panel44"; - this.panel44.Size = new System.Drawing.Size(1281, 132); + this.panel44.Size = new System.Drawing.Size(1397, 151); this.panel44.TabIndex = 1; // // button2 // this.button2.Font = new System.Drawing.Font("宋体", 15.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.button2.Location = new System.Drawing.Point(1097, 38); - this.button2.Margin = new System.Windows.Forms.Padding(5, 4, 5, 4); + this.button2.Location = new System.Drawing.Point(1197, 43); + this.button2.Margin = new System.Windows.Forms.Padding(5); this.button2.Name = "button2"; - this.button2.Size = new System.Drawing.Size(147, 52); + this.button2.Size = new System.Drawing.Size(160, 59); this.button2.TabIndex = 3; this.button2.Text = "取消"; this.button2.UseVisualStyleBackColor = true; @@ -658,10 +658,10 @@ // button1 // this.button1.Font = new System.Drawing.Font("宋体", 15.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.button1.Location = new System.Drawing.Point(941, 35); - this.button1.Margin = new System.Windows.Forms.Padding(5, 4, 5, 4); + this.button1.Location = new System.Drawing.Point(1027, 40); + this.button1.Margin = new System.Windows.Forms.Padding(5); this.button1.Name = "button1"; - this.button1.Size = new System.Drawing.Size(147, 52); + this.button1.Size = new System.Drawing.Size(160, 59); this.button1.TabIndex = 2; this.button1.Text = "确定"; this.button1.UseVisualStyleBackColor = true; @@ -670,20 +670,20 @@ // textBox3 // this.textBox3.Font = new System.Drawing.Font("宋体", 15.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.textBox3.Location = new System.Drawing.Point(191, 38); - this.textBox3.Margin = new System.Windows.Forms.Padding(5, 4, 5, 4); + this.textBox3.Location = new System.Drawing.Point(208, 43); + this.textBox3.Margin = new System.Windows.Forms.Padding(5); this.textBox3.Name = "textBox3"; - this.textBox3.Size = new System.Drawing.Size(676, 49); + this.textBox3.Size = new System.Drawing.Size(737, 55); this.textBox3.TabIndex = 1; // // label24 // this.label24.AutoSize = true; this.label24.Font = new System.Drawing.Font("宋体", 15.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.label24.Location = new System.Drawing.Point(25, 46); + this.label24.Location = new System.Drawing.Point(27, 53); this.label24.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0); this.label24.Name = "label24"; - this.label24.Size = new System.Drawing.Size(169, 37); + this.label24.Size = new System.Drawing.Size(190, 42); this.label24.TabIndex = 0; this.label24.Text = "箱单号:"; this.label24.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; @@ -754,14 +754,14 @@ this.glacialList1.ItemHeight = 57; this.glacialList1.ItemWordWrap = false; this.glacialList1.Location = new System.Drawing.Point(0, 0); - this.glacialList1.Margin = new System.Windows.Forms.Padding(5, 4, 5, 4); + this.glacialList1.Margin = new System.Windows.Forms.Padding(5); this.glacialList1.Name = "glacialList1"; this.glacialList1.Selectable = true; this.glacialList1.SelectedTextColor = System.Drawing.Color.White; this.glacialList1.SelectionColor = System.Drawing.Color.DarkBlue; this.glacialList1.ShowBorder = true; this.glacialList1.ShowFocusRect = false; - this.glacialList1.Size = new System.Drawing.Size(1967, 976); + this.glacialList1.Size = new System.Drawing.Size(2145, 1115); this.glacialList1.SortType = GlacialComponents.Controls.SortTypes.InsertionSort; this.glacialList1.SuperFlatHeaderColor = System.Drawing.Color.White; this.glacialList1.TabIndex = 0; @@ -774,9 +774,9 @@ this.panel25.Controls.Add(this.panel36); this.panel25.Dock = System.Windows.Forms.DockStyle.Left; this.panel25.Location = new System.Drawing.Point(0, 0); - this.panel25.Margin = new System.Windows.Forms.Padding(5, 4, 5, 4); + this.panel25.Margin = new System.Windows.Forms.Padding(5); this.panel25.Name = "panel25"; - this.panel25.Size = new System.Drawing.Size(380, 976); + this.panel25.Size = new System.Drawing.Size(415, 1115); this.panel25.TabIndex = 0; // // tableLayoutPanel2 @@ -785,13 +785,13 @@ this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); this.tableLayoutPanel2.Controls.Add(this.panel38, 0, 0); this.tableLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel2.Location = new System.Drawing.Point(0, 406); - this.tableLayoutPanel2.Margin = new System.Windows.Forms.Padding(4); + this.tableLayoutPanel2.Location = new System.Drawing.Point(0, 464); + this.tableLayoutPanel2.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); this.tableLayoutPanel2.Name = "tableLayoutPanel2"; this.tableLayoutPanel2.RowCount = 1; - this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 570F)); - this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 570F)); - this.tableLayoutPanel2.Size = new System.Drawing.Size(380, 570); + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 651F)); + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 651F)); + this.tableLayoutPanel2.Size = new System.Drawing.Size(415, 651); this.tableLayoutPanel2.TabIndex = 1; // // panel38 @@ -801,19 +801,19 @@ this.panel38.Controls.Add(this.label26); this.panel38.Controls.Add(this.label17); this.panel38.Controls.Add(this.label16); - this.panel38.Location = new System.Drawing.Point(5, 4); - this.panel38.Margin = new System.Windows.Forms.Padding(5, 4, 5, 4); + this.panel38.Location = new System.Drawing.Point(5, 5); + this.panel38.Margin = new System.Windows.Forms.Padding(5); this.panel38.Name = "panel38"; - this.panel38.Size = new System.Drawing.Size(370, 561); + this.panel38.Size = new System.Drawing.Size(404, 641); this.panel38.TabIndex = 1; // // label27 // this.label27.Font = new System.Drawing.Font("宋体", 26.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.label27.Location = new System.Drawing.Point(-3, 171); + this.label27.Location = new System.Drawing.Point(-3, 195); this.label27.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0); this.label27.Name = "label27"; - this.label27.Size = new System.Drawing.Size(291, 73); + this.label27.Size = new System.Drawing.Size(317, 83); this.label27.TabIndex = 3; this.label27.Text = "9999"; this.label27.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; @@ -822,20 +822,20 @@ // this.label26.AutoSize = true; this.label26.Font = new System.Drawing.Font("宋体", 13.875F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.label26.Location = new System.Drawing.Point(0, 136); + this.label26.Location = new System.Drawing.Point(0, 155); this.label26.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0); this.label26.Name = "label26"; - this.label26.Size = new System.Drawing.Size(151, 33); + this.label26.Size = new System.Drawing.Size(169, 37); this.label26.TabIndex = 2; this.label26.Text = "完成数量"; // // label17 // this.label17.Font = new System.Drawing.Font("宋体", 26.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.label17.Location = new System.Drawing.Point(-3, 49); + this.label17.Location = new System.Drawing.Point(-3, 56); this.label17.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0); this.label17.Name = "label17"; - this.label17.Size = new System.Drawing.Size(291, 74); + this.label17.Size = new System.Drawing.Size(317, 85); this.label17.TabIndex = 1; this.label17.Text = "9999"; this.label17.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; @@ -844,10 +844,10 @@ // this.label16.AutoSize = true; this.label16.Font = new System.Drawing.Font("宋体", 13.875F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.label16.Location = new System.Drawing.Point(0, 10); + this.label16.Location = new System.Drawing.Point(0, 11); this.label16.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0); this.label16.Name = "label16"; - this.label16.Size = new System.Drawing.Size(151, 33); + this.label16.Size = new System.Drawing.Size(169, 37); this.label16.TabIndex = 0; this.label16.Text = "计划数量"; // @@ -856,9 +856,9 @@ this.panel36.Controls.Add(this.tableLayoutPanel1); this.panel36.Dock = System.Windows.Forms.DockStyle.Top; this.panel36.Location = new System.Drawing.Point(0, 0); - this.panel36.Margin = new System.Windows.Forms.Padding(5, 4, 5, 4); + this.panel36.Margin = new System.Windows.Forms.Padding(5); this.panel36.Name = "panel36"; - this.panel36.Size = new System.Drawing.Size(380, 406); + this.panel36.Size = new System.Drawing.Size(415, 464); this.panel36.TabIndex = 0; // // tableLayoutPanel1 @@ -868,12 +868,12 @@ this.tableLayoutPanel1.Controls.Add(this.label11, 0, 0); this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0); - this.tableLayoutPanel1.Margin = new System.Windows.Forms.Padding(4); + this.tableLayoutPanel1.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); this.tableLayoutPanel1.Name = "tableLayoutPanel1"; this.tableLayoutPanel1.RowCount = 1; this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 406F)); - this.tableLayoutPanel1.Size = new System.Drawing.Size(380, 406); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 464F)); + this.tableLayoutPanel1.Size = new System.Drawing.Size(415, 464); this.tableLayoutPanel1.TabIndex = 1; // // label11 @@ -884,7 +884,7 @@ this.label11.Location = new System.Drawing.Point(5, 0); this.label11.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0); this.label11.Name = "label11"; - this.label11.Size = new System.Drawing.Size(370, 406); + this.label11.Size = new System.Drawing.Size(403, 464); this.label11.TabIndex = 0; this.label11.Text = "打印记录:"; this.label11.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; @@ -895,9 +895,9 @@ this.panel8.Controls.Add(this.panel9); this.panel8.Dock = System.Windows.Forms.DockStyle.Top; this.panel8.Location = new System.Drawing.Point(0, 0); - this.panel8.Margin = new System.Windows.Forms.Padding(5, 4, 5, 4); + this.panel8.Margin = new System.Windows.Forms.Padding(5); this.panel8.Name = "panel8"; - this.panel8.Size = new System.Drawing.Size(2347, 91); + this.panel8.Size = new System.Drawing.Size(2560, 104); this.panel8.TabIndex = 0; // // panel10 @@ -905,10 +905,10 @@ this.panel10.Controls.Add(this.panel12); this.panel10.Controls.Add(this.panel11); this.panel10.Dock = System.Windows.Forms.DockStyle.Fill; - this.panel10.Location = new System.Drawing.Point(380, 0); - this.panel10.Margin = new System.Windows.Forms.Padding(5, 4, 5, 4); + this.panel10.Location = new System.Drawing.Point(415, 0); + this.panel10.Margin = new System.Windows.Forms.Padding(5); this.panel10.Name = "panel10"; - this.panel10.Size = new System.Drawing.Size(1967, 91); + this.panel10.Size = new System.Drawing.Size(2145, 104); this.panel10.TabIndex = 2; // // panel12 @@ -916,10 +916,10 @@ this.panel12.Controls.Add(this.panel16); this.panel12.Controls.Add(this.panel15); this.panel12.Dock = System.Windows.Forms.DockStyle.Fill; - this.panel12.Location = new System.Drawing.Point(451, 0); - this.panel12.Margin = new System.Windows.Forms.Padding(5, 4, 5, 4); + this.panel12.Location = new System.Drawing.Point(492, 0); + this.panel12.Margin = new System.Windows.Forms.Padding(5); this.panel12.Name = "panel12"; - this.panel12.Size = new System.Drawing.Size(1516, 91); + this.panel12.Size = new System.Drawing.Size(1653, 104); this.panel12.TabIndex = 1; // // panel16 @@ -927,10 +927,10 @@ this.panel16.Controls.Add(this.panel20); this.panel16.Controls.Add(this.panel19); this.panel16.Dock = System.Windows.Forms.DockStyle.Fill; - this.panel16.Location = new System.Drawing.Point(467, 0); - this.panel16.Margin = new System.Windows.Forms.Padding(5, 4, 5, 4); + this.panel16.Location = new System.Drawing.Point(509, 0); + this.panel16.Margin = new System.Windows.Forms.Padding(5); this.panel16.Name = "panel16"; - this.panel16.Size = new System.Drawing.Size(1049, 91); + this.panel16.Size = new System.Drawing.Size(1144, 104); this.panel16.TabIndex = 1; // // panel20 @@ -938,10 +938,10 @@ this.panel20.Controls.Add(this.label10); this.panel20.Controls.Add(this.panel22); this.panel20.Dock = System.Windows.Forms.DockStyle.Fill; - this.panel20.Location = new System.Drawing.Point(428, 0); - this.panel20.Margin = new System.Windows.Forms.Padding(5, 4, 5, 4); + this.panel20.Location = new System.Drawing.Point(467, 0); + this.panel20.Margin = new System.Windows.Forms.Padding(5); this.panel20.Name = "panel20"; - this.panel20.Size = new System.Drawing.Size(621, 91); + this.panel20.Size = new System.Drawing.Size(677, 104); this.panel20.TabIndex = 1; // // label10 @@ -949,10 +949,10 @@ this.label10.BackColor = System.Drawing.Color.DeepSkyBlue; this.label10.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.label10.Dock = System.Windows.Forms.DockStyle.Fill; - this.label10.Location = new System.Drawing.Point(341, 0); + this.label10.Location = new System.Drawing.Point(372, 0); this.label10.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0); this.label10.Name = "label10"; - this.label10.Size = new System.Drawing.Size(280, 91); + this.label10.Size = new System.Drawing.Size(305, 104); this.label10.TabIndex = 1; this.label10.Text = "停机录入"; this.label10.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; @@ -963,9 +963,9 @@ this.panel22.Controls.Add(this.label9); this.panel22.Dock = System.Windows.Forms.DockStyle.Left; this.panel22.Location = new System.Drawing.Point(0, 0); - this.panel22.Margin = new System.Windows.Forms.Padding(5, 4, 5, 4); + this.panel22.Margin = new System.Windows.Forms.Padding(5); this.panel22.Name = "panel22"; - this.panel22.Size = new System.Drawing.Size(341, 91); + this.panel22.Size = new System.Drawing.Size(372, 104); this.panel22.TabIndex = 0; // // label9 @@ -977,7 +977,7 @@ this.label9.Location = new System.Drawing.Point(0, 0); this.label9.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0); this.label9.Name = "label9"; - this.label9.Size = new System.Drawing.Size(341, 91); + this.label9.Size = new System.Drawing.Size(372, 104); this.label9.TabIndex = 0; this.label9.Text = "质量录入"; this.label9.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; @@ -989,9 +989,9 @@ this.panel19.Controls.Add(this.panel21); this.panel19.Dock = System.Windows.Forms.DockStyle.Left; this.panel19.Location = new System.Drawing.Point(0, 0); - this.panel19.Margin = new System.Windows.Forms.Padding(5, 4, 5, 4); + this.panel19.Margin = new System.Windows.Forms.Padding(5); this.panel19.Name = "panel19"; - this.panel19.Size = new System.Drawing.Size(428, 91); + this.panel19.Size = new System.Drawing.Size(467, 104); this.panel19.TabIndex = 0; // // label8 @@ -999,10 +999,10 @@ this.label8.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.label8.Dock = System.Windows.Forms.DockStyle.Fill; this.label8.Font = new System.Drawing.Font("宋体", 21.75F, System.Drawing.FontStyle.Bold); - this.label8.Location = new System.Drawing.Point(202, 0); + this.label8.Location = new System.Drawing.Point(220, 0); this.label8.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0); this.label8.Name = "label8"; - this.label8.Size = new System.Drawing.Size(226, 91); + this.label8.Size = new System.Drawing.Size(247, 104); this.label8.TabIndex = 1; this.label8.Text = "cy"; this.label8.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; @@ -1012,9 +1012,9 @@ this.panel21.Controls.Add(this.label7); this.panel21.Dock = System.Windows.Forms.DockStyle.Left; this.panel21.Location = new System.Drawing.Point(0, 0); - this.panel21.Margin = new System.Windows.Forms.Padding(5, 4, 5, 4); + this.panel21.Margin = new System.Windows.Forms.Padding(5); this.panel21.Name = "panel21"; - this.panel21.Size = new System.Drawing.Size(202, 91); + this.panel21.Size = new System.Drawing.Size(220, 104); this.panel21.TabIndex = 0; // // label7 @@ -1026,7 +1026,7 @@ this.label7.Location = new System.Drawing.Point(0, 0); this.label7.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0); this.label7.Name = "label7"; - this.label7.Size = new System.Drawing.Size(202, 91); + this.label7.Size = new System.Drawing.Size(220, 104); this.label7.TabIndex = 0; this.label7.Text = "用户:"; this.label7.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; @@ -1038,19 +1038,19 @@ this.panel15.Controls.Add(this.panel17); this.panel15.Dock = System.Windows.Forms.DockStyle.Left; this.panel15.Location = new System.Drawing.Point(0, 0); - this.panel15.Margin = new System.Windows.Forms.Padding(5, 4, 5, 4); + this.panel15.Margin = new System.Windows.Forms.Padding(5); this.panel15.Name = "panel15"; - this.panel15.Size = new System.Drawing.Size(467, 91); + this.panel15.Size = new System.Drawing.Size(509, 104); this.panel15.TabIndex = 0; // // panel18 // this.panel18.Controls.Add(this.label6); this.panel18.Dock = System.Windows.Forms.DockStyle.Fill; - this.panel18.Location = new System.Drawing.Point(202, 0); - this.panel18.Margin = new System.Windows.Forms.Padding(5, 4, 5, 4); + this.panel18.Location = new System.Drawing.Point(220, 0); + this.panel18.Margin = new System.Windows.Forms.Padding(5); this.panel18.Name = "panel18"; - this.panel18.Size = new System.Drawing.Size(265, 91); + this.panel18.Size = new System.Drawing.Size(289, 104); this.panel18.TabIndex = 1; // // label6 @@ -1061,7 +1061,7 @@ this.label6.Location = new System.Drawing.Point(0, 0); this.label6.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0); this.label6.Name = "label6"; - this.label6.Size = new System.Drawing.Size(265, 91); + this.label6.Size = new System.Drawing.Size(289, 104); this.label6.TabIndex = 0; this.label6.Text = "IM01"; this.label6.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; @@ -1071,9 +1071,9 @@ this.panel17.Controls.Add(this.label5); this.panel17.Dock = System.Windows.Forms.DockStyle.Left; this.panel17.Location = new System.Drawing.Point(0, 0); - this.panel17.Margin = new System.Windows.Forms.Padding(5, 4, 5, 4); + this.panel17.Margin = new System.Windows.Forms.Padding(5); this.panel17.Name = "panel17"; - this.panel17.Size = new System.Drawing.Size(202, 91); + this.panel17.Size = new System.Drawing.Size(220, 104); this.panel17.TabIndex = 0; // // label5 @@ -1085,7 +1085,7 @@ this.label5.Location = new System.Drawing.Point(0, 0); this.label5.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0); this.label5.Name = "label5"; - this.label5.Size = new System.Drawing.Size(202, 91); + this.label5.Size = new System.Drawing.Size(220, 104); this.label5.TabIndex = 0; this.label5.Text = "工位:"; this.label5.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; @@ -1097,19 +1097,19 @@ this.panel11.Controls.Add(this.panel13); this.panel11.Dock = System.Windows.Forms.DockStyle.Left; this.panel11.Location = new System.Drawing.Point(0, 0); - this.panel11.Margin = new System.Windows.Forms.Padding(5, 4, 5, 4); + this.panel11.Margin = new System.Windows.Forms.Padding(5); this.panel11.Name = "panel11"; - this.panel11.Size = new System.Drawing.Size(451, 91); + this.panel11.Size = new System.Drawing.Size(492, 104); this.panel11.TabIndex = 0; // // panel14 // this.panel14.Controls.Add(this.comboBox1); this.panel14.Dock = System.Windows.Forms.DockStyle.Fill; - this.panel14.Location = new System.Drawing.Point(202, 0); - this.panel14.Margin = new System.Windows.Forms.Padding(5, 4, 5, 4); + this.panel14.Location = new System.Drawing.Point(220, 0); + this.panel14.Margin = new System.Windows.Forms.Padding(5); this.panel14.Name = "panel14"; - this.panel14.Size = new System.Drawing.Size(249, 91); + this.panel14.Size = new System.Drawing.Size(272, 104); this.panel14.TabIndex = 1; // // comboBox1 @@ -1122,9 +1122,9 @@ "A班", "B班"}); this.comboBox1.Location = new System.Drawing.Point(0, 0); - this.comboBox1.Margin = new System.Windows.Forms.Padding(5, 4, 5, 4); + this.comboBox1.Margin = new System.Windows.Forms.Padding(5); this.comboBox1.Name = "comboBox1"; - this.comboBox1.Size = new System.Drawing.Size(249, 83); + this.comboBox1.Size = new System.Drawing.Size(272, 93); this.comboBox1.TabIndex = 0; // // panel13 @@ -1132,9 +1132,9 @@ this.panel13.Controls.Add(this.label4); this.panel13.Dock = System.Windows.Forms.DockStyle.Left; this.panel13.Location = new System.Drawing.Point(0, 0); - this.panel13.Margin = new System.Windows.Forms.Padding(5, 4, 5, 4); + this.panel13.Margin = new System.Windows.Forms.Padding(5); this.panel13.Name = "panel13"; - this.panel13.Size = new System.Drawing.Size(202, 91); + this.panel13.Size = new System.Drawing.Size(220, 104); this.panel13.TabIndex = 0; // // label4 @@ -1146,7 +1146,7 @@ this.label4.Location = new System.Drawing.Point(0, 0); this.label4.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0); this.label4.Name = "label4"; - this.label4.Size = new System.Drawing.Size(202, 91); + this.label4.Size = new System.Drawing.Size(220, 104); this.label4.TabIndex = 0; this.label4.Text = "班组:"; this.label4.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; @@ -1156,9 +1156,9 @@ this.panel9.Controls.Add(this.label3); this.panel9.Dock = System.Windows.Forms.DockStyle.Left; this.panel9.Location = new System.Drawing.Point(0, 0); - this.panel9.Margin = new System.Windows.Forms.Padding(5, 4, 5, 4); + this.panel9.Margin = new System.Windows.Forms.Padding(5); this.panel9.Name = "panel9"; - this.panel9.Size = new System.Drawing.Size(380, 91); + this.panel9.Size = new System.Drawing.Size(415, 104); this.panel9.TabIndex = 0; // // label3 @@ -1170,7 +1170,7 @@ this.label3.Location = new System.Drawing.Point(0, 0); this.label3.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0); this.label3.Name = "label3"; - this.label3.Size = new System.Drawing.Size(380, 91); + this.label3.Size = new System.Drawing.Size(415, 104); this.label3.TabIndex = 0; this.label3.Text = "用户信息:"; this.label3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; @@ -1181,9 +1181,9 @@ this.panel2.Controls.Add(this.panel3); this.panel2.Dock = System.Windows.Forms.DockStyle.Top; this.panel2.Location = new System.Drawing.Point(0, 0); - this.panel2.Margin = new System.Windows.Forms.Padding(5, 4, 5, 4); + this.panel2.Margin = new System.Windows.Forms.Padding(5); this.panel2.Name = "panel2"; - this.panel2.Size = new System.Drawing.Size(2347, 147); + this.panel2.Size = new System.Drawing.Size(2560, 168); this.panel2.TabIndex = 0; // // panel4 @@ -1191,10 +1191,10 @@ this.panel4.Controls.Add(this.panel6); this.panel4.Controls.Add(this.panel5); this.panel4.Dock = System.Windows.Forms.DockStyle.Fill; - this.panel4.Location = new System.Drawing.Point(311, 0); - this.panel4.Margin = new System.Windows.Forms.Padding(5, 4, 5, 4); + this.panel4.Location = new System.Drawing.Point(339, 0); + this.panel4.Margin = new System.Windows.Forms.Padding(5); this.panel4.Name = "panel4"; - this.panel4.Size = new System.Drawing.Size(2036, 147); + this.panel4.Size = new System.Drawing.Size(2221, 168); this.panel4.TabIndex = 1; // // panel6 @@ -1203,9 +1203,9 @@ this.panel6.Controls.Add(this.label1); this.panel6.Dock = System.Windows.Forms.DockStyle.Fill; this.panel6.Location = new System.Drawing.Point(0, 0); - this.panel6.Margin = new System.Windows.Forms.Padding(5, 4, 5, 4); + this.panel6.Margin = new System.Windows.Forms.Padding(5); this.panel6.Name = "panel6"; - this.panel6.Size = new System.Drawing.Size(1684, 147); + this.panel6.Size = new System.Drawing.Size(1837, 168); this.panel6.TabIndex = 1; // // btnBarCodeWithBox @@ -1214,7 +1214,7 @@ this.btnBarCodeWithBox.Font = new System.Drawing.Font("宋体", 14.14286F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.btnBarCodeWithBox.Location = new System.Drawing.Point(0, 1); this.btnBarCodeWithBox.Name = "btnBarCodeWithBox"; - this.btnBarCodeWithBox.Size = new System.Drawing.Size(217, 143); + this.btnBarCodeWithBox.Size = new System.Drawing.Size(237, 163); this.btnBarCodeWithBox.TabIndex = 2; this.btnBarCodeWithBox.Text = "箱码模式"; this.btnBarCodeWithBox.UseVisualStyleBackColor = false; @@ -1228,7 +1228,7 @@ this.label1.Location = new System.Drawing.Point(0, 0); this.label1.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0); this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(1684, 147); + this.label1.Size = new System.Drawing.Size(1837, 168); this.label1.TabIndex = 0; this.label1.Text = "注塑车间条码打印"; this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; @@ -1237,10 +1237,10 @@ // this.panel5.Controls.Add(this.label2); this.panel5.Dock = System.Windows.Forms.DockStyle.Right; - this.panel5.Location = new System.Drawing.Point(1684, 0); - this.panel5.Margin = new System.Windows.Forms.Padding(5, 4, 5, 4); + this.panel5.Location = new System.Drawing.Point(1837, 0); + this.panel5.Margin = new System.Windows.Forms.Padding(5); this.panel5.Name = "panel5"; - this.panel5.Size = new System.Drawing.Size(352, 147); + this.panel5.Size = new System.Drawing.Size(384, 168); this.panel5.TabIndex = 0; // // label2 @@ -1251,7 +1251,7 @@ this.label2.Location = new System.Drawing.Point(0, 0); this.label2.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0); this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(352, 147); + this.label2.Size = new System.Drawing.Size(384, 168); this.label2.TabIndex = 0; this.label2.Text = "2019-05-29 10:30:31"; this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; @@ -1262,19 +1262,19 @@ this.panel3.Controls.Add(this.pictureBox1); this.panel3.Dock = System.Windows.Forms.DockStyle.Left; this.panel3.Location = new System.Drawing.Point(0, 0); - this.panel3.Margin = new System.Windows.Forms.Padding(5, 4, 5, 4); + this.panel3.Margin = new System.Windows.Forms.Padding(5); this.panel3.Name = "panel3"; - this.panel3.Size = new System.Drawing.Size(311, 147); + this.panel3.Size = new System.Drawing.Size(339, 168); this.panel3.TabIndex = 0; // // pictureBox1 // this.pictureBox1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.pictureBox1.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox1.Image"))); - this.pictureBox1.Location = new System.Drawing.Point(5, 4); - this.pictureBox1.Margin = new System.Windows.Forms.Padding(5, 4, 5, 4); + this.pictureBox1.Location = new System.Drawing.Point(5, 5); + this.pictureBox1.Margin = new System.Windows.Forms.Padding(5); this.pictureBox1.Name = "pictureBox1"; - this.pictureBox1.Size = new System.Drawing.Size(307, 139); + this.pictureBox1.Size = new System.Drawing.Size(335, 159); this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; this.pictureBox1.TabIndex = 0; this.pictureBox1.TabStop = false; @@ -1315,12 +1315,12 @@ // // FrmMain2411 // - this.AutoScaleDimensions = new System.Drawing.SizeF(11F, 21F); + this.AutoScaleDimensions = new System.Drawing.SizeF(12F, 24F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(2347, 1600); + this.ClientSize = new System.Drawing.Size(2560, 1829); this.Controls.Add(this.panel1); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; - this.Margin = new System.Windows.Forms.Padding(5, 4, 5, 4); + this.Margin = new System.Windows.Forms.Padding(5); this.Name = "FrmMain2411"; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; this.Text = "FrmMain"; diff --git a/MESClassLibrary/BussinessHelper.cs b/MESClassLibrary/BussinessHelper.cs index 1fa5d20..b9c3b96 100644 --- a/MESClassLibrary/BussinessHelper.cs +++ b/MESClassLibrary/BussinessHelper.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Data; using System.Linq; using System.Text; @@ -47,6 +48,7 @@ namespace MESClassLibrary } + /// /// 喷涂质检,当前状态和上一次质检状态是否允许操作判断 /// diff --git a/PaintingPC/FrmQualityOnLine.cs b/PaintingPC/FrmQualityOnLine.cs index f4ba960..53f221c 100644 --- a/PaintingPC/FrmQualityOnLine.cs +++ b/PaintingPC/FrmQualityOnLine.cs @@ -75,33 +75,6 @@ namespace PaintingPC { } } - /// - /// 初始化颜色选择框列表 - /// - /// - public void InitColor(string stockNo) - { - try - { - DataTable dt = Function.GetColorByStockNo(stockNo); - if(dt.Rows.Count == 0) - { - lbForeig.Text = $"基础数据-产品颜色菜单未配置[{stockNo}]的颜色信息"; - } - - DataRow dr = dt.NewRow(); - dr["Color"] = ""; - dt.Rows.InsertAt(dr, 0); - - } - catch (Exception ex) - { - LogHelper.WriteLogManager(ex); - LogHelper.WriteErrLogBase(ex.ToString(), MethodBase.GetCurrentMethod().Name); - throw ex; - } - } - private void TimeGo() { System.Timers.Timer timer = new System.Timers.Timer(); diff --git a/PunchingMistake/DLL/Interop.OPCAutomation.dll b/PunchingMistake/DLL/Interop.OPCAutomation.dll new file mode 100644 index 0000000000000000000000000000000000000000..f5340f3dc1d5c860796c9015ee8ea8c9ede0bdb7 GIT binary patch literal 28672 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 literal 0 HcmV?d00001 diff --git a/PunchingMistake/DLL/Interop.grdes6Lib.dll b/PunchingMistake/DLL/Interop.grdes6Lib.dll new file mode 100644 index 0000000000000000000000000000000000000000..d267ad008c92e001544dcdcf7a1c9bd132a2ecc2 GIT binary patch literal 32768 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 ARsaA1 literal 0 HcmV?d00001 diff --git a/PunchingMistake/DLL/Interop.gregn6Lib.dll b/PunchingMistake/DLL/Interop.gregn6Lib.dll new file mode 100644 index 0000000000000000000000000000000000000000..c3448dd991de19a8c5d80e5b7a8efe81c87b6453 GIT binary patch literal 353280 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 literal 0 HcmV?d00001 diff --git a/PunchingMistake/FrmAssemble.Designer.cs b/PunchingMistake/FrmAssemble.Designer.cs index 23b24ac..7b0e5c6 100644 --- a/PunchingMistake/FrmAssemble.Designer.cs +++ b/PunchingMistake/FrmAssemble.Designer.cs @@ -29,6 +29,7 @@ namespace PunchingMistake /// private void InitializeComponent() { + this.components = new System.ComponentModel.Container(); System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FrmAssemble)); this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); this.panel1 = new System.Windows.Forms.Panel(); @@ -37,6 +38,7 @@ namespace PunchingMistake this.panel3 = new System.Windows.Forms.Panel(); this.panel4 = new System.Windows.Forms.Panel(); this.panel12 = new System.Windows.Forms.Panel(); + this.lbDisplay = new System.Windows.Forms.Label(); this.lbPlanQty = new System.Windows.Forms.Label(); this.label12 = new System.Windows.Forms.Label(); this.panel13 = new System.Windows.Forms.Panel(); @@ -44,7 +46,6 @@ namespace PunchingMistake this.label13 = new System.Windows.Forms.Label(); this.tableLayoutPanel3 = new System.Windows.Forms.TableLayoutPanel(); this.panel9 = new System.Windows.Forms.Panel(); - this.txtBarCode = new System.Windows.Forms.TextBox(); this.label6 = new System.Windows.Forms.Label(); this.panel8 = new System.Windows.Forms.Panel(); this.lbPartDesc = new System.Windows.Forms.Label(); @@ -60,8 +61,9 @@ namespace PunchingMistake this.label1 = new System.Windows.Forms.Label(); this.tableLayoutPanel4 = new System.Windows.Forms.TableLayoutPanel(); this.panel10 = new System.Windows.Forms.Panel(); - this.button5 = new System.Windows.Forms.Button(); - this.button6 = new System.Windows.Forms.Button(); + this.lbHint = new System.Windows.Forms.Label(); + this.btnPlanFinish = new System.Windows.Forms.Button(); + this.btnPlanSearch = new System.Windows.Forms.Button(); this.btnPlanDown = new System.Windows.Forms.Button(); this.btnPlanUp = new System.Windows.Forms.Button(); this.panel11 = new System.Windows.Forms.Panel(); @@ -72,7 +74,35 @@ namespace PunchingMistake this.label14 = new System.Windows.Forms.Label(); this.panel15 = new System.Windows.Forms.Panel(); this.panel16 = new System.Windows.Forms.Panel(); - this.lbHint = new System.Windows.Forms.Label(); + this.panel17 = new System.Windows.Forms.Panel(); + this.panel18 = new System.Windows.Forms.Panel(); + this.lbScanState = new System.Windows.Forms.Label(); + this.txtLinkState = new System.Windows.Forms.Label(); + this.label30 = new System.Windows.Forms.Label(); + this.lbIrlsAll = new System.Windows.Forms.Label(); + this.label27 = new System.Windows.Forms.Label(); + this.lbIrls = new System.Windows.Forms.Label(); + this.label29 = new System.Windows.Forms.Label(); + this.lbRivetRAll = new System.Windows.Forms.Label(); + this.label19 = new System.Windows.Forms.Label(); + this.lbRivetR = new System.Windows.Forms.Label(); + this.label21 = new System.Windows.Forms.Label(); + this.lbRivetLAll = new System.Windows.Forms.Label(); + this.label23 = new System.Windows.Forms.Label(); + this.lbRivetL = new System.Windows.Forms.Label(); + this.label25 = new System.Windows.Forms.Label(); + this.lbScrewRAll = new System.Windows.Forms.Label(); + this.label15 = new System.Windows.Forms.Label(); + this.lbScrewR = new System.Windows.Forms.Label(); + this.label17 = new System.Windows.Forms.Label(); + this.lbScrewLAll = new System.Windows.Forms.Label(); + this.label8 = new System.Windows.Forms.Label(); + this.lbScrewL = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.showHintTimer = new System.Windows.Forms.Timer(this.components); + this.LoadScrewTimer = new System.Windows.Forms.Timer(this.components); + this.txtBarCode = new System.Windows.Forms.TextBox(); + this.txtBoxFocusTimer = new System.Windows.Forms.Timer(this.components); this.tableLayoutPanel1.SuspendLayout(); this.tableLayoutPanel2.SuspendLayout(); this.panel12.SuspendLayout(); @@ -87,6 +117,7 @@ namespace PunchingMistake this.panel10.SuspendLayout(); this.panel11.SuspendLayout(); this.panel14.SuspendLayout(); + this.panel18.SuspendLayout(); this.SuspendLayout(); // // tableLayoutPanel1 @@ -108,26 +139,27 @@ namespace PunchingMistake this.tableLayoutPanel1.Name = "tableLayoutPanel1"; this.tableLayoutPanel1.RowCount = 1; this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); - this.tableLayoutPanel1.Size = new System.Drawing.Size(1948, 1346); + this.tableLayoutPanel1.Size = new System.Drawing.Size(2125, 1538); this.tableLayoutPanel1.TabIndex = 0; // // panel1 // this.panel1.BackColor = System.Drawing.Color.DarkCyan; this.panel1.Dock = System.Windows.Forms.DockStyle.Fill; - this.panel1.Location = new System.Drawing.Point(527, 60); - this.panel1.Margin = new System.Windows.Forms.Padding(3, 60, 3, 30); + this.panel1.Location = new System.Drawing.Point(575, 69); + this.panel1.Margin = new System.Windows.Forms.Padding(3, 69, 3, 34); this.panel1.Name = "panel1"; - this.panel1.Size = new System.Drawing.Size(1, 1256); + this.panel1.Size = new System.Drawing.Size(1, 1435); this.panel1.TabIndex = 0; // // panel2 // this.panel2.BackColor = System.Drawing.Color.DarkCyan; - this.panel2.Location = new System.Drawing.Point(1423, 60); - this.panel2.Margin = new System.Windows.Forms.Padding(3, 60, 3, 30); + this.panel2.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel2.Location = new System.Drawing.Point(1552, 69); + this.panel2.Margin = new System.Windows.Forms.Padding(3, 69, 3, 34); this.panel2.Name = "panel2"; - this.panel2.Size = new System.Drawing.Size(1, 1256); + this.panel2.Size = new System.Drawing.Size(1, 1435); this.panel2.TabIndex = 1; // // tableLayoutPanel2 @@ -139,23 +171,23 @@ namespace PunchingMistake this.tableLayoutPanel2.Controls.Add(this.panel12, 0, 1); this.tableLayoutPanel2.Controls.Add(this.panel13, 0, 3); this.tableLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel2.Location = new System.Drawing.Point(529, 3); + this.tableLayoutPanel2.Location = new System.Drawing.Point(577, 3); this.tableLayoutPanel2.Name = "tableLayoutPanel2"; this.tableLayoutPanel2.RowCount = 4; - this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 110F)); + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 126F)); this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 2F)); this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel2.Size = new System.Drawing.Size(888, 1340); + this.tableLayoutPanel2.Size = new System.Drawing.Size(969, 1532); this.tableLayoutPanel2.TabIndex = 2; // // panel3 // this.panel3.BackColor = System.Drawing.Color.DarkCyan; this.panel3.Dock = System.Windows.Forms.DockStyle.Fill; - this.panel3.Location = new System.Drawing.Point(3, 727); + this.panel3.Location = new System.Drawing.Point(3, 831); this.panel3.Name = "panel3"; - this.panel3.Size = new System.Drawing.Size(882, 1); + this.panel3.Size = new System.Drawing.Size(963, 1); this.panel3.TabIndex = 0; // // panel4 @@ -165,19 +197,32 @@ namespace PunchingMistake this.panel4.Dock = System.Windows.Forms.DockStyle.Fill; this.panel4.Location = new System.Drawing.Point(3, 3); this.panel4.Name = "panel4"; - this.panel4.Size = new System.Drawing.Size(882, 104); + this.panel4.Size = new System.Drawing.Size(963, 120); this.panel4.TabIndex = 1; // // panel12 // + this.panel12.Controls.Add(this.lbDisplay); this.panel12.Controls.Add(this.lbPlanQty); this.panel12.Controls.Add(this.label12); this.panel12.Dock = System.Windows.Forms.DockStyle.Fill; - this.panel12.Location = new System.Drawing.Point(3, 113); + this.panel12.Location = new System.Drawing.Point(3, 129); this.panel12.Name = "panel12"; - this.panel12.Size = new System.Drawing.Size(882, 608); + this.panel12.Size = new System.Drawing.Size(963, 696); this.panel12.TabIndex = 2; // + // lbDisplay + // + this.lbDisplay.AutoSize = true; + this.lbDisplay.Font = new System.Drawing.Font("宋体", 108F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.lbDisplay.ForeColor = System.Drawing.Color.LimeGreen; + this.lbDisplay.Location = new System.Drawing.Point(309, 384); + this.lbDisplay.Name = "lbDisplay"; + this.lbDisplay.Size = new System.Drawing.Size(410, 289); + this.lbDisplay.TabIndex = 4; + this.lbDisplay.Text = "OK"; + this.lbDisplay.Visible = false; + // // lbPlanQty // this.lbPlanQty.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) @@ -186,9 +231,9 @@ namespace PunchingMistake this.lbPlanQty.BackColor = System.Drawing.Color.Transparent; this.lbPlanQty.Font = new System.Drawing.Font("宋体", 128.1429F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.lbPlanQty.ForeColor = System.Drawing.Color.LightSeaGreen; - this.lbPlanQty.Location = new System.Drawing.Point(150, 195); + this.lbPlanQty.Location = new System.Drawing.Point(164, 223); this.lbPlanQty.Name = "lbPlanQty"; - this.lbPlanQty.Size = new System.Drawing.Size(575, 300); + this.lbPlanQty.Size = new System.Drawing.Size(656, 342); this.lbPlanQty.TabIndex = 3; this.lbPlanQty.Text = "150"; // @@ -198,9 +243,9 @@ namespace PunchingMistake this.label12.BackColor = System.Drawing.Color.Transparent; this.label12.Font = new System.Drawing.Font("宋体", 21.85714F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.label12.ForeColor = System.Drawing.Color.White; - this.label12.Location = new System.Drawing.Point(130, 19); + this.label12.Location = new System.Drawing.Point(142, 22); this.label12.Name = "label12"; - this.label12.Size = new System.Drawing.Size(642, 51); + this.label12.Size = new System.Drawing.Size(741, 59); this.label12.TabIndex = 2; this.label12.Text = "计划数量/PlannedQuantity"; // @@ -209,9 +254,9 @@ namespace PunchingMistake this.panel13.Controls.Add(this.lbCompleteQty); this.panel13.Controls.Add(this.label13); this.panel13.Dock = System.Windows.Forms.DockStyle.Fill; - this.panel13.Location = new System.Drawing.Point(3, 729); + this.panel13.Location = new System.Drawing.Point(3, 833); this.panel13.Name = "panel13"; - this.panel13.Size = new System.Drawing.Size(882, 608); + this.panel13.Size = new System.Drawing.Size(963, 696); this.panel13.TabIndex = 3; // // lbCompleteQty @@ -222,9 +267,9 @@ namespace PunchingMistake this.lbCompleteQty.BackColor = System.Drawing.Color.Transparent; this.lbCompleteQty.Font = new System.Drawing.Font("宋体", 128.1429F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.lbCompleteQty.ForeColor = System.Drawing.Color.LimeGreen; - this.lbCompleteQty.Location = new System.Drawing.Point(150, 179); + this.lbCompleteQty.Location = new System.Drawing.Point(164, 205); this.lbCompleteQty.Name = "lbCompleteQty"; - this.lbCompleteQty.Size = new System.Drawing.Size(575, 300); + this.lbCompleteQty.Size = new System.Drawing.Size(656, 342); this.lbCompleteQty.TabIndex = 4; this.lbCompleteQty.Text = "695"; // @@ -234,9 +279,9 @@ namespace PunchingMistake this.label13.BackColor = System.Drawing.Color.Transparent; this.label13.Font = new System.Drawing.Font("宋体", 21.85714F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.label13.ForeColor = System.Drawing.Color.White; - this.label13.Location = new System.Drawing.Point(139, 22); + this.label13.Location = new System.Drawing.Point(152, 25); this.label13.Name = "label13"; - this.label13.Size = new System.Drawing.Size(668, 51); + this.label13.Size = new System.Drawing.Size(771, 59); this.label13.TabIndex = 3; this.label13.Text = "完成数量/FinishedQuantity"; // @@ -250,8 +295,8 @@ namespace PunchingMistake this.tableLayoutPanel3.Controls.Add(this.panel6, 0, 1); this.tableLayoutPanel3.Controls.Add(this.panel5, 0, 0); this.tableLayoutPanel3.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel3.Location = new System.Drawing.Point(3, 50); - this.tableLayoutPanel3.Margin = new System.Windows.Forms.Padding(3, 50, 3, 3); + this.tableLayoutPanel3.Location = new System.Drawing.Point(3, 57); + this.tableLayoutPanel3.Margin = new System.Windows.Forms.Padding(3, 57, 3, 3); this.tableLayoutPanel3.Name = "tableLayoutPanel3"; this.tableLayoutPanel3.RowCount = 5; this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 20F)); @@ -259,7 +304,7 @@ namespace PunchingMistake this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 20F)); this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 20F)); this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 20F)); - this.tableLayoutPanel3.Size = new System.Drawing.Size(518, 1293); + this.tableLayoutPanel3.Size = new System.Drawing.Size(566, 1478); this.tableLayoutPanel3.TabIndex = 3; // // panel9 @@ -269,31 +314,21 @@ namespace PunchingMistake this.panel9.Controls.Add(this.txtBarCode); this.panel9.Controls.Add(this.label6); this.panel9.Dock = System.Windows.Forms.DockStyle.Fill; - this.panel9.Location = new System.Drawing.Point(30, 1035); - this.panel9.Margin = new System.Windows.Forms.Padding(30, 3, 30, 30); + this.panel9.Location = new System.Drawing.Point(33, 1183); + this.panel9.Margin = new System.Windows.Forms.Padding(33, 3, 33, 34); this.panel9.Name = "panel9"; - this.panel9.Size = new System.Drawing.Size(458, 228); + this.panel9.Size = new System.Drawing.Size(500, 261); this.panel9.TabIndex = 4; // - // txtBarCode - // - this.txtBarCode.Font = new System.Drawing.Font("微软雅黑", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.txtBarCode.Location = new System.Drawing.Point(30, 109); - this.txtBarCode.Multiline = true; - this.txtBarCode.Name = "txtBarCode"; - this.txtBarCode.Size = new System.Drawing.Size(390, 74); - this.txtBarCode.TabIndex = 5; - this.txtBarCode.KeyDown += new System.Windows.Forms.KeyEventHandler(this.txtBarCode_KeyDown); - // // label6 // this.label6.AutoSize = true; this.label6.BackColor = System.Drawing.Color.Transparent; this.label6.Font = new System.Drawing.Font("宋体", 15.85714F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.label6.ForeColor = System.Drawing.Color.DarkCyan; - this.label6.Location = new System.Drawing.Point(23, 51); + this.label6.Location = new System.Drawing.Point(25, 58); this.label6.Name = "label6"; - this.label6.Size = new System.Drawing.Size(253, 37); + this.label6.Size = new System.Drawing.Size(291, 43); this.label6.TabIndex = 4; this.label6.Text = "条码/BarCode"; // @@ -304,10 +339,10 @@ namespace PunchingMistake this.panel8.Controls.Add(this.lbPartDesc); this.panel8.Controls.Add(this.label5); this.panel8.Dock = System.Windows.Forms.DockStyle.Fill; - this.panel8.Location = new System.Drawing.Point(30, 777); - this.panel8.Margin = new System.Windows.Forms.Padding(30, 3, 30, 30); + this.panel8.Location = new System.Drawing.Point(33, 888); + this.panel8.Margin = new System.Windows.Forms.Padding(33, 3, 33, 34); this.panel8.Name = "panel8"; - this.panel8.Size = new System.Drawing.Size(458, 225); + this.panel8.Size = new System.Drawing.Size(500, 258); this.panel8.TabIndex = 3; // // lbPartDesc @@ -316,9 +351,9 @@ namespace PunchingMistake this.lbPartDesc.BackColor = System.Drawing.Color.Transparent; this.lbPartDesc.Font = new System.Drawing.Font("宋体", 15.85714F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.lbPartDesc.ForeColor = System.Drawing.Color.White; - this.lbPartDesc.Location = new System.Drawing.Point(32, 115); + this.lbPartDesc.Location = new System.Drawing.Point(35, 131); this.lbPartDesc.Name = "lbPartDesc"; - this.lbPartDesc.Size = new System.Drawing.Size(317, 37); + this.lbPartDesc.Size = new System.Drawing.Size(367, 43); this.lbPartDesc.TabIndex = 4; this.lbPartDesc.Text = "X247MF S后保冲孔"; // @@ -328,9 +363,9 @@ namespace PunchingMistake this.label5.BackColor = System.Drawing.Color.Transparent; this.label5.Font = new System.Drawing.Font("宋体", 15.85714F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.label5.ForeColor = System.Drawing.Color.DarkCyan; - this.label5.Location = new System.Drawing.Point(23, 51); + this.label5.Location = new System.Drawing.Point(25, 58); this.label5.Name = "label5"; - this.label5.Size = new System.Drawing.Size(409, 37); + this.label5.Size = new System.Drawing.Size(471, 43); this.label5.TabIndex = 3; this.label5.Text = "零件描述/Description"; // @@ -341,10 +376,10 @@ namespace PunchingMistake this.panel7.Controls.Add(this.lbPart); this.panel7.Controls.Add(this.label4); this.panel7.Dock = System.Windows.Forms.DockStyle.Fill; - this.panel7.Location = new System.Drawing.Point(30, 519); - this.panel7.Margin = new System.Windows.Forms.Padding(30, 3, 30, 30); + this.panel7.Location = new System.Drawing.Point(33, 593); + this.panel7.Margin = new System.Windows.Forms.Padding(33, 3, 33, 34); this.panel7.Name = "panel7"; - this.panel7.Size = new System.Drawing.Size(458, 225); + this.panel7.Size = new System.Drawing.Size(500, 258); this.panel7.TabIndex = 2; // // lbPart @@ -353,9 +388,9 @@ namespace PunchingMistake this.lbPart.BackColor = System.Drawing.Color.Transparent; this.lbPart.Font = new System.Drawing.Font("宋体", 15.85714F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.lbPart.ForeColor = System.Drawing.Color.White; - this.lbPart.Location = new System.Drawing.Point(32, 114); + this.lbPart.Location = new System.Drawing.Point(35, 130); this.lbPart.Name = "lbPart"; - this.lbPart.Size = new System.Drawing.Size(317, 37); + this.lbPart.Size = new System.Drawing.Size(367, 43); this.lbPart.TabIndex = 3; this.lbPart.Text = "X247MF S后保冲孔"; // @@ -365,9 +400,9 @@ namespace PunchingMistake this.label4.BackColor = System.Drawing.Color.Transparent; this.label4.Font = new System.Drawing.Font("宋体", 15.85714F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.label4.ForeColor = System.Drawing.Color.DarkCyan; - this.label4.Location = new System.Drawing.Point(23, 47); + this.label4.Location = new System.Drawing.Point(25, 54); this.label4.Name = "label4"; - this.label4.Size = new System.Drawing.Size(351, 37); + this.label4.Size = new System.Drawing.Size(404, 43); this.label4.TabIndex = 2; this.label4.Text = "零件号/PartNumber"; // @@ -378,10 +413,10 @@ namespace PunchingMistake this.panel6.Controls.Add(this.lbPlan); this.panel6.Controls.Add(this.label3); this.panel6.Dock = System.Windows.Forms.DockStyle.Fill; - this.panel6.Location = new System.Drawing.Point(30, 261); - this.panel6.Margin = new System.Windows.Forms.Padding(30, 3, 30, 30); + this.panel6.Location = new System.Drawing.Point(33, 298); + this.panel6.Margin = new System.Windows.Forms.Padding(33, 3, 33, 34); this.panel6.Name = "panel6"; - this.panel6.Size = new System.Drawing.Size(458, 225); + this.panel6.Size = new System.Drawing.Size(500, 258); this.panel6.TabIndex = 1; // // lbPlan @@ -390,9 +425,9 @@ namespace PunchingMistake this.lbPlan.BackColor = System.Drawing.Color.Transparent; this.lbPlan.Font = new System.Drawing.Font("宋体", 15.85714F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.lbPlan.ForeColor = System.Drawing.Color.White; - this.lbPlan.Location = new System.Drawing.Point(32, 117); + this.lbPlan.Location = new System.Drawing.Point(35, 134); this.lbPlan.Name = "lbPlan"; - this.lbPlan.Size = new System.Drawing.Size(317, 37); + this.lbPlan.Size = new System.Drawing.Size(367, 43); this.lbPlan.TabIndex = 2; this.lbPlan.Text = "X247MF S后保冲孔"; // @@ -402,9 +437,9 @@ namespace PunchingMistake this.label3.BackColor = System.Drawing.Color.Transparent; this.label3.Font = new System.Drawing.Font("宋体", 15.85714F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.label3.ForeColor = System.Drawing.Color.DarkCyan; - this.label3.Location = new System.Drawing.Point(23, 46); + this.label3.Location = new System.Drawing.Point(25, 53); this.label3.Name = "label3"; - this.label3.Size = new System.Drawing.Size(389, 37); + this.label3.Size = new System.Drawing.Size(448, 43); this.label3.TabIndex = 1; this.label3.Text = "计划编号/PlanNumber"; // @@ -415,10 +450,10 @@ namespace PunchingMistake this.panel5.Controls.Add(this.lbStation); this.panel5.Controls.Add(this.label1); this.panel5.Dock = System.Windows.Forms.DockStyle.Fill; - this.panel5.Location = new System.Drawing.Point(30, 3); - this.panel5.Margin = new System.Windows.Forms.Padding(30, 3, 30, 30); + this.panel5.Location = new System.Drawing.Point(33, 3); + this.panel5.Margin = new System.Windows.Forms.Padding(33, 3, 33, 34); this.panel5.Name = "panel5"; - this.panel5.Size = new System.Drawing.Size(458, 225); + this.panel5.Size = new System.Drawing.Size(500, 258); this.panel5.TabIndex = 0; // // lbStation @@ -427,9 +462,9 @@ namespace PunchingMistake this.lbStation.BackColor = System.Drawing.Color.Transparent; this.lbStation.Font = new System.Drawing.Font("宋体", 15.85714F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.lbStation.ForeColor = System.Drawing.Color.White; - this.lbStation.Location = new System.Drawing.Point(23, 108); + this.lbStation.Location = new System.Drawing.Point(25, 123); this.lbStation.Name = "lbStation"; - this.lbStation.Size = new System.Drawing.Size(317, 37); + this.lbStation.Size = new System.Drawing.Size(367, 43); this.lbStation.TabIndex = 1; this.lbStation.Text = "X247MF S后保冲孔"; // @@ -439,9 +474,9 @@ namespace PunchingMistake this.label1.BackColor = System.Drawing.Color.Transparent; this.label1.Font = new System.Drawing.Font("宋体", 15.85714F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.label1.ForeColor = System.Drawing.Color.DarkCyan; - this.label1.Location = new System.Drawing.Point(23, 36); + this.label1.Location = new System.Drawing.Point(25, 41); this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(409, 37); + this.label1.Size = new System.Drawing.Size(471, 43); this.label1.TabIndex = 0; this.label1.Text = "生产工位/StationCode"; // @@ -449,70 +484,89 @@ namespace PunchingMistake // this.tableLayoutPanel4.ColumnCount = 1; this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); - this.tableLayoutPanel4.Controls.Add(this.panel10, 0, 4); + this.tableLayoutPanel4.Controls.Add(this.panel10, 0, 6); this.tableLayoutPanel4.Controls.Add(this.panel11, 0, 0); - this.tableLayoutPanel4.Controls.Add(this.panel14, 0, 2); + this.tableLayoutPanel4.Controls.Add(this.panel14, 0, 4); this.tableLayoutPanel4.Controls.Add(this.panel15, 0, 1); - this.tableLayoutPanel4.Controls.Add(this.panel16, 0, 3); + this.tableLayoutPanel4.Controls.Add(this.panel16, 0, 5); + this.tableLayoutPanel4.Controls.Add(this.panel17, 0, 3); + this.tableLayoutPanel4.Controls.Add(this.panel18, 0, 2); this.tableLayoutPanel4.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel4.Location = new System.Drawing.Point(1425, 50); - this.tableLayoutPanel4.Margin = new System.Windows.Forms.Padding(3, 50, 3, 3); + this.tableLayoutPanel4.Location = new System.Drawing.Point(1554, 57); + this.tableLayoutPanel4.Margin = new System.Windows.Forms.Padding(3, 57, 3, 3); this.tableLayoutPanel4.Name = "tableLayoutPanel4"; - this.tableLayoutPanel4.RowCount = 5; - this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 20F)); + this.tableLayoutPanel4.RowCount = 7; + this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 14.28571F)); + this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 2F)); + this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 28.57143F)); this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 2F)); - this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 40F)); + this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 28.57143F)); this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 2F)); - this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 40F)); - this.tableLayoutPanel4.Size = new System.Drawing.Size(520, 1293); + this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 28.57143F)); + this.tableLayoutPanel4.Size = new System.Drawing.Size(568, 1478); this.tableLayoutPanel4.TabIndex = 4; // // panel10 // this.panel10.Controls.Add(this.lbHint); - this.panel10.Controls.Add(this.button5); - this.panel10.Controls.Add(this.button6); + this.panel10.Controls.Add(this.btnPlanFinish); + this.panel10.Controls.Add(this.btnPlanSearch); this.panel10.Controls.Add(this.btnPlanDown); this.panel10.Controls.Add(this.btnPlanUp); this.panel10.Dock = System.Windows.Forms.DockStyle.Fill; - this.panel10.Location = new System.Drawing.Point(3, 779); + this.panel10.Location = new System.Drawing.Point(3, 1059); this.panel10.Name = "panel10"; - this.panel10.Size = new System.Drawing.Size(514, 511); + this.panel10.Size = new System.Drawing.Size(562, 416); this.panel10.TabIndex = 0; // - // button5 - // - this.button5.BackColor = System.Drawing.Color.Red; - this.button5.Font = new System.Drawing.Font("微软雅黑", 15.85714F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.button5.ForeColor = System.Drawing.Color.White; - this.button5.Location = new System.Drawing.Point(267, 194); - this.button5.Margin = new System.Windows.Forms.Padding(4); - this.button5.Name = "button5"; - this.button5.Size = new System.Drawing.Size(240, 88); - this.button5.TabIndex = 28; - this.button5.Text = "结束计划"; - this.button5.UseVisualStyleBackColor = false; - // - // button6 - // - this.button6.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192))))); - this.button6.Font = new System.Drawing.Font("微软雅黑", 15.85714F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.button6.Location = new System.Drawing.Point(14, 194); - this.button6.Margin = new System.Windows.Forms.Padding(4); - this.button6.Name = "button6"; - this.button6.Size = new System.Drawing.Size(240, 88); - this.button6.TabIndex = 27; - this.button6.Text = "计划查询"; - this.button6.UseVisualStyleBackColor = false; + // lbHint + // + this.lbHint.AllowDrop = true; + this.lbHint.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.lbHint.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.lbHint.ForeColor = System.Drawing.Color.Red; + this.lbHint.Location = new System.Drawing.Point(10, 267); + this.lbHint.Name = "lbHint"; + this.lbHint.Size = new System.Drawing.Size(545, 146); + this.lbHint.TabIndex = 29; + this.lbHint.Text = " "; + // + // btnPlanFinish + // + this.btnPlanFinish.BackColor = System.Drawing.Color.Red; + this.btnPlanFinish.Font = new System.Drawing.Font("微软雅黑", 15.85714F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnPlanFinish.ForeColor = System.Drawing.Color.White; + this.btnPlanFinish.Location = new System.Drawing.Point(293, 152); + this.btnPlanFinish.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.btnPlanFinish.Name = "btnPlanFinish"; + this.btnPlanFinish.Size = new System.Drawing.Size(262, 101); + this.btnPlanFinish.TabIndex = 28; + this.btnPlanFinish.Text = "结束计划"; + this.btnPlanFinish.UseVisualStyleBackColor = false; + this.btnPlanFinish.Click += new System.EventHandler(this.btnPlanFinish_Click); + // + // btnPlanSearch + // + this.btnPlanSearch.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192))))); + this.btnPlanSearch.Font = new System.Drawing.Font("微软雅黑", 15.85714F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnPlanSearch.Location = new System.Drawing.Point(17, 152); + this.btnPlanSearch.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.btnPlanSearch.Name = "btnPlanSearch"; + this.btnPlanSearch.Size = new System.Drawing.Size(262, 101); + this.btnPlanSearch.TabIndex = 27; + this.btnPlanSearch.Text = "计划查询"; + this.btnPlanSearch.UseVisualStyleBackColor = false; + this.btnPlanSearch.Click += new System.EventHandler(this.btnPlanSearch_Click); // // btnPlanDown // this.btnPlanDown.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(192)))), ((int)(((byte)(255))))); this.btnPlanDown.Font = new System.Drawing.Font("微软雅黑", 15.85714F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.btnPlanDown.Location = new System.Drawing.Point(267, 40); - this.btnPlanDown.Margin = new System.Windows.Forms.Padding(4); + this.btnPlanDown.Location = new System.Drawing.Point(293, 21); + this.btnPlanDown.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); this.btnPlanDown.Name = "btnPlanDown"; - this.btnPlanDown.Size = new System.Drawing.Size(240, 88); + this.btnPlanDown.Size = new System.Drawing.Size(262, 101); this.btnPlanDown.TabIndex = 23; this.btnPlanDown.Text = "下一计划"; this.btnPlanDown.UseVisualStyleBackColor = false; @@ -522,10 +576,10 @@ namespace PunchingMistake // this.btnPlanUp.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(128)))), ((int)(((byte)(128)))), ((int)(((byte)(255))))); this.btnPlanUp.Font = new System.Drawing.Font("微软雅黑", 15.85714F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.btnPlanUp.Location = new System.Drawing.Point(14, 40); - this.btnPlanUp.Margin = new System.Windows.Forms.Padding(4); + this.btnPlanUp.Location = new System.Drawing.Point(17, 21); + this.btnPlanUp.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); this.btnPlanUp.Name = "btnPlanUp"; - this.btnPlanUp.Size = new System.Drawing.Size(240, 88); + this.btnPlanUp.Size = new System.Drawing.Size(262, 101); this.btnPlanUp.TabIndex = 22; this.btnPlanUp.Text = "上一计划"; this.btnPlanUp.UseVisualStyleBackColor = false; @@ -538,7 +592,7 @@ namespace PunchingMistake this.panel11.Dock = System.Windows.Forms.DockStyle.Fill; this.panel11.Location = new System.Drawing.Point(3, 3); this.panel11.Name = "panel11"; - this.panel11.Size = new System.Drawing.Size(514, 251); + this.panel11.Size = new System.Drawing.Size(562, 204); this.panel11.TabIndex = 1; // // lbClass @@ -547,9 +601,9 @@ namespace PunchingMistake this.lbClass.BackColor = System.Drawing.Color.Transparent; this.lbClass.Font = new System.Drawing.Font("宋体", 26.14286F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.lbClass.ForeColor = System.Drawing.Color.White; - this.lbClass.Location = new System.Drawing.Point(181, 138); + this.lbClass.Location = new System.Drawing.Point(193, 108); this.lbClass.Name = "lbClass"; - this.lbClass.Size = new System.Drawing.Size(120, 62); + this.lbClass.Size = new System.Drawing.Size(135, 70); this.lbClass.TabIndex = 4; this.lbClass.Text = "A班"; // @@ -559,20 +613,21 @@ namespace PunchingMistake this.label10.BackColor = System.Drawing.Color.Transparent; this.label10.Font = new System.Drawing.Font("宋体", 15.85714F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.label10.ForeColor = System.Drawing.Color.White; - this.label10.Location = new System.Drawing.Point(67, 19); + this.label10.Location = new System.Drawing.Point(73, 22); this.label10.Name = "label10"; - this.label10.Size = new System.Drawing.Size(378, 37); + this.label10.Size = new System.Drawing.Size(437, 43); this.label10.TabIndex = 3; this.label10.Text = "2025-07-15 11:15:14"; + this.label10.DoubleClick += new System.EventHandler(this.label10_DoubleClick); // // panel14 // this.panel14.Controls.Add(this.lbBadQty); this.panel14.Controls.Add(this.label14); this.panel14.Dock = System.Windows.Forms.DockStyle.Fill; - this.panel14.Location = new System.Drawing.Point(3, 262); + this.panel14.Location = new System.Drawing.Point(3, 637); this.panel14.Name = "panel14"; - this.panel14.Size = new System.Drawing.Size(514, 509); + this.panel14.Size = new System.Drawing.Size(562, 414); this.panel14.TabIndex = 2; // // lbBadQty @@ -583,9 +638,9 @@ namespace PunchingMistake this.lbBadQty.BackColor = System.Drawing.Color.Transparent; this.lbBadQty.Font = new System.Drawing.Font("宋体", 99.85715F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.lbBadQty.ForeColor = System.Drawing.Color.Red; - this.lbBadQty.Location = new System.Drawing.Point(115, 117); + this.lbBadQty.Location = new System.Drawing.Point(130, 106); this.lbBadQty.Name = "lbBadQty"; - this.lbBadQty.Size = new System.Drawing.Size(215, 234); + this.lbBadQty.Size = new System.Drawing.Size(246, 267); this.lbBadQty.TabIndex = 5; this.lbBadQty.Text = "0"; // @@ -595,9 +650,9 @@ namespace PunchingMistake this.label14.BackColor = System.Drawing.Color.Transparent; this.label14.Font = new System.Drawing.Font("宋体", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.label14.ForeColor = System.Drawing.Color.DarkCyan; - this.label14.Location = new System.Drawing.Point(7, 17); + this.label14.Location = new System.Drawing.Point(8, 19); this.label14.Name = "label14"; - this.label14.Size = new System.Drawing.Size(503, 35); + this.label14.Size = new System.Drawing.Size(560, 40); this.label14.TabIndex = 1; this.label14.Text = "不良数/UnqualifiedQuantity"; // @@ -605,37 +660,346 @@ namespace PunchingMistake // this.panel15.BackColor = System.Drawing.Color.DarkCyan; this.panel15.Dock = System.Windows.Forms.DockStyle.Fill; - this.panel15.Location = new System.Drawing.Point(3, 260); + this.panel15.Location = new System.Drawing.Point(3, 213); this.panel15.Name = "panel15"; - this.panel15.Size = new System.Drawing.Size(514, 1); + this.panel15.Size = new System.Drawing.Size(562, 1); this.panel15.TabIndex = 3; // // panel16 // this.panel16.BackColor = System.Drawing.Color.DarkCyan; this.panel16.Dock = System.Windows.Forms.DockStyle.Fill; - this.panel16.Location = new System.Drawing.Point(3, 777); + this.panel16.Location = new System.Drawing.Point(3, 1057); this.panel16.Name = "panel16"; - this.panel16.Size = new System.Drawing.Size(514, 1); + this.panel16.Size = new System.Drawing.Size(562, 1); this.panel16.TabIndex = 4; // - // lbHint + // panel17 + // + this.panel17.BackColor = System.Drawing.Color.DarkCyan; + this.panel17.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel17.Location = new System.Drawing.Point(3, 635); + this.panel17.Name = "panel17"; + this.panel17.Size = new System.Drawing.Size(562, 1); + this.panel17.TabIndex = 5; + // + // panel18 + // + this.panel18.Controls.Add(this.lbScanState); + this.panel18.Controls.Add(this.txtLinkState); + this.panel18.Controls.Add(this.label30); + this.panel18.Controls.Add(this.lbIrlsAll); + this.panel18.Controls.Add(this.label27); + this.panel18.Controls.Add(this.lbIrls); + this.panel18.Controls.Add(this.label29); + this.panel18.Controls.Add(this.lbRivetRAll); + this.panel18.Controls.Add(this.label19); + this.panel18.Controls.Add(this.lbRivetR); + this.panel18.Controls.Add(this.label21); + this.panel18.Controls.Add(this.lbRivetLAll); + this.panel18.Controls.Add(this.label23); + this.panel18.Controls.Add(this.lbRivetL); + this.panel18.Controls.Add(this.label25); + this.panel18.Controls.Add(this.lbScrewRAll); + this.panel18.Controls.Add(this.label15); + this.panel18.Controls.Add(this.lbScrewR); + this.panel18.Controls.Add(this.label17); + this.panel18.Controls.Add(this.lbScrewLAll); + this.panel18.Controls.Add(this.label8); + this.panel18.Controls.Add(this.lbScrewL); + this.panel18.Controls.Add(this.label2); + this.panel18.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel18.Location = new System.Drawing.Point(3, 215); + this.panel18.Name = "panel18"; + this.panel18.Size = new System.Drawing.Size(562, 414); + this.panel18.TabIndex = 6; + // + // lbScanState + // + this.lbScanState.AutoSize = true; + this.lbScanState.Font = new System.Drawing.Font("宋体", 13.875F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.lbScanState.ForeColor = System.Drawing.Color.White; + this.lbScanState.Location = new System.Drawing.Point(37, 373); + this.lbScanState.Name = "lbScanState"; + this.lbScanState.Size = new System.Drawing.Size(97, 37); + this.lbScanState.TabIndex = 22; + this.lbScanState.Text = " "; + // + // txtLinkState + // + this.txtLinkState.AutoSize = true; + this.txtLinkState.Font = new System.Drawing.Font("宋体", 13.875F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.txtLinkState.ForeColor = System.Drawing.Color.White; + this.txtLinkState.Location = new System.Drawing.Point(233, 318); + this.txtLinkState.Name = "txtLinkState"; + this.txtLinkState.Size = new System.Drawing.Size(97, 37); + this.txtLinkState.TabIndex = 21; + this.txtLinkState.Text = " "; + // + // label30 + // + this.label30.AutoSize = true; + this.label30.Font = new System.Drawing.Font("宋体", 13.875F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label30.ForeColor = System.Drawing.Color.White; + this.label30.Location = new System.Drawing.Point(37, 318); + this.label30.Name = "label30"; + this.label30.Size = new System.Drawing.Size(169, 37); + this.label30.TabIndex = 20; + this.label30.Text = "连接状态"; + // + // lbIrlsAll + // + this.lbIrlsAll.AutoSize = true; + this.lbIrlsAll.Font = new System.Drawing.Font("宋体", 13.875F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.lbIrlsAll.ForeColor = System.Drawing.Color.White; + this.lbIrlsAll.Location = new System.Drawing.Point(349, 256); + this.lbIrlsAll.Name = "lbIrlsAll"; + this.lbIrlsAll.Size = new System.Drawing.Size(37, 37); + this.lbIrlsAll.TabIndex = 19; + this.lbIrlsAll.Text = "0"; + // + // label27 + // + this.label27.AutoSize = true; + this.label27.Font = new System.Drawing.Font("宋体", 13.875F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label27.ForeColor = System.Drawing.Color.White; + this.label27.Location = new System.Drawing.Point(289, 256); + this.label27.Name = "label27"; + this.label27.Size = new System.Drawing.Size(37, 37); + this.label27.TabIndex = 18; + this.label27.Text = "/"; + // + // lbIrls + // + this.lbIrls.AutoSize = true; + this.lbIrls.Font = new System.Drawing.Font("宋体", 13.875F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.lbIrls.ForeColor = System.Drawing.Color.White; + this.lbIrls.Location = new System.Drawing.Point(233, 256); + this.lbIrls.Name = "lbIrls"; + this.lbIrls.Size = new System.Drawing.Size(37, 37); + this.lbIrls.TabIndex = 17; + this.lbIrls.Text = "0"; + // + // label29 + // + this.label29.AutoSize = true; + this.label29.Font = new System.Drawing.Font("宋体", 13.875F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label29.ForeColor = System.Drawing.Color.White; + this.label29.Location = new System.Drawing.Point(90, 256); + this.label29.Name = "label29"; + this.label29.Size = new System.Drawing.Size(93, 37); + this.label29.TabIndex = 16; + this.label29.Text = "虹膜"; + // + // lbRivetRAll + // + this.lbRivetRAll.AutoSize = true; + this.lbRivetRAll.Font = new System.Drawing.Font("宋体", 13.875F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.lbRivetRAll.ForeColor = System.Drawing.Color.White; + this.lbRivetRAll.Location = new System.Drawing.Point(351, 188); + this.lbRivetRAll.Name = "lbRivetRAll"; + this.lbRivetRAll.Size = new System.Drawing.Size(37, 37); + this.lbRivetRAll.TabIndex = 15; + this.lbRivetRAll.Text = "0"; + // + // label19 + // + this.label19.AutoSize = true; + this.label19.Font = new System.Drawing.Font("宋体", 13.875F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label19.ForeColor = System.Drawing.Color.White; + this.label19.Location = new System.Drawing.Point(291, 188); + this.label19.Name = "label19"; + this.label19.Size = new System.Drawing.Size(37, 37); + this.label19.TabIndex = 14; + this.label19.Text = "/"; + // + // lbRivetR + // + this.lbRivetR.AutoSize = true; + this.lbRivetR.Font = new System.Drawing.Font("宋体", 13.875F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.lbRivetR.ForeColor = System.Drawing.Color.White; + this.lbRivetR.Location = new System.Drawing.Point(235, 188); + this.lbRivetR.Name = "lbRivetR"; + this.lbRivetR.Size = new System.Drawing.Size(37, 37); + this.lbRivetR.TabIndex = 13; + this.lbRivetR.Text = "0"; + // + // label21 + // + this.label21.AutoSize = true; + this.label21.Font = new System.Drawing.Font("宋体", 13.875F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label21.ForeColor = System.Drawing.Color.White; + this.label21.Location = new System.Drawing.Point(35, 188); + this.label21.Name = "label21"; + this.label21.Size = new System.Drawing.Size(171, 37); + this.label21.TabIndex = 12; + this.label21.Text = "铆钉(右)"; + // + // lbRivetLAll + // + this.lbRivetLAll.AutoSize = true; + this.lbRivetLAll.Font = new System.Drawing.Font("宋体", 13.875F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.lbRivetLAll.ForeColor = System.Drawing.Color.White; + this.lbRivetLAll.Location = new System.Drawing.Point(351, 139); + this.lbRivetLAll.Name = "lbRivetLAll"; + this.lbRivetLAll.Size = new System.Drawing.Size(37, 37); + this.lbRivetLAll.TabIndex = 11; + this.lbRivetLAll.Text = "0"; + // + // label23 + // + this.label23.AutoSize = true; + this.label23.Font = new System.Drawing.Font("宋体", 13.875F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label23.ForeColor = System.Drawing.Color.White; + this.label23.Location = new System.Drawing.Point(291, 139); + this.label23.Name = "label23"; + this.label23.Size = new System.Drawing.Size(37, 37); + this.label23.TabIndex = 10; + this.label23.Text = "/"; + // + // lbRivetL + // + this.lbRivetL.AutoSize = true; + this.lbRivetL.Font = new System.Drawing.Font("宋体", 13.875F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.lbRivetL.ForeColor = System.Drawing.Color.White; + this.lbRivetL.Location = new System.Drawing.Point(235, 139); + this.lbRivetL.Name = "lbRivetL"; + this.lbRivetL.Size = new System.Drawing.Size(37, 37); + this.lbRivetL.TabIndex = 9; + this.lbRivetL.Text = "0"; + // + // label25 + // + this.label25.AutoSize = true; + this.label25.Font = new System.Drawing.Font("宋体", 13.875F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label25.ForeColor = System.Drawing.Color.White; + this.label25.Location = new System.Drawing.Point(35, 139); + this.label25.Name = "label25"; + this.label25.Size = new System.Drawing.Size(171, 37); + this.label25.TabIndex = 8; + this.label25.Text = "铆钉(左)"; + // + // lbScrewRAll + // + this.lbScrewRAll.AutoSize = true; + this.lbScrewRAll.Font = new System.Drawing.Font("宋体", 13.875F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.lbScrewRAll.ForeColor = System.Drawing.Color.White; + this.lbScrewRAll.Location = new System.Drawing.Point(351, 70); + this.lbScrewRAll.Name = "lbScrewRAll"; + this.lbScrewRAll.Size = new System.Drawing.Size(37, 37); + this.lbScrewRAll.TabIndex = 7; + this.lbScrewRAll.Text = "0"; + // + // label15 + // + this.label15.AutoSize = true; + this.label15.Font = new System.Drawing.Font("宋体", 13.875F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label15.ForeColor = System.Drawing.Color.White; + this.label15.Location = new System.Drawing.Point(291, 70); + this.label15.Name = "label15"; + this.label15.Size = new System.Drawing.Size(37, 37); + this.label15.TabIndex = 6; + this.label15.Text = "/"; + // + // lbScrewR + // + this.lbScrewR.AutoSize = true; + this.lbScrewR.Font = new System.Drawing.Font("宋体", 13.875F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.lbScrewR.ForeColor = System.Drawing.Color.White; + this.lbScrewR.Location = new System.Drawing.Point(235, 70); + this.lbScrewR.Name = "lbScrewR"; + this.lbScrewR.Size = new System.Drawing.Size(37, 37); + this.lbScrewR.TabIndex = 5; + this.lbScrewR.Text = "0"; + // + // label17 + // + this.label17.AutoSize = true; + this.label17.Font = new System.Drawing.Font("宋体", 13.875F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label17.ForeColor = System.Drawing.Color.White; + this.label17.Location = new System.Drawing.Point(35, 70); + this.label17.Name = "label17"; + this.label17.Size = new System.Drawing.Size(171, 37); + this.label17.TabIndex = 4; + this.label17.Text = "螺钉(右)"; + // + // lbScrewLAll + // + this.lbScrewLAll.AutoSize = true; + this.lbScrewLAll.Font = new System.Drawing.Font("宋体", 13.875F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.lbScrewLAll.ForeColor = System.Drawing.Color.White; + this.lbScrewLAll.Location = new System.Drawing.Point(351, 17); + this.lbScrewLAll.Name = "lbScrewLAll"; + this.lbScrewLAll.Size = new System.Drawing.Size(37, 37); + this.lbScrewLAll.TabIndex = 3; + this.lbScrewLAll.Text = "0"; + // + // label8 + // + this.label8.AutoSize = true; + this.label8.Font = new System.Drawing.Font("宋体", 13.875F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label8.ForeColor = System.Drawing.Color.White; + this.label8.Location = new System.Drawing.Point(291, 17); + this.label8.Name = "label8"; + this.label8.Size = new System.Drawing.Size(37, 37); + this.label8.TabIndex = 2; + this.label8.Text = "/"; + // + // lbScrewL + // + this.lbScrewL.AutoSize = true; + this.lbScrewL.Font = new System.Drawing.Font("宋体", 13.875F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.lbScrewL.ForeColor = System.Drawing.Color.White; + this.lbScrewL.Location = new System.Drawing.Point(235, 17); + this.lbScrewL.Name = "lbScrewL"; + this.lbScrewL.Size = new System.Drawing.Size(37, 37); + this.lbScrewL.TabIndex = 1; + this.lbScrewL.Text = "0"; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Font = new System.Drawing.Font("宋体", 13.875F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label2.ForeColor = System.Drawing.Color.White; + this.label2.Location = new System.Drawing.Point(35, 17); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(171, 37); + this.label2.TabIndex = 0; + this.label2.Text = "螺钉(左)"; + // + // showHintTimer + // + this.showHintTimer.Interval = 2000; + this.showHintTimer.Tick += new System.EventHandler(this.showHintTimer_Tick); + // + // LoadScrewTimer + // + this.LoadScrewTimer.Enabled = true; + this.LoadScrewTimer.Interval = 1000; + this.LoadScrewTimer.Tick += new System.EventHandler(this.LoadScrewTimer_Tick); // - this.lbHint.AutoSize = true; - this.lbHint.Font = new System.Drawing.Font("宋体", 14.14286F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.lbHint.ForeColor = System.Drawing.Color.Red; - this.lbHint.Location = new System.Drawing.Point(31, 339); - this.lbHint.Name = "lbHint"; - this.lbHint.Size = new System.Drawing.Size(155, 34); - this.lbHint.TabIndex = 29; - this.lbHint.Text = "异常错误"; + // txtBarCode + // + this.txtBarCode.Font = new System.Drawing.Font("宋体", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.txtBarCode.Location = new System.Drawing.Point(33, 143); + this.txtBarCode.Name = "txtBarCode"; + this.txtBarCode.Size = new System.Drawing.Size(425, 53); + this.txtBarCode.TabIndex = 6; + this.txtBarCode.KeyDown += new System.Windows.Forms.KeyEventHandler(this.txtBarCode_KeyDown); + // + // txtBoxFocusTimer + // + this.txtBoxFocusTimer.Enabled = true; + this.txtBoxFocusTimer.Interval = 2000; + this.txtBoxFocusTimer.Tick += new System.EventHandler(this.txtBoxFocusTimer_Tick); // // FrmAssemble // - this.AutoScaleDimensions = new System.Drawing.SizeF(11F, 21F); + this.AutoScaleDimensions = new System.Drawing.SizeF(12F, 24F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(1948, 1346); + this.ClientSize = new System.Drawing.Size(2125, 1538); this.Controls.Add(this.tableLayoutPanel1); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; this.Name = "FrmAssemble"; this.Text = "FrmAssemble"; this.Load += new System.EventHandler(this.FrmAssemble_Load); @@ -658,11 +1022,12 @@ namespace PunchingMistake this.panel5.PerformLayout(); this.tableLayoutPanel4.ResumeLayout(false); this.panel10.ResumeLayout(false); - this.panel10.PerformLayout(); this.panel11.ResumeLayout(false); this.panel11.PerformLayout(); this.panel14.ResumeLayout(false); this.panel14.PerformLayout(); + this.panel18.ResumeLayout(false); + this.panel18.PerformLayout(); this.ResumeLayout(false); } @@ -685,7 +1050,7 @@ namespace PunchingMistake private System.Windows.Forms.Panel panel10; private System.Windows.Forms.Button btnPlanDown; private System.Windows.Forms.Button btnPlanUp; - private System.Windows.Forms.Button button6; + private System.Windows.Forms.Button btnPlanSearch; private System.Windows.Forms.Label label1; private System.Windows.Forms.Label label6; private System.Windows.Forms.Label label5; @@ -695,7 +1060,6 @@ namespace PunchingMistake private System.Windows.Forms.Label lbPartDesc; private System.Windows.Forms.Label lbPart; private System.Windows.Forms.Label lbPlan; - private System.Windows.Forms.TextBox txtBarCode; private System.Windows.Forms.Panel panel11; private System.Windows.Forms.Label lbClass; private System.Windows.Forms.Label label10; @@ -708,9 +1072,39 @@ namespace PunchingMistake private System.Windows.Forms.Label lbPlanQty; private System.Windows.Forms.Label lbCompleteQty; private System.Windows.Forms.Label lbBadQty; - private System.Windows.Forms.Button button5; + private System.Windows.Forms.Button btnPlanFinish; private System.Windows.Forms.Panel panel15; private System.Windows.Forms.Panel panel16; private System.Windows.Forms.Label lbHint; + private System.Windows.Forms.Panel panel17; + private System.Windows.Forms.Panel panel18; + private System.Windows.Forms.Label lbRivetRAll; + private System.Windows.Forms.Label label19; + private System.Windows.Forms.Label lbRivetR; + private System.Windows.Forms.Label label21; + private System.Windows.Forms.Label lbRivetLAll; + private System.Windows.Forms.Label label23; + private System.Windows.Forms.Label lbRivetL; + private System.Windows.Forms.Label label25; + private System.Windows.Forms.Label lbScrewRAll; + private System.Windows.Forms.Label label15; + private System.Windows.Forms.Label lbScrewR; + private System.Windows.Forms.Label label17; + private System.Windows.Forms.Label lbScrewLAll; + private System.Windows.Forms.Label label8; + private System.Windows.Forms.Label lbScrewL; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label lbIrlsAll; + private System.Windows.Forms.Label label27; + private System.Windows.Forms.Label lbIrls; + private System.Windows.Forms.Label label29; + private System.Windows.Forms.Label txtLinkState; + private System.Windows.Forms.Label label30; + private System.Windows.Forms.Label lbScanState; + private System.Windows.Forms.Label lbDisplay; + private System.Windows.Forms.Timer showHintTimer; + private System.Windows.Forms.Timer LoadScrewTimer; + private System.Windows.Forms.TextBox txtBarCode; + private System.Windows.Forms.Timer txtBoxFocusTimer; } } \ No newline at end of file diff --git a/PunchingMistake/FrmAssemble.cs b/PunchingMistake/FrmAssemble.cs index 8f01818..d4432b0 100644 --- a/PunchingMistake/FrmAssemble.cs +++ b/PunchingMistake/FrmAssemble.cs @@ -23,12 +23,34 @@ namespace PunchingMistake { public partial class FrmAssemble : Form { + private PlcInvoke _plcInvoke = null; private GridppReport Report = new GridppReport(); private string oneBarCode = "", _stationNo = "", stationId = ""; private UniqueBll _uniqueBll = new UniqueBll(); + private string _sjBarCode = string.Empty; + private string _partNo1 = string.Empty; + private string _partNo2 = string.Empty; + ///

+ /// 当前设备行数据ID + /// + private string _lineDataID = string.Empty; public FrmAssemble() { InitializeComponent(); + this.StartPosition = FormStartPosition.CenterScreen; + string plcRate = ConfigurationManager.AppSettings["刷新频率"] ; + + int rate = 0; + int.TryParse(plcRate, out rate); + if (rate == 0) + { + rate = 200; + } + + _plcInvoke = new PlcInvoke("BBMPT.Assemble", _stationNo); + _plcInvoke.ShowLinkInfo = ShowLinkResult; + _plcInvoke.ShowMessage = ShowMassege; + _plcInvoke.InitDev(rate); } private void FrmAssemble_Load(object sender, EventArgs e) @@ -39,6 +61,8 @@ namespace PunchingMistake Control.CheckForIllegalCrossThreadCalls = false; Thread t = new Thread(new ThreadStart(TimeGo)); t.Start(); + + LoadScreen(); } public void LoadScreen() @@ -48,11 +72,34 @@ namespace PunchingMistake { SetPage(dt); } - + if(string.IsNullOrEmpty(_lineDataID)) + { + if (this.Tag != null) + { + DataTable lineTable = Function2.GetPunchLineInfo(this.Tag.ToString(), _stationNo); + if (lineTable.Rows.Count > 0) + { + _lineDataID = lineTable.Rows[0]["ID"].ToString(); + _sjBarCode = lineTable.Rows[0]["SjBarCode"].ToString(); + _partNo1 = lineTable.Rows[0]["PartNo1"].ToString(); + _partNo2 = lineTable.Rows[0]["PartNo2"].ToString(); + ScanAll.barCode1 = lineTable.Rows[0]["barCode1"].ToString(); + ScanAll.barCode2 = lineTable.Rows[0]["barCode2"].ToString(); + ScanAll.barCode3 = lineTable.Rows[0]["barCode3"].ToString(); + ScanAll.barCode4 = lineTable.Rows[0]["barCode4"].ToString(); + ScanAll.barCode5 = lineTable.Rows[0]["barCode5"].ToString(); + ScanAll.barCode6 = lineTable.Rows[0]["barCode6"].ToString(); + _plcInvoke.SetLineID(_lineDataID); + } + + } + } + LoadScrewTimer_Tick(null, null); } public void SetPage(DataTable dt) { ClearPage(); + if (dt.Rows.Count > 0) { this.Tag = dt.Rows[0]["ID"].ToString(); @@ -71,7 +118,7 @@ namespace PunchingMistake } void ClearPage() { - lbStation.Text = ""; + //lbStation.Text = ""; lbPlan.Text = ""; lbPart.Text = ""; lbPartDesc.Text = ""; @@ -79,6 +126,16 @@ namespace PunchingMistake private void btnPlanUp_Click(object sender, EventArgs e) { + if (!string.IsNullOrEmpty(_lineDataID)) + { + DataTable lineTable = Function2.GetPunchLineInfo(_lineDataID); + if (lineTable.Rows.Count > 0) + { + MessageBox.Show("当前订单未完成,无法切换下一计划."); + return; + } + } + LoadPlanScreen(this.Tag?.ToString(), "上一计划"); txtBarCode.Select(); txtBarCode.Focus(); @@ -86,13 +143,22 @@ namespace PunchingMistake private void btnPlanDown_Click(object sender, EventArgs e) { + if (!string.IsNullOrEmpty(_lineDataID)) + { + DataTable lineTable = Function2.GetPunchLineInfo(_lineDataID); + if(lineTable.Rows.Count>0) + { + MessageBox.Show("当前订单未完成,无法切换下一计划."); + return; + } + } LoadPlanScreen(this.Tag?.ToString(), "下一计划"); + ClearScanData(true); txtBarCode.Select(); txtBarCode.Focus(); } public void LoadPlanScreen(string id, string plan) { - DataTable dt = Function2.GetProScreenPlan(id, _stationNo, plan); if (dt != null && dt.Rows.Count > 0) { @@ -121,74 +187,279 @@ namespace PunchingMistake { try { - WriteHint("", true); + if (e.KeyCode != Keys.Enter) + { + return; + } + WriteHint("", true); + string barcode = txtBarCode.Text?.Trim(); + if (string.IsNullOrEmpty(barcode)) + { + throw new Exception("扫描条码为空!"); + } + if (string.IsNullOrEmpty(this.Tag?.ToString())) { throw new Exception("当前没有生产计划."); } - ScanBarCode(); + if (barcode == "88888888") + { + if (string.IsNullOrEmpty(_sjBarCode)) + { + throw new Exception("请先扫描半成品塑件条码!"); + } + else if (string.IsNullOrEmpty(_partNo1)) + { + throw new Exception("总成零件号为空,无法保存!"); + } + else if (string.IsNullOrEmpty(_partNo2)) + { + throw new Exception("半成品零件号为空,无法保存!"); + } + if(ScrewCompleteVerify() == false) + { + throw new Exception("螺钉铆钉未打够数量,无法保存!"); + } + + + SaveScanRecord(_sjBarCode, _partNo1, _partNo2); + Function2. DeleteLineData(_lineDataID); + ClearScanData(true); + SentToPlc(true, _lineDataID); + + ShowHint(true); + WriteHint("保存成功", true); + return; + } + else + { + _sjBarCode = txtBarCode.Text?.Trim(); + ScanBarCode(); + } + } catch(Exception ex) { + //ClearScanData(false); + + ShowHint(false); WriteHint(ex.Message,false); } + //finally + //{ + // txtBarCode.Focus(); + // txtBarCode.SelectAll(); + //} } + void ClearScanData(bool isAllClear) + { + _sjBarCode = string.Empty; + _partNo1 = string.Empty; + _partNo2 = string.Empty; + + ScanAll.barCode1 = string.Empty; + ScanAll.barCode2 = string.Empty; + ScanAll.barCode3 = string.Empty; + ScanAll.barCode4 = string.Empty; + ScanAll.barCode5 = string.Empty; + ScanAll.barCode6 = string.Empty; + + if(isAllClear == true) + { + lbScrewL.Text = "0"; + lbScrewR.Text = "0"; + lbScrewLAll.Text = "0"; + lbScrewRAll.Text = "0"; + + lbRivetL.Text = "0"; + lbRivetR.Text = "0"; + lbRivetLAll.Text = "0"; + lbRivetRAll.Text = "0"; + + lbIrls.Text = "0"; + lbIrlsAll.Text = "0"; + + } + } + private void ScanBarCode() { - string barCode = txtBarCode.Text?.Trim(); - if (string.IsNullOrEmpty(barCode)) + + bool verifyPreProcess = Function2.GetVerifyPreProcess(); + if(verifyPreProcess == true) { - throw new Exception("扫描条码为空!"); + bool isPass = Function2.GetInspectResultCheck(_sjBarCode); + if(isPass == false) + { + throw new Exception($"扫描条码[{_sjBarCode}],未通过上线前质检工序,无法使用."); + } + } + + DataTable productTable = PartScanVerify(); + + _partNo2 = productTable.Rows[0]["PartNo"].ToString(); + _partNo1 = Function2.GetAssemblePartCode(_partNo2, _stationNo); + + if (lbPart.Text?.ToLower() != _partNo1?.ToLower()) + { + throw new Exception($"扫描半成品码在BOM中对应的总成零件号[{_partNo1}]与当前计划的零件号[{lbPart.Text}]不匹配."); + } - if (barCode.Length != 20) + DataTable bomTable = Function2.GetBomTable(_partNo1, _stationNo); + + //需要校验的关键件 + List list = bomTable.AsEnumerable().Where(p => p.Field("IsChecked") == true).ToList(); + //螺钉铆钉数量BOM集合 + List list2 = bomTable.AsEnumerable().Where(p => p.Field("PartDesc2").Contains("螺钉") || p.Field("PartDesc2").Contains("铆钉") || p.Field("PartDesc2").Contains("虹膜")).ToList(); + if (list.Count > 0) + { + //需要校验关键件 + FrmProScreen3 frm = new FrmProScreen3(list); + frm.ScanCompleted += (rst) => + { + if(rst == false) + { + ClearScanData(true); + WriteHint("扫描关键件已取消", false); + return; + } + if (list2.Count > 0) + { + //接收到螺钉信号后再保存 + SendScrewRivet(bomTable, list2, _sjBarCode); + } + else + { + _lineDataID = Function2.SaveLineInfo(_sjBarCode, this.Tag?.ToString(), _stationNo, _partNo1, _partNo2, 0, 0, 0, 0, 0); + + WriteHint("验证成功,请扫完成码保存", true); + //SaveScanRecord(barCode, partNo1, partNo2); + } + }; + frm.ShowDialog(); + } + else + { + if (list2.Count > 0) + { + //接收到螺钉信号后再保存 + SendScrewRivet(bomTable, list2, _sjBarCode); + } + else + { + _lineDataID = Function2.SaveLineInfo(_sjBarCode, this.Tag?.ToString(), _stationNo, _partNo1, _partNo2, 0, 0, 0, 0, 0); + WriteHint("验证成功,请扫完成码保存", true); + //SaveScanRecord(barCode, partNo1, partNo2); + } + } + } + + /// + /// 扫描半成品的校验 + /// + /// + DataTable PartScanVerify() + { + if (_sjBarCode.Length != 20) { throw new Exception("扫描条码格式不正确,请扫描20位塑件条码!"); } - DataTable stockInTable = Function2.SearchStockIn(barCode); + DataTable stockInTable = Function2.SearchStockIn(_sjBarCode); if (stockInTable.Rows.Count == 0) { throw new Exception("扫描半成品码没有喷涂完工记录,无法使用."); } - DataTable punchTable = Function2.SearchPunchCodeRecord(barCode); + DataTable punchTable = Function2.SearchPunchCodeRecord(_sjBarCode); if (punchTable.Rows.Count > 0) { if (punchTable.Rows[0]["Flag"].ToString() == "0" || punchTable.Rows[0]["Flag"].ToString() == "1") - { + { throw new Exception("扫描半成品码已存在装配记录,无法使用."); } } - DataTable productTable = Function2.GetProductInfo(barCode.Substring(0, 10)); + DataTable productTable = Function2.GetProductInfo(_sjBarCode.Substring(0, 10)); if (productTable.Rows.Count == 0) { - throw new Exception($"扫描半成品码的存货代码[{barCode.Substring(0, 10)}]在零件表找不对对应零件号,请检查系统维护."); + throw new Exception($"扫描半成品码的存货代码[{_sjBarCode.Substring(0, 10)}]在零件表找不对对应零件号,请检查系统维护."); } - string partNo2 = productTable.Rows[0]["PartNo"].ToString(); - string partNo1 = Function2.GetAssemblePartCode(partNo2, _stationNo); - - if (lbPart.Text?.ToLower() != partNo1?.ToLower()) - { - throw new Exception($"扫描半成品码在BOM中对应的总成零件号[{partNo1}]与当前计划的零件号[{lbPart.Text}]不匹配."); - - } - DataTable bomTable = Function2.GetBomTable(partNo1, _stationNo); + return productTable; + } + bool ScrewCompleteVerify() + { + int screwL = 0, screwR = 0, rivetL = 0, rivetR = 0, irls = 0; + int screwLAll = 0, screwRAll = 0, rivetLAll = 0, rivetRAll = 0, irlsAll = 0; - List list = bomTable.AsEnumerable().Where(p => p.Field("IsChecked") == 1).ToList(); - if (list.Count > 0) - { - //需要校验关键件 + int.TryParse(lbScrewL.Text, out screwL); + int.TryParse(lbScrewR.Text, out screwR); + int.TryParse(lbRivetL.Text, out rivetL); + int.TryParse(lbRivetR.Text, out rivetR); + int.TryParse(lbIrls.Text, out irls); + int.TryParse(lbScrewLAll.Text, out screwLAll); + int.TryParse(lbScrewRAll.Text, out screwRAll); + int.TryParse(lbRivetLAll.Text, out rivetLAll); + int.TryParse(lbRivetRAll.Text, out rivetRAll); + int.TryParse(lbIrlsAll.Text, out irlsAll); + if (screwL < screwLAll) + return false; + if (screwR < screwRAll) + return false; + if (rivetL < rivetLAll) + return false; + if (rivetR < rivetRAll) + return false; + if (irls < irlsAll) + return false; + return true; + } - } - else + void SendScrewRivet(DataTable bomTable, List list2 ,string barCode) + { + if (list2.Count > 0) { - SaveScanRecord(barCode,partNo1, partNo2); - } - - + string sjBarCode = barCode; + //螺钉数量 + int leftQty1 = 0; + int rightQty1 = 0; + //铆钉数量 + int leftQty2 = 0; + int rightQty2 = 0; + //虹膜 + int leftQty3 = 0; + foreach (DataRow dr in list2) + { + string desc = dr["PartDesc2"].ToString(); + if (desc.Contains("螺钉")) + { + leftQty1 = int.Parse(dr["LeftCount"].ToString()); + rightQty1 = int.Parse(dr["RightCount"].ToString()); + lbScrewLAll.Text = leftQty1.ToString(); + lbScrewRAll.Text = rightQty1.ToString(); + } + if (desc.Contains("铆钉")) + { + leftQty2 = int.Parse(dr["LeftCount"].ToString()); + rightQty2 = int.Parse(dr["RightCount"].ToString()); + lbRivetLAll.Text = leftQty2.ToString(); + lbRivetRAll.Text = rightQty2.ToString(); + } + if (desc.Contains("虹膜")) + { + leftQty3 = int.Parse(dr["LeftCount"].ToString()); + lbIrlsAll.Text = leftQty3.ToString(); + } + } + _lineDataID = Function2.SaveLineInfo(sjBarCode, this.Tag?.ToString(),_stationNo,_partNo1,_partNo2, leftQty2, rightQty2, leftQty1, rightQty1, leftQty3); + SentToPlc(false,_lineDataID); + } + } + private void SentToPlc(bool isInit, string lineID) + { + _plcInvoke.SendToPLC(isInit, lineID); } private void SaveScanRecord(string barcode,string partNo1,string partNo2) @@ -198,10 +469,10 @@ namespace PunchingMistake // string serailNo = "0001"; string assembleBarCode = _uniqueBll.GetPunchSerialNo(partNo1, 4,ref serailNo); - int res = Function2.SavePartAndProduct_New(barcode, partNo2, partNo1, - lbPlan.Text.Trim(), lbClass.Text, this.Tag?.ToString(), assembleBarCode, + int res = Function2.SavePartAndProduct_New(barcode, partNo1, partNo2, assembleBarCode, + lbPlan.Text.Trim(), lbClass.Text, this.Tag?.ToString(), serailNo, ScanAll.barCode1, ScanAll.barCode2, ScanAll.barCode3, - ScanAll.barCode4, ScanAll.barCode5, ScanAll.barCode6, stationId, ConfigurationManager.AppSettings["StationDescription"]); + ScanAll.barCode4, ScanAll.barCode5, ScanAll.barCode6, _stationNo, ConfigurationManager.AppSettings["StationDescription"]); Function2.SaveZcCode(barcode, partNo1); Function2.AddCompleteCount(this.Tag?.ToString()); @@ -220,92 +491,199 @@ namespace PunchingMistake } private void PrintAssembleBarCode(string BarCode, string PartNo, string PartName, string SerialNo ) { - string filename = GetPrintFileName(); - DataTable headTable = new DataTable(); - headTable.Columns.Add("BarCode"); - headTable.Columns.Add("PartName"); - headTable.Columns.Add("PartNo"); - headTable.Columns.Add("BatchNo"); - headTable.Columns.Add("SerialNo"); - headTable.Columns.Add("Line"); - DataRow row = headTable.NewRow(); + Printer.PrintPunchAssembleBarCode(BarCode, PartNo, PartName, SerialNo); - row["BarCode"] = BarCode; - row["PartNo"] = PartNo; - row["PartName"] = PartName; - row["BatchNo"] = DateTime.Now.ToString("yyMMdd"); - row["SerialNo"] = SerialNo; - row["Line"] = ConfigurationManager.AppSettings["Line"]; - string printBoxName = "Printer1"; - - string reportName = ConfigurationManager.AppSettings[printBoxName].ToString(); - headTable.Rows.Add(row); - - ReportHelper rp = new ReportHelper(filename, headTable, null, (int)GRPaperOrientation.grpoLandscape, 1, reportName); - - rp.Report.Print(false); } - string GetPrintFileName() + + + void WriteHint(string txt,bool isOk) + { + lbHint.ForeColor = Color.LimeGreen; + if (!isOk) + { + lbHint.ForeColor = Color.Red; + } + lbHint.Text = txt; + } + + private void label10_DoubleClick(object sender, EventArgs e) + { + this.Close(); + } + + private void TimeGo() + { + System.Timers.Timer timer = new System.Timers.Timer(); + timer.Interval = 10; + timer.Enabled = true; + timer.Elapsed += new System.Timers.ElapsedEventHandler(timer_Tick); + } + + private void timer_Tick(object sender, EventArgs e) { - if(Program.station == "F01") + try { - return System.AppDomain.CurrentDomain.BaseDirectory + "/Report/总成条码MI.grf"; + lbPartDesc.Text = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); + Thread.Sleep(500); } + catch (Exception ex) + { - return System.AppDomain.CurrentDomain.BaseDirectory + "/Report/总成条码MI.grf"; + } } - string GetSerialNo(string partNo1) + void ShowLinkResult(bool isSuccess, bool isWriteLog) { - DateTime time = DateTime.Now; - string tmp = Function2.SerialNo(partNo1, time.ToString("yyMMdd")); - string sn = ""; - if (tmp == "") + if (isSuccess) { - sn = GetFullBarCode(partNo1, "0001"); + txtLinkState.Text = "连接成功"; + if (isWriteLog) + WriteLog("连接成功"); + txtLinkState.BackColor = Color.Green; + // ShowScanResult(false); } else { - sn = tmp.Substring(0, tmp.Length - 4) + - (int.Parse(tmp.Substring(tmp.Length - 4, 4)) + 1).ToString() - .PadLeft(4, '0'); + txtLinkState.Text = "连接失败"; + if (isWriteLog) + WriteLog("连接失败"); + txtLinkState.BackColor = Color.Red; + //ShowScanResult(false); } - return sn; } - string GetFullBarCode(string partNo,string serialNo) + + private void btnPlanSearch_Click(object sender, EventArgs e) { - DateTime time = DateTime.Now; - return partNo + "." + time.ToString("yyMMdd") + ";" + serialNo + ";S104;;.1;" + time.ToString("yyyy/MM/dd") + ";"; + FrmPlanSeach frm = new FrmPlanSeach(this.Tag.ToString()); + frm.ShowDialog(); } - void WriteHint(string txt,bool isOk) + private void btnPlanFinish_Click(object sender, EventArgs e) { - lbHint.ForeColor = Color.LimeGreen; - if (!isOk) + if (MessageBox.Show("计划结束后将不能再进行切换生产,确认将当前计划设置为结束状态?", "确认", MessageBoxButtons.OKCancel) == DialogResult.Cancel) + return; + string planID = this.Tag?.ToString(); + if (string.IsNullOrEmpty(planID)) { - lbHint.ForeColor = Color.Red; + MessageBox.Show("计划信息错误,当前没有正在执行的计划."); + return; + } + else + { + if (!string.IsNullOrEmpty(_lineDataID)) + { + DataTable lineTable = Function2.GetPunchLineInfo(_lineDataID); + if (lineTable.Rows.Count > 0) + { + MessageBox.Show("当前订单未完成,无法结束当前计划."); + return; + } + } + + Function2.UpdatePlanState("3", planID); + ClearPage(); + ClearScanData(true); + MessageBox.Show("设置成功"); + LoadScreen(); } - lbHint.Text = txt; } - private void TimeGo() + + private void showHintTimer_Tick(object sender, EventArgs e) { - System.Timers.Timer timer = new System.Timers.Timer(); - timer.Interval = 10; - timer.Enabled = true; - timer.Elapsed += new System.Timers.ElapsedEventHandler(timer_Tick); + showHintTimer.Enabled = false; + lbDisplay.Visible = false; } - private void timer_Tick(object sender, EventArgs e) + /// + /// 螺钉铆钉刷新 + /// + /// + /// + private void LoadScrewTimer_Tick(object sender, EventArgs e) + { + if (!string.IsNullOrEmpty(_lineDataID)) + { + DataTable dt = Function2.GetPunchLineInfo(_lineDataID); + if (dt.Rows.Count > 0) + { + DataRow dr = dt.Rows[0]; + lbScrewL.Text = dr["LeftScrew1"].ToString(); + lbScrewR.Text = dr["RightScrew1"].ToString(); + lbRivetL.Text = dr["LeftRivet1"].ToString(); + lbRivetR.Text = dr["RightRivet1"].ToString(); + lbIrls.Text = dr["IrIs"].ToString(); + + lbScrewLAll.Text = dr["LeftScrew1All"].ToString(); + lbScrewRAll.Text = dr["RightScrew1All"].ToString(); + lbRivetLAll.Text = dr["LeftRivet1All"].ToString(); + lbRivetRAll.Text = dr["RightRivet1All"].ToString(); + lbIrlsAll.Text = dr["IrIsAll"].ToString(); + } + } + } + + void ShowMassege(string txt, bool isOK) + { + if (isOK) + { + lbScanState.ForeColor = Color.Green; + } + else + { + lbScanState.ForeColor = Color.Red; + } + lbScanState.Text = txt; + } + public void WriteLog(string log) { try { - lbPartDesc.Text = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); - Thread.Sleep(500); + //this.lstState.Invoke(onMessage, log); } - catch (Exception ex) + catch { } + } + + private void txtBoxFocusTimer_Tick(object sender, EventArgs e) + { + lbClass.Text = Function3.GetWorkClass(); + + txtBarCode.Focus(); + txtBarCode.SelectAll(); + } + + /// + /// 显示OK和NG 以及提示音 + /// + /// + private void ShowHint(bool isOk) + { + if (isOk) + { + lbDisplay.Text = "OK"; + lbDisplay.ForeColor = Color.Lime; + + } + else { + lbDisplay.Text = "NG"; + lbDisplay.ForeColor = Color.Red; + } + Play(isOk); + lbDisplay.Visible = true; + showHintTimer.Enabled = true; + } + void Play(bool isOK) + { + if (isOK) + { + PlaySound.PlaySounds.Play(AppDomain.CurrentDomain.BaseDirectory + "Images\\正确.wav"); } + else + { + PlaySound.PlaySounds.Play(AppDomain.CurrentDomain.BaseDirectory + "Images\\错误.wav"); + } } + } } diff --git a/PunchingMistake/FrmAssemble.resx b/PunchingMistake/FrmAssemble.resx index e335a71..5fc47dd 100644 --- a/PunchingMistake/FrmAssemble.resx +++ b/PunchingMistake/FrmAssemble.resx @@ -1036,4 +1036,13 @@ gg== + + 17, 17 + + + 268, 17 + + + 534, 17 + \ No newline at end of file diff --git a/PunchingMistake/FrmLogin.Designer.cs b/PunchingMistake/FrmLogin.Designer.cs index e29579a..42f4c2a 100644 --- a/PunchingMistake/FrmLogin.Designer.cs +++ b/PunchingMistake/FrmLogin.Designer.cs @@ -45,10 +45,10 @@ this.label1.AutoSize = true; this.label1.BackColor = System.Drawing.Color.White; this.label1.Font = new System.Drawing.Font("宋体", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.label1.Location = new System.Drawing.Point(396, 340); - this.label1.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0); + this.label1.Location = new System.Drawing.Point(432, 389); + this.label1.Margin = new System.Windows.Forms.Padding(7, 0, 7, 0); this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(117, 34); + this.label1.Size = new System.Drawing.Size(131, 38); this.label1.TabIndex = 0; this.label1.Text = "用户名"; // @@ -57,31 +57,31 @@ this.label2.AutoSize = true; this.label2.BackColor = System.Drawing.Color.White; this.label2.Font = new System.Drawing.Font("宋体", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.label2.Location = new System.Drawing.Point(396, 432); - this.label2.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0); + this.label2.Location = new System.Drawing.Point(432, 494); + this.label2.Margin = new System.Windows.Forms.Padding(7, 0, 7, 0); this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(83, 34); + this.label2.Size = new System.Drawing.Size(93, 38); this.label2.TabIndex = 1; this.label2.Text = "密码"; // // textBox1 // this.textBox1.Font = new System.Drawing.Font("宋体", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.textBox1.Location = new System.Drawing.Point(543, 324); - this.textBox1.Margin = new System.Windows.Forms.Padding(6, 5, 6, 5); + this.textBox1.Location = new System.Drawing.Point(592, 370); + this.textBox1.Margin = new System.Windows.Forms.Padding(7, 6, 7, 6); this.textBox1.Name = "textBox1"; - this.textBox1.Size = new System.Drawing.Size(288, 45); + this.textBox1.Size = new System.Drawing.Size(314, 51); this.textBox1.TabIndex = 2; this.textBox1.Click += new System.EventHandler(this.textBox1_Click); // // textBox2 // this.textBox2.Font = new System.Drawing.Font("宋体", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.textBox2.Location = new System.Drawing.Point(543, 432); - this.textBox2.Margin = new System.Windows.Forms.Padding(6, 5, 6, 5); + this.textBox2.Location = new System.Drawing.Point(592, 494); + this.textBox2.Margin = new System.Windows.Forms.Padding(7, 6, 7, 6); this.textBox2.Name = "textBox2"; this.textBox2.PasswordChar = '*'; - this.textBox2.Size = new System.Drawing.Size(288, 45); + this.textBox2.Size = new System.Drawing.Size(314, 51); this.textBox2.TabIndex = 3; this.textBox2.Click += new System.EventHandler(this.textBox2_Click); // @@ -89,10 +89,10 @@ // this.button1.BackColor = System.Drawing.Color.LightSkyBlue; this.button1.Font = new System.Drawing.Font("宋体", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.button1.Location = new System.Drawing.Point(424, 536); - this.button1.Margin = new System.Windows.Forms.Padding(6, 5, 6, 5); + this.button1.Location = new System.Drawing.Point(463, 613); + this.button1.Margin = new System.Windows.Forms.Padding(7, 6, 7, 6); this.button1.Name = "button1"; - this.button1.Size = new System.Drawing.Size(154, 66); + this.button1.Size = new System.Drawing.Size(168, 75); this.button1.TabIndex = 4; this.button1.Text = "登录"; this.button1.UseVisualStyleBackColor = false; @@ -102,10 +102,10 @@ // this.button2.BackColor = System.Drawing.Color.LightSkyBlue; this.button2.Font = new System.Drawing.Font("宋体", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.button2.Location = new System.Drawing.Point(710, 536); - this.button2.Margin = new System.Windows.Forms.Padding(6, 5, 6, 5); + this.button2.Location = new System.Drawing.Point(775, 613); + this.button2.Margin = new System.Windows.Forms.Padding(7, 6, 7, 6); this.button2.Name = "button2"; - this.button2.Size = new System.Drawing.Size(152, 66); + this.button2.Size = new System.Drawing.Size(166, 75); this.button2.TabIndex = 5; this.button2.Text = "取消"; this.button2.UseVisualStyleBackColor = false; @@ -116,10 +116,10 @@ this.pictureBox1.Dock = System.Windows.Forms.DockStyle.Fill; this.pictureBox1.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox1.Image"))); this.pictureBox1.Location = new System.Drawing.Point(0, 0); - this.pictureBox1.Margin = new System.Windows.Forms.Padding(6, 5, 6, 5); + this.pictureBox1.Margin = new System.Windows.Forms.Padding(7, 6, 7, 6); this.pictureBox1.Name = "pictureBox1"; - this.pictureBox1.Size = new System.Drawing.Size(1289, 793); - this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; + this.pictureBox1.Size = new System.Drawing.Size(1348, 905); + this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; this.pictureBox1.TabIndex = 6; this.pictureBox1.TabStop = false; // @@ -129,17 +129,17 @@ this.lbtip.BackColor = System.Drawing.Color.White; this.lbtip.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.lbtip.ForeColor = System.Drawing.Color.Red; - this.lbtip.Location = new System.Drawing.Point(387, 494); + this.lbtip.Location = new System.Drawing.Point(422, 565); this.lbtip.Name = "lbtip"; - this.lbtip.Size = new System.Drawing.Size(58, 21); + this.lbtip.Size = new System.Drawing.Size(62, 24); this.lbtip.TabIndex = 7; this.lbtip.Text = " "; // // FrmLogin // - this.AutoScaleDimensions = new System.Drawing.SizeF(11F, 21F); + this.AutoScaleDimensions = new System.Drawing.SizeF(12F, 24F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(1289, 793); + this.ClientSize = new System.Drawing.Size(1348, 905); this.Controls.Add(this.lbtip); this.Controls.Add(this.label2); this.Controls.Add(this.textBox1); @@ -148,7 +148,8 @@ this.Controls.Add(this.button2); this.Controls.Add(this.label1); this.Controls.Add(this.pictureBox1); - this.Margin = new System.Windows.Forms.Padding(6, 5, 6, 5); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; + this.Margin = new System.Windows.Forms.Padding(7, 6, 7, 6); this.Name = "FrmLogin"; this.Text = "登录"; this.Load += new System.EventHandler(this.FrmLogin_Load); diff --git a/PunchingMistake/FrmPlanSeach.Designer.cs b/PunchingMistake/FrmPlanSeach.Designer.cs new file mode 100644 index 0000000..c39e8c3 --- /dev/null +++ b/PunchingMistake/FrmPlanSeach.Designer.cs @@ -0,0 +1,270 @@ + +namespace PunchingMistake +{ + partial class FrmPlanSeach + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); + this.panel1 = new System.Windows.Forms.Panel(); + this.btnRePrint = new System.Windows.Forms.Button(); + this.txtBarCode = new System.Windows.Forms.TextBox(); + this.label2 = new System.Windows.Forms.Label(); + this.label3 = new System.Windows.Forms.Label(); + this.date1 = new System.Windows.Forms.DateTimePicker(); + this.date2 = new System.Windows.Forms.DateTimePicker(); + this.btnSearch = new System.Windows.Forms.Button(); + this.dataGridView1 = new System.Windows.Forms.DataGridView(); + this.塑件条码 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.半成品零件号 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.总成条码 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.工位 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.计划编号 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.班组 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.质量状态 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.tableLayoutPanel1.SuspendLayout(); + this.panel1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).BeginInit(); + this.SuspendLayout(); + // + // tableLayoutPanel1 + // + this.tableLayoutPanel1.ColumnCount = 1; + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel1.Controls.Add(this.panel1, 0, 0); + this.tableLayoutPanel1.Controls.Add(this.dataGridView1, 0, 1); + this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0); + this.tableLayoutPanel1.Name = "tableLayoutPanel1"; + this.tableLayoutPanel1.RowCount = 3; + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 50F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 40F)); + this.tableLayoutPanel1.Size = new System.Drawing.Size(1807, 983); + this.tableLayoutPanel1.TabIndex = 0; + // + // panel1 + // + this.panel1.Controls.Add(this.btnSearch); + this.panel1.Controls.Add(this.date2); + this.panel1.Controls.Add(this.date1); + this.panel1.Controls.Add(this.label3); + this.panel1.Controls.Add(this.txtBarCode); + this.panel1.Controls.Add(this.label2); + this.panel1.Controls.Add(this.btnRePrint); + this.panel1.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel1.Location = new System.Drawing.Point(3, 3); + this.panel1.Name = "panel1"; + this.panel1.Size = new System.Drawing.Size(1801, 44); + this.panel1.TabIndex = 0; + // + // btnRePrint + // + this.btnRePrint.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left))); + this.btnRePrint.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnRePrint.Location = new System.Drawing.Point(3, -3); + this.btnRePrint.Name = "btnRePrint"; + this.btnRePrint.Size = new System.Drawing.Size(137, 55); + this.btnRePrint.TabIndex = 0; + this.btnRePrint.Text = "补 打"; + this.btnRePrint.UseVisualStyleBackColor = true; + this.btnRePrint.Click += new System.EventHandler(this.btnRePrint_Click); + // + // txtBarCode + // + this.txtBarCode.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.txtBarCode.Location = new System.Drawing.Point(989, 2); + this.txtBarCode.Name = "txtBarCode"; + this.txtBarCode.Size = new System.Drawing.Size(200, 35); + this.txtBarCode.TabIndex = 4; + // + // label2 + // + this.label2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(925, 8); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(58, 24); + this.label2.TabIndex = 3; + this.label2.Text = "条码"; + // + // label3 + // + this.label3.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(1200, 7); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(58, 24); + this.label3.TabIndex = 5; + this.label3.Text = "时间"; + // + // date1 + // + this.date1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.date1.Location = new System.Drawing.Point(1259, 4); + this.date1.Name = "date1"; + this.date1.Size = new System.Drawing.Size(200, 35); + this.date1.TabIndex = 6; + // + // date2 + // + this.date2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.date2.Location = new System.Drawing.Point(1465, 4); + this.date2.Name = "date2"; + this.date2.Size = new System.Drawing.Size(200, 35); + this.date2.TabIndex = 7; + // + // btnSearch + // + this.btnSearch.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Right))); + this.btnSearch.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnSearch.Location = new System.Drawing.Point(1667, -3); + this.btnSearch.Name = "btnSearch"; + this.btnSearch.Size = new System.Drawing.Size(137, 47); + this.btnSearch.TabIndex = 8; + this.btnSearch.Text = "查询"; + this.btnSearch.UseVisualStyleBackColor = true; + this.btnSearch.Click += new System.EventHandler(this.btnSearch_Click); + // + // dataGridView1 + // + this.dataGridView1.AllowUserToAddRows = false; + this.dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dataGridView1.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.塑件条码, + this.半成品零件号, + this.总成条码, + this.工位, + this.计划编号, + this.班组, + this.质量状态}); + this.dataGridView1.Dock = System.Windows.Forms.DockStyle.Fill; + this.dataGridView1.Location = new System.Drawing.Point(3, 53); + this.dataGridView1.Name = "dataGridView1"; + this.dataGridView1.ReadOnly = true; + this.dataGridView1.RowHeadersWidth = 10; + this.dataGridView1.RowTemplate.Height = 37; + this.dataGridView1.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; + this.dataGridView1.Size = new System.Drawing.Size(1801, 887); + this.dataGridView1.TabIndex = 1; + // + // 塑件条码 + // + this.塑件条码.DataPropertyName = "barcode"; + this.塑件条码.HeaderText = "塑件条码"; + this.塑件条码.MinimumWidth = 10; + this.塑件条码.Name = "塑件条码"; + this.塑件条码.ReadOnly = true; + // + // 半成品零件号 + // + this.半成品零件号.DataPropertyName = "BcpID"; + this.半成品零件号.HeaderText = "半成品零件号"; + this.半成品零件号.MinimumWidth = 10; + this.半成品零件号.Name = "半成品零件号"; + this.半成品零件号.ReadOnly = true; + // + // 总成条码 + // + this.总成条码.DataPropertyName = "ZcBarCode"; + this.总成条码.HeaderText = "总成条码"; + this.总成条码.MinimumWidth = 10; + this.总成条码.Name = "总成条码"; + this.总成条码.ReadOnly = true; + this.总成条码.Width = 200; + // + // 工位 + // + this.工位.DataPropertyName = "StationNo"; + this.工位.HeaderText = "工位"; + this.工位.MinimumWidth = 10; + this.工位.Name = "工位"; + this.工位.ReadOnly = true; + // + // 计划编号 + // + this.计划编号.DataPropertyName = "OrderNo"; + this.计划编号.HeaderText = "计划编号"; + this.计划编号.MinimumWidth = 10; + this.计划编号.Name = "计划编号"; + this.计划编号.ReadOnly = true; + // + // 班组 + // + this.班组.DataPropertyName = "WorkClass"; + this.班组.HeaderText = "班组"; + this.班组.MinimumWidth = 10; + this.班组.Name = "班组"; + this.班组.ReadOnly = true; + // + // 质量状态 + // + this.质量状态.DataPropertyName = "Flag"; + this.质量状态.HeaderText = "质量状态"; + this.质量状态.MinimumWidth = 10; + this.质量状态.Name = "质量状态"; + this.质量状态.ReadOnly = true; + // + // FrmPlanSeach + // + this.AutoScaleDimensions = new System.Drawing.SizeF(12F, 24F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(1807, 983); + this.Controls.Add(this.tableLayoutPanel1); + this.Name = "FrmPlanSeach"; + this.Text = "计划数据查询补打"; + this.tableLayoutPanel1.ResumeLayout(false); + this.panel1.ResumeLayout(false); + this.panel1.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; + private System.Windows.Forms.Panel panel1; + private System.Windows.Forms.Button btnRePrint; + private System.Windows.Forms.TextBox txtBarCode; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.Button btnSearch; + private System.Windows.Forms.DateTimePicker date2; + private System.Windows.Forms.DateTimePicker date1; + private System.Windows.Forms.DataGridView dataGridView1; + private System.Windows.Forms.DataGridViewTextBoxColumn 塑件条码; + private System.Windows.Forms.DataGridViewTextBoxColumn 半成品零件号; + private System.Windows.Forms.DataGridViewTextBoxColumn 总成条码; + private System.Windows.Forms.DataGridViewTextBoxColumn 工位; + private System.Windows.Forms.DataGridViewTextBoxColumn 计划编号; + private System.Windows.Forms.DataGridViewTextBoxColumn 班组; + private System.Windows.Forms.DataGridViewTextBoxColumn 质量状态; + } +} \ No newline at end of file diff --git a/PunchingMistake/FrmPlanSeach.cs b/PunchingMistake/FrmPlanSeach.cs new file mode 100644 index 0000000..e4f4afc --- /dev/null +++ b/PunchingMistake/FrmPlanSeach.cs @@ -0,0 +1,54 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace PunchingMistake +{ + public partial class FrmPlanSeach : Form + { + private string _planID = string.Empty; + + public FrmPlanSeach(string planID) + { + InitializeComponent(); + dataGridView1.AutoGenerateColumns = false; + this.StartPosition = FormStartPosition.CenterParent; + _planID = planID; + date1.Value = DateTime.Now.AddDays(-1); + btnSearch_Click(null, null); + } + + private void btnSearch_Click(object sender, EventArgs e) + { + string d1 = date1.Value.ToString("yyyy-MM-dd 00:00:00:000"); + string d2 = date2.Value.ToString("yyyy-MM-dd 23:59:59:000"); + + DataTable dt = Function2.GetPunchRecord(_planID, txtBarCode.Text, d1, d2); + dataGridView1.DataSource = dt; + } + + private void btnRePrint_Click(object sender, EventArgs e) + { + if( dataGridView1.SelectedRows.Count == 0) + { + MessageBox.Show("请先选择数据."); + return; + } + DataRow row = (dataGridView1.SelectedRows[0].DataBoundItem as DataRowView).Row; + string partName = Function2.GetProductName(row["ZcPartNo"].ToString()); + if (string.IsNullOrEmpty(partName)) + { + MessageBox.Show($"总成零件号[{row["ZcPartNo"].ToString()}]在零件表中不存在."); + return; + } + Printer.PrintPunchAssembleBarCode(row["ZcBarCode"].ToString(), row["ZcPartNo"].ToString(), partName, row["SerialNo"].ToString()); + + } + } +} diff --git a/PunchingMistake/FrmPlanSeach.resx b/PunchingMistake/FrmPlanSeach.resx new file mode 100644 index 0000000..6870264 --- /dev/null +++ b/PunchingMistake/FrmPlanSeach.resx @@ -0,0 +1,162 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + \ No newline at end of file diff --git a/PunchingMistake/FrmProScreen3.Designer.cs b/PunchingMistake/FrmProScreen3.Designer.cs index b70d7fb..53f4554 100644 --- a/PunchingMistake/FrmProScreen3.Designer.cs +++ b/PunchingMistake/FrmProScreen3.Designer.cs @@ -52,54 +52,60 @@ // label1 // this.label1.Font = new System.Drawing.Font("微软雅黑", 20F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.label1.Location = new System.Drawing.Point(12, 43); + this.label1.Location = new System.Drawing.Point(24, 86); + this.label1.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0); this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(180, 40); + this.label1.Size = new System.Drawing.Size(360, 80); this.label1.TabIndex = 0; this.label1.Text = "关键零件号1:"; // // textBox1 // this.textBox1.Font = new System.Drawing.Font("微软雅黑", 20F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.textBox1.Location = new System.Drawing.Point(403, 40); + this.textBox1.Location = new System.Drawing.Point(806, 80); + this.textBox1.Margin = new System.Windows.Forms.Padding(6, 6, 6, 6); this.textBox1.Name = "textBox1"; - this.textBox1.Size = new System.Drawing.Size(486, 43); + this.textBox1.Size = new System.Drawing.Size(968, 78); this.textBox1.TabIndex = 1; this.textBox1.KeyDown += new System.Windows.Forms.KeyEventHandler(this.textBox1_KeyDown); // // textBox2 // this.textBox2.Font = new System.Drawing.Font("微软雅黑", 20F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.textBox2.Location = new System.Drawing.Point(403, 111); + this.textBox2.Location = new System.Drawing.Point(806, 222); + this.textBox2.Margin = new System.Windows.Forms.Padding(6, 6, 6, 6); this.textBox2.Name = "textBox2"; - this.textBox2.Size = new System.Drawing.Size(486, 43); + this.textBox2.Size = new System.Drawing.Size(968, 78); this.textBox2.TabIndex = 3; this.textBox2.KeyDown += new System.Windows.Forms.KeyEventHandler(this.textBox2_KeyDown); // // label2 // this.label2.Font = new System.Drawing.Font("微软雅黑", 20F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.label2.Location = new System.Drawing.Point(12, 114); + this.label2.Location = new System.Drawing.Point(24, 228); + this.label2.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0); this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(180, 40); + this.label2.Size = new System.Drawing.Size(360, 80); this.label2.TabIndex = 2; this.label2.Text = "关键零件号2:"; // // textBox3 // this.textBox3.Font = new System.Drawing.Font("微软雅黑", 20F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.textBox3.Location = new System.Drawing.Point(403, 186); + this.textBox3.Location = new System.Drawing.Point(806, 372); + this.textBox3.Margin = new System.Windows.Forms.Padding(6, 6, 6, 6); this.textBox3.Name = "textBox3"; - this.textBox3.Size = new System.Drawing.Size(486, 43); + this.textBox3.Size = new System.Drawing.Size(968, 78); this.textBox3.TabIndex = 5; this.textBox3.KeyDown += new System.Windows.Forms.KeyEventHandler(this.textBox3_KeyDown); // // label3 // this.label3.Font = new System.Drawing.Font("微软雅黑", 20F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.label3.Location = new System.Drawing.Point(12, 189); + this.label3.Location = new System.Drawing.Point(24, 378); + this.label3.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0); this.label3.Name = "label3"; - this.label3.Size = new System.Drawing.Size(180, 40); + this.label3.Size = new System.Drawing.Size(360, 80); this.label3.TabIndex = 4; this.label3.Text = "关键零件号3:"; // @@ -107,9 +113,10 @@ // this.button1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(128)))), ((int)(((byte)(128))))); this.button1.Font = new System.Drawing.Font("微软雅黑", 20F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.button1.Location = new System.Drawing.Point(742, 470); + this.button1.Location = new System.Drawing.Point(1484, 940); + this.button1.Margin = new System.Windows.Forms.Padding(6, 6, 6, 6); this.button1.Name = "button1"; - this.button1.Size = new System.Drawing.Size(147, 55); + this.button1.Size = new System.Drawing.Size(294, 110); this.button1.TabIndex = 6; this.button1.Text = "关闭"; this.button1.UseVisualStyleBackColor = false; @@ -119,9 +126,10 @@ // this.label4.AutoSize = true; this.label4.Font = new System.Drawing.Font("微软雅黑", 20F); - this.label4.Location = new System.Drawing.Point(184, 46); + this.label4.Location = new System.Drawing.Point(368, 92); + this.label4.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0); this.label4.Name = "label4"; - this.label4.Size = new System.Drawing.Size(92, 35); + this.label4.Size = new System.Drawing.Size(185, 70); this.label4.TabIndex = 7; this.label4.Text = "label4"; // @@ -129,9 +137,10 @@ // this.label5.AutoSize = true; this.label5.Font = new System.Drawing.Font("微软雅黑", 20F); - this.label5.Location = new System.Drawing.Point(184, 119); + this.label5.Location = new System.Drawing.Point(368, 238); + this.label5.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0); this.label5.Name = "label5"; - this.label5.Size = new System.Drawing.Size(92, 35); + this.label5.Size = new System.Drawing.Size(185, 70); this.label5.TabIndex = 8; this.label5.Text = "label5"; // @@ -139,9 +148,10 @@ // this.label6.AutoSize = true; this.label6.Font = new System.Drawing.Font("微软雅黑", 20F); - this.label6.Location = new System.Drawing.Point(184, 194); + this.label6.Location = new System.Drawing.Point(368, 388); + this.label6.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0); this.label6.Name = "label6"; - this.label6.Size = new System.Drawing.Size(92, 35); + this.label6.Size = new System.Drawing.Size(185, 70); this.label6.TabIndex = 9; this.label6.Text = "label6"; // @@ -149,27 +159,30 @@ // this.label7.AutoSize = true; this.label7.Font = new System.Drawing.Font("微软雅黑", 20F); - this.label7.Location = new System.Drawing.Point(184, 267); + this.label7.Location = new System.Drawing.Point(368, 534); + this.label7.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0); this.label7.Name = "label7"; - this.label7.Size = new System.Drawing.Size(92, 35); + this.label7.Size = new System.Drawing.Size(185, 70); this.label7.TabIndex = 12; this.label7.Text = "label7"; // // textBox4 // this.textBox4.Font = new System.Drawing.Font("微软雅黑", 20F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.textBox4.Location = new System.Drawing.Point(403, 259); + this.textBox4.Location = new System.Drawing.Point(806, 518); + this.textBox4.Margin = new System.Windows.Forms.Padding(6, 6, 6, 6); this.textBox4.Name = "textBox4"; - this.textBox4.Size = new System.Drawing.Size(486, 43); + this.textBox4.Size = new System.Drawing.Size(968, 78); this.textBox4.TabIndex = 11; this.textBox4.KeyDown += new System.Windows.Forms.KeyEventHandler(this.textBox4_KeyDown); // // label8 // this.label8.Font = new System.Drawing.Font("微软雅黑", 20F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.label8.Location = new System.Drawing.Point(12, 262); + this.label8.Location = new System.Drawing.Point(24, 524); + this.label8.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0); this.label8.Name = "label8"; - this.label8.Size = new System.Drawing.Size(180, 40); + this.label8.Size = new System.Drawing.Size(360, 80); this.label8.TabIndex = 10; this.label8.Text = "关键零件号4:"; // @@ -177,27 +190,30 @@ // this.label9.AutoSize = true; this.label9.Font = new System.Drawing.Font("微软雅黑", 20F); - this.label9.Location = new System.Drawing.Point(184, 341); + this.label9.Location = new System.Drawing.Point(368, 682); + this.label9.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0); this.label9.Name = "label9"; - this.label9.Size = new System.Drawing.Size(92, 35); + this.label9.Size = new System.Drawing.Size(185, 70); this.label9.TabIndex = 15; this.label9.Text = "label9"; // // textBox5 // this.textBox5.Font = new System.Drawing.Font("微软雅黑", 20F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.textBox5.Location = new System.Drawing.Point(403, 333); + this.textBox5.Location = new System.Drawing.Point(806, 666); + this.textBox5.Margin = new System.Windows.Forms.Padding(6, 6, 6, 6); this.textBox5.Name = "textBox5"; - this.textBox5.Size = new System.Drawing.Size(486, 43); + this.textBox5.Size = new System.Drawing.Size(968, 78); this.textBox5.TabIndex = 14; this.textBox5.KeyDown += new System.Windows.Forms.KeyEventHandler(this.textBox5_KeyDown); // // label10 // this.label10.Font = new System.Drawing.Font("微软雅黑", 20F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.label10.Location = new System.Drawing.Point(12, 336); + this.label10.Location = new System.Drawing.Point(24, 672); + this.label10.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0); this.label10.Name = "label10"; - this.label10.Size = new System.Drawing.Size(180, 40); + this.label10.Size = new System.Drawing.Size(360, 80); this.label10.TabIndex = 13; this.label10.Text = "关键零件号5:"; // @@ -205,35 +221,39 @@ // this.label11.AutoSize = true; this.label11.Font = new System.Drawing.Font("微软雅黑", 20F); - this.label11.Location = new System.Drawing.Point(184, 418); + this.label11.Location = new System.Drawing.Point(368, 836); + this.label11.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0); this.label11.Name = "label11"; - this.label11.Size = new System.Drawing.Size(108, 35); + this.label11.Size = new System.Drawing.Size(217, 70); this.label11.TabIndex = 18; this.label11.Text = "label11"; // // textBox6 // this.textBox6.Font = new System.Drawing.Font("微软雅黑", 20F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.textBox6.Location = new System.Drawing.Point(403, 410); + this.textBox6.Location = new System.Drawing.Point(806, 820); + this.textBox6.Margin = new System.Windows.Forms.Padding(6, 6, 6, 6); this.textBox6.Name = "textBox6"; - this.textBox6.Size = new System.Drawing.Size(486, 43); + this.textBox6.Size = new System.Drawing.Size(968, 78); this.textBox6.TabIndex = 17; this.textBox6.KeyDown += new System.Windows.Forms.KeyEventHandler(this.textBox6_KeyDown); // // label12 // this.label12.Font = new System.Drawing.Font("微软雅黑", 20F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.label12.Location = new System.Drawing.Point(12, 413); + this.label12.Location = new System.Drawing.Point(24, 826); + this.label12.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0); this.label12.Name = "label12"; - this.label12.Size = new System.Drawing.Size(180, 40); + this.label12.Size = new System.Drawing.Size(360, 80); this.label12.TabIndex = 16; this.label12.Text = "关键零件号6:"; // // FrmProScreen3 // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); + this.AutoScaleDimensions = new System.Drawing.SizeF(12F, 24F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(917, 543); + this.BackColor = System.Drawing.Color.SteelBlue; + this.ClientSize = new System.Drawing.Size(1834, 1086); this.Controls.Add(this.label11); this.Controls.Add(this.textBox6); this.Controls.Add(this.label12); @@ -254,6 +274,7 @@ this.Controls.Add(this.textBox1); this.Controls.Add(this.label1); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; + this.Margin = new System.Windows.Forms.Padding(6, 6, 6, 6); this.Name = "FrmProScreen3"; this.Text = " "; this.Load += new System.EventHandler(this.FrmProScreen3_Load); diff --git a/PunchingMistake/FrmProScreen3.cs b/PunchingMistake/FrmProScreen3.cs index 2bbf77a..f79a433 100644 --- a/PunchingMistake/FrmProScreen3.cs +++ b/PunchingMistake/FrmProScreen3.cs @@ -15,12 +15,44 @@ namespace PunchingMistake OtherPart parts = new OtherPart(); private static string productID3 = "", productID4 = "", productID5 = "", productID6 = "", productID7 = "", productID8 = ""; int[] isCheck = new int[6] { 0, 0, 0, 0, 0, 0 }; - + public event Action ScanCompleted = null; private List _needScanRows = new List(); public FrmProScreen3(List needScanRows) { InitializeComponent(); this._needScanRows = needScanRows; + this.StartPosition = FormStartPosition.CenterParent; + foreach(DataRow dr in needScanRows) + { + + } + for(int i =0;i< needScanRows.Count; i++) + { + if(i == 0) + { + parts.productID3 = needScanRows[i]["PartNo2"].ToString(); + } + if (i == 1) + { + parts.productID4 = needScanRows[i]["PartNo2"].ToString(); + } + if (i == 2) + { + parts.productID5 = needScanRows[i]["PartNo2"].ToString(); + } + if (i == 3) + { + parts.productID6 = needScanRows[i]["PartNo2"].ToString(); + } + if (i == 4) + { + parts.productID7 = needScanRows[i]["PartNo2"].ToString(); + } + if (i == 5) + { + parts.productID8 = needScanRows[i]["PartNo2"].ToString(); + } + } } public FrmProScreen3(OtherPart part) @@ -89,591 +121,121 @@ namespace PunchingMistake } } - - private void textBox1_KeyDown(object sender, KeyEventArgs e) + void ScanBarCode(int lbIndex) { - if (e.KeyCode == Keys.Enter) + //string barcode = textBox1.Text.Trim(); + string partProductID = string.Empty; + string productID = string.Empty; + if(lbIndex == 0) { - string barcode = textBox1.Text.Trim(); - - productID3 = Function2.GetProductID(barcode); - if (parts.productID3 == productID3) - { - isCheck[0] = 1; - if (textBox2.Enabled) - { - textBox2.Text = ""; - textBox2.Focus(); - } - else if (textBox3.Enabled) - { - textBox3.Text = ""; - textBox3.Focus(); - } - else if (textBox4.Enabled) - { - textBox4.Text = ""; - textBox4.Focus(); - } - else if (textBox5.Enabled) - { - textBox5.Text = ""; - textBox5.Focus(); - } - else if (textBox6.Enabled) - { - textBox6.Text = ""; - textBox6.Focus(); - } - else - { - isCheck[1] = 1; - isCheck[2] = 1; - isCheck[3] = 1; - isCheck[4] = 1; - isCheck[5] = 1; - - #region 判断关键零件是否都校验 - - if (isCheck[0] == 0) - { - MessageBox.Show("关键零件号1未校验!"); - textBox1.SelectAll(); - textBox1.Focus(); - return; - } - if (isCheck[1] == 0) - { - MessageBox.Show("关键零件号2未校验!"); - textBox2.SelectAll(); - textBox2.Focus(); - return; - } - if (isCheck[2] == 0) - { - MessageBox.Show("关键零件号3未校验!"); - textBox3.SelectAll(); - textBox3.Focus(); - return; - } - if (isCheck[3] == 0) - { - MessageBox.Show("关键零件号4未校验!"); - textBox4.SelectAll(); - textBox4.Focus(); - return; - } - if (isCheck[4] == 0) - { - MessageBox.Show("关键零件号5未校验!"); - textBox5.SelectAll(); - textBox5.Focus(); - return; - } - if (isCheck[5] == 0) - { - MessageBox.Show("关键零件号6未校验!"); - textBox6.SelectAll(); - textBox6.Focus(); - return; - } - - #endregion - - ScanAll.ScanResult = true; - ScanAll.barCode1 = textBox1.Text.Trim(); - ScanAll.partNo1 = Function2.GetPartNoByID(productID3); - ScanAll.barCode2 = textBox2.Text.Trim(); - ScanAll.partNo2 = ""; - ScanAll.barCode3 = textBox3.Text.Trim(); - ScanAll.partNo3 = ""; - - ScanAll.barCode4 = textBox4.Text.Trim(); - ScanAll.partNo4 = ""; - ScanAll.barCode5 = textBox5.Text.Trim(); - ScanAll.partNo5 = ""; - ScanAll.barCode6 = textBox6.Text.Trim(); - ScanAll.partNo6 = ""; - - this.Close(); - } - } - else - { - MessageBox.Show("扫入条码与总成不匹配,请检查后再次扫描"); - textBox1.Text = ""; - } + productID = productID3 = Function2.GetProductNo(textBox1.Text.Trim()); + partProductID = parts.productID3; } - } - - private void textBox2_KeyDown(object sender, KeyEventArgs e) - { - if (e.KeyCode == Keys.Enter) + else if (lbIndex == 1) { - string barcode = textBox2.Text.Trim(); - productID4 = Function2.GetProductID(barcode); - if (parts.productID4 == productID4) - { - isCheck[1] = 1; - - if (textBox3.Enabled) - { - textBox3.Text = ""; - textBox3.Focus(); - } - else if (textBox4.Enabled) - { - textBox4.Text = ""; - textBox4.Focus(); - } - else if (textBox5.Enabled) - { - textBox5.Text = ""; - textBox5.Focus(); - } - else if (textBox6.Enabled) - { - textBox6.Text = ""; - textBox6.Focus(); - } - else - { - isCheck[2] = 1; - isCheck[3] = 1; - isCheck[4] = 1; - isCheck[5] = 1; - - #region 判断关键零件是否都校验 - - if (isCheck[0] == 0) - { - MessageBox.Show("关键零件号1未校验!"); - textBox2.Text = ""; - textBox1.SelectAll(); - textBox1.Focus(); - return; - } - if (isCheck[1] == 0) - { - MessageBox.Show("关键零件号2未校验!"); - textBox2.SelectAll(); - textBox2.Focus(); - return; - } - if (isCheck[2] == 0) - { - MessageBox.Show("关键零件号3未校验!"); - textBox3.SelectAll(); - textBox3.Focus(); - return; - } - if (isCheck[3] == 0) - { - MessageBox.Show("关键零件号4未校验!"); - textBox4.SelectAll(); - textBox4.Focus(); - return; - } - if (isCheck[4] == 0) - { - MessageBox.Show("关键零件号54未校验!"); - textBox5.SelectAll(); - textBox5.Focus(); - return; - } - if (isCheck[5] == 0) - { - MessageBox.Show("关键零件号6未校验!"); - textBox6.SelectAll(); - textBox6.Focus(); - return; - } - - #endregion - - ScanAll.ScanResult = true; - ScanAll.barCode1 = textBox1.Text.Trim(); - ScanAll.partNo1 = Function2.GetPartNoByID(productID3); - ScanAll.barCode2 = textBox2.Text.Trim(); - ScanAll.partNo2 = Function2.GetPartNoByID(productID4); - ScanAll.barCode3 = textBox3.Text.Trim(); - ScanAll.partNo3 = ""; - - ScanAll.barCode4 = textBox4.Text.Trim(); - ScanAll.partNo4 = ""; - ScanAll.barCode5 = textBox5.Text.Trim(); - ScanAll.partNo5 = ""; - ScanAll.barCode6 = textBox6.Text.Trim(); - ScanAll.partNo6 = ""; - this.Close(); - } - } - else - { - MessageBox.Show("扫入条码与总成不匹配,请检查后再次扫描"); - textBox2.Text = ""; - } + productID = productID4 = Function2.GetProductNo(textBox2.Text.Trim()); + partProductID = parts.productID4; + } + else if (lbIndex == 2) + { + productID = productID5 = Function2.GetProductNo(textBox3.Text.Trim()); + partProductID = parts.productID5; + } + else if (lbIndex == 3) + { + productID = productID6 = Function2.GetProductNo(textBox4.Text.Trim()); + partProductID = parts.productID6; + } + else if (lbIndex == 4) + { + productID = productID7 = Function2.GetProductNo(textBox5.Text.Trim()); + partProductID = parts.productID7; + } + else if (lbIndex == 5) + { + productID = productID8 = Function2.GetProductNo(textBox6.Text.Trim()); + partProductID = parts.productID8; } - } - private void textBox3_KeyDown(object sender, KeyEventArgs e) - { - if (e.KeyCode == Keys.Enter) + if (partProductID == productID) { - string barcode = textBox3.Text.Trim(); - productID5 = Function2.GetProductID(barcode); - if (parts.productID5 == productID5) + isCheck[lbIndex] = 1; + if (textBox2.Enabled && lbIndex ==0) { - isCheck[2] = 1; - - if (textBox4.Enabled) - { - textBox4.Text = ""; - textBox4.Focus(); - } - else if (textBox5.Enabled) - { - textBox5.Text = ""; - textBox5.Focus(); - } - else if (textBox6.Enabled) - { - textBox6.Text = ""; - textBox6.Focus(); - } - else - { - isCheck[3] = 1; - isCheck[4] = 1; - isCheck[5] = 1; - - #region 判断关键零件是否都校验 - - if (isCheck[0] == 0) - { - MessageBox.Show("关键零件号1未校验!"); - textBox3.Text = ""; - textBox1.SelectAll(); - textBox1.Focus(); - return; - } - if (isCheck[1] == 0) - { - MessageBox.Show("关键零件号2未校验!"); - textBox3.Text = ""; - textBox2.SelectAll(); - textBox2.Focus(); - return; - } - if (isCheck[2] == 0) - { - MessageBox.Show("关键零件号3未校验!"); - textBox3.SelectAll(); - textBox3.Focus(); - return; - } - if (isCheck[3] == 0) - { - MessageBox.Show("关键零件号4未校验!"); - textBox4.SelectAll(); - textBox4.Focus(); - return; - } - if (isCheck[4] == 0) - { - MessageBox.Show("关键零件号5未校验!"); - textBox5.SelectAll(); - textBox5.Focus(); - return; - } - if (isCheck[5] == 0) - { - MessageBox.Show("关键零件号5未校验!"); - textBox6.SelectAll(); - textBox6.Focus(); - return; - } - - #endregion - - ScanAll.ScanResult = true; - ScanAll.barCode1 = textBox1.Text.Trim(); - ScanAll.partNo1 = Function2.GetPartNoByID(productID3); - ScanAll.barCode2 = textBox2.Text.Trim(); - ScanAll.partNo2 = Function2.GetPartNoByID(productID4); - ScanAll.barCode3 = textBox3.Text.Trim(); - ScanAll.partNo3 = Function2.GetPartNoByID(productID5); - - ScanAll.barCode4 = textBox4.Text.Trim(); - ScanAll.partNo4 = ""; - ScanAll.barCode5 = textBox5.Text.Trim(); - ScanAll.partNo5 = ""; - ScanAll.barCode6 = textBox6.Text.Trim(); - ScanAll.partNo6 = ""; - this.Close(); - } + textBox2.Text = ""; + textBox2.Focus(); } - else + else if (textBox3.Enabled && lbIndex == 1) { - MessageBox.Show("扫入条码与总成不匹配,请检查后再次扫描"); textBox3.Text = ""; + textBox3.Focus(); } - } - } - - private void button1_Click(object sender, EventArgs e) - { - ScanAll.ScanResult = false; - this.Close(); - } - - private void textBox4_KeyDown(object sender, KeyEventArgs e) - { - if (e.KeyCode == Keys.Enter) - { - string barcode = textBox4.Text.Trim(); - productID6 = Function2.GetProductID(barcode); - if (parts.productID6 == productID6) - { - isCheck[3] = 1; - - if (textBox5.Enabled) - { - textBox5.Text = ""; - textBox5.Focus(); - } - else if (textBox6.Enabled) - { - textBox6.Text = ""; - textBox6.Focus(); - } - else - { - isCheck[4] = 1; - isCheck[5] = 1; - - #region 判断关键零件是否都校验 - - if (isCheck[0] == 0) - { - MessageBox.Show("关键零件号1未校验!"); - textBox4.Text = ""; - textBox1.SelectAll(); - textBox1.Focus(); - return; - } - if (isCheck[1] == 0) - { - MessageBox.Show("关键零件号2未校验!"); - textBox4.Text = ""; - textBox2.SelectAll(); - textBox2.Focus(); - return; - } - if (isCheck[2] == 0) - { - MessageBox.Show("关键零件号3未校验!"); - textBox4.Text = ""; - textBox3.SelectAll(); - textBox3.Focus(); - return; - } - if (isCheck[3] == 0) - { - MessageBox.Show("关键零件号4未校验!"); - textBox4.SelectAll(); - textBox4.Focus(); - return; - } - if (isCheck[4] == 0) - { - MessageBox.Show("关键零件号5未校验!"); - textBox5.SelectAll(); - textBox5.Focus(); - return; - } - if (isCheck[5] == 0) - { - MessageBox.Show("关键零件号6未校验!"); - textBox6.SelectAll(); - textBox6.Focus(); - return; - } - - #endregion - - ScanAll.ScanResult = true; - ScanAll.barCode1 = textBox1.Text.Trim(); - ScanAll.partNo1 = Function2.GetPartNoByID(productID3); - ScanAll.barCode2 = textBox2.Text.Trim(); - ScanAll.partNo2 = Function2.GetPartNoByID(productID4); - ScanAll.barCode3 = textBox3.Text.Trim(); - ScanAll.partNo3 = Function2.GetPartNoByID(productID5); - - ScanAll.barCode4 = textBox4.Text.Trim(); - ScanAll.partNo4 = Function2.GetPartNoByID(productID6); - ScanAll.barCode5 = textBox5.Text.Trim(); - ScanAll.partNo5 = ""; - ScanAll.barCode6 = textBox6.Text.Trim(); - ScanAll.partNo6 = ""; - this.Close(); - } - } - else + else if (textBox4.Enabled && lbIndex == 2) { - MessageBox.Show("扫入条码与总成不匹配,请检查后再次扫描"); textBox4.Text = ""; + textBox4.Focus(); } - } - } - - private void textBox5_KeyDown(object sender, KeyEventArgs e) - { - if (e.KeyCode == Keys.Enter) - { - string barcode = textBox5.Text.Trim(); - productID7 = Function2.GetProductID(barcode); - if (parts.productID7 == productID7) + else if (textBox5.Enabled && lbIndex == 3) { - isCheck[4] = 1; - - if (textBox6.Enabled) - { - textBox6.Text = ""; - textBox6.Focus(); - } - else - { - isCheck[5] = 1; - - #region 判断关键零件是否都校验 - - if (isCheck[0] == 0) - { - MessageBox.Show("关键零件号1未校验!"); - textBox5.Text = ""; - textBox1.SelectAll(); - textBox1.Focus(); - return; - } - if (isCheck[1] == 0) - { - MessageBox.Show("关键零件号2未校验!"); - textBox5.Text = ""; - textBox2.SelectAll(); - textBox2.Focus(); - return; - } - if (isCheck[2] == 0) - { - MessageBox.Show("关键零件号3未校验!"); - textBox3.SelectAll(); - textBox3.Focus(); - return; - } - if (isCheck[3] == 0) - { - MessageBox.Show("关键零件号4未校验!"); - textBox5.Text = ""; - textBox4.SelectAll(); - textBox4.Focus(); - return; - } - if (isCheck[4] == 0) - { - MessageBox.Show("关键零件号5未校验!"); - textBox5.SelectAll(); - textBox5.Focus(); - return; - } - if (isCheck[5] == 0) - { - MessageBox.Show("关键零件号6未校验!"); - textBox6.SelectAll(); - textBox6.Focus(); - return; - } - - #endregion - - ScanAll.ScanResult = true; - ScanAll.barCode1 = textBox1.Text.Trim(); - ScanAll.partNo1 = Function2.GetPartNoByID(productID3); - ScanAll.barCode2 = textBox2.Text.Trim(); - ScanAll.partNo2 = Function2.GetPartNoByID(productID4); - ScanAll.barCode3 = textBox3.Text.Trim(); - ScanAll.partNo3 = Function2.GetPartNoByID(productID5); - - ScanAll.barCode4 = textBox4.Text.Trim(); - ScanAll.partNo4 = Function2.GetPartNoByID(productID6); - ScanAll.barCode5 = textBox5.Text.Trim(); - ScanAll.partNo5 = Function2.GetPartNoByID(productID7); - ScanAll.barCode6 = textBox6.Text.Trim(); - ScanAll.partNo6 = ""; - this.Close(); - } + textBox5.Text = ""; + textBox5.Focus(); } - else + else if (textBox6.Enabled && lbIndex == 4) { - MessageBox.Show("扫入条码与总成不匹配,请检查后再次扫描"); - textBox4.Text = ""; + textBox6.Text = ""; + textBox6.Focus(); } - } - } - - private void textBox6_KeyDown(object sender, KeyEventArgs e) - { - if (e.KeyCode == Keys.Enter) - { - string barcode = textBox6.Text.Trim(); - productID8 = Function2.GetProductID(barcode); - if (parts.productID8 == productID8) + else { - isCheck[5] = 1; + if(lbIndex >0) + isCheck[1] = 1; + if (lbIndex > 1) + isCheck[2] = 1; + if (lbIndex > 2) + isCheck[3] = 1; + if (lbIndex > 3) + isCheck[4] = 1; + if (lbIndex > 4) + isCheck[5] = 1; #region 判断关键零件是否都校验 - if (isCheck[0] == 0) + if (isCheck[0] == 0 && lbIndex >= 0) { MessageBox.Show("关键零件号1未校验!"); - textBox6.Text = ""; textBox1.SelectAll(); textBox1.Focus(); return; } - if (isCheck[1] == 0) + if (isCheck[1] == 0 && lbIndex >= 1) { MessageBox.Show("关键零件号2未校验!"); - textBox6.Text = ""; textBox2.SelectAll(); textBox2.Focus(); return; } - if (isCheck[2] == 0) + if (isCheck[2] == 0 && lbIndex >= 2) { MessageBox.Show("关键零件号3未校验!"); - textBox6.Text = ""; textBox3.SelectAll(); textBox3.Focus(); return; } - if (isCheck[3] == 0) + if (isCheck[3] == 0 && lbIndex >= 3) { MessageBox.Show("关键零件号4未校验!"); - textBox6.Text = ""; textBox4.SelectAll(); textBox4.Focus(); return; } - if (isCheck[4] == 0) + if (isCheck[4] == 0 && lbIndex >= 4) { MessageBox.Show("关键零件号5未校验!"); - textBox6.Text = ""; textBox5.SelectAll(); textBox5.Focus(); return; } - if (isCheck[5] == 0) + if (isCheck[5] == 0 && lbIndex >= 5) { MessageBox.Show("关键零件号6未校验!"); textBox6.SelectAll(); @@ -685,25 +247,672 @@ namespace PunchingMistake ScanAll.ScanResult = true; ScanAll.barCode1 = textBox1.Text.Trim(); - ScanAll.partNo1 = Function2.GetPartNoByID(productID3); + if (lbIndex >= 0) + ScanAll.partNo1 = productID3; // Function2.GetPartNoByID(productID3); + ScanAll.barCode2 = textBox2.Text.Trim(); - ScanAll.partNo2 = Function2.GetPartNoByID(productID4); + if (lbIndex >= 1) + ScanAll.partNo2 = productID4; // Function2.GetPartNoByID(productID4); + else + ScanAll.partNo2 = ""; + ScanAll.barCode3 = textBox3.Text.Trim(); - ScanAll.partNo3 = Function2.GetPartNoByID(productID5); + if (lbIndex >= 2) + ScanAll.partNo3 = productID5;// Function2.GetPartNoByID(productID5); + else + ScanAll.partNo3 = ""; ScanAll.barCode4 = textBox4.Text.Trim(); - ScanAll.partNo4 = Function2.GetPartNoByID(productID6); + if (lbIndex >= 3) + ScanAll.partNo4 = productID6; // Function2.GetPartNoByID(productID6); + else + ScanAll.partNo4 = ""; + ScanAll.barCode5 = textBox5.Text.Trim(); - ScanAll.partNo5 = Function2.GetPartNoByID(productID7); + if (lbIndex >= 4) + ScanAll.partNo5 = productID7;// Function2.GetPartNoByID(productID7); + else + ScanAll.partNo5 = ""; ScanAll.barCode6 = textBox6.Text.Trim(); - ScanAll.partNo6 = Function2.GetPartNoByID(productID8); + + if (lbIndex >= 5) + ScanAll.partNo6 = productID8; // Function2.GetPartNoByID(productID8); + else + ScanAll.partNo6 = ""; + this.Close(); + ScanCompleted?.Invoke(true); + } - else - { - MessageBox.Show("扫入条码与总成不匹配,请检查后再次扫描"); - textBox4.Text = ""; - } + } + else + { + MessageBox.Show("扫入条码与总成不匹配,请检查后再次扫描"); + textBox1.Text = ""; + } + } + + private void textBox1_KeyDown(object sender, KeyEventArgs e) + { + if (e.KeyCode == Keys.Enter) + { + ScanBarCode(0); + //string barcode = textBox1.Text.Trim(); + + //productID3 = Function2.GetProductNo(barcode); + //if (parts.productID3 == productID3) + //{ + // isCheck[0] = 1; + // if (textBox2.Enabled) + // { + // textBox2.Text = ""; + // textBox2.Focus(); + // } + // else if (textBox3.Enabled) + // { + // textBox3.Text = ""; + // textBox3.Focus(); + // } + // else if (textBox4.Enabled) + // { + // textBox4.Text = ""; + // textBox4.Focus(); + // } + // else if (textBox5.Enabled) + // { + // textBox5.Text = ""; + // textBox5.Focus(); + // } + // else if (textBox6.Enabled) + // { + // textBox6.Text = ""; + // textBox6.Focus(); + // } + // else + // { + // isCheck[1] = 1; + // isCheck[2] = 1; + // isCheck[3] = 1; + // isCheck[4] = 1; + // isCheck[5] = 1; + + // #region 判断关键零件是否都校验 + + // if (isCheck[0] == 0) + // { + // MessageBox.Show("关键零件号1未校验!"); + // textBox1.SelectAll(); + // textBox1.Focus(); + // return; + // } + // if (isCheck[1] == 0) + // { + // MessageBox.Show("关键零件号2未校验!"); + // textBox2.SelectAll(); + // textBox2.Focus(); + // return; + // } + // if (isCheck[2] == 0) + // { + // MessageBox.Show("关键零件号3未校验!"); + // textBox3.SelectAll(); + // textBox3.Focus(); + // return; + // } + // if (isCheck[3] == 0) + // { + // MessageBox.Show("关键零件号4未校验!"); + // textBox4.SelectAll(); + // textBox4.Focus(); + // return; + // } + // if (isCheck[4] == 0) + // { + // MessageBox.Show("关键零件号5未校验!"); + // textBox5.SelectAll(); + // textBox5.Focus(); + // return; + // } + // if (isCheck[5] == 0) + // { + // MessageBox.Show("关键零件号6未校验!"); + // textBox6.SelectAll(); + // textBox6.Focus(); + // return; + // } + + // #endregion + + // ScanAll.ScanResult = true; + // ScanAll.barCode1 = textBox1.Text.Trim(); + // ScanAll.partNo1 = Function2.GetPartNoByID(productID3); + // ScanAll.barCode2 = textBox2.Text.Trim(); + // ScanAll.partNo2 = ""; + // ScanAll.barCode3 = textBox3.Text.Trim(); + // ScanAll.partNo3 = ""; + + // ScanAll.barCode4 = textBox4.Text.Trim(); + // ScanAll.partNo4 = ""; + // ScanAll.barCode5 = textBox5.Text.Trim(); + // ScanAll.partNo5 = ""; + // ScanAll.barCode6 = textBox6.Text.Trim(); + // ScanAll.partNo6 = ""; + + // this.Close(); + // } + //} + //else + //{ + // MessageBox.Show("扫入条码与总成不匹配,请检查后再次扫描"); + // textBox1.Text = ""; + //} + } + } + + private void textBox2_KeyDown(object sender, KeyEventArgs e) + { + if (e.KeyCode == Keys.Enter) + { + ScanBarCode(1); + //string barcode = textBox2.Text.Trim(); + //productID4 = Function2.GetProductNo(barcode); + //if (parts.productID4 == productID4) + //{ + // isCheck[1] = 1; + + // if (textBox3.Enabled) + // { + // textBox3.Text = ""; + // textBox3.Focus(); + // } + // else if (textBox4.Enabled) + // { + // textBox4.Text = ""; + // textBox4.Focus(); + // } + // else if (textBox5.Enabled) + // { + // textBox5.Text = ""; + // textBox5.Focus(); + // } + // else if (textBox6.Enabled) + // { + // textBox6.Text = ""; + // textBox6.Focus(); + // } + // else + // { + // isCheck[2] = 1; + // isCheck[3] = 1; + // isCheck[4] = 1; + // isCheck[5] = 1; + + // #region 判断关键零件是否都校验 + + // if (isCheck[0] == 0) + // { + // MessageBox.Show("关键零件号1未校验!"); + // textBox2.Text = ""; + // textBox1.SelectAll(); + // textBox1.Focus(); + // return; + // } + // if (isCheck[1] == 0) + // { + // MessageBox.Show("关键零件号2未校验!"); + // textBox2.SelectAll(); + // textBox2.Focus(); + // return; + // } + // if (isCheck[2] == 0) + // { + // MessageBox.Show("关键零件号3未校验!"); + // textBox3.SelectAll(); + // textBox3.Focus(); + // return; + // } + // if (isCheck[3] == 0) + // { + // MessageBox.Show("关键零件号4未校验!"); + // textBox4.SelectAll(); + // textBox4.Focus(); + // return; + // } + // if (isCheck[4] == 0) + // { + // MessageBox.Show("关键零件号54未校验!"); + // textBox5.SelectAll(); + // textBox5.Focus(); + // return; + // } + // if (isCheck[5] == 0) + // { + // MessageBox.Show("关键零件号6未校验!"); + // textBox6.SelectAll(); + // textBox6.Focus(); + // return; + // } + + // #endregion + + // ScanAll.ScanResult = true; + // ScanAll.barCode1 = textBox1.Text.Trim(); + // ScanAll.partNo1 = Function2.GetPartNoByID(productID3); + // ScanAll.barCode2 = textBox2.Text.Trim(); + // ScanAll.partNo2 = Function2.GetPartNoByID(productID4); + // ScanAll.barCode3 = textBox3.Text.Trim(); + // ScanAll.partNo3 = ""; + + // ScanAll.barCode4 = textBox4.Text.Trim(); + // ScanAll.partNo4 = ""; + // ScanAll.barCode5 = textBox5.Text.Trim(); + // ScanAll.partNo5 = ""; + // ScanAll.barCode6 = textBox6.Text.Trim(); + // ScanAll.partNo6 = ""; + // this.Close(); + // } + //} + //else + //{ + // MessageBox.Show("扫入条码与总成不匹配,请检查后再次扫描"); + // textBox2.Text = ""; + //} + } + } + + private void textBox3_KeyDown(object sender, KeyEventArgs e) + { + if (e.KeyCode == Keys.Enter) + { + ScanBarCode(2); + //string barcode = textBox3.Text.Trim(); + //productID5 = Function2.GetProductID(barcode); + //if (parts.productID5 == productID5) + //{ + // isCheck[2] = 1; + + // if (textBox4.Enabled) + // { + // textBox4.Text = ""; + // textBox4.Focus(); + // } + // else if (textBox5.Enabled) + // { + // textBox5.Text = ""; + // textBox5.Focus(); + // } + // else if (textBox6.Enabled) + // { + // textBox6.Text = ""; + // textBox6.Focus(); + // } + // else + // { + // isCheck[3] = 1; + // isCheck[4] = 1; + // isCheck[5] = 1; + + // #region 判断关键零件是否都校验 + + // if (isCheck[0] == 0) + // { + // MessageBox.Show("关键零件号1未校验!"); + // textBox3.Text = ""; + // textBox1.SelectAll(); + // textBox1.Focus(); + // return; + // } + // if (isCheck[1] == 0) + // { + // MessageBox.Show("关键零件号2未校验!"); + // textBox3.Text = ""; + // textBox2.SelectAll(); + // textBox2.Focus(); + // return; + // } + // if (isCheck[2] == 0) + // { + // MessageBox.Show("关键零件号3未校验!"); + // textBox3.SelectAll(); + // textBox3.Focus(); + // return; + // } + // if (isCheck[3] == 0) + // { + // MessageBox.Show("关键零件号4未校验!"); + // textBox4.SelectAll(); + // textBox4.Focus(); + // return; + // } + // if (isCheck[4] == 0) + // { + // MessageBox.Show("关键零件号5未校验!"); + // textBox5.SelectAll(); + // textBox5.Focus(); + // return; + // } + // if (isCheck[5] == 0) + // { + // MessageBox.Show("关键零件号5未校验!"); + // textBox6.SelectAll(); + // textBox6.Focus(); + // return; + // } + + // #endregion + + // ScanAll.ScanResult = true; + // ScanAll.barCode1 = textBox1.Text.Trim(); + // ScanAll.partNo1 = Function2.GetPartNoByID(productID3); + // ScanAll.barCode2 = textBox2.Text.Trim(); + // ScanAll.partNo2 = Function2.GetPartNoByID(productID4); + // ScanAll.barCode3 = textBox3.Text.Trim(); + // ScanAll.partNo3 = Function2.GetPartNoByID(productID5); + + // ScanAll.barCode4 = textBox4.Text.Trim(); + // ScanAll.partNo4 = ""; + // ScanAll.barCode5 = textBox5.Text.Trim(); + // ScanAll.partNo5 = ""; + // ScanAll.barCode6 = textBox6.Text.Trim(); + // ScanAll.partNo6 = ""; + // this.Close(); + // } + //} + //else + //{ + // MessageBox.Show("扫入条码与总成不匹配,请检查后再次扫描"); + // textBox3.Text = ""; + //} + } + } + + private void button1_Click(object sender, EventArgs e) + { + ScanAll.ScanResult = false; + this.Close(); + ScanCompleted?.Invoke(false); + } + + private void textBox4_KeyDown(object sender, KeyEventArgs e) + { + if (e.KeyCode == Keys.Enter) + { + ScanBarCode(3); + //string barcode = textBox4.Text.Trim(); + //productID6 = Function2.GetProductID(barcode); + //if (parts.productID6 == productID6) + //{ + // isCheck[3] = 1; + + // if (textBox5.Enabled) + // { + // textBox5.Text = ""; + // textBox5.Focus(); + // } + // else if (textBox6.Enabled) + // { + // textBox6.Text = ""; + // textBox6.Focus(); + // } + // else + // { + // isCheck[4] = 1; + // isCheck[5] = 1; + + // #region 判断关键零件是否都校验 + + // if (isCheck[0] == 0) + // { + // MessageBox.Show("关键零件号1未校验!"); + // textBox4.Text = ""; + // textBox1.SelectAll(); + // textBox1.Focus(); + // return; + // } + // if (isCheck[1] == 0) + // { + // MessageBox.Show("关键零件号2未校验!"); + // textBox4.Text = ""; + // textBox2.SelectAll(); + // textBox2.Focus(); + // return; + // } + // if (isCheck[2] == 0) + // { + // MessageBox.Show("关键零件号3未校验!"); + // textBox4.Text = ""; + // textBox3.SelectAll(); + // textBox3.Focus(); + // return; + // } + // if (isCheck[3] == 0) + // { + // MessageBox.Show("关键零件号4未校验!"); + // textBox4.SelectAll(); + // textBox4.Focus(); + // return; + // } + // if (isCheck[4] == 0) + // { + // MessageBox.Show("关键零件号5未校验!"); + // textBox5.SelectAll(); + // textBox5.Focus(); + // return; + // } + // if (isCheck[5] == 0) + // { + // MessageBox.Show("关键零件号6未校验!"); + // textBox6.SelectAll(); + // textBox6.Focus(); + // return; + // } + + // #endregion + + // ScanAll.ScanResult = true; + // ScanAll.barCode1 = textBox1.Text.Trim(); + // ScanAll.partNo1 = Function2.GetPartNoByID(productID3); + // ScanAll.barCode2 = textBox2.Text.Trim(); + // ScanAll.partNo2 = Function2.GetPartNoByID(productID4); + // ScanAll.barCode3 = textBox3.Text.Trim(); + // ScanAll.partNo3 = Function2.GetPartNoByID(productID5); + + // ScanAll.barCode4 = textBox4.Text.Trim(); + // ScanAll.partNo4 = Function2.GetPartNoByID(productID6); + // ScanAll.barCode5 = textBox5.Text.Trim(); + // ScanAll.partNo5 = ""; + // ScanAll.barCode6 = textBox6.Text.Trim(); + // ScanAll.partNo6 = ""; + // this.Close(); + // } + //} + //else + //{ + // MessageBox.Show("扫入条码与总成不匹配,请检查后再次扫描"); + // textBox4.Text = ""; + //} + } + } + + private void textBox5_KeyDown(object sender, KeyEventArgs e) + { + if (e.KeyCode == Keys.Enter) + { + ScanBarCode(4); + //string barcode = textBox5.Text.Trim(); + //productID7 = Function2.GetProductID(barcode); + //if (parts.productID7 == productID7) + //{ + // isCheck[4] = 1; + + // if (textBox6.Enabled) + // { + // textBox6.Text = ""; + // textBox6.Focus(); + // } + // else + // { + // isCheck[5] = 1; + + // #region 判断关键零件是否都校验 + + // if (isCheck[0] == 0) + // { + // MessageBox.Show("关键零件号1未校验!"); + // textBox5.Text = ""; + // textBox1.SelectAll(); + // textBox1.Focus(); + // return; + // } + // if (isCheck[1] == 0) + // { + // MessageBox.Show("关键零件号2未校验!"); + // textBox5.Text = ""; + // textBox2.SelectAll(); + // textBox2.Focus(); + // return; + // } + // if (isCheck[2] == 0) + // { + // MessageBox.Show("关键零件号3未校验!"); + // textBox3.SelectAll(); + // textBox3.Focus(); + // return; + // } + // if (isCheck[3] == 0) + // { + // MessageBox.Show("关键零件号4未校验!"); + // textBox5.Text = ""; + // textBox4.SelectAll(); + // textBox4.Focus(); + // return; + // } + // if (isCheck[4] == 0) + // { + // MessageBox.Show("关键零件号5未校验!"); + // textBox5.SelectAll(); + // textBox5.Focus(); + // return; + // } + // if (isCheck[5] == 0) + // { + // MessageBox.Show("关键零件号6未校验!"); + // textBox6.SelectAll(); + // textBox6.Focus(); + // return; + // } + + // #endregion + + // ScanAll.ScanResult = true; + // ScanAll.barCode1 = textBox1.Text.Trim(); + // ScanAll.partNo1 = Function2.GetPartNoByID(productID3); + // ScanAll.barCode2 = textBox2.Text.Trim(); + // ScanAll.partNo2 = Function2.GetPartNoByID(productID4); + // ScanAll.barCode3 = textBox3.Text.Trim(); + // ScanAll.partNo3 = Function2.GetPartNoByID(productID5); + + // ScanAll.barCode4 = textBox4.Text.Trim(); + // ScanAll.partNo4 = Function2.GetPartNoByID(productID6); + // ScanAll.barCode5 = textBox5.Text.Trim(); + // ScanAll.partNo5 = Function2.GetPartNoByID(productID7); + // ScanAll.barCode6 = textBox6.Text.Trim(); + // ScanAll.partNo6 = ""; + // this.Close(); + // } + //} + //else + //{ + // MessageBox.Show("扫入条码与总成不匹配,请检查后再次扫描"); + // textBox4.Text = ""; + //} + } + } + + private void textBox6_KeyDown(object sender, KeyEventArgs e) + { + if (e.KeyCode == Keys.Enter) + { + ScanBarCode(5); + //string barcode = textBox6.Text.Trim(); + //productID8 = Function2.GetProductID(barcode); + //if (parts.productID8 == productID8) + //{ + // isCheck[5] = 1; + + // #region 判断关键零件是否都校验 + + // if (isCheck[0] == 0) + // { + // MessageBox.Show("关键零件号1未校验!"); + // textBox6.Text = ""; + // textBox1.SelectAll(); + // textBox1.Focus(); + // return; + // } + // if (isCheck[1] == 0) + // { + // MessageBox.Show("关键零件号2未校验!"); + // textBox6.Text = ""; + // textBox2.SelectAll(); + // textBox2.Focus(); + // return; + // } + // if (isCheck[2] == 0) + // { + // MessageBox.Show("关键零件号3未校验!"); + // textBox6.Text = ""; + // textBox3.SelectAll(); + // textBox3.Focus(); + // return; + // } + // if (isCheck[3] == 0) + // { + // MessageBox.Show("关键零件号4未校验!"); + // textBox6.Text = ""; + // textBox4.SelectAll(); + // textBox4.Focus(); + // return; + // } + // if (isCheck[4] == 0) + // { + // MessageBox.Show("关键零件号5未校验!"); + // textBox6.Text = ""; + // textBox5.SelectAll(); + // textBox5.Focus(); + // return; + // } + // if (isCheck[5] == 0) + // { + // MessageBox.Show("关键零件号6未校验!"); + // textBox6.SelectAll(); + // textBox6.Focus(); + // return; + // } + + // #endregion + + // ScanAll.ScanResult = true; + // ScanAll.barCode1 = textBox1.Text.Trim(); + // ScanAll.partNo1 = Function2.GetPartNoByID(productID3); + // ScanAll.barCode2 = textBox2.Text.Trim(); + // ScanAll.partNo2 = Function2.GetPartNoByID(productID4); + // ScanAll.barCode3 = textBox3.Text.Trim(); + // ScanAll.partNo3 = Function2.GetPartNoByID(productID5); + + // ScanAll.barCode4 = textBox4.Text.Trim(); + // ScanAll.partNo4 = Function2.GetPartNoByID(productID6); + // ScanAll.barCode5 = textBox5.Text.Trim(); + // ScanAll.partNo5 = Function2.GetPartNoByID(productID7); + // ScanAll.barCode6 = textBox6.Text.Trim(); + // ScanAll.partNo6 = Function2.GetPartNoByID(productID8); + // this.Close(); + //} + //else + //{ + // MessageBox.Show("扫入条码与总成不匹配,请检查后再次扫描"); + // textBox4.Text = ""; + //} } } } diff --git a/PunchingMistake/FrmQualityNew.Designer.cs b/PunchingMistake/FrmQualityNew.Designer.cs index f7529ee..06a2a2b 100644 --- a/PunchingMistake/FrmQualityNew.Designer.cs +++ b/PunchingMistake/FrmQualityNew.Designer.cs @@ -35,6 +35,7 @@ /// private void InitializeComponent() { + this.components = new System.ComponentModel.Container(); System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FrmQualityNew)); this.labTime = new System.Windows.Forms.Label(); this.pictureBox1 = new System.Windows.Forms.PictureBox(); @@ -47,55 +48,32 @@ this.txtBarCode = new System.Windows.Forms.TextBox(); this.labProPosition = new System.Windows.Forms.Label(); this.panel1 = new System.Windows.Forms.Panel(); - this.button4 = new System.Windows.Forms.Button(); - this.button3 = new System.Windows.Forms.Button(); - this.btnPlanDown = new System.Windows.Forms.Button(); - this.btnPlanUp = new System.Windows.Forms.Button(); + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.panelResponsibility = new System.Windows.Forms.Panel(); + this.label19 = new System.Windows.Forms.Label(); + this.label3 = new System.Windows.Forms.Label(); + this.label17 = new System.Windows.Forms.Label(); + this.lbForeig = new System.Windows.Forms.Label(); this.btnOk = new System.Windows.Forms.Button(); this.btnRepair = new System.Windows.Forms.Button(); - this.btnNok = new System.Windows.Forms.Button(); this.btnAbt = new System.Windows.Forms.Button(); - this.lableFP = new System.Windows.Forms.Label(); - this.groupBox1 = new System.Windows.Forms.GroupBox(); - this.lbProductName = new System.Windows.Forms.Label(); - this.lbProductCode = new System.Windows.Forms.Label(); - this.label10 = new System.Windows.Forms.Label(); - this.label9 = new System.Windows.Forms.Label(); - this.label8 = new System.Windows.Forms.Label(); - this.lbPlanCode = new System.Windows.Forms.Label(); - this.groupBox2 = new System.Windows.Forms.GroupBox(); - this.lbPlanQty = new System.Windows.Forms.Label(); - this.groupBox3 = new System.Windows.Forms.GroupBox(); - this.lbPlanCompleteQty = new System.Windows.Forms.Label(); - this.groupBox4 = new System.Windows.Forms.GroupBox(); - this.lbOkCount = new System.Windows.Forms.Label(); - this.groupBox5 = new System.Windows.Forms.GroupBox(); - this.lbRepairCount = new System.Windows.Forms.Label(); - this.groupBox6 = new System.Windows.Forms.GroupBox(); - this.lbBadCount = new System.Windows.Forms.Label(); - this.lbForeig = new System.Windows.Forms.Label(); - this.labWorkClass = new System.Windows.Forms.Label(); - this.labStation = new System.Windows.Forms.Label(); - this.labelVersion = new System.Windows.Forms.Label(); + this.btnPG = new System.Windows.Forms.Button(); + this.timer1 = new System.Windows.Forms.Timer(this.components); ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).BeginInit(); this.panel1.SuspendLayout(); this.groupBox1.SuspendLayout(); - this.groupBox2.SuspendLayout(); - this.groupBox3.SuspendLayout(); - this.groupBox4.SuspendLayout(); - this.groupBox5.SuspendLayout(); - this.groupBox6.SuspendLayout(); + this.panelResponsibility.SuspendLayout(); this.SuspendLayout(); // // labTime // this.labTime.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.labTime.Font = new System.Drawing.Font("宋体", 24F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.labTime.Location = new System.Drawing.Point(1867, 17); - this.labTime.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0); + this.labTime.Location = new System.Drawing.Point(2037, 19); + this.labTime.Margin = new System.Windows.Forms.Padding(7, 0, 7, 0); this.labTime.Name = "labTime"; - this.labTime.Size = new System.Drawing.Size(457, 146); + this.labTime.Size = new System.Drawing.Size(498, 167); this.labTime.TabIndex = 18; this.labTime.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; this.labTime.Click += new System.EventHandler(this.labTime_Click); @@ -104,10 +82,10 @@ // this.pictureBox1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.pictureBox1.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox1.Image"))); - this.pictureBox1.Location = new System.Drawing.Point(22, 17); - this.pictureBox1.Margin = new System.Windows.Forms.Padding(6, 4, 6, 4); + this.pictureBox1.Location = new System.Drawing.Point(24, 19); + this.pictureBox1.Margin = new System.Windows.Forms.Padding(7, 5, 7, 5); this.pictureBox1.Name = "pictureBox1"; - this.pictureBox1.Size = new System.Drawing.Size(291, 146); + this.pictureBox1.Size = new System.Drawing.Size(317, 167); this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; this.pictureBox1.TabIndex = 17; this.pictureBox1.TabStop = false; @@ -116,27 +94,27 @@ // this.labTitle.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.labTitle.Font = new System.Drawing.Font("宋体", 48F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.labTitle.Location = new System.Drawing.Point(296, 17); - this.labTitle.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0); + this.labTitle.Location = new System.Drawing.Point(323, 19); + this.labTitle.Margin = new System.Windows.Forms.Padding(7, 0, 7, 0); this.labTitle.Name = "labTitle"; - this.labTitle.Size = new System.Drawing.Size(1576, 146); + this.labTitle.Size = new System.Drawing.Size(1719, 167); this.labTitle.TabIndex = 16; this.labTitle.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; // // panel2 // - this.panel2.Location = new System.Drawing.Point(18, 870); - this.panel2.Margin = new System.Windows.Forms.Padding(6, 4, 6, 4); + this.panel2.Location = new System.Drawing.Point(24, 1232); + this.panel2.Margin = new System.Windows.Forms.Padding(7, 5, 7, 5); this.panel2.Name = "panel2"; - this.panel2.Size = new System.Drawing.Size(1829, 578); + this.panel2.Size = new System.Drawing.Size(1995, 701); this.panel2.TabIndex = 48; // // pictureBox2 // - this.pictureBox2.Location = new System.Drawing.Point(18, 352); - this.pictureBox2.Margin = new System.Windows.Forms.Padding(6, 4, 6, 4); + this.pictureBox2.Location = new System.Drawing.Point(24, 601); + this.pictureBox2.Margin = new System.Windows.Forms.Padding(7, 5, 7, 5); this.pictureBox2.Name = "pictureBox2"; - this.pictureBox2.Size = new System.Drawing.Size(1829, 509); + this.pictureBox2.Size = new System.Drawing.Size(1995, 584); this.pictureBox2.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; this.pictureBox2.TabIndex = 47; this.pictureBox2.TabStop = false; @@ -145,10 +123,10 @@ // this.label15.BackColor = System.Drawing.Color.Lime; this.label15.Font = new System.Drawing.Font("黑体", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.label15.Location = new System.Drawing.Point(21, 163); - this.label15.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0); + this.label15.Location = new System.Drawing.Point(24, 202); + this.label15.Margin = new System.Windows.Forms.Padding(7, 0, 7, 0); this.label15.Name = "label15"; - this.label15.Size = new System.Drawing.Size(292, 130); + this.label15.Size = new System.Drawing.Size(319, 149); this.label15.TabIndex = 49; this.label15.Text = "扫码信息"; this.label15.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; @@ -157,10 +135,10 @@ // this.labProductInfo.BackColor = System.Drawing.Color.White; this.labProductInfo.Font = new System.Drawing.Font("黑体", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.labProductInfo.Location = new System.Drawing.Point(1407, 163); - this.labProductInfo.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0); + this.labProductInfo.Location = new System.Drawing.Point(1536, 202); + this.labProductInfo.Margin = new System.Windows.Forms.Padding(7, 0, 7, 0); this.labProductInfo.Name = "labProductInfo"; - this.labProductInfo.Size = new System.Drawing.Size(917, 130); + this.labProductInfo.Size = new System.Drawing.Size(1000, 149); this.labProductInfo.TabIndex = 52; this.labProductInfo.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; // @@ -168,10 +146,10 @@ // this.label2.BackColor = System.Drawing.Color.Lime; this.label2.Font = new System.Drawing.Font("黑体", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.label2.Location = new System.Drawing.Point(1106, 163); - this.label2.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0); + this.label2.Location = new System.Drawing.Point(1207, 202); + this.label2.Margin = new System.Windows.Forms.Padding(7, 0, 7, 0); this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(292, 130); + this.label2.Size = new System.Drawing.Size(319, 149); this.label2.TabIndex = 51; this.label2.Text = "产品信息"; this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; @@ -180,10 +158,10 @@ // this.txtBarCode.BackColor = System.Drawing.Color.White; this.txtBarCode.Font = new System.Drawing.Font("黑体", 30F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.txtBarCode.Location = new System.Drawing.Point(325, 184); - this.txtBarCode.Margin = new System.Windows.Forms.Padding(6, 4, 6, 4); + this.txtBarCode.Location = new System.Drawing.Point(356, 226); + this.txtBarCode.Margin = new System.Windows.Forms.Padding(7, 5, 7, 5); this.txtBarCode.Name = "txtBarCode"; - this.txtBarCode.Size = new System.Drawing.Size(764, 87); + this.txtBarCode.Size = new System.Drawing.Size(833, 99); this.txtBarCode.TabIndex = 0; this.txtBarCode.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; this.txtBarCode.DoubleClick += new System.EventHandler(this.txtBarCode_DoubleClick); @@ -193,84 +171,118 @@ // this.labProPosition.BackColor = System.Drawing.Color.White; this.labProPosition.Font = new System.Drawing.Font("黑体", 22F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.labProPosition.Location = new System.Drawing.Point(1870, 315); - this.labProPosition.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0); + this.labProPosition.Location = new System.Drawing.Point(2029, 369); + this.labProPosition.Margin = new System.Windows.Forms.Padding(7, 0, 7, 0); this.labProPosition.Name = "labProPosition"; - this.labProPosition.Size = new System.Drawing.Size(465, 151); + this.labProPosition.Size = new System.Drawing.Size(507, 173); this.labProPosition.TabIndex = 64; this.labProPosition.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; // // panel1 // this.panel1.AutoScroll = true; - this.panel1.Controls.Add(this.button4); - this.panel1.Controls.Add(this.button3); - this.panel1.Controls.Add(this.btnPlanDown); - this.panel1.Controls.Add(this.btnPlanUp); - this.panel1.Controls.Add(this.btnOk); - this.panel1.Controls.Add(this.btnRepair); - this.panel1.Controls.Add(this.btnNok); - this.panel1.Controls.Add(this.btnAbt); + this.panel1.Controls.Add(this.groupBox1); this.panel1.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.panel1.Location = new System.Drawing.Point(18, 1469); - this.panel1.Margin = new System.Windows.Forms.Padding(6, 4, 6, 4); + this.panel1.Location = new System.Drawing.Point(24, 350); + this.panel1.Margin = new System.Windows.Forms.Padding(7, 5, 7, 5); this.panel1.Name = "panel1"; - this.panel1.Size = new System.Drawing.Size(1829, 317); + this.panel1.Size = new System.Drawing.Size(1995, 243); this.panel1.TabIndex = 66; // - // button4 - // - this.button4.BackColor = System.Drawing.Color.Red; - this.button4.Font = new System.Drawing.Font("宋体", 25.875F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.button4.Location = new System.Drawing.Point(1275, 181); - this.button4.Name = "button4"; - this.button4.Size = new System.Drawing.Size(326, 90); - this.button4.TabIndex = 74; - this.button4.Text = "结束计划"; - this.button4.UseVisualStyleBackColor = false; - // - // button3 - // - this.button3.BackColor = System.Drawing.Color.LawnGreen; - this.button3.Font = new System.Drawing.Font("宋体", 25.875F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.button3.Location = new System.Drawing.Point(1275, 45); - this.button3.Name = "button3"; - this.button3.Size = new System.Drawing.Size(326, 90); - this.button3.TabIndex = 73; - this.button3.Text = "计划查询"; - this.button3.UseVisualStyleBackColor = false; - // - // btnPlanDown - // - this.btnPlanDown.BackColor = System.Drawing.Color.LawnGreen; - this.btnPlanDown.Font = new System.Drawing.Font("宋体", 25.875F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.btnPlanDown.Location = new System.Drawing.Point(852, 181); - this.btnPlanDown.Name = "btnPlanDown"; - this.btnPlanDown.Size = new System.Drawing.Size(326, 81); - this.btnPlanDown.TabIndex = 72; - this.btnPlanDown.Text = "下一计划"; - this.btnPlanDown.UseVisualStyleBackColor = false; - this.btnPlanDown.Click += new System.EventHandler(this.btnPlanDown_Click); - // - // btnPlanUp - // - this.btnPlanUp.BackColor = System.Drawing.Color.LawnGreen; - this.btnPlanUp.Font = new System.Drawing.Font("宋体", 25.875F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.btnPlanUp.Location = new System.Drawing.Point(852, 45); - this.btnPlanUp.Name = "btnPlanUp"; - this.btnPlanUp.Size = new System.Drawing.Size(326, 90); - this.btnPlanUp.TabIndex = 71; - this.btnPlanUp.Text = "上一计划"; - this.btnPlanUp.UseVisualStyleBackColor = false; - this.btnPlanUp.Click += new System.EventHandler(this.btnPlanUp_Click); + // groupBox1 + // + this.groupBox1.Controls.Add(this.panelResponsibility); + this.groupBox1.Controls.Add(this.lbForeig); + this.groupBox1.Dock = System.Windows.Forms.DockStyle.Fill; + this.groupBox1.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.groupBox1.Location = new System.Drawing.Point(0, 0); + this.groupBox1.Margin = new System.Windows.Forms.Padding(0); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Padding = new System.Windows.Forms.Padding(0); + this.groupBox1.Size = new System.Drawing.Size(1995, 243); + this.groupBox1.TabIndex = 0; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "责任部门"; + // + // panelResponsibility + // + this.panelResponsibility.AutoScroll = true; + this.panelResponsibility.Controls.Add(this.label19); + this.panelResponsibility.Controls.Add(this.label3); + this.panelResponsibility.Controls.Add(this.label17); + this.panelResponsibility.Dock = System.Windows.Forms.DockStyle.Top; + this.panelResponsibility.Location = new System.Drawing.Point(0, 43); + this.panelResponsibility.Margin = new System.Windows.Forms.Padding(0); + this.panelResponsibility.Name = "panelResponsibility"; + this.panelResponsibility.Size = new System.Drawing.Size(1995, 130); + this.panelResponsibility.TabIndex = 0; + this.panelResponsibility.Paint += new System.Windows.Forms.PaintEventHandler(this.panelResponsibility_Paint); + // + // label19 + // + this.label19.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.label19.Font = new System.Drawing.Font("宋体", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label19.ForeColor = System.Drawing.Color.Blue; + this.label19.Location = new System.Drawing.Point(980, 9); + this.label19.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + this.label19.Name = "label19"; + this.label19.Size = new System.Drawing.Size(375, 105); + this.label19.TabIndex = 12; + this.label19.Tag = "Response"; + this.label19.Text = "物流"; + this.label19.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.label19.Click += new System.EventHandler(this.Responsibility_Click); + // + // label3 + // + this.label3.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.label3.Font = new System.Drawing.Font("宋体", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label3.ForeColor = System.Drawing.Color.Blue; + this.label3.Location = new System.Drawing.Point(515, 9); + this.label3.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(321, 105); + this.label3.TabIndex = 11; + this.label3.Tag = "Response"; + this.label3.Text = "注塑"; + this.label3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.label3.Click += new System.EventHandler(this.Responsibility_Click); + // + // label17 + // + this.label17.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.label17.Font = new System.Drawing.Font("宋体", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label17.ForeColor = System.Drawing.Color.Blue; + this.label17.Location = new System.Drawing.Point(9, 9); + this.label17.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + this.label17.Name = "label17"; + this.label17.Size = new System.Drawing.Size(361, 105); + this.label17.TabIndex = 10; + this.label17.Tag = "Response"; + this.label17.Text = "喷涂"; + this.label17.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.label17.Click += new System.EventHandler(this.Responsibility_Click); + // + // lbForeig + // + this.lbForeig.AutoSize = true; + this.lbForeig.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.lbForeig.ForeColor = System.Drawing.Color.Red; + this.lbForeig.Location = new System.Drawing.Point(3, 192); + this.lbForeig.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + this.lbForeig.Name = "lbForeig"; + this.lbForeig.Size = new System.Drawing.Size(72, 28); + this.lbForeig.TabIndex = 72; + this.lbForeig.Tag = "老外库提示"; + this.lbForeig.Text = " "; // // btnOk // this.btnOk.BackColor = System.Drawing.Color.LawnGreen; this.btnOk.Font = new System.Drawing.Font("宋体", 25.875F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.btnOk.Location = new System.Drawing.Point(30, 45); + this.btnOk.Location = new System.Drawing.Point(2029, 747); this.btnOk.Name = "btnOk"; - this.btnOk.Size = new System.Drawing.Size(326, 90); + this.btnOk.Size = new System.Drawing.Size(536, 225); this.btnOk.TabIndex = 67; this.btnOk.Text = "合 格"; this.btnOk.UseVisualStyleBackColor = false; @@ -280,300 +292,52 @@ // this.btnRepair.BackColor = System.Drawing.Color.DodgerBlue; this.btnRepair.Font = new System.Drawing.Font("宋体", 25.875F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.btnRepair.Location = new System.Drawing.Point(30, 181); + this.btnRepair.Location = new System.Drawing.Point(2029, 1081); this.btnRepair.Name = "btnRepair"; - this.btnRepair.Size = new System.Drawing.Size(326, 90); + this.btnRepair.Size = new System.Drawing.Size(536, 225); this.btnRepair.TabIndex = 69; this.btnRepair.Text = "返修"; this.btnRepair.UseVisualStyleBackColor = false; this.btnRepair.Click += new System.EventHandler(this.btnRepair_Click); // - // btnNok - // - this.btnNok.BackColor = System.Drawing.Color.Yellow; - this.btnNok.Font = new System.Drawing.Font("宋体", 25.875F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.btnNok.Location = new System.Drawing.Point(466, 45); - this.btnNok.Name = "btnNok"; - this.btnNok.Size = new System.Drawing.Size(321, 90); - this.btnNok.TabIndex = 68; - this.btnNok.Text = "返修合格"; - this.btnNok.UseVisualStyleBackColor = false; - this.btnNok.Click += new System.EventHandler(this.btnNok_Click); - // // btnAbt // this.btnAbt.BackColor = System.Drawing.Color.OrangeRed; this.btnAbt.Font = new System.Drawing.Font("宋体", 25.875F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.btnAbt.Location = new System.Drawing.Point(466, 181); + this.btnAbt.Location = new System.Drawing.Point(2029, 1715); this.btnAbt.Name = "btnAbt"; - this.btnAbt.Size = new System.Drawing.Size(314, 90); + this.btnAbt.Size = new System.Drawing.Size(536, 217); this.btnAbt.TabIndex = 70; this.btnAbt.Text = "报 废"; this.btnAbt.UseVisualStyleBackColor = false; this.btnAbt.Click += new System.EventHandler(this.btnAbt_Click); // - // lableFP - // - this.lableFP.AutoSize = true; - this.lableFP.Font = new System.Drawing.Font("宋体", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.lableFP.ForeColor = System.Drawing.Color.Red; - this.lableFP.Location = new System.Drawing.Point(2201, 552); - this.lableFP.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); - this.lableFP.Name = "lableFP"; - this.lableFP.Size = new System.Drawing.Size(106, 42); - this.lableFP.TabIndex = 71; - this.lableFP.Tag = "存在返喷"; - this.lableFP.Text = " "; + // btnPG // - // groupBox1 - // - this.groupBox1.Controls.Add(this.lbProductName); - this.groupBox1.Controls.Add(this.lbProductCode); - this.groupBox1.Controls.Add(this.label10); - this.groupBox1.Controls.Add(this.label9); - this.groupBox1.Controls.Add(this.label8); - this.groupBox1.Controls.Add(this.lbPlanCode); - this.groupBox1.Font = new System.Drawing.Font("宋体", 13.875F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.groupBox1.ForeColor = System.Drawing.Color.Blue; - this.groupBox1.Location = new System.Drawing.Point(1879, 604); - this.groupBox1.Name = "groupBox1"; - this.groupBox1.Size = new System.Drawing.Size(456, 192); - this.groupBox1.TabIndex = 72; - this.groupBox1.TabStop = false; - this.groupBox1.Text = "当前计划"; - // - // lbProductName - // - this.lbProductName.AutoSize = true; - this.lbProductName.ForeColor = System.Drawing.Color.Black; - this.lbProductName.Location = new System.Drawing.Point(114, 156); - this.lbProductName.Name = "lbProductName"; - this.lbProductName.Size = new System.Drawing.Size(105, 33); - this.lbProductName.TabIndex = 5; - this.lbProductName.Text = " "; - // - // lbProductCode - // - this.lbProductCode.AutoSize = true; - this.lbProductCode.ForeColor = System.Drawing.Color.Black; - this.lbProductCode.Location = new System.Drawing.Point(114, 105); - this.lbProductCode.Name = "lbProductCode"; - this.lbProductCode.Size = new System.Drawing.Size(87, 33); - this.lbProductCode.TabIndex = 4; - this.lbProductCode.Text = " "; - // - // label10 - // - this.label10.AutoSize = true; - this.label10.ForeColor = System.Drawing.Color.Black; - this.label10.Location = new System.Drawing.Point(17, 156); - this.label10.Name = "label10"; - this.label10.Size = new System.Drawing.Size(83, 33); - this.label10.TabIndex = 3; - this.label10.Text = "描述"; - // - // label9 - // - this.label9.AutoSize = true; - this.label9.ForeColor = System.Drawing.Color.Black; - this.label9.Location = new System.Drawing.Point(16, 105); - this.label9.Name = "label9"; - this.label9.Size = new System.Drawing.Size(83, 33); - this.label9.TabIndex = 2; - this.label9.Text = "产品"; - // - // label8 - // - this.label8.AutoSize = true; - this.label8.ForeColor = System.Drawing.Color.Black; - this.label8.Location = new System.Drawing.Point(16, 55); - this.label8.Name = "label8"; - this.label8.Size = new System.Drawing.Size(83, 33); - this.label8.TabIndex = 1; - this.label8.Text = "编号"; - // - // lbPlanCode - // - this.lbPlanCode.AutoSize = true; - this.lbPlanCode.ForeColor = System.Drawing.Color.Black; - this.lbPlanCode.Location = new System.Drawing.Point(114, 55); - this.lbPlanCode.Name = "lbPlanCode"; - this.lbPlanCode.Size = new System.Drawing.Size(87, 33); - this.lbPlanCode.TabIndex = 0; - this.lbPlanCode.Text = " "; - // - // groupBox2 - // - this.groupBox2.Controls.Add(this.lbPlanQty); - this.groupBox2.Font = new System.Drawing.Font("宋体", 13.875F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.groupBox2.ForeColor = System.Drawing.Color.Blue; - this.groupBox2.Location = new System.Drawing.Point(1879, 821); - this.groupBox2.Name = "groupBox2"; - this.groupBox2.Size = new System.Drawing.Size(456, 138); - this.groupBox2.TabIndex = 73; - this.groupBox2.TabStop = false; - this.groupBox2.Text = "生产计划数量"; - // - // lbPlanQty - // - this.lbPlanQty.AutoSize = true; - this.lbPlanQty.Font = new System.Drawing.Font("宋体", 36F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.lbPlanQty.ForeColor = System.Drawing.Color.Black; - this.lbPlanQty.Location = new System.Drawing.Point(41, 40); - this.lbPlanQty.Name = "lbPlanQty"; - this.lbPlanQty.Size = new System.Drawing.Size(78, 84); - this.lbPlanQty.TabIndex = 1; - this.lbPlanQty.Text = "0"; - // - // groupBox3 - // - this.groupBox3.Controls.Add(this.lbPlanCompleteQty); - this.groupBox3.Font = new System.Drawing.Font("宋体", 13.875F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.groupBox3.ForeColor = System.Drawing.Color.Blue; - this.groupBox3.Location = new System.Drawing.Point(1885, 983); - this.groupBox3.Name = "groupBox3"; - this.groupBox3.Size = new System.Drawing.Size(456, 138); - this.groupBox3.TabIndex = 74; - this.groupBox3.TabStop = false; - this.groupBox3.Text = "计划完成数量"; - // - // lbPlanCompleteQty - // - this.lbPlanCompleteQty.AutoSize = true; - this.lbPlanCompleteQty.Font = new System.Drawing.Font("宋体", 36F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.lbPlanCompleteQty.ForeColor = System.Drawing.Color.Black; - this.lbPlanCompleteQty.Location = new System.Drawing.Point(36, 40); - this.lbPlanCompleteQty.Name = "lbPlanCompleteQty"; - this.lbPlanCompleteQty.Size = new System.Drawing.Size(78, 84); - this.lbPlanCompleteQty.TabIndex = 0; - this.lbPlanCompleteQty.Text = "0"; - // - // groupBox4 - // - this.groupBox4.Controls.Add(this.lbOkCount); - this.groupBox4.Font = new System.Drawing.Font("宋体", 13.875F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.groupBox4.ForeColor = System.Drawing.Color.Blue; - this.groupBox4.Location = new System.Drawing.Point(1885, 1153); - this.groupBox4.Name = "groupBox4"; - this.groupBox4.Size = new System.Drawing.Size(456, 138); - this.groupBox4.TabIndex = 75; - this.groupBox4.TabStop = false; - this.groupBox4.Text = "合格数量"; - // - // lbOkCount - // - this.lbOkCount.AutoSize = true; - this.lbOkCount.Font = new System.Drawing.Font("宋体", 36F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.lbOkCount.ForeColor = System.Drawing.Color.Black; - this.lbOkCount.Location = new System.Drawing.Point(36, 40); - this.lbOkCount.Name = "lbOkCount"; - this.lbOkCount.Size = new System.Drawing.Size(78, 84); - this.lbOkCount.TabIndex = 1; - this.lbOkCount.Text = "0"; - // - // groupBox5 - // - this.groupBox5.Controls.Add(this.lbRepairCount); - this.groupBox5.Font = new System.Drawing.Font("宋体", 13.875F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.groupBox5.ForeColor = System.Drawing.Color.Blue; - this.groupBox5.Location = new System.Drawing.Point(1885, 1324); - this.groupBox5.Name = "groupBox5"; - this.groupBox5.Size = new System.Drawing.Size(456, 138); - this.groupBox5.TabIndex = 76; - this.groupBox5.TabStop = false; - this.groupBox5.Text = "返修数量"; - // - // lbRepairCount - // - this.lbRepairCount.AutoSize = true; - this.lbRepairCount.Font = new System.Drawing.Font("宋体", 36F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.lbRepairCount.ForeColor = System.Drawing.Color.Black; - this.lbRepairCount.Location = new System.Drawing.Point(36, 40); - this.lbRepairCount.Name = "lbRepairCount"; - this.lbRepairCount.Size = new System.Drawing.Size(78, 84); - this.lbRepairCount.TabIndex = 1; - this.lbRepairCount.Text = "0"; - // - // groupBox6 - // - this.groupBox6.Controls.Add(this.lbBadCount); - this.groupBox6.Font = new System.Drawing.Font("宋体", 13.875F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.groupBox6.ForeColor = System.Drawing.Color.Blue; - this.groupBox6.Location = new System.Drawing.Point(1885, 1494); - this.groupBox6.Name = "groupBox6"; - this.groupBox6.Size = new System.Drawing.Size(456, 138); - this.groupBox6.TabIndex = 77; - this.groupBox6.TabStop = false; - this.groupBox6.Text = "报废数量"; - // - // lbBadCount - // - this.lbBadCount.AutoSize = true; - this.lbBadCount.Font = new System.Drawing.Font("宋体", 36F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.lbBadCount.ForeColor = System.Drawing.Color.Black; - this.lbBadCount.Location = new System.Drawing.Point(36, 40); - this.lbBadCount.Name = "lbBadCount"; - this.lbBadCount.Size = new System.Drawing.Size(78, 84); - this.lbBadCount.TabIndex = 1; - this.lbBadCount.Text = "0"; + this.btnPG.BackColor = System.Drawing.Color.Yellow; + this.btnPG.Font = new System.Drawing.Font("宋体", 25.875F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnPG.Location = new System.Drawing.Point(2029, 1401); + this.btnPG.Name = "btnPG"; + this.btnPG.Size = new System.Drawing.Size(536, 225); + this.btnPG.TabIndex = 73; + this.btnPG.Text = "返修合格"; + this.btnPG.UseVisualStyleBackColor = false; + this.btnPG.Click += new System.EventHandler(this.btnPG_Click); // - // lbForeig + // timer1 // - this.lbForeig.AutoSize = true; - this.lbForeig.Font = new System.Drawing.Font("宋体", 13.875F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.lbForeig.Location = new System.Drawing.Point(26, 306); - this.lbForeig.Name = "lbForeig"; - this.lbForeig.Size = new System.Drawing.Size(69, 33); - this.lbForeig.TabIndex = 78; - this.lbForeig.Text = " "; - // - // labWorkClass - // - this.labWorkClass.AutoSize = true; - this.labWorkClass.Font = new System.Drawing.Font("宋体", 13.875F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.labWorkClass.Location = new System.Drawing.Point(1879, 487); - this.labWorkClass.Name = "labWorkClass"; - this.labWorkClass.Size = new System.Drawing.Size(67, 33); - this.labWorkClass.TabIndex = 79; - this.labWorkClass.Text = "A班"; - // - // labStation - // - this.labStation.AutoSize = true; - this.labStation.Font = new System.Drawing.Font("宋体", 13.875F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.labStation.Location = new System.Drawing.Point(2123, 487); - this.labStation.Name = "labStation"; - this.labStation.Size = new System.Drawing.Size(69, 33); - this.labStation.TabIndex = 80; - this.labStation.Text = "F02"; - // - // labelVersion - // - this.labelVersion.AutoSize = true; - this.labelVersion.Font = new System.Drawing.Font("宋体", 13.875F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.labelVersion.Location = new System.Drawing.Point(1879, 552); - this.labelVersion.Name = "labelVersion"; - this.labelVersion.Size = new System.Drawing.Size(159, 33); - this.labelVersion.TabIndex = 81; - this.labelVersion.Text = "10.0.0.1"; + this.timer1.Interval = 1000; // // FrmQualityNew // - this.AutoScaleDimensions = new System.Drawing.SizeF(11F, 21F); + this.AutoScaleDimensions = new System.Drawing.SizeF(12F, 24F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(2351, 1789); - this.Controls.Add(this.labelVersion); - this.Controls.Add(this.labStation); - this.Controls.Add(this.labWorkClass); - this.Controls.Add(this.lbForeig); - this.Controls.Add(this.groupBox6); - this.Controls.Add(this.groupBox5); - this.Controls.Add(this.groupBox4); - this.Controls.Add(this.groupBox3); - this.Controls.Add(this.groupBox2); - this.Controls.Add(this.groupBox1); + this.ClientSize = new System.Drawing.Size(2565, 2045); + this.Controls.Add(this.btnPG); + this.Controls.Add(this.btnAbt); + this.Controls.Add(this.btnRepair); + this.Controls.Add(this.btnOk); this.Controls.Add(this.panel1); - this.Controls.Add(this.lableFP); this.Controls.Add(this.labProPosition); this.Controls.Add(this.txtBarCode); this.Controls.Add(this.labProductInfo); @@ -585,7 +349,7 @@ this.Controls.Add(this.pictureBox1); this.Controls.Add(this.labTitle); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; - this.Margin = new System.Windows.Forms.Padding(6, 4, 6, 4); + this.Margin = new System.Windows.Forms.Padding(7, 5, 7, 5); this.Name = "FrmQualityNew"; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; this.Text = "喷涂质检"; @@ -595,16 +359,7 @@ this.panel1.ResumeLayout(false); this.groupBox1.ResumeLayout(false); this.groupBox1.PerformLayout(); - this.groupBox2.ResumeLayout(false); - this.groupBox2.PerformLayout(); - this.groupBox3.ResumeLayout(false); - this.groupBox3.PerformLayout(); - this.groupBox4.ResumeLayout(false); - this.groupBox4.PerformLayout(); - this.groupBox5.ResumeLayout(false); - this.groupBox5.PerformLayout(); - this.groupBox6.ResumeLayout(false); - this.groupBox6.PerformLayout(); + this.panelResponsibility.ResumeLayout(false); this.ResumeLayout(false); this.PerformLayout(); @@ -622,35 +377,16 @@ private System.Windows.Forms.TextBox txtBarCode; private System.Windows.Forms.Label labProPosition; private System.Windows.Forms.Panel panel1; + private System.Windows.Forms.GroupBox groupBox1; private System.Windows.Forms.Button btnOk; - private System.Windows.Forms.Button btnNok; private System.Windows.Forms.Button btnRepair; private System.Windows.Forms.Button btnAbt; - private System.Windows.Forms.Label lableFP; - private System.Windows.Forms.Button btnPlanDown; - private System.Windows.Forms.Button btnPlanUp; - private System.Windows.Forms.Button button4; - private System.Windows.Forms.Button button3; - private System.Windows.Forms.GroupBox groupBox1; - private System.Windows.Forms.GroupBox groupBox2; - private System.Windows.Forms.GroupBox groupBox3; - private System.Windows.Forms.GroupBox groupBox4; - private System.Windows.Forms.GroupBox groupBox5; - private System.Windows.Forms.GroupBox groupBox6; + private System.Windows.Forms.Panel panelResponsibility; private System.Windows.Forms.Label lbForeig; - private System.Windows.Forms.Label labWorkClass; - private System.Windows.Forms.Label labStation; - private System.Windows.Forms.Label labelVersion; - private System.Windows.Forms.Label lbPlanCode; - private System.Windows.Forms.Label lbPlanCompleteQty; - private System.Windows.Forms.Label lbOkCount; - private System.Windows.Forms.Label lbRepairCount; - private System.Windows.Forms.Label lbBadCount; - private System.Windows.Forms.Label lbPlanQty; - private System.Windows.Forms.Label label8; - private System.Windows.Forms.Label label10; - private System.Windows.Forms.Label label9; - private System.Windows.Forms.Label lbProductName; - private System.Windows.Forms.Label lbProductCode; + private System.Windows.Forms.Label label19; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.Label label17; + private System.Windows.Forms.Button btnPG; + private System.Windows.Forms.Timer timer1; } } \ No newline at end of file diff --git a/PunchingMistake/FrmQualityNew.cs b/PunchingMistake/FrmQualityNew.cs index 5c062c4..6e61d12 100644 --- a/PunchingMistake/FrmQualityNew.cs +++ b/PunchingMistake/FrmQualityNew.cs @@ -14,57 +14,47 @@ using System.Threading; using System.Windows.Forms; using MESClassLibrary.BLL.BasicInfo; using static System.Windows.Forms.AxHost; -using PaintingPC; +using PunchingMistake; namespace PunchingMistake { public partial class FrmQualityNew : Form { - int count = 0; //缺陷图选择个数 - public static string ColorName = ""; //修改颜色 + int count = 0; //缺陷图选择个数 public static string paintId = ""; - private static string position = "", reason = ""; + private static string position = "", reason = "", responsible = ""; - private string _carType = string.Empty; - private Dictionary _lastJustDict = new Dictionary(); - private string _foreighColor = string.Empty; - private string _lineCode = string.Empty; - private List _stations = new List(); - - private StationBLL _stationBLL = new StationBLL(); - /// - /// 从tb_ForeignColorMap表得到的零件号 - /// - private string _foreignPartCode = string.Empty; - private bool _isSingleStation = false; - private string _isTest = "false"; - private string _stationNo = ""; - private string IsHigh = "1"; + private string _stationType = "上线前质检"; + private string _isTest = "false"; + //责任方 + private List _selectResponsibles = new List(); + //扫描的喷涂行数据 + private DataRow _scanPaintRow = null; public FrmQualityNew() { InitializeComponent(); //WindowState = FormWindowState.Normal; this.Size = new Size(1280, 1020); - - + _isTest = ConfigurationManager.AppSettings["测试"]?.ToString(); + labProPosition.Text = Program.station; } - - private void FrmSecondCheck_Load(object sender, EventArgs e) { try { Control.CheckForIllegalCrossThreadCalls = false; + UpdateSoftware(); InitPage(); } catch (Exception ex) { MessageBox.Show("网络故障,请联系网络管理员"); - LogHelper.WriteLog(ex.ToString(), MethodBase.GetCurrentMethod().Name); + LogHelper.WriteLog(ex.ToString()); + // LogHelper.WriteErrLogBase(ex.ToString(), MethodBase.GetCurrentMethod().Name); } } @@ -72,27 +62,22 @@ namespace PunchingMistake { try { - string title = ConfigurationManager.AppSettings["Display"].ToString(); - string workClass = Function.GetWorkClass2(); - _stationNo = ConfigurationManager.AppSettings["Station"].ToString(); - - labTitle.Text = title; - - labWorkClass.Text = workClass; - labStation.Text = _stationNo; - labelVersion.Text = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString(); - - LoadScreen(); + string title = ConfigurationManager.AppSettings["Display"].ToString(); ; + string workClass = Function3.GetWorkClass(); + string station = ConfigurationManager.AppSettings["Station"].ToString(); + labTitle.Text = title; + //Program.IP = ConfigurationManager.AppSettings["IP"].ToString(); + Thread t = new Thread(new ThreadStart(TimeGo)); t.Start(); } catch (Exception ex) - { } + { + } } - - + private void TimeGo() { @@ -135,6 +120,11 @@ namespace PunchingMistake a.BackColor = Color.Transparent; count--; } + + if(!string.IsNullOrEmpty(position) && position.EndsWith(";")) + { + position = position.Substring(0, position.Length - 1); + } } /// @@ -165,7 +155,6 @@ namespace PunchingMistake private Control[] SetControlGroup() { - //Control[] controls = { btnPass, btnAbt, btnRepair }; Control[] controls = { }; return controls; } @@ -182,17 +171,7 @@ namespace PunchingMistake } } - bool SaveBeforeVerify( string currentRst) - { - string lastRst = GetLastInspectRst(txtBarCode.Text.Trim()); - if (lastRst.Contains("报废")) - { - MessageBox.Show($"条码已判定为报废,不能再判定为{currentRst}."); - Clear(); - return false; - } - return true; - } + /// /// 合格 /// @@ -202,87 +181,15 @@ namespace PunchingMistake { try { - if (string.IsNullOrEmpty(txtBarCode.Text.Trim())) + if (_scanPaintRow == null) { MessageBox.Show("请先扫描数据,然后操作."); return; } - #region 返喷下线数据验证 - if (lableFP.Text.Contains("[返喷]")) - { - string barcode = txtBarCode.Text.Trim(); - DataTable dtInspect = Function.GetInspectInfoByBarCode2(barcode); - if (dtInspect != null && dtInspect.Rows.Count > 0) - { - string inspectResult = dtInspect.Rows[0]["inspectResult"].ToString(); //检测结果 - string inspectColorInfo = dtInspect.Rows[0]["remark1"].ToString(); //颜色 - if (inspectResult.Contains("打磨")) - { - string createTime = dtInspect.Rows[0]["createTime"].ToString(); //创建时间 - int count = 0; - string colorInfo = ""; - if (_lineCode == "2") - { - count = Function.GetProducColorFromWms(barcode, "TM_BJBMPT_MES_DATA", createTime ,ref colorInfo); - } - else if (_lineCode == "1") - { - count = Function.GetProducColorFromWms(barcode, "TM_BJBMPT_MES_DATA_OLD", createTime , ref colorInfo); - - } - else - { - - } - - if (count == 0) - { - MessageBox.Show("未发现返喷下线数据!,无法进行质量判定"); - return; - } - else - { - if(inspectColorInfo != colorInfo) - { - btnOk.Enabled = false; - btnRepair.Enabled = false; - btnNok.Enabled = false; - - MessageBox.Show("当前产品返喷颜色与原颜色不符,需报废!"); - return; - } - - } - } - } - - } - #endregion - - ShowHint(""); - #region 判断产品是否有颜色 - string colorName = string.Empty; - string partName = string.Empty; - if (CheckColor(ref colorName, ref partName) == false) return; - - - #endregion - ClearControlColor(SetControlGroup()); - btnAbt.BackColor = Color.Red; - - bool rr = SaveBeforeVerify("合格"); - if (rr == false) - { - return; - } - - //if (lastRst.Contains("合格")) - //{ - // MessageBox.Show("条码已判定为合格,无需重复判定"); - // Clear(); - // return; - //} - SaveRst("合格", colorName, partName, 1); + + ShowHint(""); + + SaveRst("合格", _scanPaintRow); } catch(Exception ex) { @@ -298,190 +205,68 @@ namespace PunchingMistake ClearTxtBarcode(); txtBarCode.TabIndex = 0; } - + + /// - /// 其它 + /// 点修补按钮 /// /// /// - private void btnNok_Click(object sender, EventArgs e) + private void btnRepair_Click(object sender, EventArgs e) { try { - if (string.IsNullOrEmpty(txtBarCode.Text.Trim())) + if (_scanPaintRow == null) { MessageBox.Show("请先扫描数据,然后操作."); return; } - #region 返喷下线数据验证 - if (lableFP.Text.Contains("[返喷]")) - { - string barcode = txtBarCode.Text.Trim(); - DataTable dtInspect = Function.GetInspectInfoByBarCode2(barcode); - if (dtInspect != null && dtInspect.Rows.Count > 0) - { - string inspectResult = dtInspect.Rows[0]["inspectResult"].ToString(); //检测结果 - string inspectColorInfo = dtInspect.Rows[0]["remark1"].ToString(); //颜色 - if (inspectResult.Contains("打磨")) - { - string createTime = dtInspect.Rows[0]["createTime"].ToString(); //创建时间 - int count = 0; - string colorInfo = ""; - if (_lineCode == "2") - { - count = Function.GetProducColorFromWms(barcode, "TM_BJBMPT_MES_DATA", createTime, ref colorInfo); - } - else if (_lineCode == "1") - { - count = Function.GetProducColorFromWms(barcode, "TM_BJBMPT_MES_DATA_OLD", createTime, ref colorInfo); - - } - else - { - - } - - if (count == 0) - { - MessageBox.Show("未发现返喷下线数据!,无法进行质量判定"); - return; - } - else - { - if (inspectColorInfo != colorInfo) - { - btnOk.Enabled = false; - btnRepair.Enabled = false; - btnNok.Enabled = false; - - MessageBox.Show("当前产品返喷颜色与原颜色不符,需报废!"); - return; - } - - } - } - } - - } - #endregion - - if (MessageBox.Show($"确认对[{txtBarCode.Text}]进行[其它]判定?", "操作确认", MessageBoxButtons.OKCancel) == DialogResult.Cancel) return; ShowHint(""); + #region 必须选择缺陷位置与缺陷原因,否则无法保存 + if (CheckDefect() == false) return; - #endregion - #region 判断产品是否有颜色 - string colorName = string.Empty; - string partName = string.Empty; - if (CheckColor(ref colorName, ref partName) == false) return; #endregion - int cs = Function.OtherTimes(txtBarCode.Text.Trim()); - if (cs > 0) - { - MessageBox.Show("条码" + txtBarCode.Text.Trim() + "已存在判定为其它的记录,只允许判定1次."); - ShowHint("条码" + txtBarCode.Text.Trim() + "已存在判定为其它的记录,只允许判定1次."); - Clear(); - return; - } + btnRepair.BackColor = Color.Yellow; - bool rr = SaveBeforeVerify("其它"); - if (rr == false) - { - return; - } - SaveRst("其它", colorName, partName, 4); + SaveRst("点修补", _scanPaintRow); } - catch(Exception ex) + catch (Exception ex) { - ShowHint("执行其它判定发生异常,异常原因:" + ex.Message); - MessageBox.Show("执行其它判定发生异常,异常原因:" + ex.Message); + ShowHint("判定点修补操作发生异常,异常原因:" + ex.Message); + MessageBox.Show("判定点修补操作发生异常,异常原因:" + ex.Message); Clear(); } - } - /// - /// 返喷按钮 - /// - /// - /// - private void btnRepair_Click(object sender, EventArgs e) + } + private void btnPG_Click(object sender, EventArgs e) { try { - #region 可回喷次数 =1,不能打磨, =2 可以, 不能有两次质检结果为打磨 - if (string.IsNullOrEmpty(txtBarCode.Text.Trim())) + if (_scanPaintRow == null) { MessageBox.Show("请先扫描数据,然后操作."); return; } - if (MessageBox.Show($"确认对[{txtBarCode.Text}]进行返喷操作?", "操作确认", MessageBoxButtons.OKCancel) == DialogResult.Cancel) return; ShowHint(""); - string barcode = Function.UniteBarCodeToOne(txtBarCode.Text.Trim()); - int cs = Function.YiDaMoCiShu(barcode); //记录中已返喷次数 - - int keHuiPen = Function.keHuiPen(barcode); //基础数据中,可返喷次数 - if (keHuiPen > 1) - keHuiPen = 1; - - if (keHuiPen > 0 && cs < keHuiPen) - { - #region 必须选择缺陷位置与缺陷原因,否则无法保存 - - if (CheckDefect() == false) return; - - #endregion - - #region 判断产品是否有颜色 - string colorName = string.Empty; - string partName = string.Empty; - - if (CheckColor(ref colorName, ref partName) == false) return; - #endregion - - ClearControlColor(SetControlGroup()); - btnRepair.BackColor = Color.Yellow; - - //string lastRst = GetLastInspectRst(txtBarCode.Text.Trim()); - //if (lastRst.Contains("打磨")) - //{ - // ShowHint("条码已判定为返喷,无需重复判定"); - // MessageBox.Show("条码已判定为返喷,无需重复判定"); - // Clear(); - // return; - //} - - - bool rr = SaveBeforeVerify("返喷"); - if (rr == false) - { - return; - } - SaveRst("", colorName, partName, 9); - - } - else - { - ShowHint("根据该零件可回喷次数设置,不能判定为返喷或已超过返喷次数!"); - MessageBox.Show("根据该零件可回喷次数设置,不能判定为返喷或已超过返喷次数!"); - Clear(); - return; - } - + #region 必须选择缺陷位置与缺陷原因,否则无法保存 + if (CheckDefect() == false) return; #endregion + + SaveRst("抛光", _scanPaintRow); } - catch(Exception ex) + + catch (Exception ex) { - ShowHint("执行返喷操作发生异常,异常原因:"+ex.Message); - MessageBox.Show("执行返喷操作发生异常,异常原因:" + ex.Message); + ShowHint("执行报废操作发生异常,异常原因:" + ex.Message); + MessageBox.Show("执行报废操作发生异常,异常原因:" + ex.Message); Clear(); } - } - /// /// 报废按钮 /// @@ -491,101 +276,21 @@ namespace PunchingMistake { try { - if (string.IsNullOrEmpty(txtBarCode.Text.Trim())) + if (_scanPaintRow == null) { MessageBox.Show("请先扫描数据,然后操作."); return; } - #region 返喷下线数据验证 - if (lableFP.Text.Contains("[返喷]")) - { - string barcode = txtBarCode.Text.Trim(); - DataTable dtInspect = Function.GetInspectInfoByBarCode2(barcode); - if (dtInspect != null && dtInspect.Rows.Count > 0) - { - string inspectResult = dtInspect.Rows[0]["inspectResult"].ToString(); //检测结果 - string inspectColorInfo = dtInspect.Rows[0]["remark1"].ToString(); //颜色 - if (inspectResult.Contains("打磨")) - { - string createTime = dtInspect.Rows[0]["createTime"].ToString(); //创建时间 - int count = 0; - string colorInfo = ""; - if (_lineCode == "2") - { - count = Function.GetProducColorFromWms(barcode, "TM_BJBMPT_MES_DATA", createTime, ref colorInfo); - } - else if (_lineCode == "1") - { - count = Function.GetProducColorFromWms(barcode, "TM_BJBMPT_MES_DATA_OLD", createTime, ref colorInfo); - - } - else - { - - } - - if (count == 0) - { - MessageBox.Show("未发现返喷下线数据!,无法进行质量判定"); - return; - } - } - } - - } - #endregion - - // if (MessageBox.Show($"确认对[{txtBarCode.Text}]进行报废操作?", "操作确认", MessageBoxButtons.OKCancel) == DialogResult.Cancel) return; - - //UserInput(userName => { + - //string userName = Program.UserName; - // if (string.IsNullOrEmpty(userName)) - // { - // MessageBox.Show("报废必须录入用户名."); - // return; - // } - // else - // { ShowHint(""); #region 必须选择缺陷位置与缺陷原因,否则无法保存 if (CheckDefect() == false) return; #endregion + - #region 判断产品是否有颜色 - string colorName = string.Empty; - string partName = string.Empty; - if (CheckColor(ref colorName, ref partName) == false) return; - #endregion - - //string lastRst = GetLastInspectRst(txtBarCode.Text.Trim()); - //if (lastRst.Contains("合格")) - //{ - // MessageBox.Show("条码已判定为合格,无法重新判定为报废"); - // Clear(); - // return; - //} - //if (lastRst.Contains("报废")) - //{ - // MessageBox.Show("条码已判定为报废,无需重复报废"); - // Clear(); - // return; - //} - - ClearControlColor(SetControlGroup()); - btnAbt.BackColor = Color.Red; - - bool rr = SaveBeforeVerify("报废"); - if (rr == false) - { - return; - } - - SaveRst("报废", colorName, partName, 2); - - // } - // }); + SaveRst("报废", _scanPaintRow); } catch(Exception ex) @@ -603,178 +308,24 @@ namespace PunchingMistake /// /// /// 0-不合格;1-合格;9-返喷 8-其他 - void SaveRst(string state, string colorName, string partName,int isOK,string userName="") + void SaveRst(string state, DataRow paintRow, string userName="") { if (string.IsNullOrEmpty(userName)) { userName = Program.UserName; - } - if (string.IsNullOrEmpty(userName)) - { - - } - - if(reason.Contains("点修补") && state!="其它") - { - MessageBox.Show("选择[点修补],只能判定为[其它]状态,不能判定为"+ state); - return; - } - string bcode = txtBarCode.Text.Trim(); - - bool ispass = ScanCodeValidVerify(bcode); - if (ispass == false) - { - txtBarCode.SelectAll(); - return; - } - - - + } + string bcode = txtBarCode.Text.Trim(); //保存 - string id = SaveInspect(state, colorName, partName, userName); - - try - { - if (!string.IsNullOrEmpty(id)) - { - string interfaceMsg = string.Empty; - bool rst = SendToWms(txtBarCode.Text.Trim(), isOK,ref interfaceMsg); - if (rst == false) - { - DeleteRepectRst(id, "Web接口调用返回false,原因:" + interfaceMsg, bcode); - } - else - { - ShowHint(txtBarCode.Text.Trim()+"操作成功",true); - Clear(); - } - } - else - { - MessageBox.Show("质检记录保存失败,请重新操作."); - return; - } - - } - catch (Exception ex) - { - if (ex.Message.Contains("WMS")) - { - DeleteRepectRst(id,"Web接口调用抛出异常,异常原因:" + ex.Message , bcode); - } - ShowHint(state+"-WMS报工异常,原因:" + ex.Message); - MessageBox.Show(state+"-WMS报工异常,原因:" + ex.Message); - LogHelper.WriteLog(state+"-WMS报工调用WMS接口:" + ex.ToString(), MethodBase.GetCurrentMethod().Name); - } - } - private void DeleteRepectRst(string id,string msg,string oneBarCode) - { - Function.DelInspectRst(id); - LogHelper.WriteLog($"接口异常,删除塑件[{oneBarCode}]喷涂质检记录,异常内容:" + msg, MethodBase.GetCurrentMethod().Name); - } - - /// - /// - /// - /// - /// - string GetLastInspectRst(string barCode) - { - DataTable inspectTable = Function.GetInspectInfoByBarCode2(txtBarCode.Text.Trim()); - if (inspectTable.Rows.Count > 0) - { - return inspectTable.Rows[0]["inspectResult"].ToString(); - } - return ""; - } - - /// - /// 发送wms罢工 - /// - /// - /// 0:报废 1:合格 9:返喷 - bool SendToWms(string scanBarCode, int isOk,ref string errorMsg) - { - try - { - if (_isTest == "true") - return true; - - //WMSWebService webService = new WMSWebService(); - //webService.Url = ConfigurationManager.AppSettings["WMSWebServiceURL"].ToString(); - ////webService.Timeout = 1200000; - //string errorReason = ""; - ////上次异常提交 - //if (_lastJustDict.Count > 0) - //{ - // bool rst2 = webService.WMSSprayingForCS(Function.UniteBarCodeToOne(_lastJustDict.First().Key), int.Parse(_lastJustDict.First().Value), out errorReason); - //} - - - //bool rst = webService.WMSSprayingForCS(Function.UniteBarCodeToOne(scanBarCode), isOk, out errorReason); - //if (rst == false) - //{ - - // MessageBox.Show("调用远程接口失败"); - // ShowHint("调用远程接口失败: " + errorReason); - - // _lastJustDict.Clear(); - // _lastJustDict.Add(scanBarCode, isOk.ToString()); - - // return false; - //} - //_lastJustDict.Clear(); - return true; - } - catch(Exception ex) - { - throw new Exception("WMS接口调用异常,异常原因:" + ex.Message); - } - - } - /// - /// 判断产品是否有颜色 - /// - /// - bool CheckColor(ref string colorName,ref string partName) - { - string[] ss = null; - if (string.IsNullOrEmpty(labProductInfo.Text)) - { - MessageBox.Show("颜色信息有误,请重新扫描"); - return false; - } - if (labProductInfo.Text.Contains(",")) - { - ss = labProductInfo.Text.Split(','); - } - else - { - ss = labProductInfo.Text.Split(','); - } - if (ss.Length >= 1) - { - if (string.IsNullOrWhiteSpace(ss[0])) - { - MessageBox.Show("无颜色信息,请重新扫描"); - return false; - } - } - else + string id = SaveInspect(state, _scanPaintRow, userName); + if (!string.IsNullOrEmpty(id)) { - MessageBox.Show("颜色信息有误1,请重新扫描"); - return false; + _scanPaintRow = null; + ShowHint("操作成功", true); + ClearPage(); } - colorName = ss[0]; - if (ss.Length > 1) - { - if (!string.IsNullOrEmpty(ss[1])) - { - partName = ss[1]; - } - } - return true; - } + + } + /// /// 必须选择缺陷位置与缺陷原因,否则无法保存 /// @@ -782,7 +333,8 @@ namespace PunchingMistake bool CheckDefect() { string damnPositionTemp = ""; - string reasonTemp = ""; + string reasonTemp = ""; + string responsibTemp = ""; //缺陷位置 foreach (Control c in pictureBox2.Controls) { @@ -803,12 +355,30 @@ namespace PunchingMistake reason = reasonTemp; } } + foreach (Control c in panelResponsibility.Controls) + { + Label lab = c as Label; + if (lab.BackColor != Color.Transparent) + { + responsibTemp += lab.Text + ";"; + responsible = responsibTemp; + } + } if (string.IsNullOrWhiteSpace(damnPositionTemp) || string.IsNullOrWhiteSpace(reasonTemp)) { MessageBox.Show("必须选择缺陷位置与缺陷原因,否则无法保存!"); return false; } + + if (_selectResponsibles.Count == 0) + { + MessageBox.Show("必须选择责任部门,否则无法保存!"); + return false; + } + + + return true; } /// @@ -818,17 +388,57 @@ namespace PunchingMistake /// /// /// 返回插入记录的ID - public string SaveInspect(string inspectResult,string colorName, string partName,string userName) + public string SaveInspect(string inspectResult,DataRow scanPaintRow,string userName) { try { - + if (!string.IsNullOrWhiteSpace(txtBarCode.Text.Trim())) + { + InspectModel model1 = new InspectModel(); + + model1.barcode = scanPaintRow["BarCode"].ToString(); + model1.position = _stationType; + model1.stationNo = Program.station; + model1.inspectResult =inspectResult; + + model1.damnPosition = position; + model1.reason = reason; + model1.Responsible = responsible;// string.Join(",", _selectResponsibles); + + + model1.remark3 = scanPaintRow["remark3"].ToString(); + model1.ForeignPartCode = scanPaintRow["ForeignPartCode"].ToString(); + model1.CarType = scanPaintRow["CarType"].ToString(); + + + if (inspectResult != "合格") + { + if (string.IsNullOrWhiteSpace(model1.damnPosition) || string.IsNullOrWhiteSpace(model1.reason) || string.IsNullOrWhiteSpace(model1.Responsible)) + { + MessageBox.Show("必须选择缺陷位置,缺陷原因与责任部门,否则无法保存!"); + return ""; + } + } + model1.productInfo = scanPaintRow["productInfo"].ToString(); + model1.side = scanPaintRow["side"].ToString(); + model1.InspectTimes = "1"; + model1.remark1 = scanPaintRow["remark1"].ToString(); + model1.remark2 = scanPaintRow["remark2"].ToString(); + + model1.remark3 = scanPaintRow["remark3"].ToString(); + + model1.AddMan = userName; + + + return Function2.InsertInspect3(model1); + } return ""; } catch (Exception ex) { ShowHint("质检提交异常,原因:" + ex.Message); - LogHelper.WriteLog("质检提交:" + ex.ToString(), MethodBase.GetCurrentMethod().Name); + //LogHelper.WriteErrLogBase("质检提交:" + ex.ToString(), MethodBase.GetCurrentMethod().Name); + LogHelper.WriteLog("质检提交:" + ex.ToString()); MessageBox.Show("质检提交异常,原因:" + ex.Message); return null; } @@ -856,6 +466,15 @@ namespace PunchingMistake Label lab = c as Label; lab.BackColor = Color.Transparent; } + foreach (var cont in panelResponsibility.Controls) + { + if (cont is Label) + { + if ((cont as Label).Tag != null && (cont as Label).Tag.ToString() == "Response") + (cont as Label).BackColor = Color.Transparent; + } + } + } /// @@ -871,24 +490,21 @@ namespace PunchingMistake { btnOk.Enabled = true; btnRepair.Enabled = true; - btnNok.Enabled = true; lbForeig.Text = ""; ClearPage(); - if (string.IsNullOrEmpty(lbPlanCode.Text)) - { - throw new Exception("当前没有生产计划."); - } ScanBarCode(); + timer1.Enabled = true; } catch (Exception ex) { MessageBox.Show("请查看网络是否与服务器连通,无法连通请联系网络管理员。"+ ex); - LogHelper.WriteLog(ex.ToString(), MethodBase.GetCurrentMethod().Name); + + LogHelper.WriteLog(ex.ToString()); } } } - + private void ScanBarCode() { try @@ -896,101 +512,55 @@ namespace PunchingMistake ButtonEnable(SetControlGroup()); //ClearPage(); + //测试条码:11111111112222222222 string barcode = txtBarCode.Text.Trim(); - if (barcode.Contains(".")) - { - barcode = Function.TransToBarCodeOne(barcode); - } + #region 判断条码有效性 - if (! Function.BarCodeValid(barcode)) + if (! Function3.BarCodeValid(barcode)) { MessageBox.Show("扫描的条码号:"+barcode+"无效,请重新扫描!"); txtBarCode.Text = ""; return; } - //bool ispass = ScanCodeValidVerify(barcode); - //if (ispass == false) - //{ - // txtBarCode.SelectAll(); - // return; - //} - - DataTable stockInTable = Function2.SearchStockIn(barcode); - if(stockInTable.Rows.Count == 0) - { - ShowHint("扫描半成品码没有喷涂完工记录,无法使用.",false); - return; - } - DataTable punchTable = Function2.SearchPunchCodeRecord(barcode); - if(punchTable.Rows.Count > 0) - { - if(punchTable.Rows[0]["Flag"].ToString() == "0" || punchTable.Rows[0]["Flag"].ToString() == "1") - { - ShowHint("扫描半成品码已存在装配记录,无法使用.", false); - return; - } - } - DataTable productTable = Function2.GetProductInfo(barcode.Substring(0, 10)); - if(productTable.Rows.Count == 0) - { - ShowHint($"扫描半成品码的存货代码[{barcode.Substring(0, 10)}]在零件表找不对对应零件号,请检查系统维护.", false); - return; - } - string asselblePartCode = Function2.GetAssemblePartCode(productTable.Rows[0]["PartNo"].ToString(), _stationNo); + #endregion - if(lbProductCode.Text?.ToLower() != asselblePartCode?.ToLower()) + _scanPaintRow = GetRecentRstInfo(barcode); + if(_scanPaintRow["inspectResult"].ToString().Contains("合格") == false) { - ShowHint($"扫描半成品码在BOM中对应的总成零件号[{asselblePartCode}]与当前计划的零件号[{lbProductCode.Text}]不匹配.", false); + MessageBox.Show("扫描的条码号:" + barcode + "喷涂线不是合格状态,请重新扫描!"); + txtBarCode.Text = ""; return; } - - DataTable bomTable = Function2.GetBomTable(asselblePartCode, _stationNo); - List list = bomTable.AsEnumerable().Where(p => p.Field("IsChecked") == 1).ToList(); - - - #endregion - - + labProductInfo.Text = _scanPaintRow["productInfo"].ToString(); - #region 如果是补打的条码,查询产品信息 - - //if (!barcode.Contains(".") && barcode.Length > 4) - //{ - // string strCode = barcode.Substring(barcode.Length - 4, 4); - // int num = 0; - // Int32.TryParse(strCode, out num); - // if (num > 7000) - // { - // labProductInfo.Text = Function.GetReprintInfo2(barcode); - // if (string.IsNullOrWhiteSpace(labProductInfo.Text.Trim())) - // { - // ButtonDisable(SetControlGroup()); - // labProductInfo.Text = "没有查询到补打条码信息"; - // return; - // } - // } - - //} - - #endregion - //根据条码查询,加载图片及原因 int row = 0, col = 0; string picture = ""; + + foreach (var cont in panelResponsibility.Controls) + { + if (cont is Label) + { + if ((cont as Label).Tag != null && (cont as Label).Tag.ToString() == "Response") + (cont as Label).BackColor = Color.Transparent; + } + } + #region 缺陷原因 try { int drow = 0, dcol = 5; //行,列 - DataTable dt3 = Function.SearchDefectInfo(ConfigurationManager.AppSettings["Station"].Trim()); + DataTable dt3 = Function2.SearchDefectInfo(ConfigurationManager.AppSettings["Station"].Trim()); if (dt3 != null && dt3.Rows.Count > 0) { + drow = Convert.ToInt32(Math.Ceiling((double)dt3.Rows.Count / dcol)); Label[] dLb = new Label[7]; string[] dstr = new string[dt3.Rows.Count]; @@ -1031,8 +601,8 @@ namespace PunchingMistake } } catch (Exception ex) - { - LogHelper.WriteLog("缺陷项-"+ex.ToString(), MethodBase.GetCurrentMethod().Name); + { + LogHelper.WriteLog("缺陷项-" + ex.ToString()); throw ex; } @@ -1042,7 +612,7 @@ namespace PunchingMistake try { - DataTable dt2 = Function.SearchInfoByBarCode(barcode); + DataTable dt2 = Function2.SearchInfoByBarCode(barcode); if (dt2 != null && dt2.Rows.Count > 0) { @@ -1057,7 +627,7 @@ namespace PunchingMistake if (!File.Exists(System.IO.Directory.GetCurrentDirectory() + @"\" + picture)) { - string strImageURL = Function.GetImgPath() + picture; + string strImageURL = Function2.GetImgPath() + picture; if(_isTest != "true") { @@ -1076,8 +646,8 @@ namespace PunchingMistake } } catch (Exception ex) - { - LogHelper.WriteLog("图片项-" + ex.ToString(), MethodBase.GetCurrentMethod().Name); + { + LogHelper.WriteLog("图片项-" + ex.ToString()); } #endregion @@ -1107,279 +677,54 @@ namespace PunchingMistake #endregion - //不是补打的条码,根据条码查询产品信息、检验信息,选中缺陷位置及原因 - DataTable dtInspect = Function.GetInspectInfoByBarCode2(barcode); - if (dtInspect != null && dtInspect.Rows.Count > 0) - { - //List list = dtInspect.AsEnumerable().Where(p => p.Field("inspectResult").Contains("打磨")).ToList(); - //string state = string.Empty; - //if (list.Count > 0) - //{ - // state = "返喷"; - //} - //List list2 = dtInspect.AsEnumerable().Where(p => p.Field("inspectResult").Contains("其它")).ToList(); - //if (list2.Count > 0) - //{ - // if(list2.Where(p=> p.Field("inspectResult")=="其它WMS").Count() > 0) - // { - // state = state + ",其它WMS"; - // } - // if (list2.Where(p => p.Field("inspectResult") == "其它").Count() > 0) - // { - // state = state + ",其它"; - // } - - //} - - //if (!string.IsNullOrEmpty(state)) - //{ - // lableFP.Text = "存在[" + state + "]状态"; - //} - - //_carType = dtInspect.Rows[0]["CarType"].ToString().Trim(); - //labProductInfo.Text = dtInspect.Rows[0]["productInfo"].ToString().Trim(); //产品信息 - ////string position1 = dtInspect.Rows[0]["damnPosition"].ToString(); //缺陷位置 - ////string reason1 = dtInspect.Rows[0]["reason"].ToString(); //原因 - //position= dtInspect.Rows[0]["damnPosition"].ToString(); //缺陷位置 - //reason= dtInspect.Rows[0]["reason"].ToString(); //原因 - - - - //paintId = dtInspect.Rows[0]["remark3"].ToString(); //原因 - - //string stationNo = dtInspect.Rows[0]["stationNo"].ToString(); //质检工位 - //if(!_stations.Contains(stationNo)) - //{ - - // //ShowHint(em, false); - // txtBarCode.Text = ""; - // txtBarCode.TabIndex = 0; - // txtBarCode.Select(); - // return; - //} - - //#region 选中缺陷位置及原因 - - //foreach (Control c in pictureBox2.Controls) - //{ - // Label lab = c as Label; - // if (position.Contains(lab.Text)) - // { - // lab.BackColor = Color.FromArgb(150, System.Drawing.Color.Chartreuse); - // count++; - // } - //} - //foreach (Control c in panel2.Controls) - //{ - // Label lab = c as Label; - // if (reason.Contains(lab.Text)) - // { - // lab.BackColor = Color.Chartreuse; - // reason += lab.Text + ";"; - // } - //} - - //#endregion - - #region 根据一检结果显示一检时的位置--暂时不要 - - labProPosition.Text = Function.GetFirstInsPosition2(dtInspect); - - #endregion - } - else - { - - #region 没有一检结果,查询老外数据库,取产品信息 - if ((_isSingleStation==true )) - { - string paintError = string.Empty; - //喷涂线边质检,没有质检结果,查询老外数据库,取产品信息 - string foreignVal = string.Empty; - if(_lineCode == "2") - { - foreignVal = Function.GetProductInfoFrWms(barcode, "TM_BJBMPT_MES_DATA", ref paintError); - } - else if (_lineCode == "1") - { - foreignVal = Function.GetProductInfoFrWms(barcode, "TM_BJBMPT_MES_DATA_OLD", ref paintError); - - } - else - { - foreignVal = Function.GetProductInfo2(barcode, ref paintError); - } - if (!string.IsNullOrEmpty(paintError)) - { - lbForeig.Text = paintError; - } - if (string.IsNullOrEmpty(foreignVal)) - { - return; - } - string[] info = foreignVal.Split(','); - if (!string.IsNullOrEmpty(paintError)) - { - ShowHint(paintError); - } - _foreighColor = info[0]; - labProductInfo.Text = info[0] + "," + info[1]; - paintId = info[2]; - labProPosition.Tag = paintId; - labProductInfo.Tag = Function.GetSide(barcode, paintId); - labProPosition.Text = labProductInfo.Tag.ToString().Replace(';', ' '); - if (info.Length == 4) - { - _foreignPartCode = info[3]; - } - } - else - { - //库房返喷,没有质检结果,不能查老外库,就是条码不正确 - MessageBox.Show("没有喷涂线边质检记录,无法返喷操作!"); - txtBarCode.Text = ""; - txtBarCode.TabIndex = 0; - txtBarCode.Select(); - return ; - } - - - #endregion - } - - txtBarCode.SelectAll(); } catch (Exception ex) { MessageBox.Show("请查看网络是否与服务器连通,无法连通请联系网络管理员。" + ex.ToString()); - LogHelper.WriteLog("整体项-" + ex.ToString(), MethodBase.GetCurrentMethod().Name); + LogHelper.WriteLog("整体项-" + ex.ToString()); } } + /// - /// 一检 二检 点修补扫码是否允许验证 + /// 喷涂库最新质检记录 /// /// /// - private bool ScanCodeValidVerify(string barcode) + private DataRow GetRecentRstInfo(string barcode) { - //string position = _stationType; - // switch (position) - // { - // case "下线一检": return First(barcode); - // case "下线二检": return Second(barcode);; - // case "下线点修补": return Third(barcode); - // default:return true; - - // } - return true; - - } - - private bool First(string barcode) - { - if(_isSingleStation == true) + //tb_InspectResult 中最新质检结果 + DataTable dt = Function2.GetLastResult(barcode); + if(dt.Rows.Count == 0) { - ShowHint("当前系统配置为[单工位生产],无法在此工位扫码,请去终检工位进行操作.", false); - return false; + throw new Exception("塑件条码没有喷涂质检记录"); } + DataRow dr = dt.Rows[0]; - DataTable dt = Function.GetLastResult(barcode); - if (dt.Rows.Count > 0) - { - ShowHint("扫描条码["+ barcode + "]已存在质检记录,无法在[下线一检]工位进行重新扫码." , false); - return false; - } - return true; - } - - private bool Second(string barcode) - { - DataTable dt = Function.GetLastResult(barcode); - if (_isSingleStation == false) + if(_isTest == "false") { - if (dt.Rows.Count == 0) + string errorMsg = string.Empty; + //wms是否喷涂下线 + bool isExsit = Function2.GetPointRepairFrWms(barcode, ref errorMsg); + if (isExsit == false) { - ShowHint("扫描条码[" + barcode + "]不存在[下线一检]记录,无法在[下线二检]工位进行扫码.", false); - return false; - } + if (!string.IsNullOrEmpty(errorMsg)) + { + throw new Exception("在wms系统的查询返修入库记录时发生错误,错误原因:" + errorMsg); - DataRow dr = dt.Rows[0]; - if (dr["reason"].ToString().Contains("点修补") && dr["inspectResult"].ToString().Contains("其它")) - { - ShowHint("扫描条码[" + barcode + "]上次质量判定为[点修补],无法进行二检扫码.", false); - return false; - } - if (dr["inspectResult"].ToString().Contains("报废")) - { - ShowHint("上次质量判定为[报废],无法进行二检扫码.", false); - return false; - } - } - - - return true; - } + } + else + { + throw new Exception("没有在wms系统的返修入库记录,无法进行点修补."); - /// - /// 点修补扫码校验 - /// - /// - /// - private bool Third(string barcode) - { - string errorMsg = string.Empty; - bool isExsit = Function. GetPointRepairFrWms(barcode, ref errorMsg); - if(isExsit == false) - { - if (!string.IsNullOrEmpty(errorMsg)) - { - ShowHint("在wms系统的查询返修入库记录时发生错误,错误原因:"+errorMsg, false); - return false; + } } - else{ - ShowHint("没有在wms系统的返修入库记录,无法进行点修补.", false); - return false; - } - } - DataTable dt = Function.GetLastResult(barcode); - if (dt.Rows.Count > 0) - { - if(dt.Rows[0]["reason"].ToString().Contains("点修补") && dt.Rows[0]["inspectResult"].ToString().Contains("其它")) - { - return true; - } - else - { - ShowHint("必须上次质量判定记录为点修补,类型为其它,才能在当前[点修补]工位扫码.", false); - return false; - } - } - else - { - ShowHint("没有初始质量判定记录,无法在[点修补]工位扫码.", false); - return false; - } - - + return dr; } - - /// - /// 设置按钮不可用 - /// - /// - private void ButtonDisable(Control[] controls) - { - foreach (Control c in controls) - { - Button btn = c as Button; - btn.Enabled = false; - } - } - + /// /// 设置按钮可用 /// @@ -1393,11 +738,6 @@ namespace PunchingMistake } } - private void labWorkClass_Click(object sender, EventArgs e) - { - Function.ChangeWorkClass(labWorkClass); - } - /// /// 点击退出 /// @@ -1427,117 +767,75 @@ namespace PunchingMistake txtBarCode.TabIndex = 0; txtBarCode.Select(); position = ""; - reason = ""; - lableFP.Text = ""; - _foreighColor = ""; - _foreignPartCode = ""; - _carType = string.Empty; - } - - public void ClearRadioButton() - { - groupBox1.Controls.Clear(); + reason = ""; } + public void ClearTxtBarcode() { txtBarCode.Text = ""; labProPosition.Text = ""; } + + /// + /// 其他按钮 + /// + /// + /// + //private void button1_Click(object sender, EventArgs e) + //{ + // ClearControlColor(SetControlGroup()); + // //btnPass.BackColor = Color.GreenYellow; + // //保存 + // SaveInspect("其他"); + // ClearPage(); + // ClearTxtBarcode(); + // txtBarCode.TabIndex = 0; + //} - public void LoadScreen() - { - DataTable dt = Function2.GetProScreen(_stationNo); - if (dt != null && dt.Rows.Count > 0) - { - SetPage(dt); - } - - } - private void SetPage(DataTable dt) + private void UpdateSoftware() { - IsHigh = "1"; - lbPlanCode.Text = ""; - lbProductCode.Text = ""; - lbProductName.Text = ""; - - - if (dt != null && dt.Rows.Count > 0) - { - lbPlanCode.Text = dt.Rows[0]["OrderNo"].ToString(); - lbPlanCode.Tag = dt.Rows[0]["ID"].ToString(); - lbProductName.Text = dt.Rows[0]["ProductName"].ToString(); - lbProductCode.Text = dt.Rows[0]["PartNo"].ToString(); - - SetProduceCount(dt.Rows[0]); - } - + return; } - /// - /// 设置生产数量 - /// - /// - void SetProduceCount(DataRow planRow) + + + + private void txtBarCode_DoubleClick(object sender, EventArgs e) { - int planQty = 0; - int okQty = 0; - int badQty = 0; - int repairQty = 0; - - int.TryParse(planRow["OrderCount"].ToString(), out planQty); - int.TryParse(planRow["OKCount"].ToString(), out okQty); - int.TryParse(planRow["BadCount"].ToString(), out badQty); - int.TryParse(planRow["RepairCount"].ToString(), out repairQty); - lbPlanQty.Text = planQty.ToString(); - lbPlanCompleteQty.Text = (okQty+ badQty).ToString(); - lbOkCount.Text = okQty.ToString(); - lbRepairCount.Text = repairQty.ToString(); - lbBadCount.Text = badQty.ToString(); + txtBarCode.SelectAll(); } - private void btnPlanUp_Click(object sender, EventArgs e) + private void panelResponsibility_Paint(object sender, PaintEventArgs e) { - LoadPlanScreen(lbPlanCode.Tag?.ToString(), "上一计划"); - txtBarCode.Select(); - txtBarCode.Focus(); + } + - private void btnPlanDown_Click(object sender, EventArgs e) + private void Responsibility_Click(object sender, EventArgs e) { - LoadPlanScreen(lbPlanCode.Tag?.ToString(), "下一计划"); - txtBarCode.Select(); - txtBarCode.Focus(); - } - public void LoadPlanScreen(string id, string plan) - { - - DataTable dt = Function2.GetProScreenPlan(id, _stationNo, plan); - if (dt != null && dt.Rows.Count > 0) - { - SetPage(dt); - } - else + Label a = (Label)sender; + + foreach (var cont in panelResponsibility.Controls) { - if (plan == "下一计划") - { - MessageBox.Show("无下一计划"); - txtBarCode.SelectAll(); - txtBarCode.Focus(); - } - else + if (cont is Label) { - MessageBox.Show("无上一计划"); - txtBarCode.SelectAll(); - txtBarCode.Focus(); + if ((cont as Label).Tag != null && (cont as Label).Tag.ToString() == "Response") + (cont as Label).BackColor = Color.Transparent; } } - txtBarCode.SelectAll(); - txtBarCode.Focus(); - } - private void txtBarCode_DoubleClick(object sender, EventArgs e) - { - txtBarCode.SelectAll(); + if (a.BackColor == Color.Transparent) + { + a.BackColor = Color.Chartreuse; + _selectResponsibles.Clear(); + _selectResponsibles.Add(a.Text); + + } + else + { + a.BackColor = Color.Transparent; + _selectResponsibles.Clear(); + } } } diff --git a/PunchingMistake/FrmQualityNew.resx b/PunchingMistake/FrmQualityNew.resx index 3d1eb78..4d6430c 100644 --- a/PunchingMistake/FrmQualityNew.resx +++ b/PunchingMistake/FrmQualityNew.resx @@ -472,4 +472,7 @@ RK5CYII= + + 17, 17 + \ No newline at end of file diff --git a/PunchingMistake/FrmQualityNew1.Designer.cs b/PunchingMistake/FrmQualityNew1.Designer.cs new file mode 100644 index 0000000..116fecd --- /dev/null +++ b/PunchingMistake/FrmQualityNew1.Designer.cs @@ -0,0 +1,656 @@ +namespace PunchingMistake +{ + partial class FrmQualityNew1 + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + try + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + catch + { + + } + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FrmQualityNew1)); + this.labTime = new System.Windows.Forms.Label(); + this.pictureBox1 = new System.Windows.Forms.PictureBox(); + this.labTitle = new System.Windows.Forms.Label(); + this.panel2 = new System.Windows.Forms.Panel(); + this.pictureBox2 = new System.Windows.Forms.PictureBox(); + this.label15 = new System.Windows.Forms.Label(); + this.labProductInfo = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.txtBarCode = new System.Windows.Forms.TextBox(); + this.labProPosition = new System.Windows.Forms.Label(); + this.panel1 = new System.Windows.Forms.Panel(); + this.button4 = new System.Windows.Forms.Button(); + this.button3 = new System.Windows.Forms.Button(); + this.btnPlanDown = new System.Windows.Forms.Button(); + this.btnPlanUp = new System.Windows.Forms.Button(); + this.btnOk = new System.Windows.Forms.Button(); + this.btnRepair = new System.Windows.Forms.Button(); + this.btnNok = new System.Windows.Forms.Button(); + this.btnAbt = new System.Windows.Forms.Button(); + this.lableFP = new System.Windows.Forms.Label(); + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.lbProductName = new System.Windows.Forms.Label(); + this.lbProductCode = new System.Windows.Forms.Label(); + this.label10 = new System.Windows.Forms.Label(); + this.label9 = new System.Windows.Forms.Label(); + this.label8 = new System.Windows.Forms.Label(); + this.lbPlanCode = new System.Windows.Forms.Label(); + this.groupBox2 = new System.Windows.Forms.GroupBox(); + this.lbPlanQty = new System.Windows.Forms.Label(); + this.groupBox3 = new System.Windows.Forms.GroupBox(); + this.lbPlanCompleteQty = new System.Windows.Forms.Label(); + this.groupBox4 = new System.Windows.Forms.GroupBox(); + this.lbOkCount = new System.Windows.Forms.Label(); + this.groupBox5 = new System.Windows.Forms.GroupBox(); + this.lbRepairCount = new System.Windows.Forms.Label(); + this.groupBox6 = new System.Windows.Forms.GroupBox(); + this.lbBadCount = new System.Windows.Forms.Label(); + this.lbForeig = new System.Windows.Forms.Label(); + this.labWorkClass = new System.Windows.Forms.Label(); + this.labStation = new System.Windows.Forms.Label(); + this.labelVersion = new System.Windows.Forms.Label(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).BeginInit(); + this.panel1.SuspendLayout(); + this.groupBox1.SuspendLayout(); + this.groupBox2.SuspendLayout(); + this.groupBox3.SuspendLayout(); + this.groupBox4.SuspendLayout(); + this.groupBox5.SuspendLayout(); + this.groupBox6.SuspendLayout(); + this.SuspendLayout(); + // + // labTime + // + this.labTime.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.labTime.Font = new System.Drawing.Font("宋体", 24F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.labTime.Location = new System.Drawing.Point(1867, 17); + this.labTime.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0); + this.labTime.Name = "labTime"; + this.labTime.Size = new System.Drawing.Size(457, 146); + this.labTime.TabIndex = 18; + this.labTime.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.labTime.Click += new System.EventHandler(this.labTime_Click); + // + // pictureBox1 + // + this.pictureBox1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.pictureBox1.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox1.Image"))); + this.pictureBox1.Location = new System.Drawing.Point(22, 17); + this.pictureBox1.Margin = new System.Windows.Forms.Padding(6, 4, 6, 4); + this.pictureBox1.Name = "pictureBox1"; + this.pictureBox1.Size = new System.Drawing.Size(291, 146); + this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; + this.pictureBox1.TabIndex = 17; + this.pictureBox1.TabStop = false; + // + // labTitle + // + this.labTitle.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.labTitle.Font = new System.Drawing.Font("宋体", 48F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.labTitle.Location = new System.Drawing.Point(296, 17); + this.labTitle.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0); + this.labTitle.Name = "labTitle"; + this.labTitle.Size = new System.Drawing.Size(1576, 146); + this.labTitle.TabIndex = 16; + this.labTitle.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // panel2 + // + this.panel2.Location = new System.Drawing.Point(18, 870); + this.panel2.Margin = new System.Windows.Forms.Padding(6, 4, 6, 4); + this.panel2.Name = "panel2"; + this.panel2.Size = new System.Drawing.Size(1829, 578); + this.panel2.TabIndex = 48; + // + // pictureBox2 + // + this.pictureBox2.Location = new System.Drawing.Point(18, 352); + this.pictureBox2.Margin = new System.Windows.Forms.Padding(6, 4, 6, 4); + this.pictureBox2.Name = "pictureBox2"; + this.pictureBox2.Size = new System.Drawing.Size(1829, 509); + this.pictureBox2.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; + this.pictureBox2.TabIndex = 47; + this.pictureBox2.TabStop = false; + // + // label15 + // + this.label15.BackColor = System.Drawing.Color.Lime; + this.label15.Font = new System.Drawing.Font("黑体", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label15.Location = new System.Drawing.Point(21, 163); + this.label15.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0); + this.label15.Name = "label15"; + this.label15.Size = new System.Drawing.Size(292, 130); + this.label15.TabIndex = 49; + this.label15.Text = "扫码信息"; + this.label15.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // labProductInfo + // + this.labProductInfo.BackColor = System.Drawing.Color.White; + this.labProductInfo.Font = new System.Drawing.Font("黑体", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.labProductInfo.Location = new System.Drawing.Point(1407, 163); + this.labProductInfo.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0); + this.labProductInfo.Name = "labProductInfo"; + this.labProductInfo.Size = new System.Drawing.Size(917, 130); + this.labProductInfo.TabIndex = 52; + this.labProductInfo.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // label2 + // + this.label2.BackColor = System.Drawing.Color.Lime; + this.label2.Font = new System.Drawing.Font("黑体", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label2.Location = new System.Drawing.Point(1106, 163); + this.label2.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(292, 130); + this.label2.TabIndex = 51; + this.label2.Text = "产品信息"; + this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // txtBarCode + // + this.txtBarCode.BackColor = System.Drawing.Color.White; + this.txtBarCode.Font = new System.Drawing.Font("黑体", 30F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.txtBarCode.Location = new System.Drawing.Point(325, 184); + this.txtBarCode.Margin = new System.Windows.Forms.Padding(6, 4, 6, 4); + this.txtBarCode.Name = "txtBarCode"; + this.txtBarCode.Size = new System.Drawing.Size(764, 87); + this.txtBarCode.TabIndex = 0; + this.txtBarCode.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.txtBarCode.DoubleClick += new System.EventHandler(this.txtBarCode_DoubleClick); + this.txtBarCode.KeyDown += new System.Windows.Forms.KeyEventHandler(this.txtBarCode_KeyDown); + // + // labProPosition + // + this.labProPosition.BackColor = System.Drawing.Color.White; + this.labProPosition.Font = new System.Drawing.Font("黑体", 22F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.labProPosition.Location = new System.Drawing.Point(1870, 315); + this.labProPosition.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0); + this.labProPosition.Name = "labProPosition"; + this.labProPosition.Size = new System.Drawing.Size(465, 151); + this.labProPosition.TabIndex = 64; + this.labProPosition.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // panel1 + // + this.panel1.AutoScroll = true; + this.panel1.Controls.Add(this.button4); + this.panel1.Controls.Add(this.button3); + this.panel1.Controls.Add(this.btnPlanDown); + this.panel1.Controls.Add(this.btnPlanUp); + this.panel1.Controls.Add(this.btnOk); + this.panel1.Controls.Add(this.btnRepair); + this.panel1.Controls.Add(this.btnNok); + this.panel1.Controls.Add(this.btnAbt); + this.panel1.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.panel1.Location = new System.Drawing.Point(18, 1469); + this.panel1.Margin = new System.Windows.Forms.Padding(6, 4, 6, 4); + this.panel1.Name = "panel1"; + this.panel1.Size = new System.Drawing.Size(1829, 317); + this.panel1.TabIndex = 66; + // + // button4 + // + this.button4.BackColor = System.Drawing.Color.Red; + this.button4.Font = new System.Drawing.Font("宋体", 25.875F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.button4.Location = new System.Drawing.Point(1275, 181); + this.button4.Name = "button4"; + this.button4.Size = new System.Drawing.Size(326, 90); + this.button4.TabIndex = 74; + this.button4.Text = "结束计划"; + this.button4.UseVisualStyleBackColor = false; + // + // button3 + // + this.button3.BackColor = System.Drawing.Color.LawnGreen; + this.button3.Font = new System.Drawing.Font("宋体", 25.875F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.button3.Location = new System.Drawing.Point(1275, 45); + this.button3.Name = "button3"; + this.button3.Size = new System.Drawing.Size(326, 90); + this.button3.TabIndex = 73; + this.button3.Text = "计划查询"; + this.button3.UseVisualStyleBackColor = false; + // + // btnPlanDown + // + this.btnPlanDown.BackColor = System.Drawing.Color.LawnGreen; + this.btnPlanDown.Font = new System.Drawing.Font("宋体", 25.875F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnPlanDown.Location = new System.Drawing.Point(852, 181); + this.btnPlanDown.Name = "btnPlanDown"; + this.btnPlanDown.Size = new System.Drawing.Size(326, 81); + this.btnPlanDown.TabIndex = 72; + this.btnPlanDown.Text = "下一计划"; + this.btnPlanDown.UseVisualStyleBackColor = false; + this.btnPlanDown.Click += new System.EventHandler(this.btnPlanDown_Click); + // + // btnPlanUp + // + this.btnPlanUp.BackColor = System.Drawing.Color.LawnGreen; + this.btnPlanUp.Font = new System.Drawing.Font("宋体", 25.875F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnPlanUp.Location = new System.Drawing.Point(852, 45); + this.btnPlanUp.Name = "btnPlanUp"; + this.btnPlanUp.Size = new System.Drawing.Size(326, 90); + this.btnPlanUp.TabIndex = 71; + this.btnPlanUp.Text = "上一计划"; + this.btnPlanUp.UseVisualStyleBackColor = false; + this.btnPlanUp.Click += new System.EventHandler(this.btnPlanUp_Click); + // + // btnOk + // + this.btnOk.BackColor = System.Drawing.Color.LawnGreen; + this.btnOk.Font = new System.Drawing.Font("宋体", 25.875F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnOk.Location = new System.Drawing.Point(30, 45); + this.btnOk.Name = "btnOk"; + this.btnOk.Size = new System.Drawing.Size(326, 90); + this.btnOk.TabIndex = 67; + this.btnOk.Text = "合 格"; + this.btnOk.UseVisualStyleBackColor = false; + this.btnOk.Click += new System.EventHandler(this.btnOk_Click); + // + // btnRepair + // + this.btnRepair.BackColor = System.Drawing.Color.DodgerBlue; + this.btnRepair.Font = new System.Drawing.Font("宋体", 25.875F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnRepair.Location = new System.Drawing.Point(30, 181); + this.btnRepair.Name = "btnRepair"; + this.btnRepair.Size = new System.Drawing.Size(326, 90); + this.btnRepair.TabIndex = 69; + this.btnRepair.Text = "返修"; + this.btnRepair.UseVisualStyleBackColor = false; + this.btnRepair.Click += new System.EventHandler(this.btnRepair_Click); + // + // btnNok + // + this.btnNok.BackColor = System.Drawing.Color.Yellow; + this.btnNok.Font = new System.Drawing.Font("宋体", 25.875F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnNok.Location = new System.Drawing.Point(466, 45); + this.btnNok.Name = "btnNok"; + this.btnNok.Size = new System.Drawing.Size(321, 90); + this.btnNok.TabIndex = 68; + this.btnNok.Text = "返修合格"; + this.btnNok.UseVisualStyleBackColor = false; + this.btnNok.Click += new System.EventHandler(this.btnNok_Click); + // + // btnAbt + // + this.btnAbt.BackColor = System.Drawing.Color.OrangeRed; + this.btnAbt.Font = new System.Drawing.Font("宋体", 25.875F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnAbt.Location = new System.Drawing.Point(466, 181); + this.btnAbt.Name = "btnAbt"; + this.btnAbt.Size = new System.Drawing.Size(314, 90); + this.btnAbt.TabIndex = 70; + this.btnAbt.Text = "报 废"; + this.btnAbt.UseVisualStyleBackColor = false; + this.btnAbt.Click += new System.EventHandler(this.btnAbt_Click); + // + // lableFP + // + this.lableFP.AutoSize = true; + this.lableFP.Font = new System.Drawing.Font("宋体", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.lableFP.ForeColor = System.Drawing.Color.Red; + this.lableFP.Location = new System.Drawing.Point(2201, 552); + this.lableFP.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + this.lableFP.Name = "lableFP"; + this.lableFP.Size = new System.Drawing.Size(106, 42); + this.lableFP.TabIndex = 71; + this.lableFP.Tag = "存在返喷"; + this.lableFP.Text = " "; + // + // groupBox1 + // + this.groupBox1.Controls.Add(this.lbProductName); + this.groupBox1.Controls.Add(this.lbProductCode); + this.groupBox1.Controls.Add(this.label10); + this.groupBox1.Controls.Add(this.label9); + this.groupBox1.Controls.Add(this.label8); + this.groupBox1.Controls.Add(this.lbPlanCode); + this.groupBox1.Font = new System.Drawing.Font("宋体", 13.875F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.groupBox1.ForeColor = System.Drawing.Color.Blue; + this.groupBox1.Location = new System.Drawing.Point(1879, 604); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size(456, 192); + this.groupBox1.TabIndex = 72; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "当前计划"; + // + // lbProductName + // + this.lbProductName.AutoSize = true; + this.lbProductName.ForeColor = System.Drawing.Color.Black; + this.lbProductName.Location = new System.Drawing.Point(114, 156); + this.lbProductName.Name = "lbProductName"; + this.lbProductName.Size = new System.Drawing.Size(105, 33); + this.lbProductName.TabIndex = 5; + this.lbProductName.Text = " "; + // + // lbProductCode + // + this.lbProductCode.AutoSize = true; + this.lbProductCode.ForeColor = System.Drawing.Color.Black; + this.lbProductCode.Location = new System.Drawing.Point(114, 105); + this.lbProductCode.Name = "lbProductCode"; + this.lbProductCode.Size = new System.Drawing.Size(87, 33); + this.lbProductCode.TabIndex = 4; + this.lbProductCode.Text = " "; + // + // label10 + // + this.label10.AutoSize = true; + this.label10.ForeColor = System.Drawing.Color.Black; + this.label10.Location = new System.Drawing.Point(17, 156); + this.label10.Name = "label10"; + this.label10.Size = new System.Drawing.Size(83, 33); + this.label10.TabIndex = 3; + this.label10.Text = "描述"; + // + // label9 + // + this.label9.AutoSize = true; + this.label9.ForeColor = System.Drawing.Color.Black; + this.label9.Location = new System.Drawing.Point(16, 105); + this.label9.Name = "label9"; + this.label9.Size = new System.Drawing.Size(83, 33); + this.label9.TabIndex = 2; + this.label9.Text = "产品"; + // + // label8 + // + this.label8.AutoSize = true; + this.label8.ForeColor = System.Drawing.Color.Black; + this.label8.Location = new System.Drawing.Point(16, 55); + this.label8.Name = "label8"; + this.label8.Size = new System.Drawing.Size(83, 33); + this.label8.TabIndex = 1; + this.label8.Text = "编号"; + // + // lbPlanCode + // + this.lbPlanCode.AutoSize = true; + this.lbPlanCode.ForeColor = System.Drawing.Color.Black; + this.lbPlanCode.Location = new System.Drawing.Point(114, 55); + this.lbPlanCode.Name = "lbPlanCode"; + this.lbPlanCode.Size = new System.Drawing.Size(87, 33); + this.lbPlanCode.TabIndex = 0; + this.lbPlanCode.Text = " "; + // + // groupBox2 + // + this.groupBox2.Controls.Add(this.lbPlanQty); + this.groupBox2.Font = new System.Drawing.Font("宋体", 13.875F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.groupBox2.ForeColor = System.Drawing.Color.Blue; + this.groupBox2.Location = new System.Drawing.Point(1879, 821); + this.groupBox2.Name = "groupBox2"; + this.groupBox2.Size = new System.Drawing.Size(456, 138); + this.groupBox2.TabIndex = 73; + this.groupBox2.TabStop = false; + this.groupBox2.Text = "生产计划数量"; + // + // lbPlanQty + // + this.lbPlanQty.AutoSize = true; + this.lbPlanQty.Font = new System.Drawing.Font("宋体", 36F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.lbPlanQty.ForeColor = System.Drawing.Color.Black; + this.lbPlanQty.Location = new System.Drawing.Point(41, 40); + this.lbPlanQty.Name = "lbPlanQty"; + this.lbPlanQty.Size = new System.Drawing.Size(78, 84); + this.lbPlanQty.TabIndex = 1; + this.lbPlanQty.Text = "0"; + // + // groupBox3 + // + this.groupBox3.Controls.Add(this.lbPlanCompleteQty); + this.groupBox3.Font = new System.Drawing.Font("宋体", 13.875F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.groupBox3.ForeColor = System.Drawing.Color.Blue; + this.groupBox3.Location = new System.Drawing.Point(1885, 983); + this.groupBox3.Name = "groupBox3"; + this.groupBox3.Size = new System.Drawing.Size(456, 138); + this.groupBox3.TabIndex = 74; + this.groupBox3.TabStop = false; + this.groupBox3.Text = "计划完成数量"; + // + // lbPlanCompleteQty + // + this.lbPlanCompleteQty.AutoSize = true; + this.lbPlanCompleteQty.Font = new System.Drawing.Font("宋体", 36F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.lbPlanCompleteQty.ForeColor = System.Drawing.Color.Black; + this.lbPlanCompleteQty.Location = new System.Drawing.Point(36, 40); + this.lbPlanCompleteQty.Name = "lbPlanCompleteQty"; + this.lbPlanCompleteQty.Size = new System.Drawing.Size(78, 84); + this.lbPlanCompleteQty.TabIndex = 0; + this.lbPlanCompleteQty.Text = "0"; + // + // groupBox4 + // + this.groupBox4.Controls.Add(this.lbOkCount); + this.groupBox4.Font = new System.Drawing.Font("宋体", 13.875F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.groupBox4.ForeColor = System.Drawing.Color.Blue; + this.groupBox4.Location = new System.Drawing.Point(1885, 1153); + this.groupBox4.Name = "groupBox4"; + this.groupBox4.Size = new System.Drawing.Size(456, 138); + this.groupBox4.TabIndex = 75; + this.groupBox4.TabStop = false; + this.groupBox4.Text = "合格数量"; + // + // lbOkCount + // + this.lbOkCount.AutoSize = true; + this.lbOkCount.Font = new System.Drawing.Font("宋体", 36F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.lbOkCount.ForeColor = System.Drawing.Color.Black; + this.lbOkCount.Location = new System.Drawing.Point(36, 40); + this.lbOkCount.Name = "lbOkCount"; + this.lbOkCount.Size = new System.Drawing.Size(78, 84); + this.lbOkCount.TabIndex = 1; + this.lbOkCount.Text = "0"; + // + // groupBox5 + // + this.groupBox5.Controls.Add(this.lbRepairCount); + this.groupBox5.Font = new System.Drawing.Font("宋体", 13.875F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.groupBox5.ForeColor = System.Drawing.Color.Blue; + this.groupBox5.Location = new System.Drawing.Point(1885, 1324); + this.groupBox5.Name = "groupBox5"; + this.groupBox5.Size = new System.Drawing.Size(456, 138); + this.groupBox5.TabIndex = 76; + this.groupBox5.TabStop = false; + this.groupBox5.Text = "返修数量"; + // + // lbRepairCount + // + this.lbRepairCount.AutoSize = true; + this.lbRepairCount.Font = new System.Drawing.Font("宋体", 36F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.lbRepairCount.ForeColor = System.Drawing.Color.Black; + this.lbRepairCount.Location = new System.Drawing.Point(36, 40); + this.lbRepairCount.Name = "lbRepairCount"; + this.lbRepairCount.Size = new System.Drawing.Size(78, 84); + this.lbRepairCount.TabIndex = 1; + this.lbRepairCount.Text = "0"; + // + // groupBox6 + // + this.groupBox6.Controls.Add(this.lbBadCount); + this.groupBox6.Font = new System.Drawing.Font("宋体", 13.875F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.groupBox6.ForeColor = System.Drawing.Color.Blue; + this.groupBox6.Location = new System.Drawing.Point(1885, 1494); + this.groupBox6.Name = "groupBox6"; + this.groupBox6.Size = new System.Drawing.Size(456, 138); + this.groupBox6.TabIndex = 77; + this.groupBox6.TabStop = false; + this.groupBox6.Text = "报废数量"; + // + // lbBadCount + // + this.lbBadCount.AutoSize = true; + this.lbBadCount.Font = new System.Drawing.Font("宋体", 36F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.lbBadCount.ForeColor = System.Drawing.Color.Black; + this.lbBadCount.Location = new System.Drawing.Point(36, 40); + this.lbBadCount.Name = "lbBadCount"; + this.lbBadCount.Size = new System.Drawing.Size(78, 84); + this.lbBadCount.TabIndex = 1; + this.lbBadCount.Text = "0"; + // + // lbForeig + // + this.lbForeig.AutoSize = true; + this.lbForeig.Font = new System.Drawing.Font("宋体", 13.875F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.lbForeig.Location = new System.Drawing.Point(26, 306); + this.lbForeig.Name = "lbForeig"; + this.lbForeig.Size = new System.Drawing.Size(69, 33); + this.lbForeig.TabIndex = 78; + this.lbForeig.Text = " "; + // + // labWorkClass + // + this.labWorkClass.AutoSize = true; + this.labWorkClass.Font = new System.Drawing.Font("宋体", 13.875F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.labWorkClass.Location = new System.Drawing.Point(1879, 487); + this.labWorkClass.Name = "labWorkClass"; + this.labWorkClass.Size = new System.Drawing.Size(67, 33); + this.labWorkClass.TabIndex = 79; + this.labWorkClass.Text = "A班"; + // + // labStation + // + this.labStation.AutoSize = true; + this.labStation.Font = new System.Drawing.Font("宋体", 13.875F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.labStation.Location = new System.Drawing.Point(2123, 487); + this.labStation.Name = "labStation"; + this.labStation.Size = new System.Drawing.Size(69, 33); + this.labStation.TabIndex = 80; + this.labStation.Text = "F02"; + // + // labelVersion + // + this.labelVersion.AutoSize = true; + this.labelVersion.Font = new System.Drawing.Font("宋体", 13.875F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.labelVersion.Location = new System.Drawing.Point(1879, 552); + this.labelVersion.Name = "labelVersion"; + this.labelVersion.Size = new System.Drawing.Size(159, 33); + this.labelVersion.TabIndex = 81; + this.labelVersion.Text = "10.0.0.1"; + // + // FrmQualityNew + // + this.AutoScaleDimensions = new System.Drawing.SizeF(11F, 21F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(2351, 1789); + this.Controls.Add(this.labelVersion); + this.Controls.Add(this.labStation); + this.Controls.Add(this.labWorkClass); + this.Controls.Add(this.lbForeig); + this.Controls.Add(this.groupBox6); + this.Controls.Add(this.groupBox5); + this.Controls.Add(this.groupBox4); + this.Controls.Add(this.groupBox3); + this.Controls.Add(this.groupBox2); + this.Controls.Add(this.groupBox1); + this.Controls.Add(this.panel1); + this.Controls.Add(this.lableFP); + this.Controls.Add(this.labProPosition); + this.Controls.Add(this.txtBarCode); + this.Controls.Add(this.labProductInfo); + this.Controls.Add(this.label2); + this.Controls.Add(this.label15); + this.Controls.Add(this.panel2); + this.Controls.Add(this.pictureBox2); + this.Controls.Add(this.labTime); + this.Controls.Add(this.pictureBox1); + this.Controls.Add(this.labTitle); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; + this.Margin = new System.Windows.Forms.Padding(6, 4, 6, 4); + this.Name = "FrmQualityNew"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "喷涂质检"; + this.Load += new System.EventHandler(this.FrmSecondCheck_Load); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).EndInit(); + this.panel1.ResumeLayout(false); + this.groupBox1.ResumeLayout(false); + this.groupBox1.PerformLayout(); + this.groupBox2.ResumeLayout(false); + this.groupBox2.PerformLayout(); + this.groupBox3.ResumeLayout(false); + this.groupBox3.PerformLayout(); + this.groupBox4.ResumeLayout(false); + this.groupBox4.PerformLayout(); + this.groupBox5.ResumeLayout(false); + this.groupBox5.PerformLayout(); + this.groupBox6.ResumeLayout(false); + this.groupBox6.PerformLayout(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + private System.Windows.Forms.Label labTime; + private System.Windows.Forms.PictureBox pictureBox1; + private System.Windows.Forms.Label labTitle; + private System.Windows.Forms.Panel panel2; + private System.Windows.Forms.PictureBox pictureBox2; + private System.Windows.Forms.Label label15; + private System.Windows.Forms.Label labProductInfo; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.TextBox txtBarCode; + private System.Windows.Forms.Label labProPosition; + private System.Windows.Forms.Panel panel1; + private System.Windows.Forms.Button btnOk; + private System.Windows.Forms.Button btnNok; + private System.Windows.Forms.Button btnRepair; + private System.Windows.Forms.Button btnAbt; + private System.Windows.Forms.Label lableFP; + private System.Windows.Forms.Button btnPlanDown; + private System.Windows.Forms.Button btnPlanUp; + private System.Windows.Forms.Button button4; + private System.Windows.Forms.Button button3; + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.GroupBox groupBox2; + private System.Windows.Forms.GroupBox groupBox3; + private System.Windows.Forms.GroupBox groupBox4; + private System.Windows.Forms.GroupBox groupBox5; + private System.Windows.Forms.GroupBox groupBox6; + private System.Windows.Forms.Label lbForeig; + private System.Windows.Forms.Label labWorkClass; + private System.Windows.Forms.Label labStation; + private System.Windows.Forms.Label labelVersion; + private System.Windows.Forms.Label lbPlanCode; + private System.Windows.Forms.Label lbPlanCompleteQty; + private System.Windows.Forms.Label lbOkCount; + private System.Windows.Forms.Label lbRepairCount; + private System.Windows.Forms.Label lbBadCount; + private System.Windows.Forms.Label lbPlanQty; + private System.Windows.Forms.Label label8; + private System.Windows.Forms.Label label10; + private System.Windows.Forms.Label label9; + private System.Windows.Forms.Label lbProductName; + private System.Windows.Forms.Label lbProductCode; + } +} \ No newline at end of file diff --git a/PunchingMistake/FrmQualityNew1.cs b/PunchingMistake/FrmQualityNew1.cs new file mode 100644 index 0000000..fdb5f38 --- /dev/null +++ b/PunchingMistake/FrmQualityNew1.cs @@ -0,0 +1,1544 @@ + +using PaintingPC.Model; +using PaintingPC.WebReference; +using System; +using System.Linq; +using System.Collections.Generic; +using System.Configuration; +using System.Data; +using System.Drawing; +using System.IO; +using System.Net.NetworkInformation; +using System.Reflection; +using System.Threading; +using System.Windows.Forms; +using MESClassLibrary.BLL.BasicInfo; +using static System.Windows.Forms.AxHost; +using PaintingPC; + +namespace PunchingMistake +{ + public partial class FrmQualityNew1 : Form + { + int count = 0; //缺陷图选择个数 + public static string ColorName = ""; //修改颜色 + public static string paintId = ""; + + private static string position = "", reason = ""; + + private string _carType = string.Empty; + private Dictionary _lastJustDict = new Dictionary(); + private string _foreighColor = string.Empty; + private string _lineCode = string.Empty; + private List _stations = new List(); + + private StationBLL _stationBLL = new StationBLL(); + /// + /// 从tb_ForeignColorMap表得到的零件号 + /// + private string _foreignPartCode = string.Empty; + private bool _isSingleStation = false; + private string _isTest = "false"; + private string _stationNo = ""; + private string IsHigh = "1"; + public FrmQualityNew1() + { + InitializeComponent(); + //WindowState = FormWindowState.Normal; + this.Size = new Size(1280, 1020); + + + + } + + + + + private void FrmSecondCheck_Load(object sender, EventArgs e) + { + try + { + Control.CheckForIllegalCrossThreadCalls = false; + InitPage(); + } + catch (Exception ex) + { + MessageBox.Show("网络故障,请联系网络管理员"); + LogHelper.WriteLog(ex.ToString(), MethodBase.GetCurrentMethod().Name); + } + } + + public void InitPage() + { + try + { + string title = ConfigurationManager.AppSettings["Display"].ToString(); + string workClass = Function.GetWorkClass2(); + _stationNo = ConfigurationManager.AppSettings["Station"].ToString(); + + labTitle.Text = title; + + labWorkClass.Text = workClass; + labStation.Text = _stationNo; + labelVersion.Text = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString(); + + LoadScreen(); + + + Thread t = new Thread(new ThreadStart(TimeGo)); + t.Start(); + } + catch (Exception ex) + { } + } + + + + private void TimeGo() + { + System.Timers.Timer timer = new System.Timers.Timer(); + timer.Interval = 10; + timer.Enabled = true; + timer.Elapsed += new System.Timers.ElapsedEventHandler(timer_Tick); + } + + private void timer_Tick(object sender, EventArgs e) + { + try + { + labTime.Text = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); + Thread.Sleep(500); + } + catch + { + + } + } + + /// + /// 缺陷图点击 + /// + /// + /// + void lblRoom_Click(object sender, EventArgs e) + { + Label a = (Label)sender; + string aa = a.Text; + if (a.BackColor == Color.Transparent) + { + a.BackColor = Color.FromArgb(150, System.Drawing.Color.Chartreuse); + position += aa; + count++; + } + else + { + a.BackColor = Color.Transparent; + count--; + } + } + + /// + /// 缺陷原因点击 + /// + /// + /// + void dLbRoom_Click(object sender, EventArgs e) + { + if (count == 0) + { + MessageBox.Show("请选择缺陷区域!"); + return; + } + Label a = (Label)sender; + string aa = a.Text; + if (a.BackColor == Color.Transparent) + { + a.BackColor = Color.Chartreuse; + reason += a.Text + ";"; + } + else + { + a.BackColor = Color.Transparent; + reason = reason.Replace(a.Text + ";", ""); + } + } + + private Control[] SetControlGroup() + { + //Control[] controls = { btnPass, btnAbt, btnRepair }; + Control[] controls = { }; + return controls; + } + + /// + /// 清除控件选中 + /// + /// + public void ClearControlColor(Control[] controls) + { + foreach (Control c in controls) + { + c.BackColor = Color.LightGray; + } + } + + bool SaveBeforeVerify( string currentRst) + { + string lastRst = GetLastInspectRst(txtBarCode.Text.Trim()); + if (lastRst.Contains("报废")) + { + MessageBox.Show($"条码已判定为报废,不能再判定为{currentRst}."); + Clear(); + return false; + } + return true; + } + /// + /// 合格 + /// + /// + /// + private void btnOk_Click(object sender, EventArgs e) + { + try + { + if (string.IsNullOrEmpty(txtBarCode.Text.Trim())) + { + MessageBox.Show("请先扫描数据,然后操作."); + return; + } + #region 返喷下线数据验证 + if (lableFP.Text.Contains("[返喷]")) + { + string barcode = txtBarCode.Text.Trim(); + DataTable dtInspect = Function.GetInspectInfoByBarCode2(barcode); + if (dtInspect != null && dtInspect.Rows.Count > 0) + { + string inspectResult = dtInspect.Rows[0]["inspectResult"].ToString(); //检测结果 + string inspectColorInfo = dtInspect.Rows[0]["remark1"].ToString(); //颜色 + if (inspectResult.Contains("打磨")) + { + string createTime = dtInspect.Rows[0]["createTime"].ToString(); //创建时间 + int count = 0; + string colorInfo = ""; + if (_lineCode == "2") + { + count = Function.GetProducColorFromWms(barcode, "TM_BJBMPT_MES_DATA", createTime ,ref colorInfo); + } + else if (_lineCode == "1") + { + count = Function.GetProducColorFromWms(barcode, "TM_BJBMPT_MES_DATA_OLD", createTime , ref colorInfo); + + } + else + { + + } + + if (count == 0) + { + MessageBox.Show("未发现返喷下线数据!,无法进行质量判定"); + return; + } + else + { + if(inspectColorInfo != colorInfo) + { + btnOk.Enabled = false; + btnRepair.Enabled = false; + btnNok.Enabled = false; + + MessageBox.Show("当前产品返喷颜色与原颜色不符,需报废!"); + return; + } + + } + } + } + + } + #endregion + + ShowHint(""); + #region 判断产品是否有颜色 + string colorName = string.Empty; + string partName = string.Empty; + if (CheckColor(ref colorName, ref partName) == false) return; + + + #endregion + ClearControlColor(SetControlGroup()); + btnAbt.BackColor = Color.Red; + + bool rr = SaveBeforeVerify("合格"); + if (rr == false) + { + return; + } + + //if (lastRst.Contains("合格")) + //{ + // MessageBox.Show("条码已判定为合格,无需重复判定"); + // Clear(); + // return; + //} + SaveRst("合格", colorName, partName, 1); + } + catch(Exception ex) + { + ShowHint("执行合格判定发生异常,异常原因:" + ex.Message); + MessageBox.Show("执行合格判定发生异常,异常原因:" + ex.Message); + Clear(); + } + + } + void Clear() + { + ClearPage(); + ClearTxtBarcode(); + txtBarCode.TabIndex = 0; + } + + /// + /// 其它 + /// + /// + /// + private void btnNok_Click(object sender, EventArgs e) + { + try + { + if (string.IsNullOrEmpty(txtBarCode.Text.Trim())) + { + MessageBox.Show("请先扫描数据,然后操作."); + return; + } + + #region 返喷下线数据验证 + if (lableFP.Text.Contains("[返喷]")) + { + string barcode = txtBarCode.Text.Trim(); + DataTable dtInspect = Function.GetInspectInfoByBarCode2(barcode); + if (dtInspect != null && dtInspect.Rows.Count > 0) + { + string inspectResult = dtInspect.Rows[0]["inspectResult"].ToString(); //检测结果 + string inspectColorInfo = dtInspect.Rows[0]["remark1"].ToString(); //颜色 + if (inspectResult.Contains("打磨")) + { + string createTime = dtInspect.Rows[0]["createTime"].ToString(); //创建时间 + int count = 0; + string colorInfo = ""; + if (_lineCode == "2") + { + count = Function.GetProducColorFromWms(barcode, "TM_BJBMPT_MES_DATA", createTime, ref colorInfo); + } + else if (_lineCode == "1") + { + count = Function.GetProducColorFromWms(barcode, "TM_BJBMPT_MES_DATA_OLD", createTime, ref colorInfo); + + } + else + { + + } + + if (count == 0) + { + MessageBox.Show("未发现返喷下线数据!,无法进行质量判定"); + return; + } + else + { + if (inspectColorInfo != colorInfo) + { + btnOk.Enabled = false; + btnRepair.Enabled = false; + btnNok.Enabled = false; + + MessageBox.Show("当前产品返喷颜色与原颜色不符,需报废!"); + return; + } + + } + } + } + + } + #endregion + + if (MessageBox.Show($"确认对[{txtBarCode.Text}]进行[其它]判定?", "操作确认", MessageBoxButtons.OKCancel) == DialogResult.Cancel) return; + ShowHint(""); + #region 必须选择缺陷位置与缺陷原因,否则无法保存 + if (CheckDefect() == false) return; + #endregion + + #region 判断产品是否有颜色 + string colorName = string.Empty; + string partName = string.Empty; + if (CheckColor(ref colorName, ref partName) == false) return; + #endregion + + int cs = Function.OtherTimes(txtBarCode.Text.Trim()); + if (cs > 0) + { + MessageBox.Show("条码" + txtBarCode.Text.Trim() + "已存在判定为其它的记录,只允许判定1次."); + ShowHint("条码" + txtBarCode.Text.Trim() + "已存在判定为其它的记录,只允许判定1次."); + Clear(); + return; + } + + bool rr = SaveBeforeVerify("其它"); + if (rr == false) + { + return; + } + SaveRst("其它", colorName, partName, 4); + } + catch(Exception ex) + { + ShowHint("执行其它判定发生异常,异常原因:" + ex.Message); + MessageBox.Show("执行其它判定发生异常,异常原因:" + ex.Message); + Clear(); + } + } + + /// + /// 返喷按钮 + /// + /// + /// + private void btnRepair_Click(object sender, EventArgs e) + { + try + { + #region 可回喷次数 =1,不能打磨, =2 可以, 不能有两次质检结果为打磨 + if (string.IsNullOrEmpty(txtBarCode.Text.Trim())) + { + MessageBox.Show("请先扫描数据,然后操作."); + return; + } + + if (MessageBox.Show($"确认对[{txtBarCode.Text}]进行返喷操作?", "操作确认", MessageBoxButtons.OKCancel) == DialogResult.Cancel) return; + ShowHint(""); + string barcode = Function.UniteBarCodeToOne(txtBarCode.Text.Trim()); + int cs = Function.YiDaMoCiShu(barcode); //记录中已返喷次数 + + int keHuiPen = Function.keHuiPen(barcode); //基础数据中,可返喷次数 + if (keHuiPen > 1) + keHuiPen = 1; + + if (keHuiPen > 0 && cs < keHuiPen) + { + #region 必须选择缺陷位置与缺陷原因,否则无法保存 + + if (CheckDefect() == false) return; + + #endregion + + #region 判断产品是否有颜色 + string colorName = string.Empty; + string partName = string.Empty; + + if (CheckColor(ref colorName, ref partName) == false) return; + #endregion + + ClearControlColor(SetControlGroup()); + btnRepair.BackColor = Color.Yellow; + + //string lastRst = GetLastInspectRst(txtBarCode.Text.Trim()); + //if (lastRst.Contains("打磨")) + //{ + // ShowHint("条码已判定为返喷,无需重复判定"); + // MessageBox.Show("条码已判定为返喷,无需重复判定"); + // Clear(); + // return; + //} + + + bool rr = SaveBeforeVerify("返喷"); + if (rr == false) + { + return; + } + SaveRst("", colorName, partName, 9); + + } + else + { + ShowHint("根据该零件可回喷次数设置,不能判定为返喷或已超过返喷次数!"); + MessageBox.Show("根据该零件可回喷次数设置,不能判定为返喷或已超过返喷次数!"); + Clear(); + return; + } + + #endregion + } + catch(Exception ex) + { + ShowHint("执行返喷操作发生异常,异常原因:"+ex.Message); + MessageBox.Show("执行返喷操作发生异常,异常原因:" + ex.Message); + Clear(); + } + + } + + /// + /// 报废按钮 + /// + /// + /// + private void btnAbt_Click(object sender, EventArgs e) + { + try + { + if (string.IsNullOrEmpty(txtBarCode.Text.Trim())) + { + MessageBox.Show("请先扫描数据,然后操作."); + return; + } + + #region 返喷下线数据验证 + if (lableFP.Text.Contains("[返喷]")) + { + string barcode = txtBarCode.Text.Trim(); + DataTable dtInspect = Function.GetInspectInfoByBarCode2(barcode); + if (dtInspect != null && dtInspect.Rows.Count > 0) + { + string inspectResult = dtInspect.Rows[0]["inspectResult"].ToString(); //检测结果 + string inspectColorInfo = dtInspect.Rows[0]["remark1"].ToString(); //颜色 + if (inspectResult.Contains("打磨")) + { + string createTime = dtInspect.Rows[0]["createTime"].ToString(); //创建时间 + int count = 0; + string colorInfo = ""; + if (_lineCode == "2") + { + count = Function.GetProducColorFromWms(barcode, "TM_BJBMPT_MES_DATA", createTime, ref colorInfo); + } + else if (_lineCode == "1") + { + count = Function.GetProducColorFromWms(barcode, "TM_BJBMPT_MES_DATA_OLD", createTime, ref colorInfo); + + } + else + { + + } + + if (count == 0) + { + MessageBox.Show("未发现返喷下线数据!,无法进行质量判定"); + return; + } + } + } + + } + #endregion + + // if (MessageBox.Show($"确认对[{txtBarCode.Text}]进行报废操作?", "操作确认", MessageBoxButtons.OKCancel) == DialogResult.Cancel) return; + + //UserInput(userName => { + + //string userName = Program.UserName; + // if (string.IsNullOrEmpty(userName)) + // { + // MessageBox.Show("报废必须录入用户名."); + // return; + // } + // else + // { + ShowHint(""); + #region 必须选择缺陷位置与缺陷原因,否则无法保存 + if (CheckDefect() == false) return; + #endregion + + #region 判断产品是否有颜色 + string colorName = string.Empty; + string partName = string.Empty; + if (CheckColor(ref colorName, ref partName) == false) return; + #endregion + + //string lastRst = GetLastInspectRst(txtBarCode.Text.Trim()); + //if (lastRst.Contains("合格")) + //{ + // MessageBox.Show("条码已判定为合格,无法重新判定为报废"); + // Clear(); + // return; + //} + //if (lastRst.Contains("报废")) + //{ + // MessageBox.Show("条码已判定为报废,无需重复报废"); + // Clear(); + // return; + //} + + ClearControlColor(SetControlGroup()); + btnAbt.BackColor = Color.Red; + + bool rr = SaveBeforeVerify("报废"); + if (rr == false) + { + return; + } + + SaveRst("报废", colorName, partName, 2); + + // } + // }); + } + + catch(Exception ex) + { + ShowHint("执行报废操作发生异常,异常原因:" + ex.Message); + MessageBox.Show("执行报废操作发生异常,异常原因:" + ex.Message); + Clear(); + } + + } + /// + /// + /// + /// + /// + /// + /// 0-不合格;1-合格;9-返喷 8-其他 + void SaveRst(string state, string colorName, string partName,int isOK,string userName="") + { + if (string.IsNullOrEmpty(userName)) + { + userName = Program.UserName; + } + if (string.IsNullOrEmpty(userName)) + { + + } + + if(reason.Contains("点修补") && state!="其它") + { + MessageBox.Show("选择[点修补],只能判定为[其它]状态,不能判定为"+ state); + return; + } + string bcode = txtBarCode.Text.Trim(); + + bool ispass = ScanCodeValidVerify(bcode); + if (ispass == false) + { + txtBarCode.SelectAll(); + return; + } + + + + //保存 + string id = SaveInspect(state, colorName, partName, userName); + + try + { + if (!string.IsNullOrEmpty(id)) + { + string interfaceMsg = string.Empty; + bool rst = SendToWms(txtBarCode.Text.Trim(), isOK,ref interfaceMsg); + if (rst == false) + { + DeleteRepectRst(id, "Web接口调用返回false,原因:" + interfaceMsg, bcode); + } + else + { + ShowHint(txtBarCode.Text.Trim()+"操作成功",true); + Clear(); + } + } + else + { + MessageBox.Show("质检记录保存失败,请重新操作."); + return; + } + + } + catch (Exception ex) + { + if (ex.Message.Contains("WMS")) + { + DeleteRepectRst(id,"Web接口调用抛出异常,异常原因:" + ex.Message , bcode); + } + ShowHint(state+"-WMS报工异常,原因:" + ex.Message); + MessageBox.Show(state+"-WMS报工异常,原因:" + ex.Message); + LogHelper.WriteLog(state+"-WMS报工调用WMS接口:" + ex.ToString(), MethodBase.GetCurrentMethod().Name); + } + } + private void DeleteRepectRst(string id,string msg,string oneBarCode) + { + Function.DelInspectRst(id); + LogHelper.WriteLog($"接口异常,删除塑件[{oneBarCode}]喷涂质检记录,异常内容:" + msg, MethodBase.GetCurrentMethod().Name); + } + + /// + /// + /// + /// + /// + string GetLastInspectRst(string barCode) + { + DataTable inspectTable = Function.GetInspectInfoByBarCode2(txtBarCode.Text.Trim()); + if (inspectTable.Rows.Count > 0) + { + return inspectTable.Rows[0]["inspectResult"].ToString(); + } + return ""; + } + + /// + /// 发送wms罢工 + /// + /// + /// 0:报废 1:合格 9:返喷 + bool SendToWms(string scanBarCode, int isOk,ref string errorMsg) + { + try + { + if (_isTest == "true") + return true; + + //WMSWebService webService = new WMSWebService(); + //webService.Url = ConfigurationManager.AppSettings["WMSWebServiceURL"].ToString(); + ////webService.Timeout = 1200000; + //string errorReason = ""; + ////上次异常提交 + //if (_lastJustDict.Count > 0) + //{ + // bool rst2 = webService.WMSSprayingForCS(Function.UniteBarCodeToOne(_lastJustDict.First().Key), int.Parse(_lastJustDict.First().Value), out errorReason); + //} + + + //bool rst = webService.WMSSprayingForCS(Function.UniteBarCodeToOne(scanBarCode), isOk, out errorReason); + //if (rst == false) + //{ + + // MessageBox.Show("调用远程接口失败"); + // ShowHint("调用远程接口失败: " + errorReason); + + // _lastJustDict.Clear(); + // _lastJustDict.Add(scanBarCode, isOk.ToString()); + + // return false; + //} + //_lastJustDict.Clear(); + return true; + } + catch(Exception ex) + { + throw new Exception("WMS接口调用异常,异常原因:" + ex.Message); + } + + } + /// + /// 判断产品是否有颜色 + /// + /// + bool CheckColor(ref string colorName,ref string partName) + { + string[] ss = null; + if (string.IsNullOrEmpty(labProductInfo.Text)) + { + MessageBox.Show("颜色信息有误,请重新扫描"); + return false; + } + if (labProductInfo.Text.Contains(",")) + { + ss = labProductInfo.Text.Split(','); + } + else + { + ss = labProductInfo.Text.Split(','); + } + if (ss.Length >= 1) + { + if (string.IsNullOrWhiteSpace(ss[0])) + { + MessageBox.Show("无颜色信息,请重新扫描"); + return false; + } + } + else + { + MessageBox.Show("颜色信息有误1,请重新扫描"); + return false; + } + colorName = ss[0]; + if (ss.Length > 1) + { + if (!string.IsNullOrEmpty(ss[1])) + { + partName = ss[1]; + } + } + return true; + } + /// + /// 必须选择缺陷位置与缺陷原因,否则无法保存 + /// + /// + bool CheckDefect() + { + string damnPositionTemp = ""; + string reasonTemp = ""; + //缺陷位置 + foreach (Control c in pictureBox2.Controls) + { + Label lab = c as Label; + if (lab.BackColor != Color.Transparent) + { + damnPositionTemp += lab.Text + ";"; + position = damnPositionTemp; + } + } + //缺陷原因 + foreach (Control c in panel2.Controls) + { + Label lab = c as Label; + if (lab.BackColor != Color.Transparent) + { + reasonTemp += lab.Text + ";"; + reason = reasonTemp; + } + } + + if (string.IsNullOrWhiteSpace(damnPositionTemp) || string.IsNullOrWhiteSpace(reasonTemp)) + { + MessageBox.Show("必须选择缺陷位置与缺陷原因,否则无法保存!"); + return false; + } + return true; + } + /// + /// 保存质检记录 tb_InspectResult + /// + /// + /// + /// + /// 返回插入记录的ID + public string SaveInspect(string inspectResult,string colorName, string partName,string userName) + { + try + { + + return ""; + } + catch (Exception ex) + { + ShowHint("质检提交异常,原因:" + ex.Message); + LogHelper.WriteLog("质检提交:" + ex.ToString(), MethodBase.GetCurrentMethod().Name); + MessageBox.Show("质检提交异常,原因:" + ex.Message); + return null; + } + } + void ShowHint(string txt,bool isOk =false) + { + lbForeig.ForeColor = Color.Red; + lbForeig.Text = txt; + if(isOk == true) + { + lbForeig.ForeColor = Color.Green; + } + } + public void ClearInspect() + { + //缺陷位置 + foreach (Control c in pictureBox2.Controls) + { + Label lab = c as Label; + lab.BackColor = Color.Transparent; + } + //缺陷原因 + foreach (Control c in panel2.Controls) + { + Label lab = c as Label; + lab.BackColor = Color.Transparent; + } + } + + /// + /// 扫码-根据条码查询信息(产品信息、加载图片及缺陷原因、三次检验信息) + /// + /// + /// + private void txtBarCode_KeyDown(object sender, KeyEventArgs e) + { + if (e.KeyCode == Keys.Enter) + { + try + { + btnOk.Enabled = true; + btnRepair.Enabled = true; + btnNok.Enabled = true; + + lbForeig.Text = ""; + ClearPage(); + if (string.IsNullOrEmpty(lbPlanCode.Text)) + { + throw new Exception("当前没有生产计划."); + } + ScanBarCode(); + } + catch (Exception ex) + { + MessageBox.Show("请查看网络是否与服务器连通,无法连通请联系网络管理员。"+ ex); + LogHelper.WriteLog(ex.ToString(), MethodBase.GetCurrentMethod().Name); + } + } + } + + private void ScanBarCode() + { + try + { + ButtonEnable(SetControlGroup()); + //ClearPage(); + + string barcode = txtBarCode.Text.Trim(); + if (barcode.Contains(".")) + { + barcode = Function.TransToBarCodeOne(barcode); + } + + #region 判断条码有效性 + + if (! Function.BarCodeValid(barcode)) + { + MessageBox.Show("扫描的条码号:"+barcode+"无效,请重新扫描!"); + txtBarCode.Text = ""; + return; + } + //bool ispass = ScanCodeValidVerify(barcode); + //if (ispass == false) + //{ + // txtBarCode.SelectAll(); + // return; + //} + + DataTable stockInTable = Function2.SearchStockIn(barcode); + if(stockInTable.Rows.Count == 0) + { + ShowHint("扫描半成品码没有喷涂完工记录,无法使用.",false); + return; + } + + DataTable punchTable = Function2.SearchPunchCodeRecord(barcode); + if(punchTable.Rows.Count > 0) + { + if(punchTable.Rows[0]["Flag"].ToString() == "0" || punchTable.Rows[0]["Flag"].ToString() == "1") + { + ShowHint("扫描半成品码已存在装配记录,无法使用.", false); + return; + } + } + DataTable productTable = Function2.GetProductInfo(barcode.Substring(0, 10)); + if(productTable.Rows.Count == 0) + { + ShowHint($"扫描半成品码的存货代码[{barcode.Substring(0, 10)}]在零件表找不对对应零件号,请检查系统维护.", false); + return; + } + string asselblePartCode = Function2.GetAssemblePartCode(productTable.Rows[0]["PartNo"].ToString(), _stationNo); + + if(lbProductCode.Text?.ToLower() != asselblePartCode?.ToLower()) + { + ShowHint($"扫描半成品码在BOM中对应的总成零件号[{asselblePartCode}]与当前计划的零件号[{lbProductCode.Text}]不匹配.", false); + return; + } + + DataTable bomTable = Function2.GetBomTable(asselblePartCode, _stationNo); + List list = bomTable.AsEnumerable().Where(p => p.Field("IsChecked") == 1).ToList(); + + + #endregion + + + + + #region 如果是补打的条码,查询产品信息 + + //if (!barcode.Contains(".") && barcode.Length > 4) + //{ + // string strCode = barcode.Substring(barcode.Length - 4, 4); + // int num = 0; + // Int32.TryParse(strCode, out num); + // if (num > 7000) + // { + // labProductInfo.Text = Function.GetReprintInfo2(barcode); + // if (string.IsNullOrWhiteSpace(labProductInfo.Text.Trim())) + // { + // ButtonDisable(SetControlGroup()); + // labProductInfo.Text = "没有查询到补打条码信息"; + // return; + // } + // } + + //} + + #endregion + + //根据条码查询,加载图片及原因 + int row = 0, col = 0; + string picture = ""; + + #region 缺陷原因 + + try + { + int drow = 0, dcol = 5; //行,列 + + DataTable dt3 = Function.SearchDefectInfo(ConfigurationManager.AppSettings["Station"].Trim()); + if (dt3 != null && dt3.Rows.Count > 0) + { + drow = Convert.ToInt32(Math.Ceiling((double)dt3.Rows.Count / dcol)); + Label[] dLb = new Label[7]; + string[] dstr = new string[dt3.Rows.Count]; + + for (int i = 0; i < dt3.Rows.Count; i++) + { + dstr[i] = dt3.Rows[i]["DefectName"].ToString(); + } + + for (int i = 0; i < dcol; i++) //列 + { + for (int j = 0; j < drow; j++) //行 + { + dLb[i] = new Label(); + if ((i + dcol * j) < dstr.Length) + { + + dLb[i].Text = dstr[i + dcol * j].ToString(); + dLb[i].Font = new Font(dLb[i].Font.FontFamily, 24, FontStyle.Bold); + dLb[i].Size = new Size(150, 50); + dLb[i].Location = new Point(20 + i * (dLb[i].Size.Width + 25), 5 + j * (dLb[i].Size.Height + 20)); + dLb[i].BorderStyle = BorderStyle.FixedSingle; + dLb[i].BackColor = Color.Transparent; + dLb[i].TextAlign = ContentAlignment.MiddleCenter; + + if (dLb[i].Text.Contains("点修补")) + { + dLb[i].Font = new Font(dLb[i].Font.FontFamily, 36, FontStyle.Bold); + dLb[i].Size = new Size(170, 60); + dLb[i].ForeColor = Color.Red; + //dLb[i].BackColor = Color.Red; + } + panel2.Controls.Add(dLb[i]); + dLb[i].Click += new EventHandler(dLbRoom_Click); + } + } + } + } + } + catch (Exception ex) + { + LogHelper.WriteLog("缺陷项-"+ex.ToString(), MethodBase.GetCurrentMethod().Name); + throw ex; + } + + #endregion + + #region 加载图片 + + try + { + DataTable dt2 = Function.SearchInfoByBarCode(barcode); + + if (dt2 != null && dt2.Rows.Count > 0) + { + row = Convert.ToInt32(dt2.Rows[0]["Rows"].ToString()); + col = Convert.ToInt32(dt2.Rows[0]["Cols"].ToString()); + picture = dt2.Rows[0]["PicturePath"].ToString(); + } + dt2.Dispose(); + + if (!string.IsNullOrEmpty(picture)) + { + if (!File.Exists(System.IO.Directory.GetCurrentDirectory() + @"\" + picture)) + { + + string strImageURL = Function.GetImgPath() + picture; + + if(_isTest != "true") + { + System.Net.WebClient webClient = new System.Net.WebClient(); + webClient.DownloadFile(strImageURL, Directory.GetCurrentDirectory() + @"\" + picture); + } + + } + + + FileStream fs = new FileStream(Directory.GetCurrentDirectory() + "\\" + picture, FileMode.Open, + FileAccess.Read);//获取图片文件流 + Image img = Image.FromStream(fs); // 文件流转换成Image格式 + pictureBox2.Image = img; //给 图片框设置要显示的图片 + fs.Close(); // 关闭流,释放图片资源 + } + } + catch (Exception ex) + { + LogHelper.WriteLog("图片项-" + ex.ToString(), MethodBase.GetCurrentMethod().Name); + } + #endregion + + #region 缺陷图划分区域 + + Label[] lb = new Label[5]; + string[] str = { "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z" }; + + for (int i = 0; i < col; i++) + { + for (int j = 0; j < row; j++) + { + lb[i] = new Label(); + lb[i].Text = str[i + col * j].ToString(); + lb[i].Font = new Font(lb[i].Font.FontFamily, 32, FontStyle.Bold); + + lb[i].Size = new Size(pictureBox2.Width / col, pictureBox2.Height / row); + lb[i].Location = new Point(0 + i * lb[i].Size.Width, 0 + j * lb[i].Size.Height); + lb[i].BorderStyle = BorderStyle.FixedSingle; + lb[i].BackColor = Color.Transparent; + lb[i].TextAlign = ContentAlignment.MiddleCenter; + pictureBox2.Controls.Add(lb[i]); + + lb[i].Click += new EventHandler(lblRoom_Click); + } + } + + #endregion + + //不是补打的条码,根据条码查询产品信息、检验信息,选中缺陷位置及原因 + DataTable dtInspect = Function.GetInspectInfoByBarCode2(barcode); + if (dtInspect != null && dtInspect.Rows.Count > 0) + { + //List list = dtInspect.AsEnumerable().Where(p => p.Field("inspectResult").Contains("打磨")).ToList(); + //string state = string.Empty; + //if (list.Count > 0) + //{ + // state = "返喷"; + //} + //List list2 = dtInspect.AsEnumerable().Where(p => p.Field("inspectResult").Contains("其它")).ToList(); + //if (list2.Count > 0) + //{ + // if(list2.Where(p=> p.Field("inspectResult")=="其它WMS").Count() > 0) + // { + // state = state + ",其它WMS"; + // } + // if (list2.Where(p => p.Field("inspectResult") == "其它").Count() > 0) + // { + // state = state + ",其它"; + // } + + //} + + //if (!string.IsNullOrEmpty(state)) + //{ + // lableFP.Text = "存在[" + state + "]状态"; + //} + + //_carType = dtInspect.Rows[0]["CarType"].ToString().Trim(); + //labProductInfo.Text = dtInspect.Rows[0]["productInfo"].ToString().Trim(); //产品信息 + ////string position1 = dtInspect.Rows[0]["damnPosition"].ToString(); //缺陷位置 + ////string reason1 = dtInspect.Rows[0]["reason"].ToString(); //原因 + //position= dtInspect.Rows[0]["damnPosition"].ToString(); //缺陷位置 + //reason= dtInspect.Rows[0]["reason"].ToString(); //原因 + + + + //paintId = dtInspect.Rows[0]["remark3"].ToString(); //原因 + + //string stationNo = dtInspect.Rows[0]["stationNo"].ToString(); //质检工位 + //if(!_stations.Contains(stationNo)) + //{ + + // //ShowHint(em, false); + // txtBarCode.Text = ""; + // txtBarCode.TabIndex = 0; + // txtBarCode.Select(); + // return; + //} + + //#region 选中缺陷位置及原因 + + //foreach (Control c in pictureBox2.Controls) + //{ + // Label lab = c as Label; + // if (position.Contains(lab.Text)) + // { + // lab.BackColor = Color.FromArgb(150, System.Drawing.Color.Chartreuse); + // count++; + // } + //} + //foreach (Control c in panel2.Controls) + //{ + // Label lab = c as Label; + // if (reason.Contains(lab.Text)) + // { + // lab.BackColor = Color.Chartreuse; + // reason += lab.Text + ";"; + // } + //} + + //#endregion + + #region 根据一检结果显示一检时的位置--暂时不要 + + labProPosition.Text = Function.GetFirstInsPosition2(dtInspect); + + #endregion + } + else + { + + #region 没有一检结果,查询老外数据库,取产品信息 + if ((_isSingleStation==true )) + { + string paintError = string.Empty; + //喷涂线边质检,没有质检结果,查询老外数据库,取产品信息 + string foreignVal = string.Empty; + if(_lineCode == "2") + { + foreignVal = Function.GetProductInfoFrWms(barcode, "TM_BJBMPT_MES_DATA", ref paintError); + } + else if (_lineCode == "1") + { + foreignVal = Function.GetProductInfoFrWms(barcode, "TM_BJBMPT_MES_DATA_OLD", ref paintError); + + } + else + { + foreignVal = Function.GetProductInfo2(barcode, ref paintError); + } + if (!string.IsNullOrEmpty(paintError)) + { + lbForeig.Text = paintError; + } + if (string.IsNullOrEmpty(foreignVal)) + { + return; + } + string[] info = foreignVal.Split(','); + if (!string.IsNullOrEmpty(paintError)) + { + ShowHint(paintError); + } + _foreighColor = info[0]; + labProductInfo.Text = info[0] + "," + info[1]; + paintId = info[2]; + labProPosition.Tag = paintId; + labProductInfo.Tag = Function.GetSide(barcode, paintId); + labProPosition.Text = labProductInfo.Tag.ToString().Replace(';', ' '); + if (info.Length == 4) + { + _foreignPartCode = info[3]; + } + } + else + { + //库房返喷,没有质检结果,不能查老外库,就是条码不正确 + MessageBox.Show("没有喷涂线边质检记录,无法返喷操作!"); + txtBarCode.Text = ""; + txtBarCode.TabIndex = 0; + txtBarCode.Select(); + return ; + } + + + #endregion + } + + + txtBarCode.SelectAll(); + } + catch (Exception ex) + { + MessageBox.Show("请查看网络是否与服务器连通,无法连通请联系网络管理员。" + ex.ToString()); + LogHelper.WriteLog("整体项-" + ex.ToString(), MethodBase.GetCurrentMethod().Name); + } + } + /// + /// 一检 二检 点修补扫码是否允许验证 + /// + /// + /// + private bool ScanCodeValidVerify(string barcode) + { + //string position = _stationType; + // switch (position) + // { + // case "下线一检": return First(barcode); + // case "下线二检": return Second(barcode);; + // case "下线点修补": return Third(barcode); + // default:return true; + + // } + return true; + + } + + private bool First(string barcode) + { + if(_isSingleStation == true) + { + ShowHint("当前系统配置为[单工位生产],无法在此工位扫码,请去终检工位进行操作.", false); + return false; + } + + DataTable dt = Function.GetLastResult(barcode); + if (dt.Rows.Count > 0) + { + ShowHint("扫描条码["+ barcode + "]已存在质检记录,无法在[下线一检]工位进行重新扫码." , false); + return false; + } + return true; + } + + private bool Second(string barcode) + { + DataTable dt = Function.GetLastResult(barcode); + if (_isSingleStation == false) + { + if (dt.Rows.Count == 0) + { + ShowHint("扫描条码[" + barcode + "]不存在[下线一检]记录,无法在[下线二检]工位进行扫码.", false); + return false; + } + + DataRow dr = dt.Rows[0]; + if (dr["reason"].ToString().Contains("点修补") && dr["inspectResult"].ToString().Contains("其它")) + { + ShowHint("扫描条码[" + barcode + "]上次质量判定为[点修补],无法进行二检扫码.", false); + return false; + } + if (dr["inspectResult"].ToString().Contains("报废")) + { + ShowHint("上次质量判定为[报废],无法进行二检扫码.", false); + return false; + } + } + + + return true; + } + + /// + /// 点修补扫码校验 + /// + /// + /// + private bool Third(string barcode) + { + string errorMsg = string.Empty; + bool isExsit = Function. GetPointRepairFrWms(barcode, ref errorMsg); + if(isExsit == false) + { + if (!string.IsNullOrEmpty(errorMsg)) + { + ShowHint("在wms系统的查询返修入库记录时发生错误,错误原因:"+errorMsg, false); + return false; + + } + else{ + ShowHint("没有在wms系统的返修入库记录,无法进行点修补.", false); + return false; + } + + } + DataTable dt = Function.GetLastResult(barcode); + if (dt.Rows.Count > 0) + { + if(dt.Rows[0]["reason"].ToString().Contains("点修补") && dt.Rows[0]["inspectResult"].ToString().Contains("其它")) + { + return true; + } + else + { + ShowHint("必须上次质量判定记录为点修补,类型为其它,才能在当前[点修补]工位扫码.", false); + return false; + } + } + else + { + ShowHint("没有初始质量判定记录,无法在[点修补]工位扫码.", false); + return false; + } + + + + } + + /// + /// 设置按钮不可用 + /// + /// + private void ButtonDisable(Control[] controls) + { + foreach (Control c in controls) + { + Button btn = c as Button; + btn.Enabled = false; + } + } + + /// + /// 设置按钮可用 + /// + /// + private void ButtonEnable(Control[] controls) + { + foreach (Control c in controls) + { + Button btn = c as Button; + btn.Enabled = true; + } + } + + private void labWorkClass_Click(object sender, EventArgs e) + { + Function.ChangeWorkClass(labWorkClass); + } + + /// + /// 点击退出 + /// + /// + /// + private void labTime_Click(object sender, EventArgs e) + { + Environment.Exit(0); + } + + /// + /// 清空页面 + /// + private void ClearPage() + { + labProductInfo.Tag = null; + labProductInfo.Text = ""; + //btnAbt.BackColor = Color.LightGray; + //btnRepair.BackColor = Color.LightGray; + + //ClearRadioButton(); + ClearInspect(); + ClearControlColor(SetControlGroup()); + pictureBox2.Controls.Clear(); + panel2.Controls.Clear(); + pictureBox2.Image = null; + txtBarCode.TabIndex = 0; + txtBarCode.Select(); + position = ""; + reason = ""; + lableFP.Text = ""; + _foreighColor = ""; + _foreignPartCode = ""; + _carType = string.Empty; + } + + public void ClearRadioButton() + { + groupBox1.Controls.Clear(); + } + + public void ClearTxtBarcode() + { + txtBarCode.Text = ""; + labProPosition.Text = ""; + } + + public void LoadScreen() + { + DataTable dt = Function2.GetProScreen(_stationNo); + if (dt != null && dt.Rows.Count > 0) + { + SetPage(dt); + } + + } + private void SetPage(DataTable dt) + { + IsHigh = "1"; + lbPlanCode.Text = ""; + lbProductCode.Text = ""; + lbProductName.Text = ""; + + + if (dt != null && dt.Rows.Count > 0) + { + lbPlanCode.Text = dt.Rows[0]["OrderNo"].ToString(); + lbPlanCode.Tag = dt.Rows[0]["ID"].ToString(); + lbProductName.Text = dt.Rows[0]["ProductName"].ToString(); + lbProductCode.Text = dt.Rows[0]["PartNo"].ToString(); + + SetProduceCount(dt.Rows[0]); + } + + } + /// + /// 设置生产数量 + /// + /// + void SetProduceCount(DataRow planRow) + { + int planQty = 0; + int okQty = 0; + int badQty = 0; + int repairQty = 0; + + int.TryParse(planRow["OrderCount"].ToString(), out planQty); + int.TryParse(planRow["OKCount"].ToString(), out okQty); + int.TryParse(planRow["BadCount"].ToString(), out badQty); + int.TryParse(planRow["RepairCount"].ToString(), out repairQty); + lbPlanQty.Text = planQty.ToString(); + lbPlanCompleteQty.Text = (okQty+ badQty).ToString(); + lbOkCount.Text = okQty.ToString(); + lbRepairCount.Text = repairQty.ToString(); + lbBadCount.Text = badQty.ToString(); + } + + private void btnPlanUp_Click(object sender, EventArgs e) + { + LoadPlanScreen(lbPlanCode.Tag?.ToString(), "上一计划"); + txtBarCode.Select(); + txtBarCode.Focus(); + } + + private void btnPlanDown_Click(object sender, EventArgs e) + { + LoadPlanScreen(lbPlanCode.Tag?.ToString(), "下一计划"); + txtBarCode.Select(); + txtBarCode.Focus(); + } + public void LoadPlanScreen(string id, string plan) + { + + DataTable dt = Function2.GetProScreenPlan(id, _stationNo, plan); + if (dt != null && dt.Rows.Count > 0) + { + SetPage(dt); + } + else + { + if (plan == "下一计划") + { + MessageBox.Show("无下一计划"); + txtBarCode.SelectAll(); + txtBarCode.Focus(); + } + else + { + MessageBox.Show("无上一计划"); + txtBarCode.SelectAll(); + txtBarCode.Focus(); + } + } + txtBarCode.SelectAll(); + txtBarCode.Focus(); + } + + private void txtBarCode_DoubleClick(object sender, EventArgs e) + { + txtBarCode.SelectAll(); + } + + } +} diff --git a/PunchingMistake/FrmQualityNew1.resx b/PunchingMistake/FrmQualityNew1.resx new file mode 100644 index 0000000..3d1eb78 --- /dev/null +++ b/PunchingMistake/FrmQualityNew1.resx @@ -0,0 +1,475 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + 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 + RK5CYII= + + + \ No newline at end of file diff --git a/PunchingMistake/Function2.cs b/PunchingMistake/Function2.cs index 4161966..71ef956 100644 --- a/PunchingMistake/Function2.cs +++ b/PunchingMistake/Function2.cs @@ -1,9 +1,11 @@ using DBUtility; +using PaintingPC.Model; using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Text; +using System.Text.RegularExpressions; using System.Threading.Tasks; namespace PunchingMistake @@ -111,7 +113,10 @@ namespace PunchingMistake order by CreateTime asc "; res = SqlHelper.GetDataDateTable(SqlHelper.SqlConnString, CommandType.Text, sql, null); - + if (res.Rows.Count > 0) + { + UpdatePlanState2(res.Rows[0]["ID"].ToString(), stationNo); + } #endregion } else if (plan == "上一计划") @@ -149,7 +154,10 @@ namespace PunchingMistake order by CreateTime asc "; res = SqlHelper.GetDataDateTable(SqlHelper.SqlConnString, CommandType.Text, sql, null); - + if (res.Rows.Count > 0) + { + UpdatePlanState2(res.Rows[0]["ID"].ToString(), stationNo); + } #endregion } @@ -167,6 +175,10 @@ namespace PunchingMistake where a.ID='" + id + @"' "; res = SqlHelper.GetDataDateTable(SqlHelper.SqlConnString, CommandType.Text, sql, null); + if (res.Rows.Count > 0) + { + UpdatePlanState2(res.Rows[0]["ID"].ToString(), stationNo); + } } return res; @@ -177,7 +189,40 @@ namespace PunchingMistake return res; } } - + static int UpdatePlanState2(string planID,string stationNo) + { + int res = 0; + try + { + string sql1 = @" update tb_ZP_MK_Plan set State = '2' where State = 1 and Station='" + stationNo + "' "; + string sql2 = @" update tb_ZP_MK_Plan set State = '1' where ID='" + planID + "' "; + res = SqlHelper.ExecuteNonQuery(SqlHelper.SqlConnString, CommandType.Text, sql1, null); + res = SqlHelper.ExecuteNonQuery(SqlHelper.SqlConnString, CommandType.Text, sql2, null); + return res; + } + catch (Exception ex) + { + LogHelper.WriteLog("切换计划时,更新计划状态失败[UpdatePlanState2],失败原因:"+ex.Message); + //LogHelper.WriteErrLogBase(ex.ToString(), MethodBase.GetCurrentMethod().Name); + return res; + } + } + public static int DeleteLineData(string id ) + { + int res = 0; + try + { + string sql1 = @" delete from tb_Punch_Line where ID='" + id + "' "; + res = SqlHelper.ExecuteNonQuery(SqlHelper.SqlConnString, CommandType.Text, sql1, null); + return res; + } + catch (Exception ex) + { + LogHelper.WriteLog("扫码生产完成,删除操作临时数据失败,[DeleteLineData],失败原因:" + ex.Message); + //LogHelper.WriteErrLogBase(ex.ToString(), MethodBase.GetCurrentMethod().Name); + return res; + } + } /// /// 塑件码是否通过了Wms报工 /// @@ -220,7 +265,7 @@ namespace PunchingMistake DataTable res = new DataTable(); try { - string sql = $" select Top 1 * from tb_Product where StockNo='{stockNo}' order by id desc "; + string sql = $" select Top 1 * from tb_Product where StockNo='{stockNo}' "; res = SqlHelper.GetDataDateTable(SqlHelper.SqlConnString, CommandType.Text, sql, null); return res; } @@ -230,6 +275,25 @@ namespace PunchingMistake return res; } } + public static string GetProductName(string partNo) + { + DataTable res = new DataTable(); + try + { + string sql = $" select Top 1 * from tb_Product where PartNo='{partNo}' "; + res = SqlHelper.GetDataDateTable(SqlHelper.SqlConnString, CommandType.Text, sql, null); + if (res.Rows.Count > 0) + { + return res.Rows[0]["ProductName"].ToString(); + } + return ""; + } + catch (Exception ex) + { + LogHelper.WriteLog("通过零件号查询零件名称,tb_Product表发生异常,异常原因:" + ex.ToString()); + return ""; + } + } /// /// 半成品条码,找总成条码 /// @@ -241,7 +305,7 @@ namespace PunchingMistake DataTable res = new DataTable(); try { - string sql = $" select Top 1 * from tb_Bom_MK where PartNo2='{partCode}' and IsPartAssemble=1 and StationNo='{stationNo}' order by id desc "; + string sql = $" select Top 1 * from tb_Bom_MK where PartNo2='{partCode}' and IsPartAssemble=1 and StationNo='{stationNo}' "; res = SqlHelper.GetDataDateTable(SqlHelper.SqlConnString, CommandType.Text, sql, null); if(res .Rows.Count > 1) @@ -268,7 +332,7 @@ namespace PunchingMistake DataTable res = new DataTable(); try { - string sql = $" select Top 1 * from tb_Bom_MK where PartNo1='{assemblePartCode}' and StationNo='{stationNo}' order by id desc "; + string sql = $" select * from tb_Bom_MK where PartNo1='{assemblePartCode}' and StationNo='{stationNo}' "; res = SqlHelper.GetDataDateTable(SqlHelper.SqlConnString, CommandType.Text, sql, null); return res; @@ -301,26 +365,26 @@ namespace PunchingMistake } } - public static int SavePartAndProduct_New(string barcode, string BcpID, string ZcID, string OrderNo, string WorkClass, string planID, string SerialNo, string barCode1, string barCode2, string barCode3, string barCode4, string barCode5, string barCode6, string stationId, string description) + public static int SavePartAndProduct_New(string barcode, string partNo1, string partNo2, string ZcID, string OrderNo, string WorkClass, string planID, string SerialNo, string barCode1, string barCode2, string barCode3, string barCode4, string barCode5, string barCode6, string stationId, string description) { int res = 0; try { string sql = @" INSERT INTO [dbo].[tb_Punch_Code_Record] - ([ID] - ,[barcode] + ([barcode] ,[BcpID] - ,[ZcID] + ,ZcPartNo + ,[ZcBarCode] ,[OrderNo] ,[WorkClass] ,[CreateTime], PlanID,SerialNo ,barCode1,barCode2,barCode3 - ,barCode4,barCode5,barCode6,StationId,StationDescription) + ,barCode4,barCode5,barCode6,StationNo,StationDescription) VALUES - ((select newid()) - ,'" + barcode + @"' - ,'" + BcpID + @"' + ('" + barcode + @"' + ,'" + partNo2 + @"' + ,'" + partNo1 + @"' ,'" + ZcID + @"' ,'" + OrderNo + @"' ,'" + WorkClass + @"' @@ -379,7 +443,7 @@ namespace PunchingMistake int res = 0; try { - string sql = " update tb_Plan_Punch set CompleteCount = CompleteCount + 1 where ID = '" + ID + "' "; + string sql = " update tb_ZP_MK_Plan set OKCount = OKCount + 1 where ID = '" + ID + "' "; res = SqlHelper.ExecuteNonQuery(SqlHelper.SqlConnString, CommandType.Text, sql, null); return res; } @@ -419,6 +483,177 @@ namespace PunchingMistake return res; } } + + static string GetPartNoFromBarCode(string pBarCode) + { + if (pBarCode.Length == 33 || pBarCode.Length == 31) + { + + string color = pBarCode.Substring(19, 3); + if (Regex.IsMatch(color, "^[0-9]+$") == true) //三位全是数字,认为不含颜色 + { + pBarCode = pBarCode.Substring(6, 13); + } + else + { + pBarCode = pBarCode.Substring(6, 16); + } + } + else if (pBarCode.Length == 28) + { + pBarCode = pBarCode.Substring(6, 13); + } + else if (pBarCode.Length == 24) + { + pBarCode = pBarCode.Substring(0, 13); + } + else + { + if (pBarCode.Length > 10) + { + if (pBarCode.Contains(".")) + { + pBarCode = pBarCode.Substring(0, pBarCode.IndexOf(".")); + } + else if (pBarCode.Contains("/")) + { + pBarCode = pBarCode.Substring(0, pBarCode.IndexOf("/")); + } + else if (pBarCode.Length == 11) + { + pBarCode = pBarCode; + } + else + { + pBarCode = pBarCode.Substring(0, 10); + } + } + } + return pBarCode; + } + + public static string GetProductNo(string barcode) + { + string res = ""; + try + { + if (barcode.Length != 20) + { + return GetPartNoFromBarCode(barcode); + } + + + //LogHelper.WriteSysLogBase("[一码到底]扫入条码:" + barcode, MethodBase.GetCurrentMethod().Name); + //if (barcode.Length != 20) + //{ + // barcode = UniteBarCodeToOne(barcode); + //} + + string sql = @" select top 1 paintCode from tb_StockIn where barcode = '" + barcode + @"' "; + object aa = SqlHelper.ExecuteScalar(SqlHelper.SqlConnString, CommandType.Text, sql, null); + if (aa != null) + res = aa.ToString(); + + if (string.IsNullOrEmpty(res)) + { + string sql1 = @" select top 1 productInfo + from tb_InspectResult + where barcode = '" + barcode + @"' + order by createtime desc "; + object bb = SqlHelper.ExecuteScalar(SqlHelper.SqlConnString, CommandType.Text, sql1, null); + if (bb != null) + { + string color = ""; + string colorInfo = bb.ToString(); + string[] colors = colorInfo.Split(','); + if (colors.Length >= 2) + { + color = colors[2]; + + string sql2 = @" select partNo from tb_Product where stockNo = '" + barcode.Substring(0, 10) + @"' "; + object cc = SqlHelper.ExecuteScalar(SqlHelper.SqlConnString, CommandType.Text, sql2, null); + if (cc != null) + { + res = cc.ToString(); + //string partNo = cc.ToString(); + //string paintCode = partNo.Replace("-P", "") + "-" + color; + //string sql3 = @" select ProductID + // from tb_Product + // where partNo = '" + paintCode + @"' "; + //object dd = SqlHelper.ExecuteScalar(SqlHelper.SqlConnString, CommandType.Text, sql3, null); + //if (dd != null) + //{ + // res = dd.ToString(); + //} + } + } + } + else + { + + string partNo = "", stockNo = ""; + + if (barcode.Contains('/')) + { + string[] aastr = barcode.Split('/'); + partNo = aastr[0]; + } + else if (barcode.Contains('.')) + { + string[] aastr = barcode.Split('.'); + partNo = aastr[0]; + } + else if (barcode.Length == 20) + { + stockNo = barcode.Substring(0, 10); + } + else + { + partNo = barcode; + } + + if (!string.IsNullOrEmpty(stockNo)) + { + string sql3 = @"select partNo + from tb_Product + where StockNo = '" + stockNo + @"'"; + object dd = SqlHelper.ExecuteScalar(SqlHelper.SqlConnString, CommandType.Text, sql3, null); + if (dd != null) + { + res = dd.ToString(); + } + } + + //string sql3 = ""; + //if (partNo != "") + //{ + // sql3 = @"select ProductID + // from tb_Product + // where partNo = '" + partNo + @"'"; + //} + //else + //{ + // sql3 = @"select ProductID + // from tb_Product + // where StockNo = '" + stockNo + @"'"; + //} + + //object dd = SqlHelper.ExecuteScalar(SqlHelper.SqlConnString, CommandType.Text, sql3, null); + //if (dd != null) + //{ + // res = dd.ToString(); + //} + } + } + //LogHelper.WriteSysLogBase("[一码到底]传出ProductID2:" + res, MethodBase.GetCurrentMethod().Name); + return res; + } + catch (Exception ex) + { + //LogHelper.WriteErrLogBase(ex.ToString(), MethodBase.GetCurrentMethod().Name); + return res; + } + } public static string GetProductID(string barcode) { string res = ""; @@ -584,49 +819,202 @@ namespace PunchingMistake return res; } - } - public static class ScanAll - { - public static bool ScanResult; - public static string barCode1; - public static string barCode2; - public static string barCode3; - public static string barCode4; - public static string barCode5; - public static string barCode6; - public static string partNo1; - public static string partNo2; - public static string partNo3; - public static string partNo4; - public static string partNo5; - public static string partNo6; - } + public static string SaveLineInfo(string sjBarCode, string planID,string stationNo,string partNo1,string partNo2, int LeftRivet1All, int RightRivet1All, int LeftScrew1All, int RightScrew1All, int IrIsAll ) + { + string res = string.Empty; + try + { + string sql = $"insert into tb_Punch_Line (SjBarCode,PlanID,StationNo,PartNo1,PartNo2,barCode1,barCode2,barCode3,barCode4,barCode5,barCode6, LeftRivet1All,RightRivet1All,LeftScrew1All,RightScrew1All,IrIsAll ) " + + $"values('{sjBarCode}','{planID}','{stationNo}','{partNo1}','{partNo2}','{ScanAll.barCode1}','{ScanAll.barCode2}','{ScanAll.barCode3}','{ScanAll.barCode4}','{ScanAll.barCode5}','{ScanAll.barCode6}','{LeftRivet1All}','{RightRivet1All}','{LeftScrew1All}','{RightScrew1All}','{IrIsAll}' );select @@Identity"; + object dd = SqlHelper.ExecuteScalar(SqlHelper.SqlConnString, CommandType.Text, sql, null); + if (dd != null) + { + res = dd.ToString(); + } + } + catch (Exception ex) + { + //LogHelper.WriteErrLogBase(ex.ToString(), MethodBase.GetCurrentMethod().Name); + LogHelper.WriteLog("保存tb_Punch_Line表数据时发生异常,异常原因:" + ex.ToString()); + + } + return res; - public class OtherPart - { - public string productID3 { get; set; } + } - public string qty3 { get; set; } + public static int UpdateLineCount(string field, string id) + { + int res = -1; + try + { + string sql = $"update tb_Punch_Line set {field} where id={id} "; + res = SqlHelper.ExecuteNonQuery(SqlHelper.SqlConnString, CommandType.Text, sql, null); - public string productID4 { get; set; } + } + catch (Exception ex) + { + //LogHelper.WriteErrLogBase(ex.ToString(), MethodBase.GetCurrentMethod().Name); + LogHelper.WriteLog(ex.ToString()); + } + return res; + } + public static DataTable GetPunchLineInfo( string id) + { + DataTable res = null; + try + { + string sql = @"select * from tb_Punch_Line where ID ='" + id + @"'"; + res = SqlHelper.GetDataDateTable(SqlHelper.SqlConnString, CommandType.Text, sql, null); + + } + catch (Exception ex) + { + //LogHelper.WriteErrLogBase(ex.ToString(), MethodBase.GetCurrentMethod().Name); + LogHelper.WriteLog($"查询tb_Punch_Line表错误,ID={id},异常信息:"+ex.Message); + } + + return res; + } + public static DataTable GetPunchLineInfo(string planID,string stationNo) + { + DataTable res = null; + try + { + string sql = @"select * from tb_Punch_Line where PlanID ='" + planID + @"' and StationNo='"+ stationNo + "'"; + res = SqlHelper.GetDataDateTable(SqlHelper.SqlConnString, CommandType.Text, sql, null); - public string qty4 { get; set; } + } + catch (Exception ex) + { + //LogHelper.WriteErrLogBase(ex.ToString(), MethodBase.GetCurrentMethod().Name); + LogHelper.WriteLog($"根据计划ID,工位号查询tb_Punch_Line表错误,planID={planID},stationNo={stationNo},异常信息:" + ex.Message); + } - public string productID5 { get; set; } + return res; + } + public static int UpdatePlanState(string state, string id) + { + int res = -1; + try + { + string sql = $"update tb_ZP_MK_Plan set State='{state}' where id={id} "; + res = SqlHelper.ExecuteNonQuery(SqlHelper.SqlConnString, CommandType.Text, sql, null); - public string qty5 { get; set; } + } + catch (Exception ex) + { + //LogHelper.WriteErrLogBase(ex.ToString(), MethodBase.GetCurrentMethod().Name); + LogHelper.WriteLog(ex.ToString()); + } + return res; + } - public string productID6 { get; set; } + public static DataTable GetPunchRecord(string planID,string barcode,string date1,string date2) + { + DataTable res = null; + try + { + string where = "(1 = 1)"; + if (!string.IsNullOrEmpty(barcode)) + { + where = $" barcode='{barcode}' "; + } + string sql = $"select * from tb_Punch_Code_Record where PlanID ='{planID}' and {where} and CreateTime>'{date1}' and CreateTime<'{date2}'"; + res = SqlHelper.GetDataDateTable(SqlHelper.SqlConnString, CommandType.Text, sql, null); - public string qty6 { get; set; } + } + catch (Exception ex) + { + //LogHelper.WriteErrLogBase(ex.ToString(), MethodBase.GetCurrentMethod().Name); + LogHelper.WriteLog($"查询tb_Punch_Code_Record表错误,planID={planID},异常信息:" + ex.Message); + } - public string productID7 { get; set; } + return res; + } - public string qty7 { get; set; } + /// + /// 是否需要前置工序验证 + /// + /// + public static bool GetVerifyPreProcess() + { + DataTable res = null; + try + { + string sql = $"select * from tb_Config where name ='PunchAssembleVerifyQA' "; + res = SqlHelper.GetDataDateTable(SqlHelper.SqlConnString, CommandType.Text, sql, null); + if (res.Rows.Count == 0) + { + return true; + } + else + { + if (res.Rows[0]["value"].ToString()?.ToLower() == "false") + return false; + } + + } + catch (Exception ex) + { + //LogHelper.WriteErrLogBase(ex.ToString(), MethodBase.GetCurrentMethod().Name); + LogHelper.WriteLog($"查询tb_Config表错误 ,异常信息:" + ex.Message); + } - public string productID8 { get; set; } + return true; + } - public string qty8 { get; set; } + /// + /// 查询前置工序,上线前质检是否存在 + /// + /// + public static bool GetInspectResultCheck(string sjBarCode) + { + DataTable res = null; + try + { + string sql = $"select * from tb_InspectResult_Check where barcode ='{sjBarCode}' and inspectResult='合格' "; + res = SqlHelper.GetDataDateTable(SqlHelper.SqlConnString, CommandType.Text, sql, null); + if (res.Rows.Count > 0) + { + return true; + } + } + catch (Exception ex) + { + //LogHelper.WriteErrLogBase(ex.ToString(), MethodBase.GetCurrentMethod().Name); + LogHelper.WriteLog($"查询tb_InspectResult_Check表错误,barcode ='{sjBarCode}' ,异常信息:" + ex.Message); + } + return false; + } + public static string InsertInspect3(InspectModel model1) + { + return ""; + } + public static DataTable SearchDefectInfo(string stationNo) + { + return null; + } + public static DataTable SearchInfoByBarCode(string barcode) + { + return null; + } + public static string GetImgPath() + { + return ""; + } + public static DataTable GetLastResult(string barcode) + { + return null; + } + public static bool GetPointRepairFrWms(string barcode ,ref string errorMsg) + { + return true; + } } + + + + + } diff --git a/PunchingMistake/Function3.cs b/PunchingMistake/Function3.cs new file mode 100644 index 0000000..4d95beb --- /dev/null +++ b/PunchingMistake/Function3.cs @@ -0,0 +1,125 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace PunchingMistake +{ + public class Function3 + { + /// + /// 获取班次,规定早8至晚8为A班 + /// + /// + public static string GetWorkClass() + { + bool classA = IsBetweenTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), DateTime.Now.ToString("yyyy-MM-dd") + " 08:00:00", DateTime.Now.ToString("yyyy-MM-dd") + " 20:00:00"); + if (classA) + { + return "A班"; + } + else + { + return "B班"; + } + } /// + /// 判断传入时间是否在工作时间段内 + /// + /// + /// + /// + /// + public static bool IsBetweenTime(string timeStr, string startTime, string endTime) + { + //判断传入时间是否在工作时间段内 + try + { + TimeSpan startSpan = DateTime.Parse(startTime).TimeOfDay; + TimeSpan endSpan = DateTime.Parse(endTime).TimeOfDay; + + DateTime t1 = Convert.ToDateTime(timeStr); + TimeSpan dspNow = t1.TimeOfDay; + if (dspNow > startSpan && dspNow < endSpan) + { + return true; + } + return false; + } + catch (Exception ex) + { + LogHelper.WriteLog(ex.ToString()); + return false; + } + } + + /// + /// 判断条码有效性 + /// + /// + /// + public static bool BarCodeValid(string barcode) + { + bool res = false; + if (!string.IsNullOrWhiteSpace(barcode)) + { + if (barcode.Contains(".")) + { + res = true; + } + else + { + if (barcode.Length == 20) + { + res = true; + } + } + } + return res; + } + } + public static class ScanAll + { + public static bool ScanResult; + public static string barCode1; + public static string barCode2; + public static string barCode3; + public static string barCode4; + public static string barCode5; + public static string barCode6; + public static string partNo1; + public static string partNo2; + public static string partNo3; + public static string partNo4; + public static string partNo5; + public static string partNo6; + } + + public class OtherPart + { + public string productID3 { get; set; } + + public string qty3 { get; set; } + + public string productID4 { get; set; } + + public string qty4 { get; set; } + + public string productID5 { get; set; } + + public string qty5 { get; set; } + + public string productID6 { get; set; } + + public string qty6 { get; set; } + + public string productID7 { get; set; } + + public string qty7 { get; set; } + + public string productID8 { get; set; } + + public string qty8 { get; set; } + + } +} diff --git a/PunchingMistake/Images/正确.wav b/PunchingMistake/Images/正确.wav new file mode 100644 index 0000000000000000000000000000000000000000..1367a16efb11e9e497603f33aa2a08cdf938a75b GIT binary patch literal 30798 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 literal 0 HcmV?d00001 diff --git a/PunchingMistake/Images/错误.wav b/PunchingMistake/Images/错误.wav new file mode 100644 index 0000000000000000000000000000000000000000..e304b5159e552bef8c3699aa825283e6b06dd269 GIT binary patch literal 30798 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 ShowLinkInfo = null; + //public Action ShowScanInfo = null; + public Action ShowMessage = null; + public event Action DevAfterReturnResult = null; + + //private Entity_t_PreAssembleLine t_PreAssembleLine = new Entity_t_PreAssembleLine(); + + /// + /// 接收到的值 + /// + public Dictionary _OpcAddressDict = new Dictionary(); + + public DataTable _OpcAddressTable = new DataTable(); + private string _channelDev = string.Empty; + public bool AllowReceive = false; + public string _stationNo; + private string _lineRowID = ""; + public PlcInvoke(string channelDev, string stationNo) + { + _channelDev = channelDev; + _stationNo = stationNo; + } + public void SetLineID(string lineID) + { + _lineRowID = lineID; + } + public bool InitDev(int rate) + { + + if (_linkDev == false) + { + return false; + } + try + { + // int rate = 500; + CreateServer(); + if (ConnectServer()) + { + opcGroups = opcServer.OPCGroups; + opcGroup1 = opcGroups.Add("GRP"); + SetGroupProperty(opcGroup1, rate); + opcItems = opcGroup1.OPCItems; + + opcItems.DefaultIsActive = true; + LoadOpcItem(_stationNo); + opcGroup1.DataChange += OpcGroup1_DataChange; + ShowLinkInfo(true, true); + } + return true; + } + catch (Exception ex) + { + ShowLinkInfo(false, true); + //MyLogger.Write("设备初始化发生错误,错误原因:" + ex.Message); + LogHelper.WriteLog("设备初始化发生错误,错误原因:" + ex.Message); + //throw new Exception("设备初始化发生错误,错误原因:" + ex.Message); + return false; + } + + } + + /// + /// + /// + /// PLC地址点位 + /// 操作类型 冲孔,流钻,EOL,返修 + public void SendToPLC( bool isInit,string lineRowID) + { + if(isInit == false) + { + _lineRowID = lineRowID; + foreach (OPCItem item in opcItemm1) + { + if (item.ItemID.Contains("Start")) + { + item.Write(2); + ShowMessage("发送启动信号:" + 2, true); + } + //if (item.ItemID.Contains("caseNo")) + //{ + // item.Write(caseNo); + // ShowMessage("发送料盒号:" + caseNo, true); + //} + + } + ShowMessage("发送启动信号成功", true); + } + else + { + foreach (OPCItem item in opcItemm1) + { + if (item.ItemID.Contains("Start")) + { + item.Write(1); + } + if (item.ItemID.Contains("ScrewL")) + { + item.Write(0); + } + if (item.ItemID.Contains("ScrewR")) + { + item.Write(0); + } + if (item.ItemID.Contains("RivetL")) + { + item.Write(0); + } + if (item.ItemID.Contains("RivetR")) + { + item.Write(0); + } + if (item.ItemID.Contains("IrIs")) + { + item.Write(0); + } + //if (item.ItemID.Contains("NutL")) + //{ + // item.Write(0); + //} + //if (item.ItemID.Contains("NutR")) + //{ + // item.Write(0); + //} + //螺钉类型 不用初始化 + } + ShowMessage("发送初始化设备信号成功", true); + } + + AllowReceive = true; + } + public void WriteToPLCTest() + { + foreach (OPCItem item in opcItemm1) + { + + if (item.ItemID.Contains("ScrewL")) + { + item.Write(8); + } + if (item.ItemID.Contains("ScrewR")) + { + item.Write(8); + } + if (item.ItemID.Contains("RivetL")) + { + item.Write(8); + } + if (item.ItemID.Contains("RivetR")) + { + item.Write(8); + } + if (item.ItemID.Contains("IrIs")) + { + item.Write(8); + } + //if (item.ItemID.Contains("NutL")) + //{ + // item.Write(8); + //} + //if (item.ItemID.Contains("NutR")) + //{ + // item.Write(8); + //} + //螺钉类型 不用初始化 + } + } + void LoadOpcItem(string stationNo) + { + Dictionary dict = GetPlcAddress();// GetDevInfo(); + + opcItemm1 = new OPCItem[dict.Count]; + int i = 0; + foreach (var dictItem in dict) + { + opcItemm1[i] = opcItems.AddItem(dictItem.Value, dictItem.Key); + + i++; + } + + } + public Dictionary GetPlcAddress() + { + Dictionary dict = new Dictionary(); + dict.Add(0, _channelDev + ".LinkRate"); + dict.Add(1, _channelDev + ".Start"); + dict.Add(2, _channelDev + ".ScrewL"); + dict.Add(3, _channelDev + ".ScrewR"); + dict.Add(4, _channelDev + ".RivetL"); + dict.Add(5, _channelDev + ".RivetR"); + dict.Add(6, _channelDev + ".IrIs"); + //dict.Add(7, _channelDev + ".caseNo"); + //dict.Add(8, _channelDev + ".NutL"); + //dict.Add(9, _channelDev + ".NutR"); + return dict; + } + + + private string GetOpcName(DataRow row) + { + return $"{row["ChannelName"].ToString()}.{row["DevName"].ToString()}.{row["LableName"].ToString()}"; + } + + + private void OpcGroup1_DataChange(int TransactionID, int NumItems, ref Array ClientHandles, ref Array ItemValues, ref Array Qualities, ref Array TimeStamps) + { + try + { + if (_linkDev == false) return; + + + for (int i = 1; i <= NumItems; i++) + { + int handle = Convert.ToInt32(ClientHandles.GetValue(i).ToString().Trim()); + string itemValue = ItemValues.GetValue(i).ToString(); + string address = opcItemm1[(handle)].ItemID; + if (!string.IsNullOrEmpty(_lineRowID)) + { + if (address.Contains("ScrewL")) + { + Function2.UpdateLineCount("LeftScrew1=" + itemValue, _lineRowID); + } + else if (address.Contains("ScrewR")) + { + Function2.UpdateLineCount("RightScrew1=" + itemValue, _lineRowID); + } + else if (address.Contains("RivetL")) + { + Function2.UpdateLineCount("LeftRivet1=" + itemValue, _lineRowID); + } + else if (address.Contains("RivetR")) + { + Function2.UpdateLineCount("RightRivet1=" + itemValue, _lineRowID); + } + else if (address.Contains("IrIs")) + { + Function2.UpdateLineCount("IrIs=" + itemValue, _lineRowID); + } + //else if (address.Contains("NutL")) + //{ + // Function2.UpdateLineCount("LeftNut=" + itemValue, _lineRowID); + //} + //else if (address.Contains("NutR")) + //{ + // Function2.UpdateLineCount("RightNut=" + itemValue, _lineRowID); + //} + } + + } + } + catch (Exception ex) + { + //MyLogger.Write("设备返回数据发生异常,错误原因:" + ex.Message); + LogHelper.WriteLog("设备返回数据发生异常,错误原因:" + ex.Message); + ShowMessage("设备返回数据发生异常,错误原因:" + ex.Message, false); + } + + } + + + + /// + /// 创建服务 + /// + /// + private void CreateServer() + { + try + { + opcServer = new OPCServer(); + } + catch (Exception ex) + { + throw new Exception("创建OpcServer时发生异常,异常信息:" + ex.Message); + } + } + /// + /// 连接到服务器 + /// + /// + /// + /// + private bool ConnectServer() + { + try + { + opcServer.Connect("Kepware.KEPServerEX.V6", ""); + ShowLinkResult(true, true); + } + catch (Exception ex) + { + ShowLinkResult(false, true); + + //ShowScanResult(false); + + LogHelper.WriteLog($"设备连接异常,异常原因:" + ex.Message); + throw new Exception($"设备连接异常"); + } + return true; + } + /// + /// 设置组的属性 + /// + /// + /// + private void SetGroupProperty(OPCGroup opcGroup, int updateRate) + { + opcGroup.IsActive = true; + opcGroup.DeadBand = 0; + opcGroup.UpdateRate = updateRate; + opcGroup.IsSubscribed = true; + } + + + private void ShowLinkResult(bool isSuccess, bool isWriteLog) + { + if (ShowLinkInfo != null) + { + ShowLinkInfo(isSuccess, isWriteLog); + } + } + + } + +} diff --git a/PunchingMistake/Printer.cs b/PunchingMistake/Printer.cs new file mode 100644 index 0000000..e65c33f --- /dev/null +++ b/PunchingMistake/Printer.cs @@ -0,0 +1,55 @@ +using grproLib; +using InjectionPC; +using System; +using System.Collections.Generic; +using System.Configuration; +using System.Data; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace PunchingMistake +{ + public class Printer + { + /// + /// 小件总成装配打印总成条码 + /// + public static void PrintPunchAssembleBarCode( string barCode, string partNo1, string partName, string serialNo) + { + string filename = GetPrintFileName(); + DataTable headTable = new DataTable(); + headTable.Columns.Add("BarCode"); + headTable.Columns.Add("PartName"); + headTable.Columns.Add("PartNo"); + headTable.Columns.Add("BatchNo"); + headTable.Columns.Add("SerialNo"); + headTable.Columns.Add("Line"); + DataRow row = headTable.NewRow(); + + row["BarCode"] = barCode; + row["PartNo"] = partNo1; + row["PartName"] = partName; + row["BatchNo"] = DateTime.Now.ToString("yyMMdd"); + row["SerialNo"] = serialNo; + row["Line"] = ConfigurationManager.AppSettings["Line"]; + string printBoxName = "Printer1"; + + string reportName = ConfigurationManager.AppSettings[printBoxName].ToString(); + headTable.Rows.Add(row); + + ReportHelper rp = new ReportHelper(filename, headTable, null, (int)GRPaperOrientation.grpoLandscape, 1, reportName); + + rp.Report.Print(false); + } + static string GetPrintFileName() + { + if (Program.station == "F01") + { + return System.AppDomain.CurrentDomain.BaseDirectory + "Report\\总成条码MI.grf"; + } + + return System.AppDomain.CurrentDomain.BaseDirectory + "Report\\总成条码MI.grf"; + } + } +} diff --git a/PunchingMistake/PunchingMistake.csproj b/PunchingMistake/PunchingMistake.csproj index 618b3e4..12b807b 100644 --- a/PunchingMistake/PunchingMistake.csproj +++ b/PunchingMistake/PunchingMistake.csproj @@ -49,6 +49,13 @@ ..\..\BjbmptMesNgccNew\Stone.Common.Dlls\Interop.grproLib.dll True + + DLL\Interop.OPCAutomation.dll + True + + + DLL\PlaySound.dll + @@ -87,17 +94,23 @@ FrmLogin.cs + + Form + + + FrmPlanSeach.cs + Form FrmProScreen3.cs - + Form - - FrmQualityNew.cs + + FrmQualityNew1.cs Form @@ -105,6 +118,12 @@ FrmQuality.cs + + Form + + + FrmQualityNew.cs + Form @@ -112,7 +131,10 @@ FrmScan.cs + + + @@ -124,15 +146,21 @@ FrmLogin.cs + + FrmPlanSeach.cs + FrmProScreen3.cs - - FrmQualityNew.cs + + FrmQualityNew1.cs FrmQuality.cs + + FrmQualityNew.cs + FrmScan.cs @@ -154,7 +182,9 @@ Settings.settings True - + + PreserveNewest + @@ -181,7 +211,18 @@ - + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest +