frmRTDCons.cs 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Windows.Forms;
  9. using CoreFS.CA06;
  10. using System.Collections;
  11. using System.Xml;
  12. using Core.StlMes.Client.LgCommon;
  13. namespace Core.StlMes.Client.LgIntegrationQuery
  14. {
  15. public partial class frmRTDCons : frmStyleBase
  16. {
  17. string strTableName = "";
  18. DataSet dsMain = new DataSet();
  19. DataTable dtMain = new DataTable();
  20. public frmRTDCons()
  21. {
  22. InitializeComponent();
  23. }
  24. // 查询信息
  25. /// <summary>
  26. /// 查询信息
  27. /// </summary>
  28. private void proc_Query()
  29. {
  30. if (ucmbRTDTable.SelectedIndex == -1)
  31. {
  32. //MessageBox.Show("临时表不能为空!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  33. dataSet1.Clear();
  34. return;
  35. }
  36. try
  37. {
  38. string strOut = "";
  39. ArrayList arry = new ArrayList();
  40. ArrayList sqlList = new ArrayList();
  41. arry.Add(ucmbRTDTable.Value);
  42. CommonClientToServer ccTos = new CommonClientToServer();
  43. ccTos.ob = this.ob;
  44. DataSet ds = ccTos.ExecuteQueryFunctionsSqlID("Core.Mes.Server.Common.ComDataAccess",
  45. "QueryWithParameter", "STL_QUR0001", 5, arry, out strOut);
  46. if (strOut != "")
  47. {
  48. MessageBox.Show(strOut, "出错", MessageBoxButtons.OK, MessageBoxIcon.Error);
  49. return;
  50. }
  51. if (ds != null && ds.Tables.Count > 0)
  52. {
  53. this.dataTable1.Rows.Clear();
  54. if (ds.Tables[0].Rows.Count == 0) return;
  55. dataSet1.Merge(ds);
  56. }
  57. strOut = "";
  58. arry.Clear();
  59. sqlList.Clear();
  60. arry.Add("RtdDataQuery.Query");
  61. sqlList.Add(ucmbRTDTable.Value);
  62. CoreClientParam CCP = new CoreClientParam();
  63. DataTable dtt = new DataTable();
  64. CCP.ServerName = "Core.LgMes.Server.Common.ComDBQuery";
  65. CCP.MethodName = "doQuery";
  66. CCP.ServerParams = new object[] { arry, sqlList };
  67. CCP.SourceDataTable = dtt;
  68. this.ExecuteSortResultByQueryToDataTable(CCP, CoreInvokeType.Internal);
  69. DataSet dst = new DataSet();
  70. dst.Tables.Add(dtt);
  71. strOut = CCP.ReturnInfo;
  72. for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
  73. {
  74. for (int j = 0; j < dst.Tables[0].Columns.Count; j++)
  75. {
  76. string ee = ds.Tables[0].Rows[i]["FIELDS"].ToString();
  77. string rr = dst.Tables[0].Columns[j].ToString();
  78. if (ds.Tables[0].Rows[i]["FIELDS"].ToString() == dst.Tables[0].Columns[j].ToString())
  79. {
  80. //DataRow[] dr = dtMain.Select("TableName='" + ucmbRTDTable.Value + "' and name='" + ds.Tables[0].Rows[i]["FIELDS"].ToString() + "'");
  81. dataSet1.Tables[0].Rows[i]["VALUE"] = dst.Tables[0].Rows[0][j].ToString();
  82. //if (dr.Length> 0)
  83. //dataSet1.Tables[0].Rows[i]["HELP"] = dr[0].ItemArray[6].ToString();
  84. }
  85. dataSet1.Tables[0].Rows[i]["TIME"] = Convert.ToDateTime(dst.Tables[0].Rows[0]["TMSTMP"].ToString()).ToString("yyyy-MM-dd HH:mm:ss");
  86. }
  87. }
  88. if (ds == null && ds.Tables.Count <= 0)
  89. {
  90. dataSet1.Clear();
  91. }
  92. }
  93. catch (Exception ex)
  94. {
  95. MessageBox.Show(ex.Message);
  96. }
  97. }
  98. // 加载临时表名
  99. /// <加载临时表名>
  100. /// 加载临时表名
  101. /// </加载临时表名>
  102. private void proc_RTDTable()
  103. {
  104. try
  105. {
  106. string strErr = "";
  107. ArrayList arry = new ArrayList();
  108. arry.Add("proc_RTDTable.Query");
  109. CommonClientToServer ccs = new CommonClientToServer();
  110. ccs.ob = this.ob;
  111. DataSet ds = ccs.ExecuteQueryFunctions("Core.LgMes.Server.Common.ComDBQuery", "doSimpleQuery", arry, out strErr);
  112. if (strErr != "" || !(ds != null && ds.Tables.Count > 0))
  113. {
  114. MessageBox.Show("加载失败!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
  115. if (MessageBox.Show("是否重新加载?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
  116. proc_RTDTable();
  117. return;
  118. }
  119. ucmbRTDTable.Items.Clear();
  120. for (int i = 0; i < ds.Tables[0].Rows.Count; i++) //遍历所有行的信息
  121. {
  122. ucmbRTDTable.Items.Add(ds.Tables[0].Rows[i]["table_name"], GetTablesComments(ds.Tables[0].Rows[i]["table_name"].ToString()));
  123. }
  124. ucmbRTDTable.SelectedIndex = -1;
  125. }
  126. catch (Exception ex)
  127. {
  128. MessageBox.Show(ex.Message);
  129. }
  130. }
  131. /// <summary>
  132. /// 菜单
  133. /// </summary>
  134. /// <param name="sender"></param>
  135. /// <param name="ToolbarKey"></param>
  136. public override void ToolBar_Click(object sender, string ToolbarKey)
  137. {
  138. switch (ToolbarKey)
  139. {
  140. case "Query":
  141. {
  142. proc_Query();
  143. break;
  144. }
  145. case "Update":
  146. {
  147. doEdit();
  148. break;
  149. }
  150. case "Exit":
  151. {
  152. this.Close();
  153. break;
  154. }
  155. }
  156. }
  157. //编辑各表字段信息值
  158. void doEdit()
  159. {
  160. string Fields = "", Vaules = "";
  161. if (uGrdRTD.Rows.Count == 0 || uGrdRTD.ActiveRow == null)
  162. {
  163. MessageBox.Show("无有效数据可修改!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  164. return;
  165. }
  166. Infragistics.Win.UltraWinGrid.UltraGridRow row = this.uGrdRTD.ActiveRow;
  167. Fields = row.Cells["FIELDS"].Text.Trim();
  168. Vaules = row.Cells["VALUE"].Text.Trim();
  169. string strOut = "";
  170. string strSql = "Update " + ucmbRTDTable.Value.ToString() + " set " + Fields + "='" + Vaules + "'";
  171. CoreClientParam ccp = new CoreClientParam();
  172. ccp.ServerName = "Core.LgMes.Server.DEV.Methods.DEVPublicMethods";
  173. ccp.MethodName = "UpdateMethods";
  174. ccp.ServerParams = new Object[] { strSql };
  175. ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  176. strOut = ccp.ReturnInfo.ToString();
  177. if (strOut == "")
  178. {
  179. MessageBox.Show("字段【" + Fields + "】的值已成功修改为【" + Vaules + "】!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  180. }
  181. else
  182. {
  183. MessageBox.Show("修改失败!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  184. return;
  185. }
  186. }
  187. private void frmRTDCons_Load(object sender, EventArgs e)
  188. {
  189. proc_RTDTable();
  190. dtMain.Columns.Add("TableName");
  191. dtMain.Columns.Add("Name");
  192. dtMain.Columns.Add("TYPE");
  193. dtMain.Columns.Add("FLAG");
  194. dtMain.Columns.Add("RDBNAME");
  195. dtMain.Columns.Add("SAVEFLAG");
  196. dtMain.Columns.Add("TEXT");
  197. //string filename = System.Windows.Forms.Application.StartupPath + @"\hdbset.xml";
  198. //XmlDocument xmldoc = new XmlDocument();
  199. //xmldoc.Load(filename);
  200. //GetOPCxml(xmldoc);
  201. }
  202. private void chkAutoRef_CheckedChanged(object sender, EventArgs e)
  203. {
  204. if (chkAutoRef.Checked == true)
  205. {
  206. nUpDTime.Interval = System.Convert.ToInt32(1000);
  207. nUpDTime.Enabled = true;
  208. }
  209. else
  210. {
  211. nUpDTime.Enabled = false;
  212. }
  213. }
  214. // 1秒刷新一次
  215. /// <summary>
  216. /// 1秒刷新一次
  217. /// </summary>
  218. /// <param name="sender"></param>
  219. /// <param name="e"></param>
  220. private void nUpDTime_Tick(object sender, EventArgs e)
  221. {
  222. proc_Query();
  223. }
  224. // 获取OPC配置文件
  225. /// <summary>
  226. /// 获取OPC配置文件
  227. /// </summary>
  228. /// <param name="xmlnode"></param>
  229. private void GetOPCxml(XmlNode xmlnode)
  230. {
  231. if (xmlnode.Attributes != null)
  232. {
  233. for (int i = 0; i < xmlnode.Attributes.Count; i++)
  234. {
  235. string dd3 = xmlnode.Attributes[i].Value;
  236. if (xmlnode.Attributes[i].Value.Length > 3 && xmlnode.Attributes[i].Value.Substring(0, 4) == "RTD_")
  237. {
  238. dsMain.Tables.Add(xmlnode.Attributes[i].Value);
  239. strTableName = xmlnode.Attributes[i].Value;
  240. continue;
  241. }
  242. if (xmlnode.ParentNode.Attributes.Count > 0 && xmlnode.ParentNode.Attributes[0].Value == strTableName)
  243. {
  244. DataRow dr = dtMain.NewRow();
  245. dr["TABLENAME"] = xmlnode.ParentNode.Attributes[0].Value;
  246. dr["NAME"] = xmlnode.Attributes[0].Value;
  247. dr["TYPE"] = xmlnode.Attributes[1].Value;
  248. dr["FLAG"] = xmlnode.Attributes[2].Value;
  249. dr["RDBNAME"] = xmlnode.Attributes[3].Value;
  250. dr["SAVEFLAG"] = xmlnode.Attributes[4].Value;
  251. dr["TEXT"] = xmlnode.Attributes[5].Value;
  252. dtMain.Rows.Add(dr);
  253. break;
  254. }
  255. }
  256. }
  257. //递归调用
  258. foreach (XmlNode xmlChild in xmlnode.ChildNodes)
  259. {
  260. GetOPCxml(xmlChild);
  261. }
  262. }
  263. // 根据表名返回表说明
  264. /// <summary>
  265. /// 根据表名返回表说明
  266. /// </summary>
  267. /// <param name="strTables">名称</param>
  268. /// <returns>表说明</returns>
  269. private string GetTablesComments(string strTables)
  270. {
  271. string strPos =strTables.Substring(9,4);
  272. string strTabType = strTables.Substring(strTables.Length - 1, 1);
  273. string strTabComments = "";
  274. switch (strPos)
  275. {
  276. case "MIS1":
  277. strTabComments = "1#混铁炉";
  278. if (strTabType == "1")
  279. strTabComments += "业务驱动信号表";
  280. break;
  281. case "MIS2":
  282. strTabComments = "2#混铁炉";
  283. if (strTabType == "1")
  284. strTabComments += "业务驱动信号表";
  285. break;
  286. case "HMP1":
  287. strTabComments = "1#脱硫站";
  288. if (strTabType == "1")
  289. strTabComments += "业务驱动信号表";
  290. break;
  291. case "HMP2":
  292. strTabComments = "2#脱硫站";
  293. if (strTabType == "1")
  294. strTabComments += "业务驱动信号表";
  295. break;
  296. case "BOF1":
  297. strTabComments = "1#转炉";
  298. if (strTabType == "1")
  299. strTabComments += "业务驱动信号表";
  300. else
  301. strTabComments += "料仓自动加料信号表";
  302. break;
  303. case "BOF2":
  304. strTabComments = "2#转炉";
  305. if (strTabType == "1")
  306. strTabComments += "业务驱动信号表";
  307. else
  308. strTabComments += "料仓自动加料信号表";
  309. break;
  310. case "BOF3":
  311. strTabComments = "3#转炉";
  312. if (strTabType == "1")
  313. strTabComments += "业务驱动信号表";
  314. else
  315. strTabComments += "料仓自动加料信号表";
  316. break;
  317. case "BOF4":
  318. strTabComments = "4#转炉";
  319. if (strTabType == "1")
  320. strTabComments += "业务驱动信号表";
  321. else
  322. strTabComments += "料仓自动加料信号表";
  323. break;
  324. case "BOF5":
  325. strTabComments = "5#转炉";
  326. if (strTabType == "1")
  327. strTabComments += "业务驱动信号表";
  328. else
  329. strTabComments += "料仓自动加料信号表";
  330. break;
  331. case "CAS1":
  332. strTabComments = "1#吹氩站";
  333. if (strTabType == "1")
  334. strTabComments += "业务驱动信号表";
  335. else
  336. strTabComments += "料仓自动加料信号表";
  337. break;
  338. case "CAS2":
  339. strTabComments = "2#吹氩站";
  340. if (strTabType == "1")
  341. strTabComments += "业务驱动信号表";
  342. else
  343. strTabComments += "料仓自动加料信号表";
  344. break;
  345. case "CAS3":
  346. strTabComments = "3#吹氩站";
  347. if (strTabType == "1")
  348. strTabComments += "业务驱动信号表";
  349. else
  350. strTabComments += "料仓自动加料信号表";
  351. break;
  352. case "CAS4":
  353. strTabComments = "4#吹氩站";
  354. if (strTabType == "1")
  355. strTabComments += "业务驱动信号表";
  356. else
  357. strTabComments += "料仓自动加料信号表";
  358. break;
  359. case "CAS5":
  360. strTabComments = "5#吹氩站";
  361. if (strTabType == "1")
  362. strTabComments += "业务驱动信号表";
  363. else
  364. strTabComments += "料仓自动加料信号表";
  365. break;
  366. case "LFS1":
  367. strTabComments = "1#LF炉";
  368. if (strTabType == "1")
  369. strTabComments += "业务驱动信号表";
  370. else
  371. strTabComments += "料仓自动加料信号表";
  372. break;
  373. case "LFS2":
  374. strTabComments = "2#LF炉";
  375. if (strTabType == "1")
  376. strTabComments += "主要信号表";
  377. else
  378. strTabComments += "料仓自动加料信号表";
  379. break;
  380. case "LFS3":
  381. strTabComments = "3#LF炉";
  382. if (strTabType == "1")
  383. strTabComments += "业务驱动信号表";
  384. else
  385. strTabComments += "料仓自动加料信号表";
  386. break;
  387. case "RHS1":
  388. strTabComments = "1#RH炉";
  389. if (strTabType =="1")
  390. strTabComments += "业务驱动信号表";
  391. else
  392. strTabComments += "料仓自动加料信号表";
  393. break;
  394. case "RHS2":
  395. strTabComments = "2#RH炉";
  396. if (strTabType == "1")
  397. strTabComments += "业务驱动信号表";
  398. else
  399. strTabComments += "料仓自动加料信号表";
  400. break;
  401. case "VDS1":
  402. strTabComments = "1#VD炉";
  403. if (strTabType == "1")
  404. strTabComments += "业务驱动信号表";
  405. else
  406. strTabComments += "料仓自动加料信号表";
  407. break;
  408. case "VDS2":
  409. strTabComments = "2#VD炉";
  410. if (strTabType == "1")
  411. strTabComments += "业务驱动信号表";
  412. else
  413. strTabComments += "料仓自动加料信号表";
  414. break;
  415. case "CCM1":
  416. strTabComments = "1#连铸机";
  417. if (strTabType == "1")
  418. strTabComments += "业务驱动信号表";
  419. else if(strTabType == "2")
  420. strTabComments += "二冷水信号表";
  421. else if (strTabType == "3")
  422. strTabComments += "坯料切割信号表";
  423. break;
  424. case "CCM2":
  425. strTabComments = "2#连铸机";
  426. if (strTabType == "1")
  427. strTabComments += "业务驱动信号表";
  428. else if (strTabType == "2")
  429. strTabComments += "二冷水信号表";
  430. else if (strTabType == "3")
  431. strTabComments += "坯料切割信号表";
  432. break;
  433. case "CCM3":
  434. strTabComments = "3#连铸机";
  435. if (strTabType == "1")
  436. strTabComments += "业务驱动信号表";
  437. else if (strTabType == "2")
  438. strTabComments += "二冷水信号表";
  439. else if (strTabType == "3")
  440. strTabComments += "坯料切割信号表";
  441. break;
  442. case "CCM4":
  443. strTabComments = "4#连铸机";
  444. if (strTabType == "1")
  445. strTabComments += "业务驱动信号表";
  446. else if (strTabType == "2")
  447. strTabComments += "二冷水信号表";
  448. else if (strTabType == "3")
  449. strTabComments += "坯料切割信号表";
  450. break;
  451. case "CCM5":
  452. strTabComments = "5#连铸机";
  453. if (strTabType == "1")
  454. strTabComments += "业务驱动信号表";
  455. else if (strTabType == "2")
  456. strTabComments += "二冷水信号表";
  457. else if (strTabType == "3")
  458. strTabComments += "坯料切割信号表";
  459. break;
  460. default:
  461. if (strTables == "RTD_POINTLYJZ1")
  462. strTabComments = "能源介质信号表";
  463. else if(strTables == "RTD_POINTCCMBILLWEIGHT")
  464. strTabComments = "连铸切割坯料称重信号表";
  465. break;
  466. }
  467. return strTabComments;
  468. }
  469. }
  470. }