ucHeatNoQuery.cs 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311
  1. using System;
  2. using System.ComponentModel;
  3. using System.Data;
  4. using System.Drawing;
  5. using System.Windows.Forms;
  6. using CoreFS.CA06;
  7. using Infragistics.Win.UltraWinEditors;
  8. using Infragistics.Win.UltraWinGrid;
  9. namespace Core.StlMes.Client.LgCommon
  10. {
  11. /// <summary>
  12. /// 实绩管理响应炉号选中事件
  13. /// </summary>
  14. /// <param name="strHeatNo"></param>
  15. /// <param name="strHeatProcessNo"></param>
  16. public delegate void GetHeatResultDelegate(
  17. string strHeatProcessNo, string strHeatNo, string strStationCode, string strDisposalTime, string strCastNo);
  18. public partial class ucHeatNoQuery : UserControl
  19. {
  20. private bool _exPanded = true; //是否展开
  21. public GetHeatResultDelegate GetJobInfoHandler = null;
  22. public LG_PROCESS Process;
  23. public int DevicePos;
  24. public OpeBase Ob;
  25. public ucHeatNoQuery()
  26. {
  27. ExPandedWidth = 0;
  28. InitializeComponent();
  29. ClsControlPack.SetUltraGridAppearance(this);
  30. SetDelegate();
  31. try
  32. {
  33. //ultraGrid1.DisplayLayout.Override.RowSelectorWidth = 40;
  34. }
  35. catch
  36. {
  37. // ignored
  38. }
  39. }
  40. [Description("展开宽度")]
  41. public int ExPandedWidth { get; private set; }
  42. /// <summary>
  43. /// 展开状态
  44. /// </summary>
  45. [Description("展开状态")]
  46. public bool ExPanded
  47. {
  48. get { return _exPanded; }
  49. set
  50. {
  51. if (value != _exPanded)
  52. {
  53. _exPanded = value;
  54. MainContainer.Expanded = value;
  55. }
  56. }
  57. }
  58. public void Init()
  59. {
  60. InitDropDowList();
  61. time.Start();
  62. }
  63. // 刷新炉次信息
  64. /// <summary>
  65. /// 刷新炉次信息
  66. /// </summary>
  67. public void GetHeatNo()
  68. {
  69. try
  70. {
  71. var strTableName = ClsBusinessPack.GetJobTableName(Process); //获得工序表名
  72. //var strProcessCode = ClsBusinessPack.analysProcess(PROCESS.ToString()); //获得工序代码如:C\D\E
  73. if (string.IsNullOrEmpty(strTableName)) return;
  74. if (DevicePos < 0) return;
  75. if (Ob == null) return;
  76. // var StationCode = DEVICE_POS.ToString().PadLeft(2, '0');
  77. var strHeatProcessNo = "";
  78. if ((ultraGrid1.ActiveRow != null) && (ultraGrid1.ActiveRow.Index >= 0))
  79. strHeatProcessNo = Convert.ToString(ultraGrid1.ActiveRow.Cells["HEATPROCESSNO"].Value);
  80. var strWherePlan = "WHERE 1 = 1 ";
  81. var strWhereRes = "WHERE 1 = 1 ";
  82. var strWhereIf = "";
  83. if (cbx_AutoRefresh.Checked)
  84. {
  85. //只查当班生产记录(strWherePlan前去掉了AND INSTR(FACT_ROUTE, '" + strProcessCode.ToString() + DEVICE_POS.ToString() + "', 1) > 0)
  86. strWherePlan += " AND PLN_STARTTIME >= "
  87. +
  88. "TO_DATE(TO_CHAR(SYSDATE, 'YYYY-MM-DD') || ' 00:00:00','YYYY-MM-DD HH24:MI:SS') AND PLN_STARTTIME <= SYSDATE ";
  89. }
  90. else
  91. {
  92. var strFrom = dateTimePicker1.Value.ToString("yyyy-MM-dd") + " 00:00:00";
  93. var strTo = dateTimePicker2.Value.ToString("yyyy-MM-dd") + " 23:59:59";
  94. var strToRes = dateTimePicker2.Value.AddDays(4).ToString("yyyy-MM-dd") + " 23:59:59";
  95. //(去掉了这句话)
  96. //strWherePlan += " AND INSTR(FACT_ROUTE, '" + strProcessCode.ToString() + DEVICE_POS.ToString() + "', 1) > 0 ";
  97. strWherePlan += "AND PLN_STARTTIME >= TO_DATE('" + strFrom +
  98. "','YYYY-MM-DD HH24:MI:SS') AND PLN_STARTTIME <= TO_DATE('" + strTo +
  99. "','YYYY-MM-DD HH24:MI:SS') ";
  100. if (!string.IsNullOrEmpty(Edt_HeatNo.Text.Trim()))
  101. {
  102. strWherePlan += "AND STOVE_NO LIKE '%" + Edt_HeatNo.Text.Trim() + "%'";
  103. }
  104. else
  105. {
  106. if (cbEdt_Class.SelectedIndex >= 0)
  107. strWhereIf += "AND SUBSTR(B.SHIFTCODE,1,1) = '" + Convert.ToString(cbEdt_Class.Value) + "'";
  108. if (cbEdt_Group.SelectedIndex >= 0)
  109. strWhereIf += "AND SUBSTR(B.SHIFTCODE,2,1) = '" + Convert.ToString(cbEdt_Group.Value) + "'";
  110. if (cbEdt_Steel.SelectedIndex >= 0)
  111. strWhereIf += "AND A.GRADECODE = '" + Convert.ToString(cbEdt_Steel.Value) + "'";
  112. }
  113. }
  114. var ds = ClsResBLL.GetHeatNoList(Process, strTableName, strWherePlan, strWhereRes, strWhereIf, Ob);
  115. if ((ds != null) && (ds.Tables.Count > 0))
  116. {
  117. var table = ds.Tables[0];
  118. ClsControlPack.CopyDataToDatatable(ref table, ref dataTable1, true);
  119. foreach (var row in ultraGrid1.Rows)
  120. {
  121. if (strTableName != "STL_HMP_OPTINFO")
  122. if ((Convert.ToString(row.Cells["DISPOSALTIME"].Value) != "01") &&
  123. (row.Cells["DISPOSALTIME"].Value.ToString().Length > 0))
  124. {
  125. row.Appearance.BackColor = Color.Red;
  126. row.Appearance.ForeColor = Color.White;
  127. }
  128. else
  129. {
  130. row.Appearance.ResetBackColor();
  131. row.Appearance.ResetForeColor();
  132. }
  133. if (!string.IsNullOrEmpty(strHeatProcessNo) &&
  134. strHeatProcessNo.Equals(Convert.ToString(row.Cells["HEATPROCESSNO"].Value)))
  135. {
  136. row.Activated = true;
  137. ultraGrid1.PerformAction(UltraGridAction.EnterEditMode);
  138. }
  139. }
  140. }
  141. else
  142. dataTable1.Rows.Clear();
  143. PublicMethod.RefreshAndAutoSize(ultraGrid1);
  144. }
  145. catch (Exception)
  146. {
  147. // ignored
  148. }
  149. finally
  150. {
  151. ClsControlPack.RefreshAndAutoSize(ultraGrid1);
  152. }
  153. }
  154. #region 初始化
  155. public void InitDropDowList()
  156. {
  157. cbEdt_Class.ValueList = ClsBusinessPack.GetValuelistBanci();
  158. cbEdt_Group.ValueList = ClsBusinessPack.GetValuelistBanzu();
  159. var vlistGradeCode = ClsBusinessPack.GetValuelistSteel(Ob);
  160. cbEdt_Steel.ValueList = vlistGradeCode;
  161. // ClsControlPack.SetGridValuelist(ref ultraGrid1, "GRADECODE", ref vlistGradeCode);
  162. }
  163. #endregion
  164. #region 事件
  165. private void SetDelegate()
  166. {
  167. Resize += ucHeatNoQuery_Resize;
  168. MainContainer.ExpandedStateChanged += ExpandedStateChanged;
  169. }
  170. private void ucHeatNoQuery_Resize(object sender, EventArgs e)
  171. {
  172. try
  173. {
  174. //if ((ExPandedWidth == 0) && _exPanded) ExPandedWidth = Width;
  175. //else if ((ExPandedWidth == 0) && !_exPanded) ExPandedWidth = 250;
  176. }
  177. catch
  178. {
  179. // ignored
  180. }
  181. }
  182. private void ExpandedStateChanged(object sender, EventArgs e)
  183. {
  184. try
  185. {
  186. //ExPanded = MainContainer.Expanded;
  187. //Width = MainContainer.Expanded ? ExPandedWidth : MainContainer.Width;
  188. if (MainContainer.Expanded && cbx_AutoRefresh.Checked)
  189. GetHeatNo();
  190. }
  191. catch
  192. {
  193. // ignored
  194. }
  195. }
  196. private void btnQuery_Click(object sender, EventArgs e)
  197. {
  198. GetHeatNo();
  199. }
  200. private void cbx_AutoRefresh_CheckedChanged(object sender, EventArgs e)
  201. {
  202. try
  203. {
  204. btnQuery.Enabled = !cbx_AutoRefresh.Checked;
  205. cbEdt_Steel.Enabled = Edt_HeatNo.Enabled = !cbx_AutoRefresh.Checked;
  206. cbEdt_Class.Enabled = cbEdt_Group.Enabled = !cbx_AutoRefresh.Checked;
  207. dateTimePicker1.Enabled = dateTimePicker2.Enabled = !cbx_AutoRefresh.Checked;
  208. time.Enabled = cbx_AutoRefresh.Checked;
  209. }
  210. catch
  211. {
  212. // ignored
  213. }
  214. }
  215. private void Edt_HeatNo_EditorButtonClick(object sender, EditorButtonEventArgs e)
  216. {
  217. try
  218. {
  219. if (cbx_AutoRefresh.Checked) return;
  220. if (e.Button.Key.ToUpper().Equals("CLEAR".ToUpper()))
  221. {
  222. if (!string.IsNullOrEmpty(Edt_HeatNo.Text.Trim()))
  223. {
  224. Edt_HeatNo.Tag = Edt_HeatNo.Text.Trim();
  225. Edt_HeatNo.Clear();
  226. }
  227. else if (Edt_HeatNo.Tag != null) Edt_HeatNo.Text = Convert.ToString(Edt_HeatNo.Tag);
  228. }
  229. else if (e.Button.Key.ToUpper().Equals("EDIT".ToUpper()))
  230. {
  231. var frm = new frmHeatNoEditor {InputText = Edt_HeatNo.Text.Trim()};
  232. frm.Location = ClsControlPack.GetChildWindowLocation(frm.Size);
  233. if (frm.ShowDialog() == DialogResult.OK)
  234. Edt_HeatNo.Text = frm.InputText;
  235. }
  236. }
  237. catch
  238. {
  239. // ignored
  240. }
  241. }
  242. private void ultraGrid1_DoubleClickRow(object sender, DoubleClickRowEventArgs e)
  243. {
  244. try
  245. {
  246. if (e.Row.Index < 0) return;
  247. var strHeatNo = Convert.ToString(e.Row.Cells["HEATNO"].Value);
  248. var strStationCode = Convert.ToString(e.Row.Cells["STATIONCODE"].Value);
  249. var strDisposalTime = Convert.ToString(e.Row.Cells["DISPOSALTIME"].Value);
  250. var strHeatProcessNo = Convert.ToString(e.Row.Cells["HEATPROCESSNO"].Value);
  251. var strCastNo = Convert.ToString(e.Row.Cells["MOULDNO"].Value);
  252. if (GetJobInfoHandler != null)
  253. Invoke(GetJobInfoHandler, strHeatProcessNo, strHeatNo, strStationCode, strDisposalTime, strCastNo);
  254. }
  255. catch
  256. {
  257. // ignored
  258. }
  259. }
  260. #endregion
  261. private void time_Tick(object sender, EventArgs e)
  262. {
  263. if (ExPanded && cbx_AutoRefresh.Checked)
  264. {
  265. GetHeatNo();
  266. }
  267. }
  268. }
  269. }