reportSlagSplashInfo.cs 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Text;
  7. using System.Windows.Forms;
  8. using System.Collections;
  9. using Infragistics.Win;
  10. using Infragistics.Win.UltraWinGrid;
  11. //using Core.Mes.ClientFrameWork;
  12. using Core.Mes.Client.Common;
  13. namespace Core.LgMes.Client.LgIntegrationQuery
  14. {
  15. public partial class reportSlagSplashInfo : Core.Mes.Client.Common.frmStyleBase
  16. {
  17. bool bFirst = false; //在页面Load事件中调用proc_Query()则true,否则false
  18. public reportSlagSplashInfo()
  19. {
  20. InitializeComponent();
  21. }
  22. private void reportLFData_Load(object sender, EventArgs e)
  23. {
  24. //reportCommon.SetGridFontData(ref this.ultraGrid1, DefaultableBoolean.False);
  25. ultraDateTimeEditor1.DateTime = DateTime.Today;
  26. ultraDateTimeEditor2.DateTime = DateTime.Today;
  27. try
  28. {
  29. cbPos.Checked = true;
  30. cbbPos.SelectedIndex = 0;
  31. cbPos.Enabled = cbbPos.Enabled = false;
  32. }
  33. catch { }
  34. //reportCommon.SetUltraGridColumnsReadOnly(ref this.ultraGrid1);
  35. }
  36. private void proc_setButtonEnable(bool bEnabled)
  37. {
  38. ultraToolbarsManager1.Toolbars[0].Tools["Query"].SharedProps.Enabled = bEnabled;
  39. ultraToolbarsManager1.Toolbars[0].Tools["Export"].SharedProps.Enabled = bEnabled;
  40. }
  41. private string GeneralSqlText(string strWhere, string strWhereJob, string strWhereAdd, string strWhereCF)
  42. {
  43. string strSql = "select A.HEATNO, F.AIM_GRADE_CODE STEELNAME, "
  44. + "A.CaO, A.SiO2, A.Al2O3, A.TFe, A.MnO, A.S, A.MgO, A.P2O5, A.JIANDU, "
  45. + "to_char(A.ASSAYDATE, 'yyyy-MM-dd HH24:mi:ss') ASSAYDATE, "
  46. + "case substr(B.SHIFTCODE,1,1) when '1' then '早' when '2' then '中' when '3' then '夜' end BC, "
  47. + "case substr(B.SHIFTCODE,2,1) when '1' then '甲' when '2' then '乙' when '3' then '丙' when '4' then '丁' end BB, "
  48. + "D.Si Si_Iron, E.C C_LD, C.BYS, C.SHJRL, C.KSJRL "
  49. + "from "
  50. + "("
  51. + "select t.*, case when nvl(SiO2, 0) <> 0 then trim(to_char(round(CaO / (SiO2), 3), '9990.000')) else '' end JIANDU from JOB_CHEMELEMENT t "
  52. + "where substr(t.checkno, length(t.checkno) - 1, 2) = '-4' " + strWhere + " "
  53. + "union "
  54. + "select t.*, case when nvl(SiO2, 0) <> 0 then trim(to_char(round(CaO / (SiO2), 3), '9990.000')) else '' end JIANDU from J#JOB_CHEMELEMENT t "
  55. + "where substr(t.checkno, length(t.checkno) - 1, 2) = '-4' " + strWhere + " "
  56. + ") A, "
  57. + "("
  58. + "select * from "
  59. + "("
  60. + "select t.*, row_number() over (partition by t.HEATNO order by t.OPTDATE) XH "
  61. + "from "
  62. + "("
  63. + "select * from JOB_BOF_OPTINFO where 1 = 1 " + strWhereJob + " "
  64. + "union all "
  65. + "select * from J#JOB_BOF_OPTINFO where 1 = 1 " + strWhereJob + " "
  66. + ") t "
  67. + ")"
  68. + "where XH = 1 "
  69. + ") B, "
  70. + "("
  71. + "select distinct HEATNO, "
  72. + "max(case when MATERIELCODE = '10301010028' then JMWGT end) over(partition by HEATNO) BYS, "
  73. + "max(case when MATERIELCODE = '10301010008' then JMWGT end) over(partition by HEATNO) SHJRL, "
  74. + "max(case when MATERIELCODE = '10301010039' then JMWGT end) over(partition by HEATNO) KSJRL "
  75. + "from "
  76. + "("
  77. + "select distinct HEATNO, MATERIELCODE, "
  78. + "sum(nvl(JMWGT, 0)) over (partition by HEATNO, MATERIELCODE) JMWGT "
  79. + "from RES_ADDITIVES where (MATERIELCODE = '10301010028' "
  80. + "or MATERIELCODE = '10301010008' or MATERIELCODE = '10301010039')"
  81. + " " + strWhereAdd + " "
  82. + ") "
  83. + ") C, "
  84. + "(select y.* from"
  85. + " (select x.*, row_number() over (partition by x.HEATNO order by x.ASSAYTYPECODE desc) xh from"
  86. + " ("
  87. + " select * from JOB_CHEMELEMENT "
  88. + " where (upper(substr(ASSAYTYPECODE,1,2)) = 'TS' or upper(substr(STATIONCODE,1,1)) = 'A') " + strWhereCF + ""
  89. + " union "
  90. + " select * from J#JOB_CHEMELEMENT "
  91. + " where (upper(substr(ASSAYTYPECODE,1,2)) = 'TS' or upper(substr(STATIONCODE,1,1)) = 'A') " + strWhereCF + ""
  92. + " ) x"
  93. + " ) y where y.xh = 1 "
  94. + ") D,"
  95. + "(select y.* from"
  96. + " (select x.*, row_number() over (partition by x.HEATNO order by x.ASSAYTYPECODE) xh from"
  97. + " ("
  98. + " select * from JOB_CHEMELEMENT "
  99. + " where (upper(substr(ASSAYTYPECODE,1,2)) = 'LD' or upper(substr(STATIONCODE,1,1)) = 'C') " + strWhereCF + ""
  100. + " union "
  101. + " select * from J#JOB_CHEMELEMENT "
  102. + " where (upper(substr(ASSAYTYPECODE,1,2)) = 'LD' or upper(substr(STATIONCODE,1,1)) = 'C') " + strWhereCF + ""
  103. + " ) x"
  104. + " ) y where y.xh = 1 "
  105. + ") E, "
  106. + "JH2_STEEL_HEAT F "
  107. + "where A.HEATNO = B.HEATNO(+) and A.HEATNO = C.HEATNO(+) "
  108. + "and A.HEATNO = D.HEATNO(+) and A.HEATNO = E.HEATNO(+) and A.HEATNO = F.HEATNO(+) "
  109. + "order by A.ASSAYDATE ";
  110. return strSql;
  111. }
  112. private void proc_Query()
  113. {
  114. if (!bFirst)
  115. {
  116. proc_setButtonEnable(false);
  117. Application.DoEvents();
  118. }
  119. try
  120. {
  121. if (ultraDateTimeEditor2.DateTime.Date.Subtract(ultraDateTimeEditor1.DateTime.Date).Days > 180)
  122. {
  123. MessageBox.Show("查询时间不可超过6个月。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  124. return;
  125. }
  126. if (ultraDateTimeEditor1.DateTime.Date > ultraDateTimeEditor2.DateTime.Date)
  127. {
  128. MessageBox.Show("查询开始日期不能大于结束日期!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  129. return;
  130. }
  131. string strFrom = ultraDateTimeEditor1.DateTime.ToString("yyyy-MM-dd");
  132. string strTo = ultraDateTimeEditor2.DateTime.ToString("yyyy-MM-dd");
  133. string strWhere = "and to_char(ASSAYDATE,'yyyy-MM-dd') between '" + strFrom + "' and '" + strTo + "'";
  134. strFrom = ultraDateTimeEditor1.DateTime.AddDays(-5).ToString("yyyy-MM-dd");
  135. strTo = ultraDateTimeEditor2.DateTime.AddDays(1).ToString("yyyy-MM-dd");
  136. string strWhereJob = "and to_char(OPTDATE,'yyyy-MM-dd') between '" + strFrom + "' and '" + strTo + "'";
  137. string strWhereAdd = "and to_char(JMDATE,'yyyy-MM-dd') between '" + strFrom + "' and '" + strTo + "'";
  138. string strWhereCF = "and to_char(ASSAYDATE,'yyyy-MM-dd') between '" + strFrom + "' and '" + strTo + "'";
  139. strWhereAdd += " and substr(STATIONCODE,1,1) = 'C'";
  140. string str = "";
  141. if (cbPos.Checked && cbbPos.SelectedIndex > -1)
  142. {
  143. str = "C";
  144. if (cbbNum.SelectedIndex == 0)
  145. {
  146. strWhere += " and substr(STATIONCODE,1,1) = '" + str + "'";
  147. }
  148. else if (cbbNum.SelectedIndex > 0)
  149. {
  150. strWhere += " and substr(STATIONCODE,1,2) = '" + str + Convert.ToString(cbbNum.SelectedIndex) + "'";
  151. }
  152. }
  153. else
  154. {
  155. strWhere += " and substr(STATIONCODE,1,1) = 'C'";
  156. }
  157. if (cbBC.Checked && cbbBC.SelectedIndex > -1)
  158. {
  159. str = Convert.ToString(cbbBC.SelectedIndex + 1);
  160. strWhere += " and substr(SHIFTCODE,1,1) = '" + str + "'";
  161. }
  162. if (cbBB.Checked && cbbBB.SelectedIndex > -1)
  163. {
  164. str = Convert.ToString(cbbBB.SelectedIndex + 1);
  165. strWhere += " and substr(SHIFTCODE,2,1) = '" + str + "'";
  166. }
  167. string strSql = GeneralSqlText(strWhere, strWhereJob, strWhereAdd, strWhereCF);
  168. string strOut = "";
  169. //DataSet ds = ClientCommon._RemotingHelp.ExecuteMethod("Report", "Core.LgMes.Server.Report.reportMethod", "ExecuteCommand_Return", new object[] { strSql }, out strOut) as DataSet;
  170. DataSet ds = null;
  171. if (strOut != "")
  172. {
  173. MessageBox.Show(strOut, "出错", MessageBoxButtons.OK, MessageBoxIcon.Error);
  174. return;
  175. }
  176. if (ds != null && ds.Tables.Count > 0)
  177. {
  178. this.dataTable1.Rows.Clear();
  179. if (ds.Tables[0].Rows.Count == 0) return;
  180. DataRow dr;
  181. for (int iRow = 0; iRow < ds.Tables[0].Rows.Count; iRow++)
  182. {
  183. dr = this.dataTable1.NewRow();
  184. try
  185. {
  186. for (int jCol = 0; jCol < ds.Tables[0].Columns.Count; jCol++)
  187. {
  188. try
  189. {
  190. if (this.dataTable1.Columns.Contains(ds.Tables[0].Columns[jCol].ColumnName))
  191. dr[ds.Tables[0].Columns[jCol].ColumnName] = Convert.ToString(ds.Tables[0].Rows[iRow][jCol]);
  192. }
  193. catch { }
  194. }
  195. this.dataTable1.Rows.Add(dr);
  196. }
  197. catch { }
  198. }
  199. }
  200. }
  201. catch (Exception ex)
  202. {
  203. MessageBox.Show(ex.Message);
  204. }
  205. finally
  206. {
  207. if (!bFirst)
  208. proc_setButtonEnable(true);
  209. else
  210. bFirst = false;
  211. }
  212. }
  213. private void cbPos_CheckedChanged(object sender, EventArgs e)
  214. {
  215. cbbPos.Enabled = cbbNum.Enabled = cbPos.Checked;
  216. }
  217. private object[] proc_GetPosition(int index)
  218. {
  219. switch (index)
  220. {
  221. case 0:
  222. return new object[] { "所有", "1#转炉", "2#转炉", "3#转炉" };
  223. default:
  224. return new object[] { "所有" };
  225. }
  226. }
  227. private void cbbPos_SelectedIndexChanged(object sender, EventArgs e)
  228. {
  229. try
  230. {
  231. try
  232. {
  233. cbbNum.Items.Clear();
  234. cbbNum.Items.AddRange(proc_GetPosition(cbbPos.SelectedIndex));
  235. cbbNum.SelectedIndex = 0;
  236. }
  237. catch { }
  238. }
  239. catch { }
  240. }
  241. private void cbBC_CheckedChanged(object sender, EventArgs e)
  242. {
  243. cbbBC.Enabled = cbBC.Checked;
  244. }
  245. private void cbBB_CheckedChanged(object sender, EventArgs e)
  246. {
  247. cbbBB.Enabled = cbBB.Checked;
  248. }
  249. private void ultraToolbarsManager1_ToolClick(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e)
  250. {
  251. switch (e.Tool.Key)
  252. {
  253. case "Query":
  254. {
  255. proc_Query();
  256. break;
  257. }
  258. case "Export":
  259. {
  260. //if (!reportCommon.ExcelInstalled()) return;
  261. //proc_setButtonEnable(false);
  262. //reportCommon.ExportDataWithSaveDialog(ref this.ultraGrid1, this.Text);
  263. //proc_setButtonEnable(true);
  264. //break;
  265. break;
  266. }
  267. case "Close":
  268. {
  269. this.Close();
  270. break;
  271. }
  272. }
  273. }
  274. private void uCkEditorForFilter_CheckedChanged(object sender, EventArgs e)
  275. {
  276. try
  277. {
  278. if (uCkEditorForFilter.Checked)
  279. {
  280. this.ultraGrid1.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.True;
  281. }
  282. else
  283. {
  284. this.ultraGrid1.DisplayLayout.Bands[0].ColumnFilters.ClearAllFilters();
  285. this.ultraGrid1.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False;
  286. }
  287. }
  288. catch { }
  289. }
  290. }
  291. }