SMT_MaterialsWaring.cs 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. using System;
  2. using System.Data;
  3. using System.Drawing;
  4. using System.Text;
  5. using System.Windows.Forms;
  6. using System.Collections.Generic;
  7. using UAS_MES_NEW.DataOperate;
  8. using UAS_MES_NEW.PublicMethod;
  9. namespace UAS_MES_NEW.SMT
  10. {
  11. public partial class SMT_MaterialsWaring : Form
  12. {
  13. AutoSizeFormClass asc = new AutoSizeFormClass();
  14. DataTable dt;
  15. DataHelper dh;
  16. SMT_WaringSetting setting;
  17. List<int> WaringRowIndex = new List<int>();
  18. LogStringBuilder sql = new LogStringBuilder();
  19. public SMT_MaterialsWaring()
  20. {
  21. InitializeComponent();
  22. try { UAS_MES_NEW.I18n.LanguageManager.Localize(this); } catch { }
  23. }
  24. private void 用料预警_Load(object sender, EventArgs e)
  25. {
  26. dh = new DataHelper();
  27. asc.controllInitializeSize(this);
  28. }
  29. private void Setting_Click(object sender, EventArgs e)
  30. {
  31. DoSerach.Stop();
  32. setting = new SMT_WaringSetting();
  33. setting.Controls["Confirm"].Click += ConfirmClick;
  34. BaseUtil.SetFormCenter(setting);
  35. setting.ShowDialog();
  36. }
  37. private void ConfirmClick(object sender, EventArgs e)
  38. {
  39. string de_code = setting.Controls["de_code"].Text;
  40. sql.Clear();
  41. sql.Append("select dsl_devcode,ma_code,ma_qty,ma_madeqty from make left join devsmtlocation on dsl_makecode = ma_code");
  42. sql.Append(" left join device on dsl_devcode=de_code where dsl_devcode='"+de_code+"' and nvl( de_macode,' ')<>' ' ");
  43. dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
  44. if (dt.Rows.Count > 0)
  45. {
  46. BaseUtil.SetFormValue(this.Controls, dt);
  47. }
  48. else {
  49. BaseUtil.ShowError(UAS_MES_NEW.I18n.LanguageManager.T("机台:") + de_code + UAS_MES_NEW.I18n.LanguageManager.T("未使用!"));
  50. }
  51. //设置轮询的时间间隔,开启轮询
  52. DoSerach.Interval = int.Parse(setting.Controls["Cycle"].Text) * 1000;
  53. DoSerach.Tick += StartMonitor;
  54. DoSerach.Start();
  55. LoadData();
  56. }
  57. private void StartMonitor(object sender, EventArgs e)
  58. {
  59. LoadData();
  60. WaringRowIndex.Clear();
  61. for (int i = 0; i < SMTMaterialsDGV.RowCount; i++)
  62. {
  63. //单件事件
  64. int unitTime = int.Parse(setting.Controls["UnitTime"].Text);
  65. //提前预警
  66. int earlywaring = int.Parse(setting.Controls["UnitTime"].Text);
  67. //剩余数量
  68. int remainQTY = int.Parse(SMTMaterialsDGV.Rows[i].Cells["dsl_remainqty"].Value.ToString());
  69. if (unitTime * remainQTY < earlywaring * 60)
  70. {
  71. WaringRowIndex.Add(i);
  72. }
  73. }
  74. }
  75. private void LoadData()
  76. {
  77. string de_code = setting.Controls["de_code"].Text;
  78. sql.Clear();
  79. sql.Append("select dsl_fecode,dsl_barcode,dsl_prodcode,dsl_fespec,dsl_fecode,dsl_getqty,dsl_remainqty,dsl_needqty,dsl_baseqty,");
  80. sql.Append("dsl_table,dsl_location from makeCraft left join devsmtlocation on dsl_mcid=mc_id left join device on ");
  81. sql.Append("dsl_devcode=de_code where dsl_devcode='" + de_code + "' and dsl_status=0");
  82. BaseUtil.FillDgvWithDataTable(SMTMaterialsDGV, (DataTable)dh.ExecuteSql(sql.GetString(), "select"));
  83. }
  84. private void SMTMaterialsDGV_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
  85. {
  86. //如果用量不足的红色提示
  87. if (WaringRowIndex.Contains(e.RowIndex))
  88. {
  89. e.Graphics.FillRectangle(Brushes.Red, e.CellBounds);
  90. Rectangle border = e.CellBounds;
  91. border.Width -= 1;
  92. e.Graphics.DrawRectangle(Pens.White, border);
  93. e.PaintContent(e.CellBounds);
  94. e.Handled = true;
  95. }
  96. }
  97. private void 用料预警_SizeChanged(object sender, EventArgs e)
  98. {
  99. asc.controlAutoSize(this);
  100. }
  101. }
  102. }