Make_FuselageLabelPrint.cs 35 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695
  1. using System;
  2. using System.Data;
  3. using System.Drawing;
  4. using System.Text;
  5. using System.Windows.Forms;
  6. using UAS_MES_NEW.DataOperate;
  7. using UAS_MES_NEW.PublicMethod;
  8. using UAS_MES_NEW.Entity;
  9. using LabelManager2;
  10. using System.Threading;
  11. using UAS_MES_NEW.PublicForm;
  12. using System.IO;
  13. using System.Xml;
  14. using System.Diagnostics;
  15. namespace UAS_MES_NEW.Make
  16. {
  17. public partial class Make_FuselageLabelPrint : Form
  18. {
  19. DataHelper dh;
  20. DataTable dt;
  21. public BarTender.Application engine;
  22. LogStringBuilder sql = new LogStringBuilder();
  23. AutoSizeFormClass asc = new AutoSizeFormClass();
  24. //保存StepProduct查询出来的数据
  25. DataTable ListA = new DataTable();
  26. //制造单号
  27. string macode;
  28. //当前提示的索引
  29. //保存TSN编号
  30. string ms_id = null;
  31. string version;
  32. string PR_CHECKCARTONW = "0";
  33. bool pr_change = false;
  34. Thread InitPrint;
  35. ApplicationClass lbl;
  36. DataTable Dbfind;
  37. public Make_FuselageLabelPrint()
  38. {
  39. InitializeComponent();
  40. }
  41. private void Make_ColorBoxLabelPrint_Load(object sender, EventArgs e)
  42. {
  43. sncode.Focus();
  44. asc.controllInitializeSize(this);
  45. Process[] processes = System.Diagnostics.Process.GetProcessesByName("lppa");
  46. Process[] processes1 = System.Diagnostics.Process.GetProcessesByName("bartend");
  47. for (int i = 0; i < processes1.Length; i++)
  48. {
  49. processes1[i].Kill();
  50. }
  51. for (int i = 0; i < processes.Length; i++)
  52. {
  53. processes[i].Kill();
  54. }
  55. InitPrint = new Thread(InPrint);
  56. SetLoadingWindow stw = new SetLoadingWindow(InitPrint, "初始化打印程序");
  57. BaseUtil.SetFormCenter(stw);
  58. stw.ShowDialog();
  59. //设置锁定工单
  60. LockMakeCode.GetMakeCodeCtl(ma_code);
  61. ma_code.SetLockCheckBox(LockMakeCode);
  62. //工单号放大镜配置
  63. ma_code.TableName = "make left join product on ma_prodcode=pr_code";
  64. ma_code.SelectField = "ma_code # 工单号,pr_code # 产品编号,pr_detail # 产品名称,ma_softversion # 软件版本";
  65. ma_code.FormName = Name;
  66. ma_code.SetValueField = new string[] { "ma_code", "pr_code", "pr_detail", "ma_softversion" };
  67. ma_code.Condition = "ma_statuscode='STARTED'";
  68. ma_code.DbChange += Ma_code_DbChange;
  69. lockCheckBox1.GetMakeCodeCtl(US_SKU);
  70. US_SKU.SetLockCheckBox(lockCheckBox1);
  71. US_SKU.TableName = "upcsku";
  72. US_SKU.SelectField = "US_PRODUCTCOLOR # PRODUCT_COLOR,US_COLORCODE # 颜色号,US_SKU # SKU,US_UPC # UPC";
  73. US_SKU.FormName = Name;
  74. US_SKU.SetValueField = new string[] { "US_SKU" , "US_PRODUCTCOLOR", "US_COLORCODE" };
  75. US_SKU.Condition = "1=1";
  76. US_SKU.DbChange += US_SKU_DbChange;
  77. version = "";
  78. OperateResult.AppendText(">>请输入SN\n", Color.Black);
  79. dh = SystemInf.dh;
  80. FolderPath.Text = BaseUtil.GetCacheData("FolderPath").ToString();
  81. StepCount.StepCode = User.CurrentStepCode;
  82. StepCount.Source = User.UserSourceCode;
  83. StepCount.LineCode = User.UserLineCode;
  84. StepCount.Dh = dh;
  85. StepCount.Start();
  86. //if (dh.getFieldDataByCondition("employee", "em_type", "em_code = '" + User.UserCode + "'").ToString() != "admin")
  87. //{
  88. // sncode.Visible = false;
  89. //}
  90. }
  91. private void US_SKU_DbChange(object sender, EventArgs e)
  92. {
  93. Dbfind = US_SKU.ReturnData;
  94. BaseUtil.SetFormValue(this.Controls, Dbfind);
  95. }
  96. private void Ma_code_DbChange(object sender, EventArgs e)
  97. {
  98. Dbfind = ma_code.ReturnData;
  99. BaseUtil.SetFormValue(this.Controls, Dbfind);
  100. //获取工单的其他信息
  101. sql.Clear();
  102. sql.Append("select ma_code,nvl(mcd_okqty,0) mcd_okqty,ma_prodcode as pr_code ,pr_detail,ma_softversion,");
  103. sql.Append("pr_spec,ma_qty - nvl(mcd_inqty, 0) mcd_remainqty from make left join makecraftdetail on ");
  104. sql.Append("mcd_maid=ma_id left join product on pr_code=ma_prodcode where ma_code='" + ma_code.Text + "' and mcd_stepcode='" + User.CurrentStepCode + "'");
  105. dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
  106. if (dt.Rows.Count > 0)
  107. {
  108. BaseUtil.SetFormValue(this.Controls, dt);
  109. }
  110. }
  111. private void InPrint()
  112. {
  113. try
  114. {
  115. engine = new BarTender.Application();
  116. lbl = new ApplicationClass();
  117. BaseUtil.WriteLbl();
  118. }
  119. catch (Exception)
  120. {
  121. OperateResult.AppendText("未正确安装CodeSoft软件\n", Color.Red);
  122. }
  123. }
  124. private void sn_code_KeyDown(object sender, KeyEventArgs e)
  125. {
  126. if (e.KeyCode == Keys.Down)
  127. {
  128. button1_Click(this, e);
  129. }
  130. if (e.KeyCode == Keys.Enter)
  131. {
  132. //if (CheckTSN.Checked == true && ms_id == null)
  133. //{
  134. // if (sncode.Text == "")
  135. // {
  136. // OperateResult.AppendText(">>TSN不能为空\n", Color.Red);
  137. // OperateResult.AppendText(">>请输入TSN\n", Color.Black);
  138. // return;
  139. // }
  140. // OperateResult.AppendText(">>" + sncode.Text + "\n", Color.Black);
  141. // sql.Clear();
  142. // sql.Append("select max(ms_id) ms_id from makeserial where ms_beforesn = '" + sncode.Text + "'");
  143. // dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
  144. // if (dt.Rows[0][0].ToString() != "")
  145. // {
  146. // ms_id = dt.Rows[0][0].ToString();
  147. // sncode.Focus();
  148. // OperateResult.AppendText(">>请输入SN\n", Color.Black, sncode);
  149. // return;
  150. // }
  151. // else
  152. // {
  153. // OperateResult.AppendText(">>TSN" + sncode.Text + "错误,不存在\n", Color.Red, sncode);
  154. // OperateResult.AppendText(">>请输入TSN\n", Color.Black);
  155. // return;
  156. // }
  157. //}
  158. if (sncode.Text == "")
  159. {
  160. OperateResult.AppendText(">>序列号不能为空\n", Color.Red);
  161. return;
  162. }
  163. OperateResult.AppendText(">>" + sncode.Text + "\n", Color.Black);
  164. //if (CheckTSN.Checked == true && ms_id != null)
  165. //{
  166. // sql.Clear();
  167. // sql.Append("select ms_id from makeserial where ms_id='" + ms_id + "' and ms_sncode = '" + sncode.Text + "'");
  168. // dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
  169. // if (dt.Rows.Count > 0)
  170. // {
  171. // OperateResult.AppendText(">>TSN和SN一致\n", Color.Green);
  172. // }
  173. // else
  174. // {
  175. // OperateResult.AppendText(">>TSN和SN不一致\n", Color.Red, sncode);
  176. // OperateResult.AppendText(">>请输入TSN\n", Color.Black);
  177. // ms_id = null;
  178. // return;
  179. // }
  180. //}
  181. version = "";
  182. string mac = "";
  183. string bt = "";
  184. string net = "";
  185. string macinfo = "";
  186. string btinfo = "";
  187. string netinfo = "";
  188. string verinfo = "";
  189. string restartinto = "";
  190. string oMsID;
  191. string ErrorMessage;
  192. string oMakeCode;
  193. if (LogicHandler.CheckStepAttribute(Tag.ToString(), User.UserSourceCode, out ErrorMessage))
  194. {
  195. //判断界面工单是否为空时的序列号是否自动归属工单
  196. // 获取工单归属工单下一工序是否正确
  197. if (LogicHandler.CheckStepSNAndMacode(ma_code.Text, User.UserSourceCode, sncode.Text, User.UserCode, out oMakeCode, out oMsID, out ErrorMessage))
  198. {
  199. //获取工单的其他信息
  200. sql.Clear();
  201. sql.Append("select ma_code,nvl(ma_unlimitin,0)ma_unlimitin,pr_code,ma_softversion,pr_detail,pr_spec from ");
  202. sql.Append("make left join product on pr_code=ma_prodcode where ma_code='" + oMakeCode + "'");
  203. dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
  204. if (dt.Rows.Count > 0)
  205. {
  206. //PR_CHECKCARTONW = dh.getFieldDataByCondition("craftdetail left join craft on cr_id=cd_crid left join makeserial on ms_craftcode =cr_code and cr_prodcode = ms_prodcode", "nvl(cd_ifweigh,'0') cd_ifweigh", "ms_sncode='" + sncode.Text + "' and ms_makecode='" + oMakeCode + "' and cd_stepcode = '" + User.CurrentStepCode + "'").ToString();
  207. //if (PR_CHECKCARTONW != "0")
  208. //{
  209. // OperateResult.AppendText(">>彩盒" + sncode.Text + "当前处于称重工序,无法在此界面采集,需去彩盒称重界面进行采集\n", Color.Black, sncode);
  210. // return;
  211. //}
  212. BaseUtil.SetFormValue(this.Controls, dt);
  213. LockMakeCode.Checked = true;
  214. //提示用户“<<工单号:取ma_makecode”
  215. OperateResult.AppendText("<<工单号:" + ma_code.Text + "\n", Color.Black);
  216. //提示用户“<< 序列号:XXXX”
  217. OperateResult.AppendText("<<序列号:" + sncode.Text + "\n", Color.Black);
  218. DataTable dds = (DataTable)dh.ExecuteSql(" select pr_versioninfo,pr_macinto,pr_btinfo,pr_netinfo,pr_feederspec from product where pr_code = '" + pr_code.Text+"' ", "select");
  219. verinfo = dds.Rows[0]["pr_versioninfo"].ToString();
  220. macinfo = dds.Rows[0]["pr_macinto"].ToString();
  221. btinfo = dds.Rows[0]["pr_btinfo"].ToString();
  222. netinfo = dds.Rows[0]["pr_netinfo"].ToString();
  223. restartinto = dds.Rows[0]["pr_feederspec"].ToString();
  224. if (!String.IsNullOrEmpty(verinfo))
  225. {
  226. version = BaseUtil.GetDataAdb(verinfo);
  227. OperateResult.AppendText("读取软件版本:" + version + "\n");
  228. }
  229. if (!String.IsNullOrEmpty(macinfo))
  230. {
  231. mac = BaseUtil.GetDataAdb(macinfo);
  232. OperateResult.AppendText("读取MAC:" + mac + "\n");
  233. if (dh.CheckExist("makeserial", " ms_bt||'-'||ms_mac||'-'||ms_net like '%" + mac + "%' and ms_sncode <> '"+ sncode.Text + "' "))
  234. {
  235. OperateResult.AppendText("<<MAC:" + mac + "在系统有记录,无法采集\n", Color.Red);
  236. return;
  237. }
  238. }
  239. if (!String.IsNullOrEmpty(btinfo))
  240. {
  241. bt = BaseUtil.GetDataAdb(btinfo);
  242. OperateResult.AppendText("读取BT:" + bt + "\n");
  243. if (dh.CheckExist("makeserial", " ms_bt||'-'||ms_mac||'-'||ms_net like '%" + bt + "%' and ms_sncode <> '"+ sncode.Text + "' "))
  244. {
  245. OperateResult.AppendText("<<BT:" + bt + "在系统有记录,无法采集\n", Color.Red);
  246. return;
  247. }
  248. }
  249. if (!String.IsNullOrEmpty(netinfo))
  250. {
  251. net = BaseUtil.GetDataAdb(netinfo);
  252. OperateResult.AppendText("读取NET:" + net + "\n");
  253. if (dh.CheckExist("makeserial", " ms_bt||'-'||ms_mac||'-'||ms_net like '%" + net + "%' and ms_sncode <> '" + sncode.Text + "' "))
  254. {
  255. OperateResult.AppendText("<<NET:" + net + "在系统有记录,无法采集\n", Color.Red);
  256. return;
  257. }
  258. }
  259. if (!String.IsNullOrEmpty(restartinto))
  260. {
  261. BaseUtil.GetDataAdb(restartinto);
  262. OperateResult.AppendText("恢复出厂设置\n");
  263. }
  264. string softversion = dh.GetConfig("softversion", "sys").ToString();
  265. if (version.Trim()== sncode.Text)
  266. {
  267. OperateResult.AppendText("<<序列号:" + sncode.Text + "与对应软件版本" + version + "相同,不允许采集\n", Color.Red);
  268. version = "";
  269. return;
  270. }
  271. if (version != ma_softversion.Text && version != ""&& softversion !="0")
  272. {
  273. OperateResult.AppendText("<<序列号:" + sncode.Text + "对应软件版本" + version + "与工单维护软件版本" + ma_softversion.Text + "不一致\n", Color.Red);
  274. version = "";
  275. return;
  276. }
  277. //if (pr_change)
  278. //{
  279. // String dialog = MessageBox.Show("是否使用当前标签模板", "提示", MessageBoxButtons.OKCancel).ToString();
  280. // if (dialog != "OK")
  281. // {
  282. // OperateResult.AppendText(">>请重新选择标签模板\n", Color.Green);
  283. // return;
  284. // }
  285. // else pr_change = false;
  286. //}
  287. }
  288. else
  289. {
  290. OperateResult.AppendText(">>无序列号" + sncode.Text + "对应工单信息\n", Color.Red, sncode);
  291. sncode.Focus();
  292. return;
  293. }
  294. //if (int.Parse(mcd_remainqty.Text) <= 0 && dt.Rows[0]["ma_unlimitin"].ToString() == "0")
  295. //{
  296. // macode = ma_code.Text;
  297. // ErrorMessage = "工单" + macode + "打印结束\n>请输入SN";
  298. // OperateResult.AppendText(">>" + ErrorMessage + "\n", Color.Green);
  299. // sncode.Focus();
  300. //}
  301. //else
  302. //{
  303. //所选标签不为空
  304. if (PrintLabel.SelectedValue != null)
  305. {
  306. //如果打印张数为空,返回
  307. if (PrintNum.Text == "" || int.Parse(PrintNum.Text) == 0)
  308. {
  309. OperateResult.AppendText(">>打印张数不可空或者为0\n", Color.Red, sncode);
  310. //清空输入框的值,聚焦
  311. sncode.Focus();
  312. //提示用户“>>请输入SN”
  313. OperateResult.AppendText(">>请输入SN\n", Color.Black);
  314. return;
  315. }
  316. //更新至下一步工序
  317. if (LogicHandler.SetStepResult(oMakeCode, User.UserSourceCode, sncode.Text, "机身打印", "机身打印成功", User.UserCode, out ErrorMessage))
  318. {
  319. //提示正确返回时传递的信息
  320. if (ErrorMessage.Contains("AFTERSUCCESS"))
  321. OperateResult.AppendText(">>" + ErrorMessage + "\n");
  322. string skureset = dh.GetConfig("skureset", "sys").ToString();
  323. if (US_SKU.Text != "" && skureset == "1")
  324. {
  325. dh.ExecuteSql("update makeserial set ms_sku = '" + US_SKU.Text + "' where ms_sncode = '" + sncode.Text + "' and ms_makecode = '" + ma_code.Text + "'", "update");
  326. }
  327. if (version == "")
  328. {
  329. dh.ExecuteSql("update makeserial set ms_softversion = '" + ma_softversion.Text + "' where ms_sncode = '" + sncode.Text + "' and ms_makecode = '" + ma_code.Text + "'", "update");
  330. }
  331. else
  332. {
  333. dh.ExecuteSql("update makeserial set ms_softversion = '" + version + "' where ms_sncode = '" + sncode.Text + "' and ms_makecode = '" + ma_code.Text + "'", "update");
  334. }
  335. if (US_COLORCODE.Text != "")
  336. {
  337. dh.ExecuteSql("update makeserial set ms_COLORCODE = '" + US_COLORCODE.Text + "' where ms_sncode = '" + sncode.Text + "' and ms_makecode = '" + ma_code.Text + "'", "update");
  338. }
  339. if (US_PRODUCTCOLOR.Text != "")
  340. {
  341. dh.ExecuteSql("update makeserial set MS_PRODUCTCOLOR = '" + US_PRODUCTCOLOR.Text + "' where ms_sncode = '" + sncode.Text + "' and ms_makecode = '" + ma_code.Text + "'", "update");
  342. }
  343. if (mac != "")
  344. {
  345. dh.ExecuteSql("update makeserial set ms_mac = '" + mac + "' where ms_sncode = '" + sncode.Text + "' and ms_makecode = '" + ma_code.Text + "'", "update");
  346. }
  347. if (bt != "")
  348. {
  349. dh.ExecuteSql("update makeserial set ms_bt = '" + bt + "' where ms_sncode = '" + sncode.Text + "' and ms_makecode = '" + ma_code.Text + "'", "update");
  350. }
  351. if (net != "")
  352. {
  353. dh.ExecuteSql("update makeserial set ms_net = '" + net + "' where ms_sncode = '" + sncode.Text + "' and ms_makecode = '" + ma_code.Text + "'", "update");
  354. }
  355. if (autoprint.Checked)
  356. {
  357. // doc = lbl.Documents.Open(PrintLabel.Text);
  358. if (dh.CheckExist("makeserial", "ms_sncode = '" + sncode.Text + "' and ms_makecode = '" + ma_code.Text + "' and ms_printcount>0"))
  359. {
  360. if (PrintLabel.Text.ToUpper().Contains(".BTW"))
  361. {
  362. if (Print.SinglePrint(Tag.ToString(), engine, PrintLabel.Text, PrintLabel.SelectedValue.ToString(), Printer.Text, sncode.Text, int.Parse(PrintNum.Text), oMakeCode, pr_code.Text, "机身标", "0", out ErrorMessage))
  363. {
  364. //提示用户打印成功
  365. OperateResult.AppendText(">>序列号:" + sncode.Text + "打印结束\n", Color.Green);
  366. dh.ExecuteSql("update makeserial set ms_printcount = ms_printcount +1 where ms_sncode = '" + sncode.Text + "' and ms_makecode = '" + ma_code.Text + "' ", "update");
  367. }
  368. else
  369. {
  370. OperateResult.AppendText(ErrorMessage + "\n", Color.Red);
  371. }
  372. }
  373. else
  374. {
  375. if (Print.CodeSoft(Tag.ToString(), ref lbl, PrintLabel.Text, PrintLabel.SelectedValue.ToString(), Printer.Text, sncode.Text, int.Parse(PrintNum.Text), oMakeCode, pr_code.Text, "机身标", "0", out ErrorMessage))
  376. {
  377. //提示用户打印成功
  378. OperateResult.AppendText(">>序列号:" + sncode.Text + "打印结束\n", Color.Green);
  379. dh.ExecuteSql("update makeserial set ms_printcount = ms_printcount +1 where ms_sncode = '" + sncode.Text + "' and ms_makecode = '" + ma_code.Text + "' ", "update");
  380. }
  381. else
  382. {
  383. OperateResult.AppendText(ErrorMessage + "\n", Color.Red);
  384. }
  385. }
  386. }
  387. else
  388. {
  389. if (PrintLabel.Text.ToUpper().Contains(".BTW"))
  390. {
  391. if (Print.SinglePrint(Tag.ToString(), engine, PrintLabel.Text, PrintLabel.SelectedValue.ToString(), Printer.Text, sncode.Text, int.Parse(PrintNum.Text), oMakeCode, pr_code.Text, "机身标", "-1", out ErrorMessage))
  392. {
  393. //提示用户打印成功
  394. OperateResult.AppendText(">>序列号:" + sncode.Text + "打印结束\n", Color.Green);
  395. dh.ExecuteSql("update makeserial set ms_printcount = ms_printcount +1 where ms_sncode = '" + sncode.Text + "' and ms_makecode = '" + ma_code.Text + "' ", "update");
  396. }
  397. else
  398. {
  399. OperateResult.AppendText(ErrorMessage + "\n", Color.Red);
  400. }
  401. }
  402. else
  403. {
  404. if (Print.CodeSoft(Tag.ToString(), ref lbl, PrintLabel.Text, PrintLabel.SelectedValue.ToString(), Printer.Text, sncode.Text, int.Parse(PrintNum.Text), oMakeCode, pr_code.Text, "机身标", "-1", out ErrorMessage))
  405. {
  406. //提示用户打印成功
  407. OperateResult.AppendText(">>序列号:" + sncode.Text + "打印结束\n", Color.Green);
  408. dh.ExecuteSql("update makeserial set ms_printcount = ms_printcount +1 where ms_sncode = '" + sncode.Text + "' and ms_makecode = '" + ma_code.Text + "' ", "update");
  409. }
  410. else
  411. {
  412. OperateResult.AppendText(ErrorMessage + "\n", Color.Red);
  413. }
  414. }
  415. }
  416. }
  417. if (CollectRemark.Checked && Remark.Text != "")
  418. {
  419. LogicHandler.CollectRemarkInf(sncode.Text, "", "", oMakeCode, pr_code.Text, Remark.Text);
  420. }
  421. LogicHandler.DoCommandLog(Tag.ToString(), User.UserCode, ma_code.Text, User.UserLineCode, User.UserSourceCode, "机身标打印", "机身标打印成功", sncode.Text, US_SKU.Text);
  422. //刷新打印数量和剩余数量
  423. dt = (DataTable)dh.ExecuteSql("select ma_qty - nvl(mcd_inqty, 0) mcd_remainqty,mcd_okqty from make left join makecraftdetail on mcd_macode=ma_code where ma_code='" + ma_code.Text + "' and mcd_stepcode='" + User.CurrentStepCode + "'", "select");
  424. BaseUtil.SetFormValue(Controls, dt);
  425. sncode.Text = "";
  426. version = "";
  427. ms_id = null;
  428. sncode.Focus();
  429. }
  430. else
  431. {
  432. OperateResult.AppendText(">>" + ErrorMessage + "\n", Color.Red, sncode);
  433. ms_id = null;
  434. sncode.Focus();
  435. }
  436. }
  437. else
  438. {
  439. OperateResult.AppendText(">>产品编号:" + pr_code.Text + "未维护机身标签\n", Color.Red, sncode);
  440. return;
  441. }
  442. if (CheckTSN.Checked == true)
  443. {
  444. OperateResult.AppendText(">>请输入TSN\n", Color.Black);
  445. ms_id = null;
  446. }
  447. else
  448. OperateResult.AppendText(">>请输入SN\n", Color.Black);
  449. // }
  450. }
  451. else
  452. {
  453. OperateResult.AppendText(ErrorMessage + "\n", Color.Red, sncode);
  454. if (CheckTSN.Checked == true)
  455. {
  456. OperateResult.AppendText(">>请输入TSN\n", Color.Black);
  457. ms_id = null;
  458. }
  459. else
  460. OperateResult.AppendText(">>请输入SN\n", Color.Black);
  461. }
  462. }
  463. else
  464. {
  465. OperateResult.AppendText(ErrorMessage + "\n", Color.Red, sncode);
  466. if (CheckTSN.Checked == true)
  467. {
  468. OperateResult.AppendText(">>请输入TSN\n", Color.Black);
  469. ms_id = null;
  470. }
  471. else
  472. OperateResult.AppendText(">>请输入SN\n", Color.Black);
  473. }
  474. }
  475. }
  476. //根据产品编号获取打印模板
  477. private void pr_code_TextChanged(object sender, EventArgs e)
  478. {
  479. DataTable _dt = (DataTable)dh.ExecuteSql("select la_id,la_url,la_isdefault from label where la_prodcode='" + pr_code.Text + "' and la_templatetype='机身标' and la_statuscode='AUDITED' order by la_isdefault", "select");
  480. PrintLabel.DataSource = _dt;
  481. PrintLabel.DisplayMember = "la_url";
  482. PrintLabel.ValueMember = "la_id";
  483. pr_change = true;
  484. }
  485. private void Make_ColorBoxLabelPrint_Activated(object sender, EventArgs e)
  486. {
  487. sncode.Focus();
  488. }
  489. private void Make_ColorBoxLabelPrint_FormClosing(object sender, FormClosingEventArgs e)
  490. {
  491. BaseUtil.ClosePrint(lbl);
  492. if (engine != null)
  493. engine.Quit(BarTender.BtSaveOptions.btDoNotSaveChanges);
  494. XmlWatcher.EnableRaisingEvents = false;
  495. }
  496. private void Make_ColorBoxLabelPrint_SizeChanged(object sender, EventArgs e)
  497. {
  498. asc.controlAutoSize(this);
  499. }
  500. private void ma_code_UserControlTextChanged(object sender, EventArgs e)
  501. {
  502. if (ma_code.Text.Length > 4)
  503. {
  504. //获取工单的其他信息
  505. sql.Clear();
  506. sql.Append("select ma_printcount,ma_code,ma_softversion,nvl(mcd_okqty,0) mcd_okqty,ma_prodcode as pr_code ,pr_detail,");
  507. sql.Append("pr_spec,ma_qty - nvl(mcd_inqty, 0) mcd_remainqty from make left join makecraftdetail on ");
  508. sql.Append("mcd_maid=ma_id left join product on pr_code=ma_prodcode where ma_code='" + ma_code.Text + "' and mcd_stepcode='" + User.CurrentStepCode + "'");
  509. DataTable dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
  510. if (dt.Rows.Count > 0)
  511. {
  512. BaseUtil.SetFormValue(this.Controls, dt);
  513. if (dt.Rows[0]["ma_printcount"].ToString() == "-1" || dh.getFieldDataByCondition("employee", "em_type", "em_code = '" + User.UserCode + "'").ToString() == "admin")
  514. {
  515. sncode.Visible = true;
  516. }
  517. else
  518. {
  519. sncode.Visible = false;
  520. }
  521. }
  522. else
  523. {
  524. sncode.Text = "";
  525. }
  526. }
  527. }
  528. private void CheckTSN_CheckedChanged(object sender, EventArgs e)
  529. {
  530. if (CheckTSN.Checked == true)
  531. {
  532. ms_id = null;
  533. OperateResult.AppendText(">>切换至检查TSN\n", Color.Green);
  534. OperateResult.AppendText(">>请输入TSN\n", Color.Black, sncode);
  535. sncode.Focus();
  536. }
  537. else
  538. {
  539. ms_id = null;
  540. OperateResult.AppendText(">>切换至不检查TSN\n", Color.Green);
  541. OperateResult.AppendText(">>请输入SN\n", Color.Black, sncode);
  542. sncode.Focus();
  543. }
  544. }
  545. private void PrintLabel_SelectedValueChanged(object sender, EventArgs e)
  546. {
  547. if (PrintLabel.SelectedValue != null && PrintLabel.SelectedValue.ToString() != "System.Data.DataRowView")
  548. {
  549. string PrintNums = dh.getFieldDataByCondition("label", "la_printnos", "la_id='" + PrintLabel.SelectedValue.ToString() + "'").ToString();
  550. PrintNum.Text = (PrintNums == "" ? "1" : PrintNums);
  551. }
  552. }
  553. private void XmlWatcher_Created(object sender, System.IO.FileSystemEventArgs e)
  554. {
  555. while (true)
  556. {
  557. try
  558. {
  559. using (Stream stream = File.Open(e.FullPath, FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite))
  560. {
  561. if (stream != null)
  562. break;
  563. }
  564. }
  565. catch (Exception ex)
  566. {
  567. Console.WriteLine(ex.Message);
  568. }
  569. }
  570. string test_date = "";
  571. string test_result = "";
  572. string test_sn = "";
  573. string imageurl = "";
  574. string oMSID = "";
  575. string oErrMessage = "";
  576. StreamReader _Sr = new StreamReader(FolderPath.Text + @"\" + e.Name, Encoding.UTF8);
  577. version = _Sr.ReadLine().Trim();
  578. OperateResult.AppendText("读取文件" + e.Name + ",软件版本" + version + "\n");
  579. _Sr.Close();
  580. //获取文件名的序列号,如SA123456.xml,如果开头为-表示无条码需要自动获取
  581. string sn_code = e.Name.Split('.')[0].Replace("test", "");
  582. sncode.Text = sn_code;
  583. sn_code_KeyDown(this, new KeyEventArgs(Keys.Enter));
  584. File.Delete(e.FullPath);
  585. }
  586. private void StartWatch_Click(object sender, EventArgs e)
  587. {
  588. if (FolderPath.Text == "")
  589. {
  590. OperateResult.AppendText("请选择监控文件夹\n");
  591. return;
  592. }
  593. else
  594. {
  595. if (!Directory.Exists(FolderPath.Text))
  596. {
  597. OperateResult.AppendText("监控文件夹不存在\n");
  598. return;
  599. }
  600. }
  601. XmlWatcher.Path = FolderPath.Text;
  602. XmlWatcher.Filter = "*.txt";
  603. XmlWatcher.EnableRaisingEvents = true;
  604. //设置缓存数据
  605. BaseUtil.SetCacheData("FolderPath", FolderPath.Text);
  606. //设置按钮不可点击
  607. StartWatch.Enabled = false;
  608. ChooseFolder.Enabled = false;
  609. StopWatch.Enabled = true;
  610. OperateResult.AppendText("开始执行监控\n");
  611. }
  612. private void StopWatch_Click(object sender, EventArgs e)
  613. {
  614. XmlWatcher.EnableRaisingEvents = false;
  615. StartWatch.Enabled = true;
  616. ChooseFolder.Enabled = true;
  617. StopWatch.Enabled = false;
  618. OperateResult.AppendText("停止执行监控\n");
  619. }
  620. private void ChooseFolder_Click(object sender, EventArgs e)
  621. {
  622. FolderBrowserDialog folder = new FolderBrowserDialog();
  623. folder.Description = "选择监控文件夹";
  624. DialogResult result = folder.ShowDialog();
  625. if (result == DialogResult.OK)
  626. {
  627. FolderPath.Text = folder.SelectedPath;
  628. }
  629. }
  630. private void button1_Click(object sender, EventArgs e)
  631. {
  632. //Console.WriteLine("SN");
  633. string sn_code = BaseUtil.GetDataAdb("shell getprop ro.serialno");
  634. OperateResult.AppendText("读取SN:" + sn_code + "\n");
  635. sncode.Text = sn_code;
  636. sn_code_KeyDown(this, new KeyEventArgs(Keys.Enter));
  637. }
  638. private void Make_ColorBoxLabelPrint_KeyDown(object sender, KeyEventArgs e)
  639. {
  640. }
  641. }
  642. }