using System; using System.Collections.Generic; using System.Data; using System.Text; using SqLiteHelperNamespace; using OTSINTERFACE; using System.Drawing; using System.Collections; namespace OTSSysMgrTools { public class OTSSysSTDMgrClass { private List IncAId = new List(); private SqLiteHelper sql = null; //系统STD文件路径 private string m_STDDBPath = "Config\\SysData"; //系统STD文件 数据库名称 private string m_STDDBName = "GeneralSTDData.db"; //系统STD文件 表名 private const string m_STDTableName = "IncALib"; #region 匹配系统默认分类 /// /// 匹配系统默认分类 /// /// /// public string GetEnumSTDNameInSTDID(int STDID) { Language lan = new Language(); Hashtable table= lan.GetNameTable("OTSSysSTDMgrClass"); string str1 = table["str1"].ToString(); string str2 = table["str2"].ToString(); string str3 = table["str3"].ToString(); string str4 = table["str4"].ToString(); string str5 = table["str5"].ToString(); string str6 = table["str6"].ToString(); string str7 = table["str7"].ToString(); string str8 = table["str8"].ToString(); string str9 = table["str9"].ToString(); string str10 = table["str10"].ToString(); string str11 = table["str11"].ToString(); string stdName = string.Empty; switch (STDID) { case -1: //INVALID = -1, stdName = str1; break; case 0: //small = 0; stdName = str2; break; case 1: //OVERSIZE = 1, stdName = str3; break; case 2: //AVE_GRAY_NOT_INRANRE = 2, stdName = str4; break; case 3: //SEARCH_X_RAY = 3, stdName = str5; break; case 4: //LOW_COUNT = 4, stdName = str6; break; case 5: //NO_INTEREST_ELEMENTS = 5, stdName = str7; break; case 6: //ALAYSIS_X_RAY = 6, stdName = str8; break; case 7: //SIC = 7, stdName = str9; break; case 8: //FeO = 8, stdName = str10; break; case 9: //NOT_IDENTIFIED = 9, stdName = str11; break; } return stdName; } /// /// 匹配系统默认分类 /// /// /// public Color GetColorByEnum(int STDID) { Color ret_c = new Color(); switch (STDID) { case -1: //INVALID = -1, //stdName = "无效颗粒"; ret_c = Color.Black; break; case 0: //small = 0; //stdName = "过小颗粒"; ret_c = Color.Black; break; case 1: //OVERSIZE = 1, //stdName = "过大颗粒"; ret_c = Color.Black; break; case 2: //AVE_GRAY_NOT_INRANRE = 2, //stdName = "亮度不在分析范围内的颗粒"; ret_c = Color.Black; break; case 3: //SEARCH_X_RAY = 3, //stdName = "不进行搜索x-ray分析的颗粒"; ret_c = Color.Black; break; case 4: //LOW_COUNT = 4, //stdName = "低x-ray计数颗粒"; ret_c = Color.Black; break; case 5: //NO_INTEREST_ELEMENTS = 5, //stdName = "不含分析元素的颗粒"; ret_c = Color.Black; break; case 6: //ALAYSIS_X_RAY = 6, //stdName = "不进行x-ray分析的颗粒"; ret_c = Color.Black; break; case 7: //NOT_IDENTIFIED = 7, //stdName = "未识别颗粒"; ret_c = Color.Black; break; case 8: //NOT_IDENTIFIED = 8, //stdName = "未识别颗粒"; ret_c = Color.Black; break; case 9: //NOT_IDENTIFIED = 9, //stdName = "未识别颗粒"; ret_c = Color.Black; break; default: ret_c = Color.Black; break; } return ret_c; } #endregion #region 根据STDID 获取系统数据库中夹杂物名称 /// /// 根据STDID 获取系统数据库中夹杂物名称 /// /// 夹杂物 /// public string GetSysSTDNameInSTDId(int STDId) { try { string stdName = string.Empty; sql = new SqLiteHelper("data source='" + m_STDDBPath + "\\" + m_STDDBName + "'"); //通过元素编号获取元素名称 string IncAlibSqlString = CreateIncAlibQuerySql(STDId); DataTable sqldt = sql.ExecuteQuery(IncAlibSqlString); if (sqldt != null) { if (sqldt.Rows.Count > 0) { stdName = sqldt.Rows[0]["Name"].ToString(); } } return stdName; } catch (Exception) { return ""; } } public string GetSysSTDNameInSTDId(string STDDBName, int STDId) { try { string stdName = string.Empty; sql = new SqLiteHelper("data source='" + m_STDDBPath + "\\" + STDDBName + "'"); //通过元素编号获取元素名称 string IncAlibSqlString = CreateIncAlibQuerySql(STDId); DataTable sqldt = sql.ExecuteQuery(IncAlibSqlString); if (sqldt != null) { if (sqldt.Rows.Count > 0) { stdName = sqldt.Rows[0]["Name"].ToString(); } } return stdName; } catch (Exception) { return ""; } } /// /// 根据STDID 获取系统数据库中夹杂物名称,从传入的DataTable中选取 /// /// /// /// public string Get16HexColorBySysSTD_ByDataTable(int STDID, DataTable in_dt) { string str_16hex = "#000000"; if (in_dt == null) return str_16hex; if (in_dt.Rows.Count == 0) return str_16hex; DataRow[] ls_drs = in_dt.Select(" incaid ='"+STDID.ToString()+"'"); if (ls_drs.Length > 0) { str_16hex = "#" + ls_drs[0]["color"].ToString(); } return str_16hex; } /// /// 更新夹杂物分类ID,按指定的FieldId和ParticleId进行更新 /// /// /// /// /// public bool UpdateIncAId_ByFieldidAndParticleId(string in_workingfolder,string in_stdid,string in_typename,string in_typecolor,string in_fieldid,string in_particleid) { try { sql = new SqLiteHelper("data source='"+ in_workingfolder + "'"); sql.ExecuteQuery("update IncAData set TypeId = " + in_stdid + ",TypeName = '"+ in_typename + "' , TypeColor = '"+ in_typecolor + "' where FieldId = " + in_fieldid + " and ParticleId = " + in_particleid); return true; } catch(Exception ee) { string str = ee.ToString(); return false; } } /// /// 从数据库中直接删除夹杂物,按指定的Field和ParticleID /// /// /// /// /// public bool DeleteIncAId_ByFieldIdAndParticleId(string in_workingfolder, string in_fieldid, string in_particleid) { try { sql = new SqLiteHelper("data source='" + in_workingfolder + "'"); sql.ExecuteQuery("delete from IncAData where FieldId ="+in_fieldid+" and ParticleId = "+ in_particleid); return true; } catch (Exception ee) { string str = ee.ToString(); return false; } } /// /// 返回数据库中所有的夹杂物信息 /// /// public DataTable GetDataTableAllSTDInfo() { DataTable ret_dt = new DataTable(); try { sql = new SqLiteHelper("data source='" + m_STDDBPath + "\\" + m_STDDBName + "'"); //通过元素编号获取元素名称 ret_dt = sql.ExecuteQuery("select * from IncALib"); } catch (Exception) { } return ret_dt; } /// /// 根据STDID 获取系统数据库中夹杂物名称 /// /// /// public string Get16HexColorBySysSTD(int STDID) { string str_16hex = "#000000"; try { sql = new SqLiteHelper("data source='" + m_STDDBPath + "\\" + m_STDDBName + "'"); //通过元素编号获取元素名称 string IncAlibSqlString = CreateIncAlibQuerySql(STDID); DataTable sqldt = sql.ExecuteQuery(IncAlibSqlString); if (sqldt != null) { if (sqldt.Rows.Count > 0) { str_16hex ="#"+ sqldt.Rows[0]["Color"].ToString(); } } return str_16hex; } catch (Exception ee) { string str = ee.ToString(); } return str_16hex; } #endregion #region 根据STDID 获取用户标准库中夹杂物名称 /// /// 根据STDID 获取用户标准库中夹杂物名称 /// /// 样品对象 /// 标准库编号 /// 夹杂物名称 public string GetUserSTDNameInSTDId(COTSSampleClr WSample, int STDId) { try { string stdName = string.Empty; if (WSample != null) { if (WSample.GetMsrParams() != null) { if (WSample.GetMsrParams().GetPartSTDData() != null) { CPartSTDDataClr cPartSTDDataClr = WSample.GetMsrParams().GetPartSTDData(); if (cPartSTDDataClr.GetSTDItemsList() != null) { if (cPartSTDDataClr.GetSTDItemsList().Count > 0) { foreach (var item in cPartSTDDataClr.GetSTDItemsList()) { if (item.GetSTDId().Equals(STDId)) { stdName = item.GetName(); break; } } } } } } } return stdName; } catch (Exception) { return ""; } } /// /// 根据STDID 获取用户标准库中夹杂物颜色 /// /// /// public string Get16HexColorByUserSTD(COTSSampleClr WSample, int STDID) { string str_16hex = "#000000"; try { //string stdName = string.Empty; if (WSample != null) { if (WSample.GetMsrParams() != null) { if (WSample.GetMsrParams().GetPartSTDData() != null) { CPartSTDDataClr cPartSTDDataClr = WSample.GetMsrParams().GetPartSTDData(); if (cPartSTDDataClr.GetSTDItemsList() != null) { if (cPartSTDDataClr.GetSTDItemsList().Count > 0) { foreach (var item in cPartSTDDataClr.GetSTDItemsList()) { if (item.GetSTDId().Equals(STDID)) { //stdName = item.GetName(); if (item.GetColor().IndexOf('#') >= 0) { str_16hex = item.GetColor(); } else { str_16hex = "#" + item.GetColor(); } break; } } } } } } } } catch (Exception ee) { string str = ee.ToString(); } return str_16hex; } #endregion #region 创建查询语句 /// /// 创建查询元素信息 sql语句 /// /// 夹杂物编号 /// string 查询语句 protected string CreateIncAlibQuerySql(int STDId) { StringBuilder sqlString = new StringBuilder(); sqlString.Append("select Name"); sqlString.Append(" from " + m_STDTableName + ""); sqlString.Append(" where IncAId = '" + STDId + "'"); return sqlString.ToString(); } #endregion } }