reportSlagSplashInfo.cs.svn-base 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328
  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 (ultraDateTimeEditor1.DateTime.Date > ultraDateTimeEditor2.DateTime.Date)
  122. {
  123. MessageBox.Show("查询开始日期不能大于结束日期!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  124. return;
  125. }
  126. string strFrom = ultraDateTimeEditor1.DateTime.ToString("yyyy-MM-dd");
  127. string strTo = ultraDateTimeEditor2.DateTime.ToString("yyyy-MM-dd");
  128. string strWhere = "and to_char(ASSAYDATE,'yyyy-MM-dd') between '" + strFrom + "' and '" + strTo + "'";
  129. strFrom = ultraDateTimeEditor1.DateTime.AddDays(-5).ToString("yyyy-MM-dd");
  130. strTo = ultraDateTimeEditor2.DateTime.AddDays(1).ToString("yyyy-MM-dd");
  131. string strWhereJob = "and to_char(OPTDATE,'yyyy-MM-dd') between '" + strFrom + "' and '" + strTo + "'";
  132. string strWhereAdd = "and to_char(JMDATE,'yyyy-MM-dd') between '" + strFrom + "' and '" + strTo + "'";
  133. string strWhereCF = "and to_char(ASSAYDATE,'yyyy-MM-dd') between '" + strFrom + "' and '" + strTo + "'";
  134. strWhereAdd += " and substr(STATIONCODE,1,1) = 'C'";
  135. string str = "";
  136. if (cbPos.Checked && cbbPos.SelectedIndex > -1)
  137. {
  138. str = "C";
  139. if (cbbNum.SelectedIndex == 0)
  140. {
  141. strWhere += " and substr(STATIONCODE,1,1) = '" + str + "'";
  142. }
  143. else if (cbbNum.SelectedIndex > 0)
  144. {
  145. strWhere += " and substr(STATIONCODE,1,2) = '" + str + Convert.ToString(cbbNum.SelectedIndex) + "'";
  146. }
  147. }
  148. else
  149. {
  150. strWhere += " and substr(STATIONCODE,1,1) = 'C'";
  151. }
  152. if (cbBC.Checked && cbbBC.SelectedIndex > -1)
  153. {
  154. str = Convert.ToString(cbbBC.SelectedIndex + 1);
  155. strWhere += " and substr(SHIFTCODE,1,1) = '" + str + "'";
  156. }
  157. if (cbBB.Checked && cbbBB.SelectedIndex > -1)
  158. {
  159. str = Convert.ToString(cbbBB.SelectedIndex + 1);
  160. strWhere += " and substr(SHIFTCODE,2,1) = '" + str + "'";
  161. }
  162. string strSql = GeneralSqlText(strWhere, strWhereJob, strWhereAdd, strWhereCF);
  163. string strOut = "";
  164. //DataSet ds = ClientCommon._RemotingHelp.ExecuteMethod("Report", "Core.LgMes.Server.Report.reportMethod", "ExecuteCommand_Return", new object[] { strSql }, out strOut) as DataSet;
  165. DataSet ds = null;
  166. if (strOut != "")
  167. {
  168. MessageBox.Show(strOut, "出错", MessageBoxButtons.OK, MessageBoxIcon.Error);
  169. return;
  170. }
  171. if (ds != null && ds.Tables.Count > 0)
  172. {
  173. this.dataTable1.Rows.Clear();
  174. if (ds.Tables[0].Rows.Count == 0) return;
  175. DataRow dr;
  176. for (int iRow = 0; iRow < ds.Tables[0].Rows.Count; iRow++)
  177. {
  178. dr = this.dataTable1.NewRow();
  179. try
  180. {
  181. for (int jCol = 0; jCol < ds.Tables[0].Columns.Count; jCol++)
  182. {
  183. try
  184. {
  185. if (this.dataTable1.Columns.Contains(ds.Tables[0].Columns[jCol].ColumnName))
  186. dr[ds.Tables[0].Columns[jCol].ColumnName] = Convert.ToString(ds.Tables[0].Rows[iRow][jCol]);
  187. }
  188. catch { }
  189. }
  190. this.dataTable1.Rows.Add(dr);
  191. }
  192. catch { }
  193. }
  194. }
  195. }
  196. catch (Exception ex)
  197. {
  198. MessageBox.Show(ex.Message);
  199. }
  200. finally
  201. {
  202. if (!bFirst)
  203. proc_setButtonEnable(true);
  204. else
  205. bFirst = false;
  206. }
  207. }
  208. private void cbPos_CheckedChanged(object sender, EventArgs e)
  209. {
  210. cbbPos.Enabled = cbbNum.Enabled = cbPos.Checked;
  211. }
  212. private object[] proc_GetPosition(int index)
  213. {
  214. switch (index)
  215. {
  216. case 0:
  217. return new object[] { "所有", "1#转炉", "2#转炉", "3#转炉" };
  218. default:
  219. return new object[] { "所有" };
  220. }
  221. }
  222. private void cbbPos_SelectedIndexChanged(object sender, EventArgs e)
  223. {
  224. try
  225. {
  226. try
  227. {
  228. cbbNum.Items.Clear();
  229. cbbNum.Items.AddRange(proc_GetPosition(cbbPos.SelectedIndex));
  230. cbbNum.SelectedIndex = 0;
  231. }
  232. catch { }
  233. }
  234. catch { }
  235. }
  236. private void cbBC_CheckedChanged(object sender, EventArgs e)
  237. {
  238. cbbBC.Enabled = cbBC.Checked;
  239. }
  240. private void cbBB_CheckedChanged(object sender, EventArgs e)
  241. {
  242. cbbBB.Enabled = cbBB.Checked;
  243. }
  244. private void ultraToolbarsManager1_ToolClick(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e)
  245. {
  246. switch (e.Tool.Key)
  247. {
  248. case "Query":
  249. {
  250. proc_Query();
  251. break;
  252. }
  253. case "Export":
  254. {
  255. //if (!reportCommon.ExcelInstalled()) return;
  256. //proc_setButtonEnable(false);
  257. //reportCommon.ExportDataWithSaveDialog(ref this.ultraGrid1, this.Text);
  258. //proc_setButtonEnable(true);
  259. //break;
  260. break;
  261. }
  262. case "Close":
  263. {
  264. this.Close();
  265. break;
  266. }
  267. }
  268. }
  269. private void uCkEditorForFilter_CheckedChanged(object sender, EventArgs e)
  270. {
  271. try
  272. {
  273. if (uCkEditorForFilter.Checked)
  274. {
  275. this.ultraGrid1.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.True;
  276. }
  277. else
  278. {
  279. this.ultraGrid1.DisplayLayout.Bands[0].ColumnFilters.ClearAllFilters();
  280. this.ultraGrid1.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False;
  281. }
  282. }
  283. catch { }
  284. }
  285. }
  286. }