OTSSysSTDMgrClass.cs 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Data;
  4. using System.Text;
  5. using SqLiteHelperNamespace;
  6. using OTSINTERFACE;
  7. using System.Drawing;
  8. using System.Collections;
  9. namespace OTSSysMgrTools
  10. {
  11. public class OTSSysSTDMgrClass
  12. {
  13. private List<string> IncAId = new List<string>();
  14. private SqLiteHelper sql = null;
  15. //系统STD文件路径
  16. private string m_STDDBPath = "Config\\SysData";
  17. //系统STD文件 数据库名称
  18. private string m_STDDBName = "GeneralSTDData.db";
  19. //系统STD文件 表名
  20. private const string m_STDTableName = "IncALib";
  21. #region 匹配系统默认分类
  22. /// <summary>
  23. /// 匹配系统默认分类
  24. /// </summary>
  25. /// <param name="STDID"></param>
  26. /// <returns></returns>
  27. public string GetEnumSTDNameInSTDID(int STDID)
  28. {
  29. Language lan = new Language();
  30. Hashtable table= lan.GetNameTable("OTSSysSTDMgrClass");
  31. string str1 = table["str1"].ToString();
  32. string str2 = table["str2"].ToString();
  33. string str3 = table["str3"].ToString();
  34. string str4 = table["str4"].ToString();
  35. string str5 = table["str5"].ToString();
  36. string str6 = table["str6"].ToString();
  37. string str7 = table["str7"].ToString();
  38. string str8 = table["str8"].ToString();
  39. string str9 = table["str9"].ToString();
  40. string str10 = table["str10"].ToString();
  41. string str11 = table["str11"].ToString();
  42. string stdName = string.Empty;
  43. switch (STDID)
  44. {
  45. case -1:
  46. //INVALID = -1,
  47. stdName = str1;
  48. break;
  49. case 0:
  50. //small = 0;
  51. stdName = str2;
  52. break;
  53. case 1:
  54. //OVERSIZE = 1,
  55. stdName = str3;
  56. break;
  57. case 2:
  58. //AVE_GRAY_NOT_INRANRE = 2,
  59. stdName = str4;
  60. break;
  61. case 3:
  62. //SEARCH_X_RAY = 3,
  63. stdName = str5;
  64. break;
  65. case 4:
  66. //LOW_COUNT = 4,
  67. stdName = str6;
  68. break;
  69. case 5:
  70. //NO_INTEREST_ELEMENTS = 5,
  71. stdName = str7;
  72. break;
  73. case 6:
  74. //ALAYSIS_X_RAY = 6,
  75. stdName = str8;
  76. break;
  77. case 7:
  78. //SIC = 7,
  79. stdName = str9;
  80. break;
  81. case 8:
  82. //FeO = 8,
  83. stdName = str10;
  84. break;
  85. case 9:
  86. //NOT_IDENTIFIED = 9,
  87. stdName = str11;
  88. break;
  89. }
  90. return stdName;
  91. }
  92. /// <summary>
  93. /// 匹配系统默认分类
  94. /// </summary>
  95. /// <param name="STDID"></param>
  96. /// <returns></returns>
  97. public Color GetColorByEnum(int STDID)
  98. {
  99. Color ret_c = new Color();
  100. switch (STDID)
  101. {
  102. case -1:
  103. //INVALID = -1,
  104. //stdName = "无效颗粒";
  105. ret_c = Color.Black;
  106. break;
  107. case 0:
  108. //small = 0;
  109. //stdName = "过小颗粒";
  110. ret_c = Color.Black;
  111. break;
  112. case 1:
  113. //OVERSIZE = 1,
  114. //stdName = "过大颗粒";
  115. ret_c = Color.Black;
  116. break;
  117. case 2:
  118. //AVE_GRAY_NOT_INRANRE = 2,
  119. //stdName = "亮度不在分析范围内的颗粒";
  120. ret_c = Color.Black;
  121. break;
  122. case 3:
  123. //SEARCH_X_RAY = 3,
  124. //stdName = "不进行搜索x-ray分析的颗粒";
  125. ret_c = Color.Black;
  126. break;
  127. case 4:
  128. //LOW_COUNT = 4,
  129. //stdName = "低x-ray计数颗粒";
  130. ret_c = Color.Black;
  131. break;
  132. case 5:
  133. //NO_INTEREST_ELEMENTS = 5,
  134. //stdName = "不含分析元素的颗粒";
  135. ret_c = Color.Black;
  136. break;
  137. case 6:
  138. //ALAYSIS_X_RAY = 6,
  139. //stdName = "不进行x-ray分析的颗粒";
  140. ret_c = Color.Black;
  141. break;
  142. case 7:
  143. //NOT_IDENTIFIED = 7,
  144. //stdName = "未识别颗粒";
  145. ret_c = Color.Black;
  146. break;
  147. case 8:
  148. //NOT_IDENTIFIED = 8,
  149. //stdName = "未识别颗粒";
  150. ret_c = Color.Black;
  151. break;
  152. case 9:
  153. //NOT_IDENTIFIED = 9,
  154. //stdName = "未识别颗粒";
  155. ret_c = Color.Black;
  156. break;
  157. default:
  158. ret_c = Color.Black;
  159. break;
  160. }
  161. return ret_c;
  162. }
  163. #endregion
  164. #region 根据STDID 获取系统数据库中夹杂物名称
  165. /// <summary>
  166. /// 根据STDID 获取系统数据库中夹杂物名称
  167. /// </summary>
  168. /// <param name="IncAId">夹杂物</param>
  169. /// <returns></returns>
  170. public string GetSysSTDNameInSTDId(int STDId)
  171. {
  172. try
  173. {
  174. string stdName = string.Empty;
  175. sql = new SqLiteHelper("data source='" + m_STDDBPath + "\\" + m_STDDBName + "'");
  176. //通过元素编号获取元素名称
  177. string IncAlibSqlString = CreateIncAlibQuerySql(STDId);
  178. DataTable sqldt = sql.ExecuteQuery(IncAlibSqlString);
  179. if (sqldt != null)
  180. {
  181. if (sqldt.Rows.Count > 0)
  182. {
  183. stdName = sqldt.Rows[0]["Name"].ToString();
  184. }
  185. }
  186. return stdName;
  187. }
  188. catch (Exception)
  189. {
  190. return "";
  191. }
  192. }
  193. public string GetSysSTDNameInSTDId(string STDDBName, int STDId)
  194. {
  195. try
  196. {
  197. string stdName = string.Empty;
  198. sql = new SqLiteHelper("data source='" + m_STDDBPath + "\\" + STDDBName + "'");
  199. //通过元素编号获取元素名称
  200. string IncAlibSqlString = CreateIncAlibQuerySql(STDId);
  201. DataTable sqldt = sql.ExecuteQuery(IncAlibSqlString);
  202. if (sqldt != null)
  203. {
  204. if (sqldt.Rows.Count > 0)
  205. {
  206. stdName = sqldt.Rows[0]["Name"].ToString();
  207. }
  208. }
  209. return stdName;
  210. }
  211. catch (Exception)
  212. {
  213. return "";
  214. }
  215. }
  216. /// <summary>
  217. /// 根据STDID 获取系统数据库中夹杂物名称,从传入的DataTable中选取
  218. /// </summary>
  219. /// <param name="STDID"></param>
  220. /// <param name="in_dt"></param>
  221. /// <returns></returns>
  222. public string Get16HexColorBySysSTD_ByDataTable(int STDID, DataTable in_dt)
  223. {
  224. string str_16hex = "#000000";
  225. if (in_dt == null)
  226. return str_16hex;
  227. if (in_dt.Rows.Count == 0)
  228. return str_16hex;
  229. DataRow[] ls_drs = in_dt.Select(" incaid ='"+STDID.ToString()+"'");
  230. if (ls_drs.Length > 0)
  231. {
  232. str_16hex = "#" + ls_drs[0]["color"].ToString();
  233. }
  234. return str_16hex;
  235. }
  236. /// <summary>
  237. /// 更新夹杂物分类ID,按指定的FieldId和ParticleId进行更新
  238. /// </summary>
  239. /// <param name="in_stdid"></param>
  240. /// <param name="in_fieldid"></param>
  241. /// <param name="in_particleid"></param>
  242. /// <returns></returns>
  243. public bool UpdateIncAId_ByFieldidAndParticleId(string in_workingfolder,string in_stdid,string in_typename,string in_typecolor,string in_fieldid,string in_particleid)
  244. {
  245. try
  246. {
  247. sql = new SqLiteHelper("data source='"+ in_workingfolder + "'");
  248. sql.ExecuteQuery("update IncAData set TypeId = " + in_stdid + ",TypeName = '"+ in_typename + "' , TypeColor = '"+ in_typecolor + "' where FieldId = " + in_fieldid + " and ParticleId = " + in_particleid);
  249. return true;
  250. }
  251. catch(Exception ee)
  252. {
  253. string str = ee.ToString();
  254. return false;
  255. }
  256. }
  257. /// <summary>
  258. /// 从数据库中直接删除夹杂物,按指定的Field和ParticleID
  259. /// </summary>
  260. /// <param name="in_workingfolder"></param>
  261. /// <param name="in_fieldid"></param>
  262. /// <param name="in_particleid"></param>
  263. /// <returns></returns>
  264. public bool DeleteIncAId_ByFieldIdAndParticleId(string in_workingfolder, string in_fieldid, string in_particleid)
  265. {
  266. try
  267. {
  268. sql = new SqLiteHelper("data source='" + in_workingfolder + "'");
  269. sql.ExecuteQuery("delete from IncAData where FieldId ="+in_fieldid+" and ParticleId = "+ in_particleid);
  270. return true;
  271. }
  272. catch (Exception ee)
  273. {
  274. string str = ee.ToString();
  275. return false;
  276. }
  277. }
  278. /// <summary>
  279. /// 返回数据库中所有的夹杂物信息
  280. /// </summary>
  281. /// <returns></returns>
  282. public DataTable GetDataTableAllSTDInfo()
  283. {
  284. DataTable ret_dt = new DataTable();
  285. try
  286. {
  287. sql = new SqLiteHelper("data source='" + m_STDDBPath + "\\" + m_STDDBName + "'");
  288. //通过元素编号获取元素名称
  289. ret_dt = sql.ExecuteQuery("select * from IncALib");
  290. }
  291. catch (Exception)
  292. {
  293. }
  294. return ret_dt;
  295. }
  296. /// <summary>
  297. /// 根据STDID 获取系统数据库中夹杂物名称
  298. /// </summary>
  299. /// <param name="STDID"></param>
  300. /// <returns></returns>
  301. public string Get16HexColorBySysSTD(int STDID)
  302. {
  303. string str_16hex = "#000000";
  304. try
  305. {
  306. sql = new SqLiteHelper("data source='" + m_STDDBPath + "\\" + m_STDDBName + "'");
  307. //通过元素编号获取元素名称
  308. string IncAlibSqlString = CreateIncAlibQuerySql(STDID);
  309. DataTable sqldt = sql.ExecuteQuery(IncAlibSqlString);
  310. if (sqldt != null)
  311. {
  312. if (sqldt.Rows.Count > 0)
  313. {
  314. str_16hex ="#"+ sqldt.Rows[0]["Color"].ToString();
  315. }
  316. }
  317. return str_16hex;
  318. }
  319. catch (Exception ee)
  320. {
  321. string str = ee.ToString();
  322. }
  323. return str_16hex;
  324. }
  325. #endregion
  326. #region 根据STDID 获取用户标准库中夹杂物名称
  327. /// <summary>
  328. /// 根据STDID 获取用户标准库中夹杂物名称
  329. /// </summary>
  330. /// <param name="WSample">样品对象</param>
  331. /// <param name="STDId">标准库编号</param>
  332. /// <returns>夹杂物名称</returns>
  333. public string GetUserSTDNameInSTDId(COTSSampleClr WSample, int STDId)
  334. {
  335. try
  336. {
  337. string stdName = string.Empty;
  338. if (WSample != null)
  339. {
  340. if (WSample.GetMsrParams() != null)
  341. {
  342. if (WSample.GetMsrParams().GetPartSTDData() != null)
  343. {
  344. CPartSTDDataClr cPartSTDDataClr = WSample.GetMsrParams().GetPartSTDData();
  345. if (cPartSTDDataClr.GetSTDItemsList() != null)
  346. {
  347. if (cPartSTDDataClr.GetSTDItemsList().Count > 0)
  348. {
  349. foreach (var item in cPartSTDDataClr.GetSTDItemsList())
  350. {
  351. if (item.GetSTDId().Equals(STDId))
  352. {
  353. stdName = item.GetName();
  354. break;
  355. }
  356. }
  357. }
  358. }
  359. }
  360. }
  361. }
  362. return stdName;
  363. }
  364. catch (Exception)
  365. {
  366. return "";
  367. }
  368. }
  369. /// <summary>
  370. /// 根据STDID 获取用户标准库中夹杂物颜色
  371. /// </summary>
  372. /// <param name="STDID"></param>
  373. /// <returns></returns>
  374. public string Get16HexColorByUserSTD(COTSSampleClr WSample, int STDID)
  375. {
  376. string str_16hex = "#000000";
  377. try
  378. {
  379. //string stdName = string.Empty;
  380. if (WSample != null)
  381. {
  382. if (WSample.GetMsrParams() != null)
  383. {
  384. if (WSample.GetMsrParams().GetPartSTDData() != null)
  385. {
  386. CPartSTDDataClr cPartSTDDataClr = WSample.GetMsrParams().GetPartSTDData();
  387. if (cPartSTDDataClr.GetSTDItemsList() != null)
  388. {
  389. if (cPartSTDDataClr.GetSTDItemsList().Count > 0)
  390. {
  391. foreach (var item in cPartSTDDataClr.GetSTDItemsList())
  392. {
  393. if (item.GetSTDId().Equals(STDID))
  394. {
  395. //stdName = item.GetName();
  396. if (item.GetColor().IndexOf('#') >= 0)
  397. {
  398. str_16hex = item.GetColor();
  399. }
  400. else
  401. {
  402. str_16hex = "#" + item.GetColor();
  403. }
  404. break;
  405. }
  406. }
  407. }
  408. }
  409. }
  410. }
  411. }
  412. }
  413. catch (Exception ee)
  414. {
  415. string str = ee.ToString();
  416. }
  417. return str_16hex;
  418. }
  419. #endregion
  420. #region 创建查询语句
  421. /// <summary>
  422. /// 创建查询元素信息 sql语句
  423. /// </summary>
  424. /// <param name="STDId">夹杂物编号</param>
  425. /// <returns>string 查询语句</returns>
  426. protected string CreateIncAlibQuerySql(int STDId)
  427. {
  428. StringBuilder sqlString = new StringBuilder();
  429. sqlString.Append("select Name");
  430. sqlString.Append(" from " + m_STDTableName + "");
  431. sqlString.Append(" where IncAId = '" + STDId + "'");
  432. return sqlString.ToString();
  433. }
  434. #endregion
  435. }
  436. }