Query_MakeInf.cs 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173
  1. using System;
  2. using System.Data;
  3. using System.Windows.Forms;
  4. using UAS_MES_NEW.DataOperate;
  5. using UAS_MES_NEW.Entity;
  6. using UAS_MES_NEW.PublicMethod;
  7. namespace UAS_MES_NEW.Query
  8. {
  9. public partial class Query_MakeInf : Form
  10. {
  11. AutoSizeFormClass asc = new AutoSizeFormClass();
  12. DataHelper dh;
  13. public Query_MakeInf()
  14. {
  15. InitializeComponent();
  16. }
  17. private void Query_MakeInf_Load(object sender, EventArgs e)
  18. {
  19. asc.controllInitializeSize(this);
  20. dh = SystemInf.dh;
  21. ma_code.TableName = "make left join product on ma_prodcode=pr_code";
  22. ma_code.SelectField = "ma_code # 工单号,ma_prodcode # 产品编号,ma_qty # 工单数量,pr_detail # 产品名称";
  23. ma_code.FormName = Name;
  24. ma_code.DBTitle = "工单查询";
  25. ma_code.SetValueField = new string[] { "ma_code", "ma_prodcode", "ma_qty", "pr_detail" };
  26. }
  27. private void Query_MakeInf_SizeChanged(object sender, EventArgs e)
  28. {
  29. asc.controlAutoSize(this);
  30. }
  31. private void Search_Click(object sender, EventArgs e)
  32. {
  33. LogStringBuilder sql = new LogStringBuilder();
  34. sql.Clear();
  35. sql.Append("select ma_prodcode,ma_qty,ma_craftcode,ma_wccode,ma_salecode,ma_custname,ma_unlimitageqty");
  36. sql.Append(",ma_softversion,ma_bomversion from make where ma_code='" + ma_code.Text + "'");
  37. DataTable dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
  38. CleanForm(this);
  39. if (dt.Rows.Count > 0)
  40. {
  41. BaseUtil.SetFormValue(this.Controls, dt);
  42. string ma_prodcode = dt.Rows[0]["ma_prodcode"].ToString();
  43. string ma_craftcode = dt.Rows[0]["ma_craftcode"].ToString();
  44. string ma_bomversion = dt.Rows[0]["ma_bomversion"].ToString();
  45. string ma_salecode = dt.Rows[0]["ma_salecode"].ToString();
  46. sql.Clear();
  47. sql.Append("select pr_code,pr_outboxinnerqty,case pr_sendchecktype when 'SaleCode' then '按合同送检' when 'LineCode' then '按线别送检' end pr_sendchecktype,pr_detail,pr_agingtime");
  48. sql.Append(",( CASE WHEN pr_colorboxminw LIKE '.%' THEN '0'||pr_colorboxminw ELSE to_char(pr_colorboxminw) END ||'-'|| CASE WHEN pr_colorboxmaxw LIKE '.%' THEN '0'||pr_colorboxmaxw ELSE to_char(pr_colorboxmaxw) END ||' '||pr_colorboxunit)pr_colorboxweight,");
  49. sql.Append("(CASE WHEN pr_cartonminw LIKE '.%' THEN '0'||pr_cartonminw ELSE to_char(pr_cartonminw) END ||'-'|| CASE WHEN pr_cartonmaxw LIKE '.%' THEN '0'||pr_cartonmaxw ELSE to_char(pr_cartonmaxw) END ||' '||pr_cartonunit)pr_cartonweight from product where pr_code='" + ma_prodcode + "'");
  50. dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
  51. if (dt.Rows.Count > 0)
  52. {
  53. BaseUtil.SetFormValue(this.Controls, dt);
  54. }
  55. sn_relation.Text = dh.getFieldDataByCondition("productsnrelation", "wm_concat(psr_type)", "psr_prodcode='" + ma_prodcode + "'").ToString();
  56. sql.Clear();
  57. sql.Append("select * from craftdetail left join craft on cd_crid=cr_id where cr_code='" + ma_craftcode + "' and cr_prodcode='" + ma_prodcode + "' order by cd_detno");
  58. dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
  59. if (dt.Rows.Count > 0)
  60. {
  61. BaseUtil.FillDgvWithDataTable(Carft, dt);
  62. }
  63. sql.Clear();
  64. sql.Append("select (msr_startno||'-'||msr_endno) before_snrange,msr_qty beforesn_qty from makesnrule where msr_makecode='" + ma_code.Text + "' and msr_type='before'");
  65. dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
  66. string rangebefore = "0";
  67. if (dt.Rows.Count > 0)
  68. {
  69. rangebefore = dt.Rows[0]["beforesn_qty"].ToString();
  70. BaseUtil.SetFormValue(this.Controls, dt);
  71. }
  72. sql.Clear();
  73. sql.Append("select (msr_startno||'-'||msr_endno) aftersn_range,msr_qty aftersn_qty from makesnrule where msr_makecode='" + ma_code.Text + "' and msr_type='after'");
  74. dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
  75. string rangeafter = "0";
  76. if (dt.Rows.Count > 0)
  77. {
  78. rangeafter = dt.Rows[0]["aftersn_qty"].ToString();
  79. BaseUtil.SetFormValue(this.Controls, dt);
  80. }
  81. sql.Clear();
  82. sql.Append("select count(1) beforesn_qty from makesnlist where msl_makecode='" + ma_code.Text + "' and msl_type='before'");
  83. dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
  84. if (dt.Rows.Count > 0)
  85. {
  86. rangebefore = dt.Rows[0]["beforesn_qty"].ToString();
  87. BaseUtil.SetFormValue(this.Controls, dt);
  88. }
  89. sql.Clear();
  90. sql.Append("select count(1) aftersn_qty from makesnlist where msl_makecode='" + ma_code.Text + "' and msl_type='after'");
  91. dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
  92. if (dt.Rows.Count > 0)
  93. {
  94. rangeafter = dt.Rows[0]["aftersn_qty"].ToString();
  95. BaseUtil.SetFormValue(this.Controls, dt);
  96. }
  97. sql.Clear();
  98. sql.Append("select mcd_detno,mcd_stepcode,mcd_stepname,nvl(count(distinct A.ms_sncode),0) n,nvl(count(distinct B.ms_sncode),0) bn,(select nvl(count(distinct sp_sncode),0) from STEPPASSED where SP_MAKECODE = mcd_macode AND SP_STEPCODE = mcd_stepcode) inqty from MAKECRAFTdetail ");
  99. sql.Append("left join makeserial A on mcd_macode = A.ms_makecode and mcd_stepcode = ");
  100. sql.Append("A.ms_nextstepcode AND A.MS_STATUS = 1 LEFT JOIN MAKESERIAL B ON mcd_macode = B.ms_makecode AND MCD_STEPCODE = B.MS_STEPCODE AND B.MS_STATUS = 3 where mcd_macode = '" + ma_code.Text + "' group by mcd_macode,mcd_detno, mcd_stepcode, mcd_stepname order by mcd_detno asc");
  101. dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
  102. if (dt.Rows.Count > 0)
  103. {
  104. BaseUtil.FillDgvWithDataTable(BOM, dt);
  105. }
  106. LogicHandler.DoCommandLog(Tag.ToString(), User.UserCode, ma_code.Text, User.UserLineCode, User.UserSourceCode, "查询工单综合信息", "查询成功", "", "");
  107. }
  108. else MessageBox.Show("工单号不存在");
  109. }
  110. /// <summary>
  111. /// 清除DataGridView的数据
  112. /// </summary>
  113. /// <param name="dgv"></param>
  114. public static void CleanDGVData(DataGridView dgv)
  115. {
  116. for (int i = dgv.Rows.Count - 1; i >= 0; i--)
  117. {
  118. dgv.Rows.RemoveAt(i);
  119. }
  120. DataTable dt = dgv.DataSource as DataTable;
  121. if (dt != null)
  122. {
  123. dt.AcceptChanges();
  124. }
  125. }
  126. public static void CleanForm(Form Form)
  127. {
  128. for (int i = 0; i < Form.Controls.Count; i++)
  129. {
  130. if (Form.Controls[i].Controls.Count > 0)
  131. {
  132. CleanControls(Form.Controls[i].Controls);
  133. }
  134. if ((Form.Controls[i] is Label && GetCharInStringCount("_", Form.Controls[i].Name) != 2))
  135. Form.Controls[i].Text = "";
  136. if (Form.Controls[i] is DataGridView)
  137. CleanDGVData((DataGridView)Form.Controls[i]);
  138. }
  139. }
  140. public static void CleanControls(Control.ControlCollection collection)
  141. {
  142. for (int i = 0; i < collection.Count; i++)
  143. {
  144. if (collection[i].Controls.Count > 0)
  145. CleanControls(collection[i].Controls);
  146. if ((collection[i] is Label && GetCharInStringCount("_", collection[i].Name) != 2))
  147. collection[i].Text = "";
  148. if (collection[i] is DataGridView)
  149. CleanDGVData((DataGridView)collection[i]);
  150. }
  151. }
  152. public static int GetCharInStringCount(string Char, string String)
  153. {
  154. string str = String.Replace(Char, "");
  155. return (String.Length - str.Length) / Char.Length;
  156. }
  157. }
  158. }