Browse Source

门槛相关

master
ruoxing.wang 1 week ago
parent
commit
609b39fc20
  1. 237
      AddMaterial/PlanScreen16.html
  2. 239
      AddMaterial/PlanScreen17.html
  3. 97
      AddMaterial/PlanScreenStyleSheetold.css
  4. 103
      FacOneZPStation/FrmZP.Designer.cs
  5. 4
      InjectionPC/FrmMain2411.Designer.cs
  6. 10
      MESClassLibrary/BLL/Injection/UniqueBll.cs
  7. 26
      MESClassLibrary/DAL/Injection/UniqueDal.cs
  8. 116
      PaintingPC/FrmChangeColorOld.Designer.cs
  9. 95
      PaintingPC/FrmChangeColorOld.cs
  10. 120
      PaintingPC/FrmChangeColorOld.resx
  11. 869
      PaintingPC/FrmQualityOnLine.cs
  12. 392
      PaintingPC/FrmQualityOnLine.designer.cs
  13. 478
      PaintingPC/FrmQualityOnLine.resx
  14. 82
      PaintingPC/Function.cs
  15. 3
      PaintingPC/Model/InspectModel.cs
  16. 716
      PunchingMistake/FrmAssemble.Designer.cs
  17. 311
      PunchingMistake/FrmAssemble.cs
  18. 1039
      PunchingMistake/FrmAssemble.resx
  19. 172
      PunchingMistake/FrmLogin.Designer.cs
  20. 212
      PunchingMistake/FrmLogin.cs
  21. 713
      PunchingMistake/FrmLogin.resx
  22. 287
      PunchingMistake/FrmProScreen3.Designer.cs
  23. 710
      PunchingMistake/FrmProScreen3.cs
  24. 120
      PunchingMistake/FrmProScreen3.resx
  25. 656
      PunchingMistake/FrmQualityNew.Designer.cs
  26. 1544
      PunchingMistake/FrmQualityNew.cs
  27. 475
      PunchingMistake/FrmQualityNew.resx
  28. 632
      PunchingMistake/Function2.cs
  29. BIN
      PunchingMistake/Images/assembleHead.png
  30. BIN
      PunchingMistake/Images/assembleLine.png
  31. 51
      PunchingMistake/LogHelper.cs
  32. 36
      PunchingMistake/PunchingMistake.csproj
  33. BIN
      PunchingMistake/Report/总成条码MI.grf

237
AddMaterial/PlanScreen16.html

@ -0,0 +1,237 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>注塑车间计划看板16</title>
<link href="PlanScreenStyleSheet.css" rel="stylesheet" />
<script src="jquery-1.8.0.min.js"></script>
<script>
$(function () {
//setInterval("getDate()", 1000);
//setInterval("initTable()", 3000);
getDate();
initTable();
});
function getDate() {
//var today = new Date();
//$("#DivTimer").text(today.Format("yyyy-MM-dd hh:mm:ss"));
$.ajax({
type: "GET",
url: "/Handler.ashx?method=GetDatetime",
dataType: "text",
success: function (result) {
$("#DivTimer").html(result);
}
})
}
function initTable() {
var content1 = ""; //零件号
var content2 = ""; //产品名称
var content3 = ""; //工位号
var content4 = ""; //合格率
var content5 = ""; //生产数量
var content6 = ""; //合格数量
var content7 = ""; //原料名称
var content8 = ""; //烘干料筒
var content9 = ""; //加料批次
var content10 = ""; //加料时间
//var content11 = ""; //下一模具
var content12 = ""; //零件号
var content13 = ""; //计划数量
var content14 = ""; //零件号
var content15 = ""; //计划数量
var content16 = ""; //零件号
var content17 = ""; //计划数量
$.ajax({
type: "GET",
url: "/Handler.ashx?method=GetPlanTable16",
dataType: "json",
success: function (result) {
content1 = GetNum(result.PartNo);
content2 = GetNum(result.ProductName);
content3 = GetNum(result.Station);
content4 = GetNum(result.CompleteRate);
content5 = GetNum(result.CompleteCount);
content6 = GetNum(result.PassCount);
content7 = GetNum(result.MaterialName);
content8 = GetNum(result.Drum);
content9 = GetNum(result.BatchNo);
content10 = GetNum(result.Time1);
content11 = "";
content12 = GetNum(result.ProductName);
content13 = GetNum(result.PlanCount);
content14 = GetNum(result.PartNo2);
content15 = GetNum(result.PlanCount2);
content16 = GetNum(result.PartNo3);
content17 = GetNum(result.PlanCount3);
//content4 = 100;
//content5 = 4;
//content6 = 4;
//content13 = 100;
//content15 = 100;
if (content7 == 0) {
content7 = "";
}
if (content8 == 0) {
content8 = "";
}
if (content9 == 0) {
content9 = "";
}
if (content10 == 0) {
content10 = "";
}
$("#content1").text(content1);
$("#content2").text(content2);
$("#content3").text(content3);
$("#content4").text(content4);
$("#content5").text(content5);
$("#content6").text(content6);
$("#content7").text(content7);
$("#content8").text(content8);
$("#content9").text(content9);
$("#content10").text(content10);
$("#content11").text(content11);
$("#content12").text(content12);
$("#content13").text(content13);
if (content14 != 0)
{
$("#content14").text(content14);
}
if (content15 != 0) {
$("#content15").text(content15);
}
//$("#content16").text(content16);
//$("#content17").text(content17);
}
})
}
function GetNum(num)
{
if ( num != null ) {
return num;
}
else {
return "0";
}
}
// 对Date的扩展,将 Date 转化为指定格式的String
// 月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符,
// 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字)
// 例子:
// (new Date()).Format("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423
// (new Date()).Format("yyyy-M-d h:m:s.S") ==> 2006-7-2 8:9:4.18
Date.prototype.Format = function (fmt) { //author: meizz
var o = {
"M+": this.getMonth() + 1, //月份
"d+": this.getDate(), //日
"h+": this.getHours(), //小时
"m+": this.getMinutes(), //分
"s+": this.getSeconds(), //秒
"q+": Math.floor((this.getMonth() + 3) / 3), //季度
"S": this.getMilliseconds() //毫秒
};
if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
for (var k in o)
if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
return fmt;
}
</script>
</head>
<body>
<table class="TableFrame">
<tr>
<!--<td><table id="TableTitle"><tr><td id="tdImg" style="width:10%"><img id="Img"></td><td id="Title" style="width:60%">&nbsp;&nbsp;注塑车间计划看板&nbsp;&nbsp;</td><td style="border-right:hidden; text-align:center;"><div id="DivTimer"></div></td></tr></table></td>-->
<td><table style="width: 100%; height: 100%">
<tr>
<td style="height:120px;width: 100%;display: flex;">
<div style="background:url('../Pic/Logo_New.png') no-repeat center; background-size: 180px 107px; width:187px; height:120px; display:inline-block; float:left;"></div>
<div style="color:white;display:inline-block; height: 122px;line-height: 119px; text-align:center; font-size:100px; flex: 1;">注塑车间计划看板</div>
<div id="DivTimer" style="display:inline-block; color:white; font-size:50px; text-align:center; width:550px; line-height:120px; float:left;"></div>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td><table id="TableSecondRow"><tr><td class="tdTitle" style="width:200px;">产品信息:</td><td class="tdContent" id="content1"></td><td class="tdContent" id="content2" style="font-size:40px; font-weight:600;"></td><td class="tdContent" id="content3" style="border-right:hidden;"></td></tr></table></td>
</tr>
<tr>
<td>
<table class="TableFrame">
<tr>
<td>
<table id="TableLeft">
<tr style="height:70%; width:925px;">
<!--<td colspan="2"><table style="width:970px; height:330px;"><tr style="height:10%"><td class="tdTitle">零件号</td><td class="tdTitle">计划数量</td></tr>-->
<td colspan="2">
<table style="width:970px; height:330px;">
<tr style="height:10%"><td class="tdTitle">产品名称</td><td class="tdTitle">计划数量</td></tr>
<tr style="height:90%"><td class="tdContent" id="content12" style="font-size:40px; font-weight:600;"></td>
<td class="tdContent" id="content13" style="font-size:120px; font-weight:600;"></td></tr>
<tr><td class="tdContent" id="content14"></td><td class="tdContent" id="content15"></td></tr>
<!--<tr><td class="tdContent" id="content16"></td><td class="tdContent" id="content17"></td></tr>-->
</table>
</td>
</tr>
<tr style ="height:30%">
<td class="tdTitle">合格率:</td>
<td class="tdContent" id="content4"></td>
</tr>
</table>
</td>
<td>
<table id="TableRight">
<tr style="height:20%">
<td class="tdTitle">生产数量</td>
<td class="tdTitle">合格数量</td>
</tr>
<tr style="height:80%">
<td class="tdContent" id="content5" style="font-size:200px; font-weight:800;"></td>
<td class="tdContent" id="content6" style="font-size:200px; font-weight:800;"></td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td>
<table id="TableBottom">
<tr>
<td class="tdTitle">原料名称:</td>
<td class="tdContent" id="content7" style="font-size:40px; font-weight:600;"></td>
<td class="tdTitle">烘干料筒:</td>
<td class="tdContent" id="content8"></td>
</tr>
<tr>
<td class="tdTitle">加料批次:</td>
<td class="tdContent" id="content9"></td>
<td class="tdTitle">加料时间:</td>
<td class="tdContent" id="content10"></td>
</tr>
<!--<tr>
<td class="tdTitle">下一模具:</td>
<td colspan="3" class="tdContent" id="content11">&nbsp;</td>
</tr>-->
</table>
</td>
</tr>
</table>
</body>
</html>

239
AddMaterial/PlanScreen17.html

@ -0,0 +1,239 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>注塑车间计划看板17</title>
<link href="PlanScreenStyleSheet.css" rel="stylesheet" />
<script src="jquery-1.8.0.min.js"></script>
<script>
$(function () {
setInterval("getDate()", 1000);
setInterval("initTable()", 3000);
//getDate();
//initTable();
});
function getDate() {
//var today = new Date();
//$("#DivTimer").text(today.Format("yyyy-MM-dd hh:mm:ss"));
$.ajax({
type: "GET",
url: "/Handler.ashx?method=GetDatetime",
dataType: "text",
success: function(result) {
$("#DivTimer").html(result);
}
});
}
function initTable() {
var content1 = ""; //零件号
var content2 = ""; //产品名称
var content3 = ""; //工位号
var content4 = ""; //塑件计划
var content5 = ""; //塑件生产数
var content6 = ""; //塑件合格率
var content14 = ""; //总成计划
var content15 = ""; //总成生产数
var content16 = ""; //总成合格率
var content7 = ""; //原料名称
var content8 = ""; //烘干料筒
var content9 = ""; //加料批次
var content10 = ""; //加料时间
$.ajax({
type: "GET",
url: "/Handler.ashx?method=GetPlanTable17",
dataType: "json",
success: function(result) {
content1 = result.PartNo;
content2 = result.ProductName;
content3 = result.Station;
content4 = GetNum(result.PlanCount);
content5 = GetNum(result.CompleteCount);
content6 = GetNum(result.CompleteRate);
content14 = GetNum(result.PlanCount2);
content15 = GetNum(result.ZcCompleteCount);
content16 = GetNum(result.ZcCompleteRate);
content7 = result.MaterialName;
content8 = result.Drum;
content9 = result.BatchNo;
content10 = result.Time1;
if (content6 === "0") {
content6 = "100%";
}
if (content16 === "0") {
content16 = "100%";
}
if (content1 === "") {
content4 = "";
content5 = "";
content6 = "";
}
if (content7 == null) {
content7 = "";
}
if (content8 == null) {
content8 = "";
}
if (content9 == null) {
content9 = "";
}
if (content10 == null) {
content10 = "";
}
if (content1 !== "A2146106203kz") {
content14 = "";
content15 = "";
content16 = "";
}
$("#content1").text(content1);
$("#content2").text(content2);
$("#content3").text(content3);
$("#content4").text(content4);
$("#content5").text(content5);
$("#content6").text(content6);
$("#content14").text(content14);
$("#content15").text(content15);
$("#content16").text(content16);
$("#content7").text(content7);
$("#content8").text(content8);
$("#content9").text(content9);
$("#content10").text(content10);
}
});
}
function GetNum(num)
{
if ( num != null ) {
return num;
}
else {
return "0";
}
}
// 对Date的扩展,将 Date 转化为指定格式的String
// 月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符,
// 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字)
// 例子:
// (new Date()).Format("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423
// (new Date()).Format("yyyy-M-d h:m:s.S") ==> 2006-7-2 8:9:4.18
Date.prototype.Format = function (fmt) { //author: meizz
var o = {
"M+": this.getMonth() + 1, //月份
"d+": this.getDate(), //日
"h+": this.getHours(), //小时
"m+": this.getMinutes(), //分
"s+": this.getSeconds(), //秒
"q+": Math.floor((this.getMonth() + 3) / 3), //季度
"S": this.getMilliseconds() //毫秒
};
if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
for (var k in o)
if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
return fmt;
}
</script>
</head>
<body>
<table class="TableFrame">
<tr>
<td>
<table style="width: 100%; height: 100%">
<tr>
<td style="height:120px;width: 100%;display: flex;">
<div style="background:url('../Pic/Logo_New.png') no-repeat center; background-size: 180px 107px; width:187px; height:120px; display:inline-block; float:left;"></div>
<div style="color:white;display:inline-block; height: 122px;line-height: 119px; text-align:center; font-size:100px; flex: 1;">注塑车间计划看板</div>
<div id="DivTimer" style="display:inline-block; color:white; font-size:50px; text-align:center; width:550px; line-height:120px; float:left;"></div>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td>
<table id="TableSecondRow">
<tr>
<td class="tdTitle" style="width: 200px; height: 100px;">产品名称:</td>
<td class="tdContent1" id="content2" style="font-size: 40px; font-weight: 600;"></td>
<td class="tdTitle" style="width: 200px;height: 100px;">产品信息:</td>
<td class="tdContent1" id="content1"></td>
<td class="tdTitle" style="width: 150px;height: 100px;">机台:</td>
<td class="tdContent1" id="content3" style="border-right: hidden;"></td>
</tr>
</table>
</td>
</tr>
<tr>
<td>
<table class="TableFrame">
<tr>
<td>
<table id="TableLeft">
<tr style="height:170px; width:925px;">
<td class="tdTitle1" >注塑计划</td>
<td class="tdContent2" id="content4"></td>
</tr>
<tr>
<td class="tdTitle1">注塑生产数</td>
<td class="tdContent2" id="content5"></td>
</tr>
<tr>
<td class="tdTitle1">注塑合格率</td>
<td class="tdContent2" id="content6"></td>
</tr>
</table>
</td>
<td>
<table id="TableRight">
<tr style="height:170px; width:925px;">
<td class="tdTitle1" >总成计划</td>
<td class="tdContent2" id="content14"></td>
</tr>
<tr>
<td class="tdTitle1">总成生产数</td>
<td class="tdContent2" id="content15"></td>
</tr>
<tr>
<td class="tdTitle1">总成合格率</td>
<td class="tdContent2" id="content16"></td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td>
<table id="TableBottom">
<tr>
<td class="tdTitle" style=" height: 100px;">原料名称:</td>
<td class="tdContent" id="content7" style="font-size:40px; font-weight:600; height: 100px;"></td>
<td class="tdTitle" style=" height: 100px;">烘干料筒:</td>
<td class="tdContent" id="content8" style=" height: 100px;"></td>
</tr>
<tr>
<td class="tdTitle" style=" height: 100px;">加料批次:</td>
<td class="tdContent" id="content9" style=" height: 100px;"></td>
<td class="tdTitle" style=" height: 100px;">加料时间:</td>
<td class="tdContent" id="content10" style=" height: 100px;"></td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>

97
AddMaterial/PlanScreenStyleSheetold.css

@ -0,0 +1,97 @@
table,table tr th, table tr td { border:1px solid #808080; border-collapse: collapse; width: 1900px; background-color:#000000; color:#ffffff; }
.TableFrame {
border:hidden; width: 1900px;
}
#TableLeft, #TableRight {
width:925px; height:500px;border:hidden;
}
.tdTitle {
width:150px; height:48px; /*background-color: #B4EEB4;*/ text-align:center; font-family:黑体; font-size:32px; font-weight:500; background-color:#191970
}
.tdContent {
width:580px; height:48px; /*background-color:white;*/ text-align:center; font-family:黑体; font-size:60px; font-weight:500;
}
#TableBottom, #TableSecondRow {
border-right:hidden; width:1900px;
}
/*#region 字体 */
#content1, #content2, #content3, #content4, #content5 {
/*color: #2222DD;*/
}
#content6 {
/*color: #4DB34D;*/
}
#content7, #content8, #content9, #content10, #content11 {
/*color: #FF9900;*/
font-size: 60px;
}
#content4 {
font-size: 140px;
font-weight: 900;
}
#content5, #content6 {
font-size: 140px;
font-weight: 900;
}
#content2, #content3, #content1 {
font-size: 60px;
font-weight: 600;
}
#content12, #content13 {
/*color:red;*/
font-size: 60px;
font-weight: 600;
}
/*#endregion */
/*#region 标题表格 */
#TableTitle, #TableTitle tr th, #TableTitle tr td {
/*border: 1px solid #0094ff;*/
border: 1px solid white;
border-collapse: collapse;
}
#TableTitle {
width: 1900px;
height: 80px;
}
#Title {
width: 800px;
font-size: 90px;
font-family: 黑体;
text-align: center;
font-weight: 800;
/*background-color:white;*/
background-color:black; color:white;
height:90px;
padding-left:0px;
}
#tdImg, #Img {
background-image:url(Pic/Logo.png); background-repeat:no-repeat; width:190px; height:90px;
}
#DivTimer {
/*background-color:white;*/ font-size:55px; font-family:黑体; text-align:center; font-weight:800; width:650px; padding-bottom:20px; padding-top:0px; height:90px; background-color:black; color:white; border: 0px;
}
/*#endregion */

103
FacOneZPStation/FrmZP.Designer.cs

@ -28,6 +28,7 @@
/// </summary>
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();
@ -47,7 +48,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.timer1 = new System.Windows.Forms.Timer(this.components);
this.label6 = new System.Windows.Forms.Label();
this.labBadCount = new System.Windows.Forms.Label();
this.labNum = new System.Windows.Forms.Label();
@ -76,7 +77,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, 732F));
this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 737F));
this.tableLayoutPanel3.Controls.Add(this.button6, 3, 0);
this.tableLayoutPanel3.Controls.Add(this.button1, 0, 1);
this.tableLayoutPanel3.Controls.Add(this.button5, 2, 1);
@ -101,10 +102,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(1614, 12);
this.button6.Location = new System.Drawing.Point(1610, 12);
this.button6.Margin = new System.Windows.Forms.Padding(13, 12, 13, 12);
this.button6.Name = "button6";
this.button6.Size = new System.Drawing.Size(708, 161);
this.button6.Size = new System.Drawing.Size(712, 161);
this.button6.TabIndex = 7;
this.button6.Text = "手动打印箱单";
this.button6.UseVisualStyleBackColor = false;
@ -118,7 +119,7 @@
this.button1.Location = new System.Drawing.Point(6, 190);
this.button1.Margin = new System.Windows.Forms.Padding(6, 5, 6, 5);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(525, 176);
this.button1.Size = new System.Drawing.Size(523, 176);
this.button1.TabIndex = 6;
this.button1.Text = "打印标签";
this.button1.UseVisualStyleBackColor = false;
@ -130,10 +131,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(1088, 197);
this.button5.Location = new System.Drawing.Point(1085, 197);
this.button5.Margin = new System.Windows.Forms.Padding(13, 12, 13, 12);
this.button5.Name = "button5";
this.button5.Size = new System.Drawing.Size(500, 162);
this.button5.Size = new System.Drawing.Size(499, 162);
this.button5.TabIndex = 5;
this.button5.Text = "不合格";
this.button5.UseVisualStyleBackColor = false;
@ -144,10 +145,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(543, 5);
this.button4.Location = new System.Drawing.Point(541, 5);
this.button4.Margin = new System.Windows.Forms.Padding(6, 5, 6, 5);
this.button4.Name = "button4";
this.button4.Size = new System.Drawing.Size(526, 175);
this.button4.Size = new System.Drawing.Size(525, 175);
this.button4.TabIndex = 4;
this.button4.Text = "下一计划";
this.button4.UseVisualStyleBackColor = false;
@ -161,7 +162,7 @@
this.button3.Location = new System.Drawing.Point(6, 5);
this.button3.Margin = new System.Windows.Forms.Padding(6, 5, 6, 5);
this.button3.Name = "button3";
this.button3.Size = new System.Drawing.Size(525, 175);
this.button3.Size = new System.Drawing.Size(523, 175);
this.button3.TabIndex = 3;
this.button3.Text = "上一计划";
this.button3.UseVisualStyleBackColor = false;
@ -173,10 +174,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(550, 197);
this.button2.Location = new System.Drawing.Point(548, 197);
this.button2.Margin = new System.Windows.Forms.Padding(13, 12, 13, 12);
this.button2.Name = "button2";
this.button2.Size = new System.Drawing.Size(512, 162);
this.button2.Size = new System.Drawing.Size(511, 162);
this.button2.TabIndex = 2;
this.button2.Text = "补打标签";
this.button2.UseVisualStyleBackColor = false;
@ -187,10 +188,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(1607, 190);
this.button7.Location = new System.Drawing.Point(1603, 190);
this.button7.Margin = new System.Windows.Forms.Padding(6, 5, 6, 5);
this.button7.Name = "button7";
this.button7.Size = new System.Drawing.Size(722, 176);
this.button7.Size = new System.Drawing.Size(726, 176);
this.button7.TabIndex = 8;
this.button7.Text = "补打箱单";
this.button7.UseVisualStyleBackColor = false;
@ -202,7 +203,7 @@
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(1281, 3);
this.label7.Location = new System.Drawing.Point(1275, 3);
this.label7.Margin = new System.Windows.Forms.Padding(2);
this.label7.Name = "label7";
this.tableLayoutPanel4.SetRowSpan(this.label7, 2);
@ -214,10 +215,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(370, 111);
this.textBox2.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.textBox2.Location = new System.Drawing.Point(368, 111);
this.textBox2.Margin = new System.Windows.Forms.Padding(4);
this.textBox2.Name = "textBox2";
this.textBox2.Size = new System.Drawing.Size(904, 77);
this.textBox2.Size = new System.Drawing.Size(900, 77);
this.textBox2.TabIndex = 30;
this.textBox2.KeyDown += new System.Windows.Forms.KeyEventHandler(this.textBox2_KeyDown);
//
@ -229,7 +230,7 @@
this.label3.Location = new System.Drawing.Point(5, 107);
this.label3.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(356, 108);
this.label3.Size = new System.Drawing.Size(354, 108);
this.label3.TabIndex = 29;
this.label3.Text = "扫描物料条码";
this.label3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
@ -239,10 +240,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(1535, 218);
this.labOrderNo.Location = new System.Drawing.Point(1529, 218);
this.labOrderNo.Margin = new System.Windows.Forms.Padding(2);
this.labOrderNo.Name = "labOrderNo";
this.labOrderNo.Size = new System.Drawing.Size(801, 151);
this.labOrderNo.Size = new System.Drawing.Size(807, 151);
this.labOrderNo.TabIndex = 28;
this.labOrderNo.Text = "A64654646464";
this.labOrderNo.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
@ -253,7 +254,7 @@
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(1281, 218);
this.label4.Location = new System.Drawing.Point(1275, 218);
this.label4.Margin = new System.Windows.Forms.Padding(2);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(249, 151);
@ -267,10 +268,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(368, 218);
this.labStationNo.Location = new System.Drawing.Point(366, 218);
this.labStationNo.Margin = new System.Windows.Forms.Padding(2);
this.labStationNo.Name = "labStationNo";
this.labStationNo.Size = new System.Drawing.Size(908, 151);
this.labStationNo.Size = new System.Drawing.Size(904, 151);
this.labStationNo.TabIndex = 26;
this.labStationNo.Text = "V253-MF-S后保下部延伸焊接";
this.labStationNo.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
@ -284,7 +285,7 @@
this.label2.Location = new System.Drawing.Point(3, 218);
this.label2.Margin = new System.Windows.Forms.Padding(2);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(360, 151);
this.label2.Size = new System.Drawing.Size(358, 151);
this.label2.TabIndex = 25;
this.label2.Text = "工位名称";
this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
@ -294,10 +295,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(1535, 374);
this.labPName.Location = new System.Drawing.Point(1529, 374);
this.labPName.Margin = new System.Windows.Forms.Padding(2);
this.labPName.Name = "labPName";
this.labPName.Size = new System.Drawing.Size(801, 248);
this.labPName.Size = new System.Drawing.Size(807, 248);
this.labPName.TabIndex = 24;
this.labPName.Text = "MF253 MF S后保";
this.labPName.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
@ -308,7 +309,7 @@
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(1281, 374);
this.label8.Location = new System.Drawing.Point(1275, 374);
this.label8.Margin = new System.Windows.Forms.Padding(2);
this.label8.Name = "label8";
this.label8.Size = new System.Drawing.Size(249, 248);
@ -322,10 +323,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(368, 374);
this.labPartNo.Location = new System.Drawing.Point(366, 374);
this.labPartNo.Margin = new System.Windows.Forms.Padding(2);
this.labPartNo.Name = "labPartNo";
this.labPartNo.Size = new System.Drawing.Size(908, 248);
this.labPartNo.Size = new System.Drawing.Size(904, 248);
this.labPartNo.TabIndex = 22;
this.labPartNo.Text = "A2530822665";
this.labPartNo.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
@ -344,7 +345,7 @@
this.label6.Location = new System.Drawing.Point(3, 374);
this.label6.Margin = new System.Windows.Forms.Padding(2);
this.label6.Name = "label6";
this.label6.Size = new System.Drawing.Size(360, 248);
this.label6.Size = new System.Drawing.Size(358, 248);
this.label6.TabIndex = 21;
this.label6.Text = "产品代码";
this.label6.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
@ -355,10 +356,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(1535, 627);
this.labBadCount.Location = new System.Drawing.Point(1529, 627);
this.labBadCount.Margin = new System.Windows.Forms.Padding(2);
this.labBadCount.Name = "labBadCount";
this.labBadCount.Size = new System.Drawing.Size(801, 451);
this.labBadCount.Size = new System.Drawing.Size(807, 451);
this.labBadCount.TabIndex = 20;
this.labBadCount.Text = "0";
this.labBadCount.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
@ -369,10 +370,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(368, 627);
this.labNum.Location = new System.Drawing.Point(366, 627);
this.labNum.Margin = new System.Windows.Forms.Padding(2);
this.labNum.Name = "labNum";
this.labNum.Size = new System.Drawing.Size(908, 451);
this.labNum.Size = new System.Drawing.Size(904, 451);
this.labNum.TabIndex = 18;
this.labNum.Text = "152/210";
this.labNum.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
@ -386,7 +387,7 @@
this.label10.Location = new System.Drawing.Point(3, 627);
this.label10.Margin = new System.Windows.Forms.Padding(2);
this.label10.Name = "label10";
this.label10.Size = new System.Drawing.Size(360, 451);
this.label10.Size = new System.Drawing.Size(358, 451);
this.label10.TabIndex = 17;
this.label10.Text = "计划/完成数";
this.label10.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
@ -399,7 +400,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(356, 105);
this.label14.Size = new System.Drawing.Size(354, 105);
this.label14.TabIndex = 12;
this.label14.Text = "扫描本体条码";
this.label14.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
@ -408,10 +409,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(370, 5);
this.textBox1.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.textBox1.Location = new System.Drawing.Point(368, 5);
this.textBox1.Margin = new System.Windows.Forms.Padding(4);
this.textBox1.Name = "textBox1";
this.textBox1.Size = new System.Drawing.Size(904, 77);
this.textBox1.Size = new System.Drawing.Size(900, 77);
this.textBox1.TabIndex = 13;
this.textBox1.KeyDown += new System.Windows.Forms.KeyEventHandler(this.textBox1_KeyDown);
//
@ -420,11 +421,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(1537, 1);
this.labErrMessage.Location = new System.Drawing.Point(1531, 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(797, 214);
this.labErrMessage.Size = new System.Drawing.Size(803, 214);
this.labErrMessage.TabIndex = 16;
this.labErrMessage.Text = "条码与产品不匹配,重新扫描";
this.labErrMessage.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
@ -437,7 +438,7 @@
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, 804F));
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.Controls.Add(this.label7, 2, 0);
this.tableLayoutPanel4.Controls.Add(this.textBox2, 1, 1);
@ -459,7 +460,7 @@
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, 4, 4, 4);
this.tableLayoutPanel4.Margin = new System.Windows.Forms.Padding(4);
this.tableLayoutPanel4.Name = "tableLayoutPanel4";
this.tableLayoutPanel4.RowCount = 5;
this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 16.8932F));
@ -477,7 +478,7 @@
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(1281, 627);
this.label12.Location = new System.Drawing.Point(1275, 627);
this.label12.Margin = new System.Windows.Forms.Padding(2);
this.label12.Name = "label12";
this.label12.Size = new System.Drawing.Size(249, 451);
@ -490,10 +491,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(1746, 0);
this.labTime.Location = new System.Drawing.Point(1743, 0);
this.labTime.Margin = new System.Windows.Forms.Padding(0);
this.labTime.Name = "labTime";
this.labTime.Size = new System.Drawing.Size(601, 130);
this.labTime.Size = new System.Drawing.Size(604, 130);
this.labTime.TabIndex = 7;
this.labTime.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.labTime.Click += new System.EventHandler(this.labTime_Click);
@ -507,7 +508,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(316, 130);
this.pictureBox1.Size = new System.Drawing.Size(315, 130);
this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
this.pictureBox1.TabIndex = 0;
this.pictureBox1.TabStop = false;
@ -517,10 +518,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(316, 0);
this.label1.Location = new System.Drawing.Point(315, 0);
this.label1.Margin = new System.Windows.Forms.Padding(0);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(1430, 130);
this.label1.Size = new System.Drawing.Size(1428, 130);
this.label1.TabIndex = 1;
this.label1.Text = "装配工位信息看板";
this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
@ -531,7 +532,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, 600F));
this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 603F));
this.tableLayoutPanel2.Controls.Add(this.labTime, 2, 0);
this.tableLayoutPanel2.Controls.Add(this.pictureBox1, 0, 0);
this.tableLayoutPanel2.Controls.Add(this.label1, 1, 0);

4
InjectionPC/FrmMain2411.Designer.cs

@ -786,7 +786,7 @@
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, 4, 4, 4);
this.tableLayoutPanel2.Margin = new System.Windows.Forms.Padding(4);
this.tableLayoutPanel2.Name = "tableLayoutPanel2";
this.tableLayoutPanel2.RowCount = 1;
this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 570F));
@ -868,7 +868,7 @@
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, 4, 4, 4);
this.tableLayoutPanel1.Margin = new System.Windows.Forms.Padding(4);
this.tableLayoutPanel1.Name = "tableLayoutPanel1";
this.tableLayoutPanel1.RowCount = 1;
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));

10
MESClassLibrary/BLL/Injection/UniqueBll.cs

@ -19,6 +19,16 @@ namespace MESClassLibrary.BLL.Injection
return da.GetPackageSerialNo(partNo, batch, packageSize);
}
/// <summary>
/// 小件装配总成条码
/// </summary>
/// <param name="partNo"></param>
/// <param name="size"></param>
/// <returns></returns>
public string GetPunchSerialNo(string partNo, int size,ref string seriaLNo)
{
return da.GetPunchSerialNo(partNo, size,ref seriaLNo);
}
/// <summary>
/// 直供件 条码
/// </summary>
/// <param name="partNo"></param>

26
MESClassLibrary/DAL/Injection/UniqueDal.cs

@ -70,5 +70,31 @@ namespace MESClassLibrary.DAL.Injection
return GetPackageSerialNo(partNo, batch, packageSize);
}
}
/// <summary>
/// 小件装配总成条码
/// </summary>
/// <param name="partNo"></param>
/// <param name="size"></param>
/// <returns></returns>
public string GetPunchSerialNo(string partNo, int size, ref string seriaLNo)
{
DateTime time = DateTime.Now;
seriaLNo = GetBillNo(partNo + time.ToString("yyMMdd")+"小件装配总成码", size);
string sjBarCode = partNo + "." + time.ToString("yyMMdd") + ";" + seriaLNo + ";S104;;.1;" + time.ToString("yyyy/MM/dd") + ";";
try
{
SqlHelper.ExecuteNonQuery(SqlHelper.GetConnSting(), CommandType.Text, $" insert into tb_BarCodeUnique(OneBarCode) values('{sjBarCode}')");
return sjBarCode;
}
catch (Exception ex)
{
return GetPunchSerialNo(partNo, size,ref seriaLNo);
}
}
}
}

116
PaintingPC/FrmChangeColorOld.Designer.cs

@ -0,0 +1,116 @@
namespace PaintingPC
{
partial class FrmChangeColor
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.panel2 = new System.Windows.Forms.Panel();
this.btnBack = new System.Windows.Forms.Button();
this.btnSave = new System.Windows.Forms.Button();
this.labTitle = new System.Windows.Forms.Label();
this.label1 = new System.Windows.Forms.Label();
this.SuspendLayout();
//
// panel2
//
this.panel2.Location = new System.Drawing.Point(12, 165);
this.panel2.Name = "panel2";
this.panel2.Size = new System.Drawing.Size(1256, 688);
this.panel2.TabIndex = 49;
//
// btnBack
//
this.btnBack.BackColor = System.Drawing.Color.SpringGreen;
this.btnBack.Font = new System.Drawing.Font("宋体", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnBack.Location = new System.Drawing.Point(675, 904);
this.btnBack.Name = "btnBack";
this.btnBack.Size = new System.Drawing.Size(262, 73);
this.btnBack.TabIndex = 51;
this.btnBack.Text = "返回";
this.btnBack.UseVisualStyleBackColor = false;
this.btnBack.Click += new System.EventHandler(this.btnBack_Click);
//
// btnSave
//
this.btnSave.BackColor = System.Drawing.Color.DarkGray;
this.btnSave.Font = new System.Drawing.Font("宋体", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnSave.Location = new System.Drawing.Point(329, 904);
this.btnSave.Name = "btnSave";
this.btnSave.Size = new System.Drawing.Size(262, 73);
this.btnSave.TabIndex = 50;
this.btnSave.Text = "确定";
this.btnSave.UseVisualStyleBackColor = false;
this.btnSave.Click += new System.EventHandler(this.btnSave_Click);
//
// labTitle
//
this.labTitle.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
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(200, 41);
this.labTitle.Name = "labTitle";
this.labTitle.Size = new System.Drawing.Size(861, 84);
this.labTitle.TabIndex = 52;
this.labTitle.Text = "选择颜色";
this.labTitle.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// label1
//
this.label1.Font = new System.Drawing.Font("宋体", 16F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.label1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(192)))));
this.label1.Location = new System.Drawing.Point(765, 88);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(296, 29);
this.label1.TabIndex = 53;
//
// FrmChangeColor
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(1280, 1024);
this.Controls.Add(this.label1);
this.Controls.Add(this.labTitle);
this.Controls.Add(this.btnSave);
this.Controls.Add(this.btnBack);
this.Controls.Add(this.panel2);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
this.Name = "FrmChangeColor";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "FrmChangeColor";
this.Load += new System.EventHandler(this.FrmChangeColor_Load);
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.Panel panel2;
private System.Windows.Forms.Button btnBack;
private System.Windows.Forms.Button btnSave;
private System.Windows.Forms.Label labTitle;
private System.Windows.Forms.Label label1;
}
}

95
PaintingPC/FrmChangeColorOld.cs

@ -0,0 +1,95 @@
using System;
using System.Data;
using System.Drawing;
using System.Windows.Forms;
namespace PaintingPC
{
public partial class FrmChangeColor : Form
{
public FrmChangeColor()
{
InitializeComponent();
}
private void FrmChangeColor_Load(object sender, EventArgs e)
{
#region 加载颜色
int drow = 0, dcol = 4; //行,列
DataTable dt = Function.GetAllColor();
if (dt != null && dt.Rows.Count > 0)
{
drow = Convert.ToInt32(Math.Ceiling((double)dt.Rows.Count / dcol));
RadioButton[] rbs = new RadioButton[dcol];
string[] dstr = new string[dt.Rows.Count];
for (int i = 0; i < dt.Rows.Count; i++)
{
//dstr[i] = dt.Rows[i]["Des"].ToString() + "," + dt.Rows[i]["ColorCode"].ToString() + "," + dt.Rows[i]["ColorNo"].ToString();
dstr[i] = dt.Rows[i]["Des"].ToString();
}
for (int i = 0; i < dcol; i++) //列
{
for (int j = 0; j < drow; j++) //行
{
rbs[i] = new RadioButton();
if ((i + dcol * j) < dstr.Length)
{
rbs[i].Text = dstr[i + dcol * j].ToString();
rbs[i].Font = new Font(rbs[i].Font.FontFamily, 20, FontStyle.Bold);
rbs[i].Size = new Size(300, 40);
rbs[i].Location = new Point(20 + i * (rbs[i].Size.Width + 15), 5 + j * (rbs[i].Size.Height + 10));
rbs[i].BackColor = Color.Transparent;
rbs[i].TextAlign = ContentAlignment.MiddleCenter;
panel2.Controls.Add(rbs[i]);
rbs[i].Click += new EventHandler(radioButton_Click);
}
}
}
}
#endregion
}
private void radioButton_Click(object sender, EventArgs e)
{
RadioButton rb = sender as RadioButton;
//rb.Select();
rb.Checked = true;
}
/// <summary>
/// 返回按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnBack_Click(object sender, EventArgs e)
{
this.Close();
}
/// <summary>
/// 确定按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnSave_Click(object sender, EventArgs e)
{
foreach (Control c in panel2.Controls)
{
RadioButton rbn = c as RadioButton;
if (rbn.Checked)
{
FrmFirstCheck.ColorName = rbn.Text;
FrmSecondCheck.ColorName = rbn.Text;
}
}
this.Close();
}
}
}

120
PaintingPC/FrmChangeColorOld.resx

@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

869
PaintingPC/FrmQualityOnLine.cs

@ -0,0 +1,869 @@

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;
namespace PaintingPC
{
public partial class FrmQualityOnLine : Form
{
int count = 0; //缺陷图选择个数
public static string paintId = "";
private static string position = "", reason = "", responsible = "";
private string _stationType = "上线前质检";
private string _isTest = "false";
//责任方
private List<string> _selectResponsibles = new List<string>();
//扫描的喷涂行数据
private DataRow _scanPaintRow = null;
public FrmQualityOnLine()
{
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.WriteErrLogBase(ex.ToString(), MethodBase.GetCurrentMethod().Name);
}
}
public void InitPage()
{
try
{
string title = ConfigurationManager.AppSettings["Display"].ToString(); ;
string workClass = Function.GetWorkClass2();
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)
{ }
}
/// <summary>
/// 初始化颜色选择框列表
/// </summary>
/// <param name="stockNo"></param>
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();
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
{
}
}
/// <summary>
/// 缺陷图点击
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
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--;
}
if(!string.IsNullOrEmpty(position) && position.EndsWith(";"))
{
position = position.Substring(0, position.Length - 1);
}
}
/// <summary>
/// 缺陷原因点击
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
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 = { };
return controls;
}
/// <summary>
/// 清除控件选中
/// </summary>
/// <param name="controls"></param>
public void ClearControlColor(Control[] controls)
{
foreach (Control c in controls)
{
c.BackColor = Color.LightGray;
}
}
/// <summary>
/// 合格
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnOk_Click(object sender, EventArgs e)
{
try
{
if (_scanPaintRow == null)
{
MessageBox.Show("请先扫描数据,然后操作.");
return;
}
ShowHint("");
SaveRst("合格", _scanPaintRow);
}
catch(Exception ex)
{
ShowHint("执行合格判定发生异常,异常原因:" + ex.Message);
MessageBox.Show("执行合格判定发生异常,异常原因:" + ex.Message);
Clear();
}
}
void Clear()
{
ClearPage();
ClearTxtBarcode();
txtBarCode.TabIndex = 0;
}
/// <summary>
/// 点修补按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnRepair_Click(object sender, EventArgs e)
{
try
{
if (_scanPaintRow == null)
{
MessageBox.Show("请先扫描数据,然后操作.");
return;
}
ShowHint("");
#region 必须选择缺陷位置与缺陷原因,否则无法保存
if (CheckDefect() == false) return;
#endregion
btnRepair.BackColor = Color.Yellow;
SaveRst("点修补", _scanPaintRow);
}
catch (Exception ex)
{
ShowHint("判定点修补操作发生异常,异常原因:" + ex.Message);
MessageBox.Show("判定点修补操作发生异常,异常原因:" + ex.Message);
Clear();
}
}
private void btnPG_Click(object sender, EventArgs e)
{
try
{
if (_scanPaintRow == null)
{
MessageBox.Show("请先扫描数据,然后操作.");
return;
}
ShowHint("");
#region 必须选择缺陷位置与缺陷原因,否则无法保存
if (CheckDefect() == false) return;
#endregion
SaveRst("抛光", _scanPaintRow);
}
catch (Exception ex)
{
ShowHint("执行报废操作发生异常,异常原因:" + ex.Message);
MessageBox.Show("执行报废操作发生异常,异常原因:" + ex.Message);
Clear();
}
}
/// <summary>
/// 报废按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnAbt_Click(object sender, EventArgs e)
{
try
{
if (_scanPaintRow == null)
{
MessageBox.Show("请先扫描数据,然后操作.");
return;
}
ShowHint("");
#region 必须选择缺陷位置与缺陷原因,否则无法保存
if (CheckDefect() == false) return;
#endregion
SaveRst("报废", _scanPaintRow);
}
catch(Exception ex)
{
ShowHint("执行报废操作发生异常,异常原因:" + ex.Message);
MessageBox.Show("执行报废操作发生异常,异常原因:" + ex.Message);
Clear();
}
}
/// <summary>
///
/// </summary>
/// <param name="state"></param>
/// <param name="colorName"></param>
/// <param name="partName"></param>
/// <param name="isOK">0-不合格;1-合格;9-返喷 8-其他 </param>
void SaveRst(string state, DataRow paintRow, string userName="")
{
if (string.IsNullOrEmpty(userName))
{
userName = Program.UserName;
}
string bcode = txtBarCode.Text.Trim();
//保存
string id = SaveInspect(state, _scanPaintRow, userName);
if (!string.IsNullOrEmpty(id))
{
_scanPaintRow = null;
ShowHint("操作成功", true);
ClearPage();
}
}
/// <summary>
/// 必须选择缺陷位置与缺陷原因,否则无法保存
/// </summary>
/// <returns></returns>
bool CheckDefect()
{
string damnPositionTemp = "";
string reasonTemp = "";
string responsibTemp = "";
//缺陷位置
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;
}
}
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;
}
/// <summary>
/// 保存质检记录 tb_InspectResult
/// </summary>
/// <param name="inspectResult"></param>
/// <param name="colorName"></param>
/// <param name="partName"></param>
/// <returns> 返回插入记录的ID</returns>
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 Function.InsertInspect3(model1);
}
return "";
}
catch (Exception ex)
{
ShowHint("质检提交异常,原因:" + ex.Message);
LogHelper.WriteErrLogBase("质检提交:" + 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;
}
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;
}
}
}
/// <summary>
/// 扫码-根据条码查询信息(产品信息、加载图片及缺陷原因、三次检验信息)
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void txtBarCode_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
try
{
btnOk.Enabled = true;
btnRepair.Enabled = true;
lbForeig.Text = "";
ClearPage();
ScanBarCode();
timer1.Enabled = true;
}
catch (Exception ex)
{
MessageBox.Show("请查看网络是否与服务器连通,无法连通请联系网络管理员。"+ ex);
LogHelper.WriteErrLogBase(ex.ToString(), MethodBase.GetCurrentMethod().Name);
}
}
}
private void ScanBarCode()
{
try
{
ButtonEnable(SetControlGroup());
//ClearPage();
//测试条码:11111111112222222222
string barcode = txtBarCode.Text.Trim();
if (barcode.Contains("."))
{
barcode = Function.TransToBarCodeOne(barcode);
}
#region 判断条码有效性
if (! Function.BarCodeValid(barcode))
{
MessageBox.Show("扫描的条码号:"+barcode+"无效,请重新扫描!");
txtBarCode.Text = "";
return;
}
#endregion
_scanPaintRow = GetRecentRstInfo(barcode);
if(_scanPaintRow["inspectResult"].ToString().Contains("合格") == false)
{
MessageBox.Show("扫描的条码号:" + barcode + "喷涂线不是合格状态,请重新扫描!");
txtBarCode.Text = "";
return;
}
labProductInfo.Text = _scanPaintRow["productInfo"].ToString();
//根据条码查询,加载图片及原因
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());
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.WriteLogManager(ex);
LogHelper.WriteErrLogBase("缺陷项-"+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.WriteLogManager(ex);
LogHelper.WriteErrLogBase("图片项-" + 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
txtBarCode.SelectAll();
}
catch (Exception ex)
{
MessageBox.Show("请查看网络是否与服务器连通,无法连通请联系网络管理员。" + ex.ToString());
LogHelper.WriteLogManager(ex);
LogHelper.WriteErrLogBase("整体项-" + ex.ToString(), MethodBase.GetCurrentMethod().Name);
}
}
/// <summary>
/// 喷涂库最新质检记录
/// </summary>
/// <param name="barcode"></param>
/// <returns></returns>
private DataRow GetRecentRstInfo(string barcode)
{
//tb_InspectResult 中最新质检结果
DataTable dt = Function.GetLastResult(barcode);
if(dt.Rows.Count == 0)
{
throw new Exception("塑件条码没有喷涂质检记录");
}
DataRow dr = dt.Rows[0];
if(_isTest == "false")
{
string errorMsg = string.Empty;
//wms是否喷涂下线
bool isExsit = Function.GetPointRepairFrWms(barcode, ref errorMsg);
if (isExsit == false)
{
if (!string.IsNullOrEmpty(errorMsg))
{
throw new Exception("在wms系统的查询返修入库记录时发生错误,错误原因:" + errorMsg);
}
else
{
throw new Exception("没有在wms系统的返修入库记录,无法进行点修补.");
}
}
}
return dr;
}
/// <summary>
/// 设置按钮可用
/// </summary>
/// <param name="controls"></param>
private void ButtonEnable(Control[] controls)
{
foreach (Control c in controls)
{
Button btn = c as Button;
btn.Enabled = true;
}
}
/// <summary>
/// 点击退出
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void labTime_Click(object sender, EventArgs e)
{
Environment.Exit(0);
}
/// <summary>
/// 清空页面
/// </summary>
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 = "";
}
public void ClearTxtBarcode()
{
txtBarCode.Text = "";
labProPosition.Text = "";
}
/// <summary>
/// 其他按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
//private void button1_Click(object sender, EventArgs e)
//{
// ClearControlColor(SetControlGroup());
// //btnPass.BackColor = Color.GreenYellow;
// //保存
// SaveInspect("其他");
// ClearPage();
// ClearTxtBarcode();
// txtBarCode.TabIndex = 0;
//}
private void UpdateSoftware()
{
return;
}
private void txtBarCode_DoubleClick(object sender, EventArgs e)
{
txtBarCode.SelectAll();
}
private void panelResponsibility_Paint(object sender, PaintEventArgs e)
{
}
private void Responsibility_Click(object sender, EventArgs e)
{
Label a = (Label)sender;
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;
}
}
if (a.BackColor == Color.Transparent)
{
a.BackColor = Color.Chartreuse;
_selectResponsibles.Clear();
_selectResponsibles.Add(a.Text);
}
else
{
a.BackColor = Color.Transparent;
_selectResponsibles.Clear();
}
}
}
}

392
PaintingPC/FrmQualityOnLine.designer.cs

@ -0,0 +1,392 @@
namespace PaintingPC
{
partial class FrmQualityOnLine
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
try
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
catch
{
}
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FrmQualityOnLine));
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.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.btnAbt = new System.Windows.Forms.Button();
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.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.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(22, 1078);
this.panel2.Margin = new System.Windows.Forms.Padding(6, 4, 6, 4);
this.panel2.Name = "panel2";
this.panel2.Size = new System.Drawing.Size(1829, 613);
this.panel2.TabIndex = 48;
//
// pictureBox2
//
this.pictureBox2.Location = new System.Drawing.Point(22, 526);
this.pictureBox2.Margin = new System.Windows.Forms.Padding(6, 4, 6, 4);
this.pictureBox2.Name = "pictureBox2";
this.pictureBox2.Size = new System.Drawing.Size(1829, 511);
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(22, 177);
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(1408, 177);
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, 177);
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(326, 198);
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(1860, 323);
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.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(22, 306);
this.panel1.Margin = new System.Windows.Forms.Padding(6, 4, 6, 4);
this.panel1.Name = "panel1";
this.panel1.Size = new System.Drawing.Size(1829, 213);
this.panel1.TabIndex = 66;
//
// 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(1829, 213);
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, 37);
this.panelResponsibility.Margin = new System.Windows.Forms.Padding(0);
this.panelResponsibility.Name = "panelResponsibility";
this.panelResponsibility.Size = new System.Drawing.Size(1829, 114);
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(898, 8);
this.label19.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.label19.Name = "label19";
this.label19.Size = new System.Drawing.Size(344, 92);
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(472, 8);
this.label3.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(294, 92);
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(8, 8);
this.label17.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.label17.Name = "label17";
this.label17.Size = new System.Drawing.Size(331, 92);
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, 168);
this.lbForeig.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.lbForeig.Name = "lbForeig";
this.lbForeig.Size = new System.Drawing.Size(68, 25);
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(1860, 654);
this.btnOk.Name = "btnOk";
this.btnOk.Size = new System.Drawing.Size(491, 197);
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(1860, 946);
this.btnRepair.Name = "btnRepair";
this.btnRepair.Size = new System.Drawing.Size(491, 197);
this.btnRepair.TabIndex = 69;
this.btnRepair.Text = "点修补";
this.btnRepair.UseVisualStyleBackColor = false;
this.btnRepair.Click += new System.EventHandler(this.btnRepair_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(1860, 1501);
this.btnAbt.Name = "btnAbt";
this.btnAbt.Size = new System.Drawing.Size(491, 190);
this.btnAbt.TabIndex = 70;
this.btnAbt.Text = "报 废";
this.btnAbt.UseVisualStyleBackColor = false;
this.btnAbt.Click += new System.EventHandler(this.btnAbt_Click);
//
// btnPG
//
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(1860, 1226);
this.btnPG.Name = "btnPG";
this.btnPG.Size = new System.Drawing.Size(491, 197);
this.btnPG.TabIndex = 73;
this.btnPG.Text = "抛光";
this.btnPG.UseVisualStyleBackColor = false;
this.btnPG.Click += new System.EventHandler(this.btnPG_Click);
//
// timer1
//
this.timer1.Interval = 1000;
//
// FrmQualityOnLine
//
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.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.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 = "FrmQualityOnLine";
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.panelResponsibility.ResumeLayout(false);
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.GroupBox groupBox1;
private System.Windows.Forms.Button btnOk;
private System.Windows.Forms.Button btnRepair;
private System.Windows.Forms.Button btnAbt;
private System.Windows.Forms.Panel panelResponsibility;
private System.Windows.Forms.Label lbForeig;
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;
}
}

478
PaintingPC/FrmQualityOnLine.resx

@ -0,0 +1,478 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="pictureBox1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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
RK5CYII=
</value>
</data>
<metadata name="timer1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
</root>

82
PaintingPC/Function.cs

@ -1044,6 +1044,10 @@ namespace PaintingPC
return res;
}
/// <summary>
/// 将二维码转换成相应一维码
/// </summary>
@ -1681,11 +1685,15 @@ namespace PaintingPC
// SELECT * from (select TOP 1 * from tb_InspectResult where barcode = '" + barcode + @"' AND InspectTimes = '2' ORDER BY createTime DESC) bb
// UNION
// SELECT * from (select TOP 1 * from tb_InspectResult where barcode = '" + barcode + @"' AND InspectTimes = '3' ORDER BY createTime DESC) cc) dd order by createTime DESC ";
string sql = @" select * from (SELECT * from (select TOP 30 * from tb_InspectResult where barcode = '" + barcode + @"' AND InspectTimes = '1' ORDER BY createTime DESC) aa
UNION
SELECT * from (select TOP 30 * from tb_InspectResult where barcode = '" + barcode + @"' AND InspectTimes = '2' ORDER BY createTime DESC) bb
UNION
SELECT * from (select TOP 30 * from tb_InspectResult where barcode = '" + barcode + @"' AND InspectTimes = '3' ORDER BY createTime DESC) cc) dd order by createTime DESC ";
//string sql = @" select * from (SELECT * from (select TOP 30 * from tb_InspectResult where barcode = '" + barcode + @"' AND InspectTimes = '1' ORDER BY createTime DESC) aa
// UNION
// SELECT * from (select TOP 30 * from tb_InspectResult where barcode = '" + barcode + @"' AND InspectTimes = '2' ORDER BY createTime DESC) bb
// UNION
// SELECT * from (select TOP 30 * from tb_InspectResult where barcode = '" + barcode + @"' AND InspectTimes = '3' ORDER BY createTime DESC) cc) dd order by createTime DESC ";
string sql = @" select TOP 30 * from tb_InspectResult where barcode = '" + barcode + @"' ORDER BY createTime DESC";
res = SqlHelper.GetDataDateTable(SqlHelper.SqlConnString, CommandType.Text, sql, null);
// LogHelper.WriteSysLogBase("[sql:]" + sql, MethodBase.GetCurrentMethod().Name);
return res;
@ -1815,6 +1823,70 @@ namespace PaintingPC
return "";
}
}
public static string InsertInspect3(InspectModel model)
{
int res = 0;
try
{
string sql = @" INSERT INTO [dbo].[tb_InspectResult_Check]
(
[barcode]
,[side]
,[position]
,[stationNo]
,[workClass]
,[inspectResult]
,[damnPosition]
,[defectID]
,[reason]
,[productInfo]
,[productOption]
,[createTime]
,[InspectTimes]
,[remark1]
,[remark2]
,[remark3]
,[CarType]
,[AddMan]
,[ForeignPartCode]
,[Responsible]
)
VALUES
('" + model.barcode + @"'
,'" + model.side + @"'
,'" + model.position + @"'
,'" + model.stationNo + @"'
,'" + model.workClass + @"'
,'" + model.inspectResult + @"'
,'" + model.damnPosition + @"'
,'" + model.defectID + @"'
,'" + model.reason + @"'
,'" + model.productInfo + @"'
,'" + model.productOption + @"'
,(select getdate()), '" + model.InspectTimes + @"'
,'" + model.remark1 + @"'
,'" + model.remark2 + @"'
,'" + model.remark3 + @"'
,'" + model.CarType + @"'
,'" + model.AddMan + @"'
,'" + model.ForeignPartCode + @"'
,'" + model.Responsible + @"'
);select @@Identity ";
DataTable dt = SqlHelper.GetDataDateTable(SqlHelper.SqlConnString, CommandType.Text, sql, null);
if (dt.Rows.Count > 0)
{
return dt.Rows[0][0].ToString();
}
return "";
}
catch (Exception ex)
{
LogHelper.WriteLogManager(ex);
LogHelper.WriteErrLogBase(ex.ToString(), MethodBase.GetCurrentMethod().Name);
return "";
}
}
private static string foreignSqlConnString = string.Empty;
public static string GetProductInfo2(string barcode,ref string errorMsg)
{

3
PaintingPC/Model/InspectModel.cs

@ -91,5 +91,8 @@ namespace PaintingPC.Model
/// 是否需要点修补
/// </summary>
public int IsNeedThirdCheck { get; set; } = 0;
public string Responsible { get; set; }
}
}

716
PunchingMistake/FrmAssemble.Designer.cs

@ -0,0 +1,716 @@

namespace PunchingMistake
{
partial class FrmAssemble
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FrmAssemble));
this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
this.panel1 = new System.Windows.Forms.Panel();
this.panel2 = new System.Windows.Forms.Panel();
this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel();
this.panel3 = new System.Windows.Forms.Panel();
this.panel4 = new System.Windows.Forms.Panel();
this.panel12 = new System.Windows.Forms.Panel();
this.lbPlanQty = new System.Windows.Forms.Label();
this.label12 = new System.Windows.Forms.Label();
this.panel13 = new System.Windows.Forms.Panel();
this.lbCompleteQty = new System.Windows.Forms.Label();
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();
this.label5 = new System.Windows.Forms.Label();
this.panel7 = new System.Windows.Forms.Panel();
this.lbPart = new System.Windows.Forms.Label();
this.label4 = new System.Windows.Forms.Label();
this.panel6 = new System.Windows.Forms.Panel();
this.lbPlan = new System.Windows.Forms.Label();
this.label3 = new System.Windows.Forms.Label();
this.panel5 = new System.Windows.Forms.Panel();
this.lbStation = new System.Windows.Forms.Label();
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.btnPlanDown = new System.Windows.Forms.Button();
this.btnPlanUp = new System.Windows.Forms.Button();
this.panel11 = new System.Windows.Forms.Panel();
this.lbClass = new System.Windows.Forms.Label();
this.label10 = new System.Windows.Forms.Label();
this.panel14 = new System.Windows.Forms.Panel();
this.lbBadQty = new System.Windows.Forms.Label();
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.tableLayoutPanel1.SuspendLayout();
this.tableLayoutPanel2.SuspendLayout();
this.panel12.SuspendLayout();
this.panel13.SuspendLayout();
this.tableLayoutPanel3.SuspendLayout();
this.panel9.SuspendLayout();
this.panel8.SuspendLayout();
this.panel7.SuspendLayout();
this.panel6.SuspendLayout();
this.panel5.SuspendLayout();
this.tableLayoutPanel4.SuspendLayout();
this.panel10.SuspendLayout();
this.panel11.SuspendLayout();
this.panel14.SuspendLayout();
this.SuspendLayout();
//
// tableLayoutPanel1
//
this.tableLayoutPanel1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(18)))), ((int)(((byte)(35)))), ((int)(((byte)(53)))));
this.tableLayoutPanel1.ColumnCount = 5;
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 27F));
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 2F));
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 46F));
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 2F));
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 27F));
this.tableLayoutPanel1.Controls.Add(this.panel1, 1, 0);
this.tableLayoutPanel1.Controls.Add(this.panel2, 3, 0);
this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel2, 2, 0);
this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel3, 0, 0);
this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel4, 4, 0);
this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0);
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.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.Name = "panel1";
this.panel1.Size = new System.Drawing.Size(1, 1256);
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.Name = "panel2";
this.panel2.Size = new System.Drawing.Size(1, 1256);
this.panel2.TabIndex = 1;
//
// tableLayoutPanel2
//
this.tableLayoutPanel2.ColumnCount = 1;
this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));
this.tableLayoutPanel2.Controls.Add(this.panel3, 0, 2);
this.tableLayoutPanel2.Controls.Add(this.panel4, 0, 0);
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.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.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.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.Name = "panel3";
this.panel3.Size = new System.Drawing.Size(882, 1);
this.panel3.TabIndex = 0;
//
// panel4
//
this.panel4.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("panel4.BackgroundImage")));
this.panel4.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;
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.TabIndex = 1;
//
// panel12
//
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.Name = "panel12";
this.panel12.Size = new System.Drawing.Size(882, 608);
this.panel12.TabIndex = 2;
//
// lbPlanQty
//
this.lbPlanQty.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.lbPlanQty.AutoSize = true;
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.Name = "lbPlanQty";
this.lbPlanQty.Size = new System.Drawing.Size(575, 300);
this.lbPlanQty.TabIndex = 3;
this.lbPlanQty.Text = "150";
//
// label12
//
this.label12.AutoSize = true;
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.Name = "label12";
this.label12.Size = new System.Drawing.Size(642, 51);
this.label12.TabIndex = 2;
this.label12.Text = "计划数量/PlannedQuantity";
//
// panel13
//
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.Name = "panel13";
this.panel13.Size = new System.Drawing.Size(882, 608);
this.panel13.TabIndex = 3;
//
// lbCompleteQty
//
this.lbCompleteQty.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.lbCompleteQty.AutoSize = true;
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.Name = "lbCompleteQty";
this.lbCompleteQty.Size = new System.Drawing.Size(575, 300);
this.lbCompleteQty.TabIndex = 4;
this.lbCompleteQty.Text = "695";
//
// label13
//
this.label13.AutoSize = true;
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.Name = "label13";
this.label13.Size = new System.Drawing.Size(668, 51);
this.label13.TabIndex = 3;
this.label13.Text = "完成数量/FinishedQuantity";
//
// tableLayoutPanel3
//
this.tableLayoutPanel3.ColumnCount = 1;
this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));
this.tableLayoutPanel3.Controls.Add(this.panel9, 0, 4);
this.tableLayoutPanel3.Controls.Add(this.panel8, 0, 3);
this.tableLayoutPanel3.Controls.Add(this.panel7, 0, 2);
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.Name = "tableLayoutPanel3";
this.tableLayoutPanel3.RowCount = 5;
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.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.TabIndex = 3;
//
// panel9
//
this.panel9.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("panel9.BackgroundImage")));
this.panel9.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;
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.Name = "panel9";
this.panel9.Size = new System.Drawing.Size(458, 228);
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.Name = "label6";
this.label6.Size = new System.Drawing.Size(253, 37);
this.label6.TabIndex = 4;
this.label6.Text = "条码/BarCode";
//
// panel8
//
this.panel8.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("panel8.BackgroundImage")));
this.panel8.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;
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.Name = "panel8";
this.panel8.Size = new System.Drawing.Size(458, 225);
this.panel8.TabIndex = 3;
//
// lbPartDesc
//
this.lbPartDesc.AutoSize = true;
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.Name = "lbPartDesc";
this.lbPartDesc.Size = new System.Drawing.Size(317, 37);
this.lbPartDesc.TabIndex = 4;
this.lbPartDesc.Text = "X247MF S后保冲孔";
//
// label5
//
this.label5.AutoSize = true;
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.Name = "label5";
this.label5.Size = new System.Drawing.Size(409, 37);
this.label5.TabIndex = 3;
this.label5.Text = "零件描述/Description";
//
// panel7
//
this.panel7.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("panel7.BackgroundImage")));
this.panel7.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;
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.Name = "panel7";
this.panel7.Size = new System.Drawing.Size(458, 225);
this.panel7.TabIndex = 2;
//
// lbPart
//
this.lbPart.AutoSize = true;
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.Name = "lbPart";
this.lbPart.Size = new System.Drawing.Size(317, 37);
this.lbPart.TabIndex = 3;
this.lbPart.Text = "X247MF S后保冲孔";
//
// label4
//
this.label4.AutoSize = true;
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.Name = "label4";
this.label4.Size = new System.Drawing.Size(351, 37);
this.label4.TabIndex = 2;
this.label4.Text = "零件号/PartNumber";
//
// panel6
//
this.panel6.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("panel6.BackgroundImage")));
this.panel6.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;
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.Name = "panel6";
this.panel6.Size = new System.Drawing.Size(458, 225);
this.panel6.TabIndex = 1;
//
// lbPlan
//
this.lbPlan.AutoSize = true;
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.Name = "lbPlan";
this.lbPlan.Size = new System.Drawing.Size(317, 37);
this.lbPlan.TabIndex = 2;
this.lbPlan.Text = "X247MF S后保冲孔";
//
// label3
//
this.label3.AutoSize = true;
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.Name = "label3";
this.label3.Size = new System.Drawing.Size(389, 37);
this.label3.TabIndex = 1;
this.label3.Text = "计划编号/PlanNumber";
//
// panel5
//
this.panel5.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("panel5.BackgroundImage")));
this.panel5.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;
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.Name = "panel5";
this.panel5.Size = new System.Drawing.Size(458, 225);
this.panel5.TabIndex = 0;
//
// lbStation
//
this.lbStation.AutoSize = true;
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.Name = "lbStation";
this.lbStation.Size = new System.Drawing.Size(317, 37);
this.lbStation.TabIndex = 1;
this.lbStation.Text = "X247MF S后保冲孔";
//
// label1
//
this.label1.AutoSize = true;
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.Name = "label1";
this.label1.Size = new System.Drawing.Size(409, 37);
this.label1.TabIndex = 0;
this.label1.Text = "生产工位/StationCode";
//
// tableLayoutPanel4
//
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.panel11, 0, 0);
this.tableLayoutPanel4.Controls.Add(this.panel14, 0, 2);
this.tableLayoutPanel4.Controls.Add(this.panel15, 0, 1);
this.tableLayoutPanel4.Controls.Add(this.panel16, 0, 3);
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.Name = "tableLayoutPanel4";
this.tableLayoutPanel4.RowCount = 5;
this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 20F));
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.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.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.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.Name = "panel10";
this.panel10.Size = new System.Drawing.Size(514, 511);
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;
//
// 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.Name = "btnPlanDown";
this.btnPlanDown.Size = new System.Drawing.Size(240, 88);
this.btnPlanDown.TabIndex = 23;
this.btnPlanDown.Text = "下一计划";
this.btnPlanDown.UseVisualStyleBackColor = false;
this.btnPlanDown.Click += new System.EventHandler(this.btnPlanDown_Click);
//
// btnPlanUp
//
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.Name = "btnPlanUp";
this.btnPlanUp.Size = new System.Drawing.Size(240, 88);
this.btnPlanUp.TabIndex = 22;
this.btnPlanUp.Text = "上一计划";
this.btnPlanUp.UseVisualStyleBackColor = false;
this.btnPlanUp.Click += new System.EventHandler(this.btnPlanUp_Click);
//
// panel11
//
this.panel11.Controls.Add(this.lbClass);
this.panel11.Controls.Add(this.label10);
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.TabIndex = 1;
//
// lbClass
//
this.lbClass.AutoSize = true;
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.Name = "lbClass";
this.lbClass.Size = new System.Drawing.Size(120, 62);
this.lbClass.TabIndex = 4;
this.lbClass.Text = "A班";
//
// label10
//
this.label10.AutoSize = true;
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.Name = "label10";
this.label10.Size = new System.Drawing.Size(378, 37);
this.label10.TabIndex = 3;
this.label10.Text = "2025-07-15 11:15:14";
//
// 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.Name = "panel14";
this.panel14.Size = new System.Drawing.Size(514, 509);
this.panel14.TabIndex = 2;
//
// lbBadQty
//
this.lbBadQty.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.lbBadQty.AutoSize = true;
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.Name = "lbBadQty";
this.lbBadQty.Size = new System.Drawing.Size(215, 234);
this.lbBadQty.TabIndex = 5;
this.lbBadQty.Text = "0";
//
// label14
//
this.label14.AutoSize = true;
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.Name = "label14";
this.label14.Size = new System.Drawing.Size(503, 35);
this.label14.TabIndex = 1;
this.label14.Text = "不良数/UnqualifiedQuantity";
//
// panel15
//
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.Name = "panel15";
this.panel15.Size = new System.Drawing.Size(514, 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.Name = "panel16";
this.panel16.Size = new System.Drawing.Size(514, 1);
this.panel16.TabIndex = 4;
//
// lbHint
//
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 = "异常错误";
//
// FrmAssemble
//
this.AutoScaleDimensions = new System.Drawing.SizeF(11F, 21F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(1948, 1346);
this.Controls.Add(this.tableLayoutPanel1);
this.Name = "FrmAssemble";
this.Text = "FrmAssemble";
this.Load += new System.EventHandler(this.FrmAssemble_Load);
this.tableLayoutPanel1.ResumeLayout(false);
this.tableLayoutPanel2.ResumeLayout(false);
this.panel12.ResumeLayout(false);
this.panel12.PerformLayout();
this.panel13.ResumeLayout(false);
this.panel13.PerformLayout();
this.tableLayoutPanel3.ResumeLayout(false);
this.panel9.ResumeLayout(false);
this.panel9.PerformLayout();
this.panel8.ResumeLayout(false);
this.panel8.PerformLayout();
this.panel7.ResumeLayout(false);
this.panel7.PerformLayout();
this.panel6.ResumeLayout(false);
this.panel6.PerformLayout();
this.panel5.ResumeLayout(false);
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.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1;
private System.Windows.Forms.Panel panel1;
private System.Windows.Forms.Panel panel2;
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel2;
private System.Windows.Forms.Panel panel3;
private System.Windows.Forms.Panel panel4;
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel3;
private System.Windows.Forms.Panel panel5;
private System.Windows.Forms.Panel panel6;
private System.Windows.Forms.Panel panel9;
private System.Windows.Forms.Panel panel8;
private System.Windows.Forms.Panel panel7;
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel4;
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.Label label1;
private System.Windows.Forms.Label label6;
private System.Windows.Forms.Label label5;
private System.Windows.Forms.Label label4;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.Label lbStation;
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;
private System.Windows.Forms.Panel panel12;
private System.Windows.Forms.Label label12;
private System.Windows.Forms.Panel panel13;
private System.Windows.Forms.Label label13;
private System.Windows.Forms.Panel panel14;
private System.Windows.Forms.Label label14;
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.Panel panel15;
private System.Windows.Forms.Panel panel16;
private System.Windows.Forms.Label lbHint;
}
}

311
PunchingMistake/FrmAssemble.cs

@ -0,0 +1,311 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Configuration;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading;
using System.Windows.Forms;
using MESClassLibrary.BLL.Log;
using grproLib;
using InjectionPC;
using MESClassLibrary.BLL.Injection;
namespace PunchingMistake
{
public partial class FrmAssemble : Form
{
private GridppReport Report = new GridppReport();
private string oneBarCode = "", _stationNo = "", stationId = "";
private UniqueBll _uniqueBll = new UniqueBll();
public FrmAssemble()
{
InitializeComponent();
}
private void FrmAssemble_Load(object sender, EventArgs e)
{
_stationNo = ConfigurationManager.AppSettings["Station"];
//stationId = ProScreenFunc.GetStationId(stationNo);
lbStation.Text = Function2.GetStation(_stationNo);
Control.CheckForIllegalCrossThreadCalls = false;
Thread t = new Thread(new ThreadStart(TimeGo));
t.Start();
LoadScreen();
}
public void LoadScreen()
{
DataTable dt = Function2.GetProScreen(_stationNo);
if (dt != null && dt.Rows.Count > 0)
{
SetPage(dt);
}
}
public void SetPage(DataTable dt)
{
ClearPage();
if (dt.Rows.Count > 0)
{
this.Tag = dt.Rows[0]["ID"].ToString();
txtBarCode.Tag = dt.Rows[0]["PartNo1"].ToString();
txtBarCode.Text = "";
lbPlan.Text = dt.Rows[0]["OrderNo"].ToString();
lbPart.Text = dt.Rows[0]["PartNo1"].ToString();
lbPartDesc.Text = dt.Rows[0]["Des"].ToString();
lbPlanQty.Text = dt.Rows[0]["OrderCount"].ToString();
lbCompleteQty.Text = dt.Rows[0]["OKCount"].ToString();
lbBadQty.Text = dt.Rows[0]["BadCount"].ToString();
}
}
void ClearPage()
{
lbStation.Text = "";
lbPlan.Text = "";
lbPart.Text = "";
lbPartDesc.Text = "";
}
private void btnPlanUp_Click(object sender, EventArgs e)
{
LoadPlanScreen(this.Tag?.ToString(), "上一计划");
txtBarCode.Select();
txtBarCode.Focus();
}
private void btnPlanDown_Click(object sender, EventArgs e)
{
LoadPlanScreen(this.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_KeyDown(object sender, KeyEventArgs e)
{
try
{
WriteHint("", true);
if (string.IsNullOrEmpty(this.Tag?.ToString()))
{
throw new Exception("当前没有生产计划.");
}
ScanBarCode();
}
catch(Exception ex)
{
WriteHint(ex.Message,false);
}
}
private void ScanBarCode()
{
string barCode = txtBarCode.Text?.Trim();
if (string.IsNullOrEmpty(barCode))
{
throw new Exception("扫描条码为空!");
}
if (barCode.Length != 20)
{
throw new Exception("扫描条码格式不正确,请扫描20位塑件条码!");
}
DataTable stockInTable = Function2.SearchStockIn(barCode);
if (stockInTable.Rows.Count == 0)
{
throw new Exception("扫描半成品码没有喷涂完工记录,无法使用.");
}
DataTable punchTable = Function2.SearchPunchCodeRecord(barCode);
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));
if (productTable.Rows.Count == 0)
{
throw new Exception($"扫描半成品码的存货代码[{barCode.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);
List<DataRow> list = bomTable.AsEnumerable().Where(p => p.Field<int>("IsChecked") == 1).ToList();
if (list.Count > 0)
{
//需要校验关键件
}
else
{
SaveScanRecord(barCode,partNo1, partNo2);
}
}
private void SaveScanRecord(string barcode,string partNo1,string partNo2)
{
//保存装配记录
//更新计划完成数量
//
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,
ScanAll.barCode1, ScanAll.barCode2, ScanAll.barCode3,
ScanAll.barCode4, ScanAll.barCode5, ScanAll.barCode6, stationId, ConfigurationManager.AppSettings["StationDescription"]);
Function2.SaveZcCode(barcode, partNo1);
Function2.AddCompleteCount(this.Tag?.ToString());
PrintAssembleBarCode(assembleBarCode, partNo1, lbPartDesc.Text, serailNo);
if (Function2.CheckPlanCompleted(this.Tag.ToString().Trim()))
{
LoadScreen();
}
else
{
lbCompleteQty.Text = (Tools.NumericParse.StringToInt(lbCompleteQty.Text.Trim()) + 1).ToString();
}
}
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();
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()
{
if(Program.station == "F01")
{
return System.AppDomain.CurrentDomain.BaseDirectory + "/Report/总成条码MI.grf";
}
return System.AppDomain.CurrentDomain.BaseDirectory + "/Report/总成条码MI.grf";
}
string GetSerialNo(string partNo1)
{
DateTime time = DateTime.Now;
string tmp = Function2.SerialNo(partNo1, time.ToString("yyMMdd"));
string sn = "";
if (tmp == "")
{
sn = GetFullBarCode(partNo1, "0001");
}
else
{
sn = tmp.Substring(0, tmp.Length - 4) +
(int.Parse(tmp.Substring(tmp.Length - 4, 4)) + 1).ToString()
.PadLeft(4, '0');
}
return sn;
}
string GetFullBarCode(string partNo,string serialNo)
{
DateTime time = DateTime.Now;
return partNo + "." + time.ToString("yyMMdd") + ";" + serialNo + ";S104;;.1;" + time.ToString("yyyy/MM/dd") + ";";
}
void WriteHint(string txt,bool isOk)
{
lbHint.ForeColor = Color.LimeGreen;
if (!isOk)
{
lbHint.ForeColor = Color.Red;
}
lbHint.Text = txt;
}
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
{
lbPartDesc.Text = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
Thread.Sleep(500);
}
catch (Exception ex)
{
}
}
}
}

1039
PunchingMistake/FrmAssemble.resx

File diff suppressed because it is too large

172
PunchingMistake/FrmLogin.Designer.cs

@ -0,0 +1,172 @@
namespace PunchingMistake
{
partial class FrmLogin
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FrmLogin));
this.label1 = new System.Windows.Forms.Label();
this.label2 = new System.Windows.Forms.Label();
this.textBox1 = new System.Windows.Forms.TextBox();
this.textBox2 = new System.Windows.Forms.TextBox();
this.button1 = new System.Windows.Forms.Button();
this.button2 = new System.Windows.Forms.Button();
this.pictureBox1 = new System.Windows.Forms.PictureBox();
this.lbtip = new System.Windows.Forms.Label();
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
this.SuspendLayout();
//
// label1
//
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.Name = "label1";
this.label1.Size = new System.Drawing.Size(117, 34);
this.label1.TabIndex = 0;
this.label1.Text = "用户名";
//
// label2
//
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.Name = "label2";
this.label2.Size = new System.Drawing.Size(83, 34);
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.Name = "textBox1";
this.textBox1.Size = new System.Drawing.Size(288, 45);
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.Name = "textBox2";
this.textBox2.PasswordChar = '*';
this.textBox2.Size = new System.Drawing.Size(288, 45);
this.textBox2.TabIndex = 3;
this.textBox2.Click += new System.EventHandler(this.textBox2_Click);
//
// button1
//
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.Name = "button1";
this.button1.Size = new System.Drawing.Size(154, 66);
this.button1.TabIndex = 4;
this.button1.Text = "登录";
this.button1.UseVisualStyleBackColor = false;
this.button1.Click += new System.EventHandler(this.button1_Click);
//
// button2
//
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.Name = "button2";
this.button2.Size = new System.Drawing.Size(152, 66);
this.button2.TabIndex = 5;
this.button2.Text = "取消";
this.button2.UseVisualStyleBackColor = false;
this.button2.Click += new System.EventHandler(this.button2_Click);
//
// pictureBox1
//
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.Name = "pictureBox1";
this.pictureBox1.Size = new System.Drawing.Size(1289, 793);
this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
this.pictureBox1.TabIndex = 6;
this.pictureBox1.TabStop = false;
//
// lbtip
//
this.lbtip.AutoSize = true;
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.Name = "lbtip";
this.lbtip.Size = new System.Drawing.Size(58, 21);
this.lbtip.TabIndex = 7;
this.lbtip.Text = " ";
//
// FrmLogin
//
this.AutoScaleDimensions = new System.Drawing.SizeF(11F, 21F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(1289, 793);
this.Controls.Add(this.lbtip);
this.Controls.Add(this.label2);
this.Controls.Add(this.textBox1);
this.Controls.Add(this.textBox2);
this.Controls.Add(this.button1);
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.Name = "FrmLogin";
this.Text = "登录";
this.Load += new System.EventHandler(this.FrmLogin_Load);
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.TextBox textBox1;
private System.Windows.Forms.TextBox textBox2;
private System.Windows.Forms.Button button1;
private System.Windows.Forms.Button button2;
private System.Windows.Forms.PictureBox pictureBox1;
private System.Windows.Forms.Label lbtip;
}
}

212
PunchingMistake/FrmLogin.cs

@ -0,0 +1,212 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Configuration;
using System.Data.SqlClient;
using System.Diagnostics;
using System.Reflection;
using System.Runtime.InteropServices;
using MESClassLibrary.BLL.BasicInfo;
using MESClassLibrary.Model;
using MESClassLibrary.BLL.Log;
namespace PunchingMistake
{
public partial class FrmLogin : Form
{
private string _defualtPage = string.Empty;
public Action<string,string> LoginAction = null;
public FrmLogin()
{
InitializeComponent();
this.StartPosition = FormStartPosition.CenterScreen;
Program.station = ConfigurationManager.AppSettings["Station"].ToString();
LoginAction = Login;
}
public void RegisterLoginMethod(Action<string ,string> outLogin)
{
LoginAction = outLogin;
}
private void button1_Click(object sender, EventArgs e)
{
try
{
lbtip.Text = "";
_defualtPage = ConfigurationManager.AppSettings["DefualtPage"]?.ToString();
OpenDb();
#region 判断输入合法性
if (textBox1.Text.Trim() == "")
{
MessageBox.Show("用户名不能为空!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
textBox1.Focus();
return;
}
if (textBox2.Text.Trim() == "")
{
MessageBox.Show("密码不能为空!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
textBox1.Focus();
return;
}
#endregion
LoginAction(textBox1.Text.Trim(), textBox2.Text.Trim());
}
catch (Exception ex)
{
LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod());
}
}
void Login(string name,string pass)
{
string stationID = "";
StationBLL sbll = new StationBLL();
DataTable sdt = sbll.SearchInfoByNo(Program.station);
if (sdt != null && sdt.Rows.Count > 0)
{
stationID = sdt.Rows[0]["StationID"].ToString();
}
sdt.Dispose();
OperatorBLL bll = new OperatorBLL();
if (string.IsNullOrEmpty(stationID))
{
lbtip.Text = "配置工位" + Program.station + "在系统中不存在.";
return;
}
DataTable dt = bll.SearchInfoByNameAndPsw(name, stationID, pass);
if (dt != null && dt.Rows.Count > 0)
{
this.Visible = false;
Program.UserName = textBox1.Text.Trim();
//Form fr = new FrmQualityNew();
Form fr = new FrmAssemble();
fr.Show();
}
else
{
//f7ce2efa-13ac-4daa-8c7e-8f6287889411
lbtip.Text = "用户名或者密码错误";
}
}
private bool OpenDb()
{
bool OpenDb = false;
string value = ConfigurationManager.ConnectionStrings["SqlConnString"].ToString();
Program.DBConn = new SqlConnection(value);
if (Program.DBConn.State.ToString().ToUpper() == "OPEN") Program.DBConn.Close();
try
{
Program.DBConn.Open();
}
catch (Exception Err)
{
if (Err != null)
{
MessageBox.Show("数据库连接失败,请检查网络连接,并重新连接!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
return OpenDb;
}
}
OpenDb = true;
return OpenDb;
}
private void button2_Click(object sender, EventArgs e)
{
this.Close();
}
private void textBox1_Click(object sender, EventArgs e)
{
ShowInputPanel();
}
private const Int32 WM_SYSCOMMAND = 274;
private const UInt32 SC_CLOSE = 61536;
[DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)]
private static extern bool PostMessage(IntPtr hWnd, int Msg, int wParam, int lParam);
[DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)]
private static extern bool PostMessage(IntPtr hWnd, int Msg, uint wParam, uint lParam);
[DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)]
private static extern bool PostMessage(IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam);
[DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)]
private static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
private static extern int RegisterWindowMessage(string lpString);
//显示屏幕键盘
public static int ShowInputPanel()
{
try
{
dynamic file = "C:\\Program Files\\Common Files\\microsoft shared\\ink\\TabTip.exe";
if (!System.IO.File.Exists(file))
return -1;
Process.Start(file);
//return SetUnDock(); //不知SetUnDock()是什么,所以直接注释返回1
return 1;
}
catch (Exception)
{
return 255;
}
}
private void textBox2_Click(object sender, EventArgs e)
{
ShowInputPanel();
}
private void FrmLogin_Load(object sender, EventArgs e)
{
//var serverUrl = "http://10.60.101.59:8013/";
//var updateXmlFileName = "InjectionUpdate.xml";
//var updater = new AutoUpdater();
//if (updater.CheckUpdateLoad(serverUrl, updateXmlFileName))
//{
// Environment.Exit(0);
//}
}
}
}

713
PunchingMistake/FrmLogin.resx

@ -0,0 +1,713 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="pictureBox1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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
kBBCCCGOj7q+U+1lsNWBhBBCCHF81PWdai+DrQ4khBBCiOOjru9UexlsdSAhhBBCHB91fafay2CrAwkh
hBDi+KjrO9VeBlsdSAghhBDHR13fqfYy2OpAQgghhDg+6vpOtZfBVgcSQgghxPFR13eqvQy2OpAQQggh
jo+6vlPtZbDVgYQQQghxfNT1nWovg60OJIQQQojjo67vVHsZbHWg2WRU/9sghBBCiANhs1p/Ut+p9jLY
6sDqihL1vw9CCCGEOBC11RU/qe9UexlsdWB2Spz63wchhBBCHIjs1Lif1HeqvQy2OjDQ47L63wchhBBC
HAip5er6TrWXwVYHuh5ai7qaKvW/EUIIIYQ4APW1VXA9tO4n9Z1qL4OtTvR3c1X/OyGEEEKIAyA1XF3X
6W8jg62OTAj3U/9bIYQQQoiOkdqtruf0t5PBVke6HFiDJ9HB6n8zhBBCCNEhyTHBSu1W13P628lgq0P9
7rmgurJM/e+HEEIIITpAarSfm8tP6jf97WWw1alyQ5ncYSnrQ2qrKmCzWdX/rgghhBCiAVKDpRZLTZba
LDVaXbepPmSwpZRSSimlTUIGW0oppZRS2iRksKWUUkoppU1CBltKKaWUUtokZLCllFJKKaVNQgZbSiml
lFLaJGSwpZRSSimlTUIGW0oppZRS2iRksKWUUkoppU1CBltKKaWUUtokZLCllFJKKaVNQgZbSimllFLa
JGSwpZRSSimlTUIGW0oppZRS2iRksKWUUkoppU1CBltKKaWUUtokZLCllFJKKaVNQgZbSimllFLaJGSw
pZRSSimlTUIGW0oppZRS2iRksKWUUkoppU1CBltKKaWUUtokZLCllFJKKaVNQgZbSimllFLaJGSwpZRS
SimlTUIGW0oppZRS2iRksKWUUkoppU1CBltKKaWUUtokZLCllFJKKaVNQgZbSimllFLaJGSwpZRSSiml
TUIGW0oppZRS2iRksKWUUkoppU1CBltKKaWUUtokZLCllFJKKaVNQgZbSimllFLaJGSwpZRSSimlTUIG
W0oppZRS2iRksKWUUkoppU1CBltKKaWUUtokZLCllFJKKaVNQgZbSimllFLaJGSwpZRSSimlTUIGW0op
pZRS2iRksKWUUkoppU1CBltKKaWUUtokZLCllFJKKaVNQgZbSimllFLaJGSwpZRSSimlTUIGW0oppZRS
2iRksKWUUkoppU1CBltKKaWUUtokZLCllFJKKaVNQgZbSimllFLaJGSwpZRSSimlTUIGW0oppZRS2iRk
sKWUUkoppU1CBltKKaWUUtokZLCllFJKKaVNQgZbSimllFLaJGSwpZRSSimlTUIGW0oppZRS2iRksKWU
UkoppU1CBltKKaWUUtok/P8BNUIVxOz+k4sAAAAASUVORK5CYII=
</value>
</data>
</root>

287
PunchingMistake/FrmProScreen3.Designer.cs

@ -0,0 +1,287 @@
namespace PunchingMistake
{
partial class FrmProScreen3
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.label1 = new System.Windows.Forms.Label();
this.textBox1 = new System.Windows.Forms.TextBox();
this.textBox2 = new System.Windows.Forms.TextBox();
this.label2 = new System.Windows.Forms.Label();
this.textBox3 = new System.Windows.Forms.TextBox();
this.label3 = new System.Windows.Forms.Label();
this.button1 = new System.Windows.Forms.Button();
this.label4 = new System.Windows.Forms.Label();
this.label5 = new System.Windows.Forms.Label();
this.label6 = new System.Windows.Forms.Label();
this.label7 = new System.Windows.Forms.Label();
this.textBox4 = new System.Windows.Forms.TextBox();
this.label8 = new System.Windows.Forms.Label();
this.label9 = new System.Windows.Forms.Label();
this.textBox5 = new System.Windows.Forms.TextBox();
this.label10 = new System.Windows.Forms.Label();
this.label11 = new System.Windows.Forms.Label();
this.textBox6 = new System.Windows.Forms.TextBox();
this.label12 = new System.Windows.Forms.Label();
this.SuspendLayout();
//
// 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.Name = "label1";
this.label1.Size = new System.Drawing.Size(180, 40);
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.Name = "textBox1";
this.textBox1.Size = new System.Drawing.Size(486, 43);
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.Name = "textBox2";
this.textBox2.Size = new System.Drawing.Size(486, 43);
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.Name = "label2";
this.label2.Size = new System.Drawing.Size(180, 40);
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.Name = "textBox3";
this.textBox3.Size = new System.Drawing.Size(486, 43);
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.Name = "label3";
this.label3.Size = new System.Drawing.Size(180, 40);
this.label3.TabIndex = 4;
this.label3.Text = "关键零件号3:";
//
// button1
//
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.Name = "button1";
this.button1.Size = new System.Drawing.Size(147, 55);
this.button1.TabIndex = 6;
this.button1.Text = "关闭";
this.button1.UseVisualStyleBackColor = false;
this.button1.Click += new System.EventHandler(this.button1_Click);
//
// label4
//
this.label4.AutoSize = true;
this.label4.Font = new System.Drawing.Font("微软雅黑", 20F);
this.label4.Location = new System.Drawing.Point(184, 46);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(92, 35);
this.label4.TabIndex = 7;
this.label4.Text = "label4";
//
// label5
//
this.label5.AutoSize = true;
this.label5.Font = new System.Drawing.Font("微软雅黑", 20F);
this.label5.Location = new System.Drawing.Point(184, 119);
this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(92, 35);
this.label5.TabIndex = 8;
this.label5.Text = "label5";
//
// label6
//
this.label6.AutoSize = true;
this.label6.Font = new System.Drawing.Font("微软雅黑", 20F);
this.label6.Location = new System.Drawing.Point(184, 194);
this.label6.Name = "label6";
this.label6.Size = new System.Drawing.Size(92, 35);
this.label6.TabIndex = 9;
this.label6.Text = "label6";
//
// label7
//
this.label7.AutoSize = true;
this.label7.Font = new System.Drawing.Font("微软雅黑", 20F);
this.label7.Location = new System.Drawing.Point(184, 267);
this.label7.Name = "label7";
this.label7.Size = new System.Drawing.Size(92, 35);
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.Name = "textBox4";
this.textBox4.Size = new System.Drawing.Size(486, 43);
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.Name = "label8";
this.label8.Size = new System.Drawing.Size(180, 40);
this.label8.TabIndex = 10;
this.label8.Text = "关键零件号4:";
//
// label9
//
this.label9.AutoSize = true;
this.label9.Font = new System.Drawing.Font("微软雅黑", 20F);
this.label9.Location = new System.Drawing.Point(184, 341);
this.label9.Name = "label9";
this.label9.Size = new System.Drawing.Size(92, 35);
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.Name = "textBox5";
this.textBox5.Size = new System.Drawing.Size(486, 43);
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.Name = "label10";
this.label10.Size = new System.Drawing.Size(180, 40);
this.label10.TabIndex = 13;
this.label10.Text = "关键零件号5:";
//
// label11
//
this.label11.AutoSize = true;
this.label11.Font = new System.Drawing.Font("微软雅黑", 20F);
this.label11.Location = new System.Drawing.Point(184, 418);
this.label11.Name = "label11";
this.label11.Size = new System.Drawing.Size(108, 35);
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.Name = "textBox6";
this.textBox6.Size = new System.Drawing.Size(486, 43);
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.Name = "label12";
this.label12.Size = new System.Drawing.Size(180, 40);
this.label12.TabIndex = 16;
this.label12.Text = "关键零件号6:";
//
// FrmProScreen3
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(917, 543);
this.Controls.Add(this.label11);
this.Controls.Add(this.textBox6);
this.Controls.Add(this.label12);
this.Controls.Add(this.label9);
this.Controls.Add(this.textBox5);
this.Controls.Add(this.label10);
this.Controls.Add(this.label7);
this.Controls.Add(this.textBox4);
this.Controls.Add(this.label8);
this.Controls.Add(this.label6);
this.Controls.Add(this.label5);
this.Controls.Add(this.label4);
this.Controls.Add(this.button1);
this.Controls.Add(this.textBox3);
this.Controls.Add(this.label3);
this.Controls.Add(this.textBox2);
this.Controls.Add(this.label2);
this.Controls.Add(this.textBox1);
this.Controls.Add(this.label1);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
this.Name = "FrmProScreen3";
this.Text = " ";
this.Load += new System.EventHandler(this.FrmProScreen3_Load);
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.Label label1;
private System.Windows.Forms.TextBox textBox1;
private System.Windows.Forms.TextBox textBox2;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.TextBox textBox3;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.Button button1;
private System.Windows.Forms.Label label4;
private System.Windows.Forms.Label label5;
private System.Windows.Forms.Label label6;
private System.Windows.Forms.Label label7;
private System.Windows.Forms.TextBox textBox4;
private System.Windows.Forms.Label label8;
private System.Windows.Forms.Label label9;
private System.Windows.Forms.TextBox textBox5;
private System.Windows.Forms.Label label10;
private System.Windows.Forms.Label label11;
private System.Windows.Forms.TextBox textBox6;
private System.Windows.Forms.Label label12;
}
}

710
PunchingMistake/FrmProScreen3.cs

@ -0,0 +1,710 @@
//using PunchAndWeld.DataSouce;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace PunchingMistake
{
public partial class FrmProScreen3 : Form
{
OtherPart parts = new OtherPart();
private static string productID3 = "", productID4 = "", productID5 = "", productID6 = "", productID7 = "", productID8 = "";
int[] isCheck = new int[6] { 0, 0, 0, 0, 0, 0 };
private List<DataRow> _needScanRows = new List<DataRow>();
public FrmProScreen3(List<DataRow> needScanRows)
{
InitializeComponent();
this._needScanRows = needScanRows;
}
public FrmProScreen3(OtherPart part)
{
InitializeComponent();
parts = part;
}
private void FrmProScreen3_Load(object sender, EventArgs e)
{
textBox1.Text = "";
textBox2.Text = "";
textBox3.Text = "";
textBox4.Text = "";
textBox5.Text = "";
textBox6.Text = "";
textBox1.Enabled = false;
textBox2.Enabled = false;
textBox3.Enabled = false;
textBox4.Enabled = false;
textBox5.Enabled = false;
textBox6.Enabled = false;
label4.Text = "";
label5.Text = "";
label6.Text = "";
label7.Text = "";
label9.Text = "";
label11.Text = "";
int[] isCheck = new int[6] { 0, 0, 0, 0, 0, 0 };
if (_needScanRows.Count > 0)
{
label4.Text = _needScanRows[0]["PartNo2"].ToString();
textBox1.Enabled = true;
textBox1.Focus();
}
if (_needScanRows.Count > 1)
{
label5.Text = _needScanRows[1]["PartNo2"].ToString();
textBox2.Enabled = true;
textBox2.Focus();
}
if (_needScanRows.Count > 2)
{
label6.Text = _needScanRows[2]["PartNo2"].ToString();
textBox3.Enabled = true;
textBox3.Focus();
}
if (_needScanRows.Count > 3)
{
label7.Text = _needScanRows[3]["PartNo2"].ToString();
textBox4.Enabled = true;
textBox4.Focus();
}
if (_needScanRows.Count > 4)
{
label9.Text = _needScanRows[4]["PartNo2"].ToString();
textBox5.Enabled = true;
textBox5.Focus();
}
if (_needScanRows.Count > 5)
{
label11.Text = _needScanRows[5]["PartNo2"].ToString();
textBox6.Enabled = true;
textBox6.Focus();
}
}
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
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 = "";
}
}
}
private void textBox2_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
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 = "";
}
}
}
private void textBox3_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
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();
}
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
{
MessageBox.Show("扫入条码与总成不匹配,请检查后再次扫描");
textBox4.Text = "";
}
}
}
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)
{
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)
{
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 = "";
}
}
}
}
}

120
PunchingMistake/FrmProScreen3.resx

@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

656
PunchingMistake/FrmQualityNew.Designer.cs

@ -0,0 +1,656 @@
namespace PunchingMistake
{
partial class FrmQualityNew
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
try
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
catch
{
}
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FrmQualityNew));
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;
}
}

1544
PunchingMistake/FrmQualityNew.cs

File diff suppressed because it is too large

475
PunchingMistake/FrmQualityNew.resx

@ -0,0 +1,475 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="pictureBox1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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
RK5CYII=
</value>
</data>
</root>

632
PunchingMistake/Function2.cs

@ -0,0 +1,632 @@
using DBUtility;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace PunchingMistake
{
public class Function2
{
public static DataTable GetProScreen(string stationNo)
{
DataTable res = new DataTable();
try
{
string sql = @"
select top 1 a.ID, d.[Des], a.OrderNo, a.PartNo,b.ProductName,a.OrderCount,a.OKCount,a.BadCount,a.RepairCount, c.PartNo1, c.PartNo2, b.IsHigh,d.StationNo
from tb_ZP_MK_Plan a
left join tb_Product b
on a.PartNo = b.PartNo
left join tb_Bom_MK c
on b.PartNo = c.PartNo1
left join tb_Station d
on c.StationNo = d.StationNo
where d.StationNo = '" + stationNo + @"'
and a.State = 1
order by CreateTime desc
";
res = SqlHelper.GetDataDateTable(SqlHelper.SqlConnString, CommandType.Text, sql, null);
if (res == null || res.Rows.Count < 1)
{
sql = @"
select top 1 a.ID, d.[Des], a.OrderNo, a.PartNo,b.ProductName,a.OrderCount,a.OKCount,a.BadCount,a.RepairCount, c.PartNo1, c.PartNo2, b.IsHigh,d.StationNo
from tb_ZP_MK_Plan a
left join tb_Product b
on a.PartNo = b.PartNo
left join tb_Bom_MK c
on b.PartNo = c.PartNo1
left join tb_Station d
on c.StationNo = d.StationNo
where d.StationNo = '" + stationNo + @"'
and a.State = 0
order by CreateTime desc
";
res = SqlHelper.GetDataDateTable(SqlHelper.SqlConnString, CommandType.Text, sql, null);
}
if (res == null || res.Rows.Count < 1)
{
sql = @"
select top 1 a.ID, d.[Des], a.OrderNo, a.PartNo,b.ProductName,a.OrderCount,a.OKCount,a.BadCount,a.RepairCount, c.PartNo1, c.PartNo2, b.IsHigh,d.StationNo
from tb_ZP_MK_Plan a
left join tb_Product b
on a.PartNo = b.PartNo
left join tb_Bom_MK c
on b.PartNo = c.PartNo1
left join tb_Station d
on c.StationNo = d.StationNo
where d.StationNo = '" + stationNo + @"'
and a.State = 2
order by CreateTime desc
";
res = SqlHelper.GetDataDateTable(SqlHelper.SqlConnString, CommandType.Text, sql, null);
}
return res;
}
catch (Exception ex)
{
LogHelper.WriteLog(ex.ToString() );
return res;
}
}
public static DataTable GetProScreenPlan(string id, string stationNo, string plan)
{
DataTable res = new DataTable();
try
{
if (plan == "下一计划")
{
#region 查询当前计划时间
string time = "";
string sql;
string sqll = @" select CreateTime from tb_ZP_MK_Plan where ID = '" + id + @"' ";
DataTable dt = SqlHelper.GetDataDateTable(SqlHelper.SqlConnString, CommandType.Text, sqll, null);
if (dt != null && dt.Rows.Count > 0)
{
time = dt.Rows[0][0].ToString();
time = Tools.NumericParse.StringToDateTime(time).Value.AddSeconds(1).ToString("yyyy-MM-dd HH:mm:ss");
}
#endregion
#region 查询下一计划
DateTime dtime = DateTime.Now;
DateTime.TryParse(time, out dtime);
sql = @" select top 1 a.ID, d.[Des], a.OrderNo, a.PartNo,b.ProductName,a.OrderCount,a.OKCount,a.BadCount,a.RepairCount, c.PartNo1, c.PartNo2, b.IsHigh,d.StationNo
from tb_ZP_MK_Plan a
left join tb_Product b
on a.PartNo = b.PartNo
left join tb_Bom_MK c
on b.PartNo = c.PartNo1
left join tb_Station d
on c.StationNo = d.StationNo
where d.StationNo = '" + stationNo + @"'
and State <> 3
and a.CreateTime > '" + dtime.ToString("yyyy-MM-dd HH:mm:ss") + @"'
order by CreateTime asc
";
res = SqlHelper.GetDataDateTable(SqlHelper.SqlConnString, CommandType.Text, sql, null);
#endregion
}
else if (plan == "上一计划")
{
#region 查询当前计划时间
string time = "";
string sql;
string sqll = @" select CreateTime from tb_ZP_MK_Plan where ID = '" + id + @"' ";
DataTable dt = SqlHelper.GetDataDateTable(SqlHelper.SqlConnString, CommandType.Text, sqll, null);
if (dt != null && dt.Rows.Count > 0)
{
time = dt.Rows[0][0].ToString();
//time = Tools.NumericParse.StringToDateTime(time).Value.AddSeconds(-1).ToString("yyyy-MM-dd HH:mm:ss");
}
#endregion
#region 查询上一计划
DateTime dtime = DateTime.Now;
DateTime.TryParse(time, out dtime);
sql = @"
select top 1 a.ID, d.[Des], a.OrderNo, a.PartNo,b.ProductName,a.OrderCount,a.OKCount,a.BadCount,a.RepairCount, c.PartNo1, c.PartNo2, b.IsHigh,d.StationNo
from tb_ZP_MK_Plan a
left join tb_Product b
on a.PartNo = b.PartNo
left join tb_Bom_MK c
on b.PartNo = c.PartNo1
left join tb_Station d
on c.StationNo = d.StationNo
where d.StationNo = '" + stationNo + @"'
and State <> 3
and a.CreateTime < '" + dtime.ToString("yyyy-MM-dd HH:mm:ss") + @"'
order by CreateTime asc
";
res = SqlHelper.GetDataDateTable(SqlHelper.SqlConnString, CommandType.Text, sql, null);
#endregion
}
else if (plan == "当前计划")
{
string sql = @"
select a.ID, d.[Des], a.OrderNo, a.PartNo,b.ProductName,a.OrderCount,a.OKCount,a.BadCount,a.RepairCount, c.PartNo1, c.PartNo2, b.IsHigh,d.StationNo
from tb_ZP_MK_Plan a
left join tb_Product b
on a.PartNo = b.PartNo
left join tb_Bom_MK c
on b.PartNo = c.PartNo1
left join tb_Station d
on c.StationNo = d.StationNo
where a.ID='" + id + @"'
";
res = SqlHelper.GetDataDateTable(SqlHelper.SqlConnString, CommandType.Text, sql, null);
}
return res;
}
catch (Exception ex)
{
LogHelper.WriteLog(ex.ToString());
return res;
}
}
/// <summary>
/// 塑件码是否通过了Wms报工
/// </summary>
/// <param name="sjBarCode"></param>
/// <returns></returns>
public static DataTable SearchStockIn(string sjBarCode)
{
DataTable res = new DataTable();
try
{
string sql = $" select * from tb_StockIn where barcode='{sjBarCode}' and Pass=1";
res = SqlHelper.GetDataDateTable(SqlHelper.SqlConnString, CommandType.Text, sql, null);
return res;
}
catch(Exception ex)
{
LogHelper.WriteLog("小件装配,查询StockIn发生异常,异常原因:" + ex.ToString());
return res;
}
}
public static DataTable SearchPunchCodeRecord(string sjBarCode)
{
DataTable res = new DataTable();
try
{
string sql = $" select Top 1 * from tb_Punch_Code_Record where barcode='{sjBarCode}' order by id desc ";
res = SqlHelper.GetDataDateTable(SqlHelper.SqlConnString, CommandType.Text, sql, null);
return res;
}
catch (Exception ex)
{
LogHelper.WriteLog("小件装配,查询Punch_Code_Record发生异常,异常原因:" + ex.ToString());
return res;
}
}
public static DataTable GetProductInfo(string stockNo)
{
DataTable res = new DataTable();
try
{
string sql = $" select Top 1 * from tb_Product where StockNo='{stockNo}' order by id desc ";
res = SqlHelper.GetDataDateTable(SqlHelper.SqlConnString, CommandType.Text, sql, null);
return res;
}
catch (Exception ex)
{
LogHelper.WriteLog("小件装配,tb_Product,异常原因:" + ex.ToString());
return res;
}
}
/// <summary>
/// 半成品条码,找总成条码
/// </summary>
/// <param name="partCode"></param>
/// <param name="stationNo"></param>
/// <returns></returns>
public static string GetAssemblePartCode(string partCode,string stationNo)
{
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 ";
res = SqlHelper.GetDataDateTable(SqlHelper.SqlConnString, CommandType.Text, sql, null);
if(res .Rows.Count > 1)
{
throw new Exception($"半成品条码[{partCode}]在工位[{stationNo}]上配置存在多个,请检查BOM配置.");
}
else if (res.Rows.Count == 0)
{
throw new Exception($"半成品条码[{partCode}]在工位[{stationNo}]上未进行配置,请检查BOM配置.");
}
else
{
return res.Rows[0]["PartNo1"].ToString();
}
}
catch (Exception ex)
{
LogHelper.WriteLog("小件装配,在表tb_Bom_MK中根据半成品条码查询总成零件号错误,异常原因:" + ex.ToString());
throw ex;
}
}
public static DataTable GetBomTable(string assemblePartCode,string stationNo)
{
DataTable res = new DataTable();
try
{
string sql = $" select Top 1 * from tb_Bom_MK where PartNo1='{assemblePartCode}' and StationNo='{stationNo}' order by id desc ";
res = SqlHelper.GetDataDateTable(SqlHelper.SqlConnString, CommandType.Text, sql, null);
return res;
}
catch (Exception ex)
{
LogHelper.WriteLog($"小件装配,总成零件号[{assemblePartCode}],工位[{stationNo}]在表tb_Bom_MK中查询发生异常,异常原因:" + ex.ToString());
throw ex;
}
}
public static string GetStation(string stationNo)
{
string res = "";
try
{
string sql = @" select [des] from tb_Station where StationNo = '" + stationNo + @"' ";
object aa = SqlHelper.ExecuteScalar(SqlHelper.SqlConnString, CommandType.Text, sql, null);
if (aa != null)
{
res = aa.ToString();
}
return res;
}
catch (Exception ex)
{
//LogHelper.WriteErrLogBase(ex.ToString(), MethodBase.GetCurrentMethod().Name);
return res;
}
}
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)
{
int res = 0;
try
{
string sql = @"
INSERT INTO [dbo].[tb_Punch_Code_Record]
([ID]
,[barcode]
,[BcpID]
,[ZcID]
,[OrderNo]
,[WorkClass]
,[CreateTime], PlanID,SerialNo
,barCode1,barCode2,barCode3
,barCode4,barCode5,barCode6,StationId,StationDescription)
VALUES
((select newid())
,'" + barcode + @"'
,'" + BcpID + @"'
,'" + ZcID + @"'
,'" + OrderNo + @"'
,'" + WorkClass + @"'
,(select getdate()), '" + planID + @"','" + SerialNo + @"'
,'" + barCode1 + @"','" + barCode2 + @"','" + barCode3 + @"'
,'" + barCode4 + @"','" + barCode5 + @"','" + barCode6 + @"','" + stationId + @"','" + description + "@')";
res = SqlHelper.ExecuteNonQuery(SqlHelper.SqlConnString, CommandType.Text, sql, null);
return res;
}
catch (Exception ex)
{
//LogHelper.WriteErrLogBase(ex.ToString(), MethodBase.GetCurrentMethod().Name);
return res;
}
}
public static string SerialNo(string partNo, string batch)
{
string res = "";
try
{
string temp_no = partNo + "." + batch;
string sql = @"select top 1 SerialNo from tb_Punch_Code_Record where SerialNo like '" + temp_no +
@"%' order by CreateTime desc";
object dt = SqlHelper.ExecuteScalar(SqlHelper.SqlConnString, CommandType.Text, sql, null);
if (dt != null)
{
res = dt.ToString();
}
}
catch (Exception ex)
{
//LogHelper.WriteErrLogBase(ex.ToString(), MethodBase.GetCurrentMethod().Name);
throw ex;
}
return res;
}
public static int SaveZcCode(string barcode, string partNo)
{
int res = 0;
try
{
string sql = @" update tb_StockIn set ZcCode = '" + partNo + "' where barcode = '" + barcode + "' ";
res = SqlHelper.ExecuteNonQuery(SqlHelper.SqlConnString, CommandType.Text, sql, null);
return res;
}
catch (Exception ex)
{
//LogHelper.WriteErrLogBase(ex.ToString(), MethodBase.GetCurrentMethod().Name);
return res;
}
}
public static int AddCompleteCount(string ID)
{
int res = 0;
try
{
string sql = " update tb_Plan_Punch set CompleteCount = CompleteCount + 1 where ID = '" + ID + "' ";
res = SqlHelper.ExecuteNonQuery(SqlHelper.SqlConnString, CommandType.Text, sql, null);
return res;
}
catch (Exception ex)
{
//LogHelper.WriteErrLogBase(ex.ToString(), MethodBase.GetCurrentMethod().Name);
return res;
}
}
public static bool CheckPlanCompleted(string ID)
{
bool res = false;
try
{
string sql = @"
select IsFinish from tb_Plan_Punch where ID = '" + ID + @"'
";
object aa = SqlHelper.ExecuteScalar(SqlHelper.SqlConnString, CommandType.Text, sql, null);
if (aa != null)
{
string bb = aa.ToString();
if (bb == "3")
{
res = true;
}
else
{
res = false;
}
}
return res;
}
catch (Exception ex)
{
//LogHelper.WriteErrLogBase(ex.ToString(), MethodBase.GetCurrentMethod().Name);
return res;
}
}
public static string GetProductID(string barcode)
{
string res = "";
try
{
//LogHelper.WriteSysLogBase("[一码到底]扫入条码:" + barcode, MethodBase.GetCurrentMethod().Name);
if (barcode.Length != 20)
{
barcode = UniteBarCodeToOne(barcode);
}
string sql = @" select ProductID
from tb_Product
where partNo = ( 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();
else
{
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)
{
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;
}
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 UniteBarCodeToOne(string barcode)
{
string res = barcode;
if (!string.IsNullOrWhiteSpace(barcode))
{
if (barcode.Contains("."))
{
res = TransToBarCodeOne(barcode);
}
}
return res;
}
public static string TransToBarCodeOne(string barcode)
{
string res = barcode;
try
{
string sql = @"
SELECT TOP 1 OneBarCode FROM v_Code WHERE BarCode = '" + barcode + @"'
";
object aa = SqlHelper.ExecuteScalar(SqlHelper.SqlConnString, CommandType.Text, sql, null);
if (aa != null)
{
res = aa.ToString();
}
else
{
string sql2 = @" SELECT TOP 1 OneBarCode FROM [10.60.101.9].[BBMPT].[dbo].[tb_BarCode] where BarCode = '" + barcode + @"' ";
object bb = SqlHelper.ExecuteScalar(SqlHelper.SqlConnString, CommandType.Text, sql2, null);
if (bb != null)
{
res = bb.ToString();
}
}
return res;
}
catch (Exception ex)
{
//LogHelper.WriteErrLogBase(ex.ToString(), MethodBase.GetCurrentMethod().Name);
return res;
}
}
public static string GetPartNoByID(string id)
{
string res = "";
try
{
string sql = @"select PartNo from tb_Product where ProductID ='" + id + @"'";
object dt = SqlHelper.ExecuteScalar(SqlHelper.SqlConnString, CommandType.Text, sql, null);
if (dt != null)
{
res = dt.ToString();
}
}
catch (Exception ex)
{
//LogHelper.WriteErrLogBase(ex.ToString(), MethodBase.GetCurrentMethod().Name);
}
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; }
}
}

BIN
PunchingMistake/Images/assembleHead.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

BIN
PunchingMistake/Images/assembleLine.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

51
PunchingMistake/LogHelper.cs

@ -0,0 +1,51 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace PunchingMistake
{
public class LogHelper
{
private static string CodeVersion = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString().Trim();
//<summary>
//保存日志的文件夹
//<summary>
private static string logPath = AppDomain.CurrentDomain.BaseDirectory + @"log\";
/// <summary>
/// 写日志
/// </summary>
/// <param name="msg"></param>
/// <param name="errorFile"></param>
public static void WriteLog(string msg, string errorFile = "")
{
try
{
if (string.IsNullOrEmpty(msg))
{
return;
}
else
{
msg = string.Format("程序版本号:{0},Time:{1},Message:{2}", CodeVersion, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.ffff"), msg);
}
//如果不存在log文件夹 则创建
if (!Directory.Exists(logPath))
{
Directory.CreateDirectory(logPath);
}
StreamWriter sw = File.AppendText(logPath + errorFile + DateTime.Now.ToString("yyyyMMdd") + ".Log");
sw.WriteLine(msg);
sw.Close();
}
catch (Exception ex)
{
}
}
}
}

36
PunchingMistake/PunchingMistake.csproj

@ -32,11 +32,19 @@
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="Interop.grdes6Lib">
<HintPath>DLL\Interop.grdes6Lib.dll</HintPath>
<EmbedInteropTypes>True</EmbedInteropTypes>
</Reference>
<Reference Include="Interop.grdesLib, Version=5.0.0.0, Culture=neutral, processorArchitecture=x86">
<SpecificVersion>False</SpecificVersion>
<EmbedInteropTypes>True</EmbedInteropTypes>
<HintPath>bin\Debug\Interop.grdesLib.dll</HintPath>
</Reference>
<Reference Include="Interop.gregn6Lib">
<HintPath>DLL\Interop.gregn6Lib.dll</HintPath>
<EmbedInteropTypes>True</EmbedInteropTypes>
</Reference>
<Reference Include="Interop.grproLib">
<HintPath>..\..\BjbmptMesNgccNew\Stone.Common.Dlls\Interop.grproLib.dll</HintPath>
<EmbedInteropTypes>True</EmbedInteropTypes>
@ -58,18 +66,33 @@
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="..\InjectionPC\ReportHelper.cs">
<Link>ReportHelper.cs</Link>
</Compile>
<Compile Include="Form1.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Form1.Designer.cs">
<DependentUpon>Form1.cs</DependentUpon>
</Compile>
<Compile Include="FrmAssemble.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="FrmAssemble.Designer.cs">
<DependentUpon>FrmAssemble.cs</DependentUpon>
</Compile>
<Compile Include="FrmLogin.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="FrmLogin.Designer.cs">
<DependentUpon>FrmLogin.cs</DependentUpon>
</Compile>
<Compile Include="FrmProScreen3.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="FrmProScreen3.Designer.cs">
<DependentUpon>FrmProScreen3.cs</DependentUpon>
</Compile>
<Compile Include="FrmQualityNew.cs">
<SubType>Form</SubType>
</Compile>
@ -95,9 +118,15 @@
<EmbeddedResource Include="Form1.resx">
<DependentUpon>Form1.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="FrmAssemble.resx">
<DependentUpon>FrmAssemble.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="FrmLogin.resx">
<DependentUpon>FrmLogin.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="FrmProScreen3.resx">
<DependentUpon>FrmProScreen3.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="FrmQualityNew.resx">
<DependentUpon>FrmQualityNew.cs</DependentUpon>
</EmbeddedResource>
@ -125,6 +154,7 @@
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
<None Include="Report\总成条码MI.grf" />
</ItemGroup>
<ItemGroup>
<None Include="App.config" />
@ -150,6 +180,12 @@
<Name>PaintingPC</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<Content Include="Images\assembleHead.png" />
</ItemGroup>
<ItemGroup>
<Folder Include="DLL\" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.

BIN
PunchingMistake/Report/总成条码MI.grf

Binary file not shown.
Loading…
Cancel
Save