Query_SN.cs 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347
  1. using LabelManager2;
  2. using System;
  3. using System.Data;
  4. using System.Security.Cryptography;
  5. using System.Text;
  6. using System.Threading;
  7. using System.Windows.Forms;
  8. using UAS_MES_NEW.DataOperate;
  9. using UAS_MES_NEW.Entity;
  10. using UAS_MES_NEW.PublicForm;
  11. using UAS_MES_NEW.PublicMethod;
  12. namespace UAS_MES_NEW.Query
  13. {
  14. public partial class Query_SN : Form
  15. {
  16. DataHelper dh = SystemInf.dh;
  17. ApplicationClass lbl;
  18. Thread InitPrint;
  19. Document doc;
  20. public Query_SN()
  21. {
  22. InitializeComponent();
  23. }
  24. private void Export_Click(object sender, EventArgs e)
  25. {
  26. ExcelExport("");
  27. }
  28. //选择导出Excel时是选择导出数据的还是模板
  29. private void ExcelExport(string DataOrTemplet)
  30. {
  31. //Data表示导出数据
  32. //Templet表示导出模板
  33. MD5 md5 = MD5.Create();
  34. folderBrowserDialog1.Description = "选择导出的路径";
  35. DialogResult result = folderBrowserDialog1.ShowDialog();
  36. if (result == DialogResult.OK)
  37. {
  38. string FolderPath = folderBrowserDialog1.SelectedPath;
  39. ExcelHandler eh = new ExcelHandler();
  40. DataTable dt = new DataTable();
  41. dt.Columns.Add("工单号");
  42. dt.Columns.Add("序列号");
  43. dt.Columns.Add("拓展栏位1");
  44. dt.Columns.Add("拓展栏位2");
  45. dt.Columns.Add("拓展栏位3");
  46. dt.Columns.Add("备注");
  47. for (decimal i = currentSerial.Value; i < currentSerial.Value + int.Parse(num.Text); i++)
  48. {
  49. DataRow dr = dt.NewRow();
  50. dr["工单号"] = ma_code.Text;
  51. string serial = ma_code.Text+ pr_code.Text
  52. + lpad(int.Parse(seriallength.Text), (i + 1).ToString());
  53. string encode = MD5Encoding(serial + ")G$d");
  54. dr["序列号"] = serial + encode.Substring(encode.Length - 2);
  55. dt.Rows.Add(dr);
  56. }
  57. eh.ExportExcel(dt, FolderPath);
  58. }
  59. }
  60. private void Query_SpecialReport_Load(object sender, EventArgs e)
  61. {
  62. InitPrint = new Thread(InPrint);
  63. SetLoadingWindow stw = new SetLoadingWindow(InitPrint, "初始化打印程序");
  64. BaseUtil.SetFormCenter(stw);
  65. stw.ShowDialog();
  66. doc = lbl.Documents.Open(System.Windows.Forms.Application.StartupPath + @"\SN.lab");
  67. }
  68. private void InPrint()
  69. {
  70. try
  71. {
  72. lbl = new ApplicationClass();
  73. BaseUtil.WriteLbl();
  74. }
  75. catch (Exception)
  76. {
  77. MessageBox.Show("未正确安装CodeSoft软件");
  78. }
  79. }
  80. private static string MD5Encoding(string rawPass)
  81. {
  82. // 创建MD5类的默认实例:MD5CryptoServiceProvider
  83. MD5 md5 = MD5.Create();
  84. byte[] bs = Encoding.UTF8.GetBytes(rawPass);
  85. byte[] hs = md5.ComputeHash(bs);
  86. StringBuilder stb = new StringBuilder();
  87. foreach (byte b in hs)
  88. {
  89. // 以十六进制格式格式化
  90. stb.Append(b.ToString("x2"));
  91. }
  92. return stb.ToString().ToUpper();
  93. }
  94. private static string lpad(int length, string number)
  95. {
  96. while (number.Length < length)
  97. {
  98. number = "0" + number;
  99. }
  100. number = number.Substring(number.Length - length, length);
  101. return number;
  102. }
  103. private string GetDate(string year, string month, string day)
  104. {
  105. string returndate = "";
  106. switch (year)
  107. {
  108. case "2020":
  109. returndate = "C";
  110. break;
  111. case "2021":
  112. returndate = "D";
  113. break;
  114. case "2022":
  115. returndate = "E";
  116. break;
  117. case "2023":
  118. returndate = "F";
  119. break;
  120. case "2024":
  121. returndate = "G";
  122. break;
  123. case "2025":
  124. returndate = "H";
  125. break;
  126. case "2026":
  127. returndate = "I";
  128. break;
  129. case "2027":
  130. returndate = "J";
  131. break;
  132. case "2028":
  133. returndate = "K";
  134. break;
  135. case "2029":
  136. returndate = "L";
  137. break;
  138. case "2030":
  139. returndate = "M";
  140. break;
  141. case "2031":
  142. returndate = "N";
  143. break;
  144. case "2032":
  145. returndate = "O";
  146. break;
  147. case "2033":
  148. returndate = "P";
  149. break;
  150. case "2034":
  151. returndate = "Q";
  152. break;
  153. default:
  154. break;
  155. }
  156. switch (month)
  157. {
  158. case "01":
  159. returndate += "1";
  160. break;
  161. case "02":
  162. returndate += "2";
  163. break;
  164. case "03":
  165. returndate += "3";
  166. break;
  167. case "04":
  168. returndate += "4";
  169. break;
  170. case "05":
  171. returndate += "5";
  172. break;
  173. case "06":
  174. returndate += "6";
  175. break;
  176. case "07":
  177. returndate += "7";
  178. break;
  179. case "08":
  180. returndate += "8";
  181. break;
  182. case "09":
  183. returndate += "9";
  184. break;
  185. case "10":
  186. returndate += "A";
  187. break;
  188. case "11":
  189. returndate += "B";
  190. break;
  191. case "12":
  192. returndate += "C";
  193. break;
  194. default:
  195. break;
  196. }
  197. switch (day)
  198. {
  199. case "01":
  200. returndate += "1";
  201. break;
  202. case "02":
  203. returndate += "2";
  204. break;
  205. case "03":
  206. returndate += "3";
  207. break;
  208. case "04":
  209. returndate += "4";
  210. break;
  211. case "05":
  212. returndate += "5";
  213. break;
  214. case "06":
  215. returndate += "6";
  216. break;
  217. case "07":
  218. returndate += "7";
  219. break;
  220. case "08":
  221. returndate += "8";
  222. break;
  223. case "09":
  224. returndate += "9";
  225. break;
  226. case "10":
  227. returndate += "A";
  228. break;
  229. case "11":
  230. returndate += "B";
  231. break;
  232. case "12":
  233. returndate += "C";
  234. break;
  235. case "13":
  236. returndate += "D";
  237. break;
  238. case "14":
  239. returndate += "E";
  240. break;
  241. case "15":
  242. returndate += "F";
  243. break;
  244. case "16":
  245. returndate += "G";
  246. break;
  247. case "17":
  248. returndate += "H";
  249. break;
  250. case "18":
  251. returndate += "I";
  252. break;
  253. case "19":
  254. returndate += "J";
  255. break;
  256. case "20":
  257. returndate += "K";
  258. break;
  259. case "21":
  260. returndate += "L";
  261. break;
  262. case "22":
  263. returndate += "M";
  264. break;
  265. case "23":
  266. returndate += "N";
  267. break;
  268. case "24":
  269. returndate += "O";
  270. break;
  271. case "25":
  272. returndate += "P";
  273. break;
  274. case "26":
  275. returndate += "Q";
  276. break;
  277. case "27":
  278. returndate += "R";
  279. break;
  280. case "28":
  281. returndate += "S";
  282. break;
  283. case "29":
  284. returndate += "T";
  285. break;
  286. case "30":
  287. returndate += "U";
  288. break;
  289. case "31":
  290. returndate += "V";
  291. break;
  292. default:
  293. break;
  294. }
  295. return returndate;
  296. }
  297. private void Print_Click(object sender, EventArgs e)
  298. {
  299. DataTable dt = new DataTable();
  300. dt.Columns.Add("工单号");
  301. dt.Columns.Add("序列号");
  302. dt.Columns.Add("拓展栏位1");
  303. dt.Columns.Add("拓展栏位2");
  304. dt.Columns.Add("拓展栏位3");
  305. dt.Columns.Add("备注");
  306. for (decimal i = currentSerial.Value; i < currentSerial.Value + int.Parse(num.Text); i++)
  307. {
  308. DataRow dr = dt.NewRow();
  309. string serial = pr_code.Text
  310. + color.Text
  311. + GetDate(date.Value.ToString("yyyy"), date.Value.ToString("MM"), date.Value.ToString("dd"))
  312. + factory.Text
  313. + status.Text
  314. + lpad(int.Parse(seriallength.Text), (i + 1).ToString());
  315. string encode = MD5Encoding(serial + ")G$d");
  316. dr["序列号"] = serial + encode.Substring(encode.Length - 2);
  317. dt.Rows.Add(dr);
  318. for (int j = 0; j < doc.Variables.FormVariables.Count; j++)
  319. {
  320. if (doc.Variables.FormVariables.Item(j + 1).Name.ToUpper() == "SN")
  321. {
  322. doc.Variables.FormVariables.Item(j + 1).Value = (serial + encode.Substring(encode.Length - 2));
  323. }
  324. }
  325. doc.Printer.SwitchTo(Printer.Text);
  326. doc.PrintDocument(1);
  327. }
  328. }
  329. }
  330. }