check order text null or empty

This commit is contained in:
2025-11-03 17:42:36 +08:00
parent 081f3481bd
commit 506f537347

View File

@@ -690,238 +690,237 @@ namespace TetraPackOCR
this.btn_OrderNum.Enabled = false; this.btn_OrderNum.Enabled = false;
//通过订单号获取表格中需要的值 //通过订单号获取表格中需要的值
string order = txt_OrderNum.Text; string order = txt_OrderNum.Text;
string laststr = order.Substring(order.Length - 1); if (string.IsNullOrEmpty(order))
{
log.Warn("订单号为空,请输入订单号。");
btn_OrderNum.Enabled = true;
return;
}
string laststr;
if (order.Length > 1)
laststr = order.Substring(order.Length - 1);
else
laststr = order;
if (laststr == "C") if (laststr == "C")
{ {
Coprinted_ordeFlag = true; Coprinted_ordeFlag = true;
if (order == null) log.Info("当前订单号为:" + order);
//读取表格内容
ExcelPackage.License.SetNonCommercialOrganization("My Noncommercial organization");
using (ExcelPackage package = new ExcelPackage(execlFileName))
{ {
log.Warn("订单号为空,请输入订单号。"); sheet1 = package.Workbook.Worksheets["P2生成数据"];
return; sheet2 = package.Workbook.Worksheets["QSV对应产品规格和梯度"];
} sheet3 = package.Workbook.Worksheets["产品规格对应排布方式"];
else //根据订单遍历sheet1 找Sequence QSV NumOFLanes 字符
{ for (int i = 1; i < sheet1.Dimension.Rows; i++)
log.Info("当前订单号为:" + order);
//读取表格内容
ExcelPackage.License.SetNonCommercialOrganization("My Noncommercial organization");
using (ExcelPackage package = new ExcelPackage(execlFileName))
{ {
sheet1 = package.Workbook.Worksheets["P2生成数据"]; if (sheet1.GetValue(i, 3) != null)
sheet2 = package.Workbook.Worksheets["QSV对应产品规格和梯度"];
sheet3 = package.Workbook.Worksheets["产品规格对应排布方式"];
//根据订单遍历sheet1 找Sequence QSV NumOFLanes 字符
for (int i = 1; i < sheet1.Dimension.Rows; i++)
{ {
if (sheet1.GetValue(i, 3) != null) if (sheet1.Cells[i, 3].Value.ToString() == order)
{ {
if (sheet1.Cells[i, 3].Value.ToString() == order) Sequence = sheet1.Cells[i, 2].Value.ToString();
QSV = sheet1.Cells[i, 4].Value.ToString();
this.lbl_QSVShow.Text = QSV;
log.Info("当前订单QSV:" + QSV);
NumberOfLanes = Convert.ToInt32(sheet1.Cells[i, 5].Value.ToString());
log.Info("当前订单Number Of Lanes:" + NumberOfLanes);
this.lbl_NOFShow.Text = sheet1.Cells[i, 5].Value.ToString();
Design = sheet1.Cells[i, 7].Value.ToString();
Layers = sheet1.Cells[i, 8].Value.ToString();
Colours = sheet1.Cells[i, 9].Value.ToString();
int num = 0;
for (int k = 0; k < 10; k++)
{ {
Sequence = sheet1.Cells[i, 2].Value.ToString(); string lanes = sheet1.Cells[i + k, 6].Value.ToString();
QSV = sheet1.Cells[i, 4].Value.ToString(); string design = sheet1.Cells[i + k, 7].Value.ToString();
this.lbl_QSVShow.Text = QSV; string layers = sheet1.Cells[i + k, 8].Value.ToString();
log.Info("当前订单QSV:" + QSV); string colours = sheet1.Cells[i + k, 9].Value.ToString();
NumberOfLanes = Convert.ToInt32(sheet1.Cells[i, 5].Value.ToString()); lanes = lanes.Substring(1, lanes.Length - 2);
log.Info("当前订单Number Of Lanes:" + NumberOfLanes); string[] tmp = lanes.Split(',');
this.lbl_NOFShow.Text = sheet1.Cells[i, 5].Value.ToString(); num += tmp.Length;
Design = sheet1.Cells[i, 7].Value.ToString(); foreach (string lan in tmp)
Layers = sheet1.Cells[i, 8].Value.ToString();
Colours = sheet1.Cells[i, 9].Value.ToString();
int num = 0;
for (int k = 0; k < 10; k++)
{ {
string lanes = sheet1.Cells[i + k, 6].Value.ToString(); int lanInt = Convert.ToInt32(lan);
string design = sheet1.Cells[i + k, 7].Value.ToString(); ocrTextRequest[lanInt] = ExecelGetOcrText(design, layers);
string layers = sheet1.Cells[i + k, 8].Value.ToString();
string colours = sheet1.Cells[i + k, 9].Value.ToString();
lanes = lanes.Substring(1, lanes.Length - 2);
string[] tmp = lanes.Split(',');
num += tmp.Length;
foreach (string lan in tmp)
{
int lanInt = Convert.ToInt32(lan);
ocrTextRequest[lanInt] = ExecelGetOcrText(design, layers);
}
listBox1.Items.Add(sheet1.Cells[i + k, 6].Value.ToString());
listBox1.Items.Add(string.Join(",", ocrTextRequest[Convert.ToInt32(tmp[0])]));
if (num >= NumberOfLanes)
break;
} }
listBox1.Items.Add(sheet1.Cells[i + k, 6].Value.ToString());
break; listBox1.Items.Add(string.Join(",", ocrTextRequest[Convert.ToInt32(tmp[0])]));
}
}
}
if (!string.IsNullOrEmpty(QSV)) if (num >= NumberOfLanes)
{
string qsv;
//根据得到的QSV遍历sheet2 找产品规格和宽度梯度
for (int j = 1; j <= sheet2.Dimension.Rows; j++)
{
qsv = sheet2.Cells[j, 1].Value.ToString();
if (qsv == QSV)
{
ProductStandard = sheet2.Cells[j, 2].Value.ToString();
this.lbl_ProductStandardShow.Text = ProductStandard;
log.Info("当前订单产品编号:" + ProductStandard);
width = Convert.ToDouble(sheet2.Cells[j, 3].Value.ToString());
this.lbl_widthShow.Text = sheet2.Cells[j, 3].Value.ToString();
log.Info("当前订单幅宽:" + width);
Gradient = Convert.ToDouble(sheet2.Cells[j, 4].Value.ToString());
this.lbl_GradientShow.Text = sheet2.Cells[j, 4].Value.ToString();
log.Info("当前订单梯度:" + Gradient);
break;
}
}
if (string.IsNullOrEmpty(ProductStandard))
{
log.Debug("请检查订单号是否正确");
return;
}
//根据产品规格获取距离坐标
for (int n = 1; n < sheet3.Dimension.Rows; n++)
{
if (sheet3.GetValue(n, 1) != null)
{
if (sheet3.Cells[n, 1].Value.ToString() == ProductStandard)
{
string str = sheet3.Cells[n + Layers.Split(',').Length - 1, 4].Value.ToString();
string[] x_y = str.Split(',');
string[] X = x_y[0].Split(':');
string[] Y = x_y[1].Split(':');
DistX = Convert.ToDouble(X[1].Replace("mm", ""));
this.lbl_DistXShow.Text = X[1].Replace("mm", "");
log.Info("当前订单X偏移:" + DistX);
DistY = Convert.ToDouble(Y[1].Replace("mm", ""));
this.lbl_DistYShow.Text = Y[1].Replace("mm", "");
log.Info("当前订单Y偏移:" + DistY);
break; break;
}
} }
break;
} }
if (DistX == 0 || DistY == 0)
{
log.Debug("请检查订单号是否正确");
return;
}
log.Info("相关数据已获取完成,且已显示在界面中,请查看。");
} }
else }
if (!string.IsNullOrEmpty(QSV))
{
string qsv;
//根据得到的QSV遍历sheet2 找产品规格和宽度梯度
for (int j = 1; j <= sheet2.Dimension.Rows; j++)
{
qsv = sheet2.Cells[j, 1].Value.ToString();
if (qsv == QSV)
{
ProductStandard = sheet2.Cells[j, 2].Value.ToString();
this.lbl_ProductStandardShow.Text = ProductStandard;
log.Info("当前订单产品编号:" + ProductStandard);
width = Convert.ToDouble(sheet2.Cells[j, 3].Value.ToString());
this.lbl_widthShow.Text = sheet2.Cells[j, 3].Value.ToString();
log.Info("当前订单幅宽:" + width);
Gradient = Convert.ToDouble(sheet2.Cells[j, 4].Value.ToString());
this.lbl_GradientShow.Text = sheet2.Cells[j, 4].Value.ToString();
log.Info("当前订单梯度:" + Gradient);
break;
}
}
if (string.IsNullOrEmpty(ProductStandard))
{ {
log.Debug("请检查订单号是否正确"); log.Debug("请检查订单号是否正确");
btn_OrderNum.Enabled = true;
return; return;
} }
//根据产品规格获取距离坐标
for (int n = 1; n < sheet3.Dimension.Rows; n++)
{
if (sheet3.GetValue(n, 1) != null)
{
if (sheet3.Cells[n, 1].Value.ToString() == ProductStandard)
{
string str = sheet3.Cells[n + Layers.Split(',').Length - 1, 4].Value.ToString();
string[] x_y = str.Split(',');
string[] X = x_y[0].Split(':');
string[] Y = x_y[1].Split(':');
DistX = Convert.ToDouble(X[1].Replace("mm", ""));
this.lbl_DistXShow.Text = X[1].Replace("mm", "");
log.Info("当前订单X偏移:" + DistX);
DistY = Convert.ToDouble(Y[1].Replace("mm", ""));
this.lbl_DistYShow.Text = Y[1].Replace("mm", "");
log.Info("当前订单Y偏移:" + DistY);
break;
}
}
}
if (DistX == 0 || DistY == 0)
{
log.Debug("请检查订单号是否正确");
btn_OrderNum.Enabled = true;
return;
}
log.Info("相关数据已获取完成,且已显示在界面中,请查看。");
}
else
{
log.Debug("请检查订单号是否正确");
btn_OrderNum.Enabled = true;
return;
} }
} }
} }
else else
{ {
Coprinted_ordeFlag = false; Coprinted_ordeFlag = false;
if (order == null) log.Info("当前订单号为:" + order);
//读取表格内容
ExcelPackage.License.SetNonCommercialOrganization("My Noncommercial organization");
using (ExcelPackage package = new ExcelPackage(execlFileName))
{ {
log.Warn("订单号为空,请输入订单号。"); sheet1 = package.Workbook.Worksheets["P2生成数据"];
return; sheet2 = package.Workbook.Worksheets["QSV对应产品规格和梯度"];
} sheet3 = package.Workbook.Worksheets["产品规格对应排布方式"];
else //根据订单遍历sheet1 找QSV NumOFLanes 字符
{ for (int i = 1; i < sheet1.Dimension.Rows; i++)
log.Info("当前订单号为:" + order);
//读取表格内容
ExcelPackage.License.SetNonCommercialOrganization("My Noncommercial organization");
using (ExcelPackage package = new ExcelPackage(execlFileName))
{ {
sheet1 = package.Workbook.Worksheets["P2生成数据"]; if (sheet1.GetValue(i, 3) != null)
sheet2 = package.Workbook.Worksheets["QSV对应产品规格和梯度"];
sheet3 = package.Workbook.Worksheets["产品规格对应排布方式"];
//根据订单遍历sheet1 找QSV NumOFLanes 字符
for (int i = 1; i < sheet1.Dimension.Rows; i++)
{ {
if (sheet1.GetValue(i, 3) != null) if (sheet1.Cells[i, 3].Value.ToString() == order)
{ {
if (sheet1.Cells[i, 3].Value.ToString() == order) QSV = sheet1.Cells[i, 4].Value.ToString();
this.lbl_QSVShow.Text = QSV;
log.Info("当前订单QSV:" + QSV);
NumberOfLanes = Convert.ToInt32(sheet1.Cells[i, 5].Value.ToString());
log.Info("当前订单Number Of Lanes:" + NumberOfLanes);
this.lbl_NOFShow.Text = sheet1.Cells[i, 5].Value.ToString();
//获取字符 并显示在界面还需处理先预留在这
Design = sheet1.Cells[i, 7].Value.ToString();
Layers = sheet1.Cells[i, 8].Value.ToString();
Colours = sheet1.Cells[i, 9].Value.ToString();
for (int lan = 1; lan <= NumberOfLanes; lan++)
{ {
QSV = sheet1.Cells[i, 4].Value.ToString(); ocrTextRequest[lan] = ExecelGetOcrText(Design, Layers);
this.lbl_QSVShow.Text = QSV;
log.Info("当前订单QSV:" + QSV);
NumberOfLanes = Convert.ToInt32(sheet1.Cells[i, 5].Value.ToString());
log.Info("当前订单Number Of Lanes:" + NumberOfLanes);
this.lbl_NOFShow.Text = sheet1.Cells[i, 5].Value.ToString();
//获取字符 并显示在界面还需处理先预留在这
Design = sheet1.Cells[i, 7].Value.ToString();
Layers = sheet1.Cells[i, 8].Value.ToString();
Colours = sheet1.Cells[i, 9].Value.ToString();
for (int lan = 1; lan <= NumberOfLanes; lan++)
{
ocrTextRequest[lan] = ExecelGetOcrText(Design, Layers);
}
listBox1.Items.Add(sheet1.Cells[i, 6].Value.ToString());
listBox1.Items.Add(string.Join(",", ocrTextRequest[1]));
break;
} }
} listBox1.Items.Add(sheet1.Cells[i, 6].Value.ToString());
listBox1.Items.Add(string.Join(",", ocrTextRequest[1]));
break;
}
} }
if (!string.IsNullOrEmpty(QSV)) }
if (!string.IsNullOrEmpty(QSV))
{
string qsv;
//根据得到的QSV遍历sheet2 找产品规格和宽度梯度
for (int j = 1; j <= sheet2.Dimension.Rows; j++)
{ {
string qsv; qsv = sheet2.Cells[j, 1].Value.ToString();
//根据得到的QSV遍历sheet2 找产品规格和宽度梯度 if (qsv == QSV)
for (int j = 1; j <= sheet2.Dimension.Rows; j++)
{ {
qsv = sheet2.Cells[j, 1].Value.ToString(); ProductStandard = sheet2.Cells[j, 2].Value.ToString();
if (qsv == QSV) this.lbl_ProductStandardShow.Text = ProductStandard;
{ log.Info("当前订单产品编号:" + ProductStandard);
ProductStandard = sheet2.Cells[j, 2].Value.ToString(); width = Convert.ToDouble(sheet2.Cells[j, 3].Value.ToString());
this.lbl_ProductStandardShow.Text = ProductStandard; this.lbl_widthShow.Text = sheet2.Cells[j, 3].Value.ToString();
log.Info("当前订单产品编号:" + ProductStandard); log.Info("当前订单幅宽:" + width);
width = Convert.ToDouble(sheet2.Cells[j, 3].Value.ToString()); Gradient = Convert.ToDouble(sheet2.Cells[j, 4].Value.ToString());
this.lbl_widthShow.Text = sheet2.Cells[j, 3].Value.ToString(); this.lbl_GradientShow.Text = sheet2.Cells[j, 4].Value.ToString();
log.Info("当前订单幅宽:" + width); log.Info("当前订单梯度:" + Gradient);
Gradient = Convert.ToDouble(sheet2.Cells[j, 4].Value.ToString()); break;
this.lbl_GradientShow.Text = sheet2.Cells[j, 4].Value.ToString();
log.Info("当前订单梯度:" + Gradient);
break;
}
} }
if (string.IsNullOrEmpty(ProductStandard))
{
log.Debug("请检查订单号是否正确");
return;
}
//根据产品规格获取距离坐标
for (int n = 1; n < sheet3.Dimension.Rows; n++)
{
if (sheet3.GetValue(n, 1) != null)
{
if (sheet3.Cells[n, 1].Value.ToString() == ProductStandard)
{
string str = sheet3.Cells[n + Layers.Split(',').Length - 1, 4].Value.ToString();
string[] x_y = str.Split(',');
string[] X = x_y[0].Split(':');
string[] Y = x_y[1].Split(':');
DistX = Convert.ToDouble(X[1].Replace("mm", ""));
this.lbl_DistXShow.Text = X[1].Replace("mm", "");
log.Info("当前订单X偏移:" + DistX);
DistY = Convert.ToDouble(Y[1].Replace("mm", ""));
this.lbl_DistYShow.Text = Y[1].Replace("mm", "");
log.Info("当前订单Y偏移:" + DistY);
break;
}
}
}
if (DistX == 0 || DistY == 0)
{
log.Debug("请检查订单号是否正确");
return;
}
log.Info("相关数据已获取完成,且已显示在界面中,请查看。");
} }
else if (string.IsNullOrEmpty(ProductStandard))
{ {
log.Debug("请检查订单号是否正确"); log.Debug("请检查订单号是否正确");
btn_OrderNum.Enabled = true;
return; return;
} }
//根据产品规格获取距离坐标
for (int n = 1; n < sheet3.Dimension.Rows; n++)
{
if (sheet3.GetValue(n, 1) != null)
{
if (sheet3.Cells[n, 1].Value.ToString() == ProductStandard)
{
string str = sheet3.Cells[n + Layers.Split(',').Length - 1, 4].Value.ToString();
string[] x_y = str.Split(',');
string[] X = x_y[0].Split(':');
string[] Y = x_y[1].Split(':');
DistX = Convert.ToDouble(X[1].Replace("mm", ""));
this.lbl_DistXShow.Text = X[1].Replace("mm", "");
log.Info("当前订单X偏移:" + DistX);
DistY = Convert.ToDouble(Y[1].Replace("mm", ""));
this.lbl_DistYShow.Text = Y[1].Replace("mm", "");
log.Info("当前订单Y偏移:" + DistY);
break;
}
}
}
if (DistX == 0 || DistY == 0)
{
log.Debug("请检查订单号是否正确");
btn_OrderNum.Enabled = true;
return;
}
log.Info("相关数据已获取完成,且已显示在界面中,请查看。");
}
else
{
log.Debug("请检查订单号是否正确");
btn_OrderNum.Enabled = true;
return;
} }
} }
} }