You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

149 lines
3.9 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace BarTenderPrint
{
public class BigLableManager
{
BigLable label;
BigLableInfo labelinfo;
public BigLableManager(BigLable bL)
{
this.label = bL;
labelinfo = new BigLableInfo();
}
public BigLableInfo ConfigBigLableInfo()
{
check();
getProductInfo();
return labelinfo;
}
//获取总的字符串
public string getProductInfo()
{
StringBuilder sb = new StringBuilder();
sb.Append(label.Supplier).Append(" ");
sb.Append(label.partNum).Append(" ");
sb.Append(labelinfo.DateString).Append(" ");
sb.Append(label.serialNum).Append(" ");
sb.Append(label.SoftVersion).Append(" ");
sb.Append(label.yieldly).Append(" ");
labelinfo.ProductInfo=sb.ToString();
labelinfo.barcode = labelinfo.ProductInfo.Replace(" ","");
return labelinfo.barcode;
}
#region 校验
private void check()
{
GetCheckCode();
//获取checklist
List<int> checkList = GetCheckCodeList();
int sum = 0;
foreach(var c in checkList)
{
sum += c;
}
int ss = sum % 36;
EncheckCode checkcode = (EncheckCode)ss;
labelinfo.CheckCode = checkcode.ToString();
}
public void GetCheckCode()
{
StringBuilder sb = new StringBuilder();
sb.Append(label.Supplier);
sb.Append(label.partNum);
labelinfo.DateString = getdateString();
sb.Append(labelinfo.DateString);
labelinfo.CheckCodeString = sb.ToString().Replace("-", "");
}
private List<int> GetCheckCodeList()
{
string sub;
List<int> checkList = new List<int>();
for(int i=0;i<labelinfo.CheckCodeString.Length;i++)
{
sub = labelinfo.CheckCodeString.Substring(i,1);
int check = -1;
if (int.TryParse(sub, out check))
{
checkList.Add(check);
}
else
{
TryToEnCheck(sub, out check);
checkList.Add(check);
}
}
return checkList;
}
private bool TryToEnCheck(string sub, out int check)
{
try
{
EncheckCode code = (EncheckCode)Enum.Parse(typeof(EncheckCode), sub, true);
check = (int)code;
return true;
}
catch
{
check = 0;
return false;
}
}
#endregion
#region 获取时间字符串
private string getdateString()
{
int year, Month, Date;
if (label.Date == null)
{
label.Date = DateTime.Now;
}
year = label.Date.Year;
Month = label.Date.Month;
Date = label.Date.Day;
string dateString ="";
try
{
dateString = ((EnYear)year).ToString();
dateString = dateString + ((EnMonth)Month).ToString();
dateString = dateString + GetEncodeDate(Date);
}
catch
{
}
return dateString;
}
private string GetEncodeDate(int day)
{
if (day > 9)
{
return ((Endate)day).ToString();
}
else
{
return day.ToString();
}
}
#endregion
}
}