using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using OTSINTERFACE; using NSLogFunExport; using System.Drawing; using System.Data; using System.Collections; namespace OTSPeriodicTable { #region 枚举定义 /// /// 作用类别 /// enum OTS_SOFT_PACKAGE_ID { OTSIncA = 0, //夹杂物分析 OTSPartA = 1, //颗粒度分析 }; /// /// 当前选择标准库下拉选项 /// enum OTS_STDLIB_SELECT_OPTIONS { SySSTDData = 0, GeneralSTDData = 1, GeneralAlloySteelSTDData = 2, SpringSteelSTDSata = 3, } #endregion public class OTSPeriodicTableFun { #region 变量定义 ClassinicationRuleForm m_CRF; //public CPartSTDFileMnrClr m_cpartstdfilemnrclr; //STD文件类 public CGenParamClr m_cgenparamclr; //参数类 //public CPartSTDDataClr m_cpartstddataclr; //std类 用这个类先定义一个文件,然后再进行操作 // 初始化日志类 public CFunExportClass m_LogFunExport = null; //日志类 const String m_csFileName = "OTSMeasureAppLog"; // 测量程序日志文件名 //为了获取默认路径而定义 public COTSProgMgrCLR m_cotsprogmgrclr; //从这里开始load public COTSProgMgrParamFileClr m_cotsprogmgrparamfileclr; //参数类 //国际化 OTSSysMgrTools.Language lan; Hashtable table; #endregion #region 构造函数 /// /// 构造函数 /// public OTSPeriodicTableFun(ClassinicationRuleForm in_crf) { m_LogFunExport = new CFunExportClass(); m_LogFunExport.InitLog(m_csFileName); //m_cpartstdfilemnrclr = new CPartSTDFileMnrClr(); m_cgenparamclr = new CGenParamClr(); //m_cpartstddataclr = new CPartSTDDataClr(); m_cotsprogmgrparamfileclr = new COTSProgMgrParamFileClr(); m_cotsprogmgrclr = new COTSProgMgrCLR(); m_CRF = in_crf; //国际化 lan = new OTSSysMgrTools.Language(); table = lan.GetNameTable("ClassinicationRuleForm"); } #endregion #region STD文件操作相关 /// /// 读取STD文件 /// //public bool STDLoad(string strPath) //{ // //m_LogFunExport.TraceLog("(OTSPeriodicTableFun.STDLoad) 加载STD文件数据"); // if (false == m_cpartstdfilemnrclr.Load(strPath, true)) // { // m_LogFunExport.TraceErrorLog("(OTSPeriodicTableFun.STDLoad) 加载STD文件数据错误"); // return false; // } // return true; //} /// /// 保存STD文件 /// /// //public bool STDSave(string strPath,string LibraryName) //{ // //m_LogFunExport.TraceLog("(OTSPeriodicTableFun.STDSave) 保存STD文件数据"); // //先将std类设置给std文件类 // bool b_ret = m_cpartstdfilemnrclr.SetPartSTDData(m_cpartstddataclr); // if (false == b_ret) // { // m_LogFunExport.TraceErrorLog("(OTSPeriodicTableFun.SetPartSTDData) 将STD类设置给STD文件类失败!"); // return false; // } // //最后再进行保存 // if (false == m_cpartstdfilemnrclr.Save(strPath, LibraryName)) // { // m_LogFunExport.TraceErrorLog("(OTSPeriodicTableFun.STDLoad) 保存STD文件数据错误"); // return false; // } // return true; //} /// /// 设置库名 /// /// //public void STDPartSetName(string strName) //{ // // m_LogFunExport.TraceLog("(OTSPeriodicTableFun.STDPartSetName) 设置库名"); // m_cpartstddataclr.SetName(strName); //} /// /// 获取库名 /// /// //public string STDPartGetName() //{ // // m_LogFunExport.TraceLog("(OTSPeriodicTableFun.STDPartGetName) 获取库名"); // //将std类设置给std文件夹,再获取名字 // m_cpartstddataclr = m_cpartstdfilemnrclr.GetPartSTDData(); // if (null == m_cpartstddataclr) // { // m_LogFunExport.TraceErrorLog("(OTSPeriodicTableFun.STDPartGetName) 获取STD类失败,导致获取库名失败!"); // return ""; // } // string strName = m_cpartstddataclr.GetName(); // return strName; //} /// /// 设置CPartSTDDataClr类给CPartSTDFileMnrClr /// /// /// //public bool SetPartSTDData(CPartSTDDataClr in_CPartSTDDataClr) //{ // bool b_ret = false; // // m_LogFunExport.TraceLog("(OTSPeriodicTableFun.SetPartSTDData) 将CPartSTDDataClr类给CPartSTDFileMnrClr"); // //用这个设置 // b_ret = m_cpartstdfilemnrclr.SetPartSTDData(in_CPartSTDDataClr); // //还是用这个设置? // m_cgenparamclr.SetPartSTDLib(in_CPartSTDDataClr); // if (b_ret == false) // { // m_LogFunExport.TraceErrorLog("(OTSPeriodicTableFun.SetPartSTDData) 将CPartSTDDataClr类给CPartSTDFileMnrClr失败!"); // } // return b_ret; //} /// /// 获取系统 设置的std文件路径 /// /// public string GetPartSTDLibFolderName() { // m_LogFunExport.TraceLog("(OTSPeriodicTableFun.GetPartSTDLibFolderName) 获取STD设置的路径"); m_cotsprogmgrparamfileclr = m_cotsprogmgrclr.LoadInfoFromProgMgrFile((int)OTS_SOFT_PACKAGE_ID.OTSIncA); if (null == m_cotsprogmgrparamfileclr) { m_LogFunExport.TraceErrorLog("(OTSPeriodicTableFun.GetPartSTDLibFolderName) 获取STD设置的路径失败!"); return ""; } m_cgenparamclr = m_cotsprogmgrparamfileclr.GetGenParam(); if (null == m_cgenparamclr) { m_LogFunExport.TraceErrorLog("(OTSPeriodicTableFun.GetPartSTDLibFolderName) 获取STD设置的路径失败!"); return ""; } return m_cgenparamclr.GetPartSTDLibFolderName().ToString(); } #endregion #region 元素操作相关 /// /// 获取元素列表 /// /// //public List GetElementsList() //{ // //m_LogFunExport.TraceLog("(OTSPeriodicTableFun.GetElementsList) 获取元素列表"); // List l_celementclr = new List(); // l_celementclr = m_cpartstdfilemnrclr.GetElementsList(); // if (null == l_celementclr) // { // m_LogFunExport.TraceErrorLog("(OTSPeriodicTableFun.GetElementsList) 获取元素列表失败"); // } // return l_celementclr; //} /// /// 设置元素列表 /// /// public bool SetElementsList() { List l_celementclr = new List(); //m_LogFunExport.TraceLog("(OTSPeriodicTableFun.SetElementsList) 设置元素列表"); for (int i = 0; i < m_CRF.m_otf_small.m_List_Periodic.Count(); i++) { CElementClr ls_celementclr = new CElementClr(); //少元素名字,不用名字,只传入原子数就可以了 //原子数,传入序号 int ls_atomnum = Convert.ToInt32(m_CRF.m_otf_small.m_List_Periodic[i].XH); ls_celementclr.SetAtomNum(ls_atomnum); ////百分比,目前无用 //double ls_percentage = Convert.ToDouble(CRF.otf_small.List_Periodic[i].YZZL); //ls_celementclr.SetPercentage(ls_percentage); //添加到list l_celementclr.Add(ls_celementclr); } //最后将elementlist添加给std类 //m_cpartstddataclr.SetElementsList(l_celementclr); return true; } #endregion #region 夹杂物操作相关 /// /// 设置夹杂物列表 /// /// //public bool SetSTDItemsList() //{ // string str6= table["str6"].ToString(); // string str8 = table["str8"].ToString(); // string str9 = table["str9"].ToString(); // string str10 = table["str10"].ToString(); // string str11 = table["str11"].ToString(); // string str12 = table["str12"].ToString(); // string str16 = table["str16"].ToString(); // string str18 = table["str18"].ToString(); // string str19 = table["str19"].ToString(); // //STD默认编号 // int nIdInit = 1000; // //夹杂物主List // List l_cstditemclr = new List(); // //m_LogFunExport.TraceLog("(OTSPeriodicTableFun.SetSTDItemsList) 设置夹杂物列表"); // for (int i = 0; i < m_CRF.m_dt_jzw.Rows.Count; i++) // { // //m_LogFunExport.TraceLog("(OTSPeriodicTableFun.SetSTDItemsList) 设置夹杂物列表,夹杂物" + m_CRF.dt_jzw.Rows[i]["夹杂物名"].ToString()); // CSTDItemClr ls_cstditemclr = new CSTDItemClr(); //详细参数类 // //这里改成对系统库的编号进行判断并保存 // if (Convert.ToInt32(m_CRF.m_dt_jzw.Rows[i][str6].ToString()) > 10000) // { // ls_cstditemclr.SetSTDId(Convert.ToInt32(m_CRF.m_dt_jzw.Rows[i][str6].ToString())); // } // else // { // ls_cstditemclr.SetSTDId(nIdInit); // ++nIdInit; // } // ls_cstditemclr.SetName(m_CRF.m_dt_jzw.Rows[i][str8].ToString()); // ls_cstditemclr.SetColor(m_CRF.m_dt_jzw.Rows[i][str9].ToString()); // //ls_cstditemclr.SetColor(Color.FromArgb(Convert.ToInt32( CRF.dt_fl.Rows[i]["代表色"].ToString()))); // ls_cstditemclr.SetWidth_HeightRadio(Convert.ToDouble(m_CRF.m_dt_jzw.Rows[i][str10].ToString())); // CIntRangeClr ls_cintrangeclr = new CIntRangeClr(Convert.ToInt32(m_CRF.m_dt_jzw.Rows[i][str11].ToString()), // Convert.ToInt32(m_CRF.m_dt_jzw.Rows[i][str12].ToString())); // ls_cstditemclr.SetGrayLevelRange(ls_cintrangeclr); // //再保存详细的规则 // List l_celemenrangeclr = new List(); // //获取对应的规则列表 // DataRow[] ls_drs = m_CRF.m_dt_ysxx.Select(str6+" ='" + m_CRF.m_dt_jzw.Rows[i][str6].ToString() + "'"); // for (int y = 0; y < ls_drs.Count(); y++) // { // //m_LogFunExport.TraceLog("(OTSPeriodicTableFun.SetSTDItemsList) 设置夹杂物列表元素" + m_CRF.dt_ysxx.Rows[y]["元素名"].ToString()); // CElementRangeClr ls_celementrangeclr = new CElementRangeClr(); //规则项 // CElementClr ls_celementclr = new CElementClr(); //元素 // //原子数 // int ls_atomnum = Convert.ToInt32(ls_drs[y][str16].ToString()); // ls_celementclr.SetAtomNum(ls_atomnum); // //百分比 // ls_celementrangeclr.SetElement(ls_celementclr); // CIntRangeClr ls_cintrangeclr2 = new CIntRangeClr(Convert.ToInt32(ls_drs[y][str18].ToString()), // Convert.ToInt32(ls_drs[y][str19].ToString())); // ls_celementrangeclr.SetRange(ls_cintrangeclr2); // l_celemenrangeclr.Add(ls_celementrangeclr); // } // //设置元素规则 // ls_cstditemclr.SetElementRangeList(l_celemenrangeclr); // //添加夹杂物主List // l_cstditemclr.Add(ls_cstditemclr); // } // //最后将夹杂物规则添加给std类 // m_cpartstddataclr.SetSTDItemsList(l_cstditemclr); // //m_LogFunExport.TraceLog("(OTSPeriodicTableFun.SetSTDItemsList) 设置夹杂物列表完成"); // return true; //} /// /// 获取夹杂物列表 /// /// //public List GetSTDItemsList() //{ // //m_LogFunExport.TraceLog("(OTSPeriodicTableFun.GetSTDItemsList) 获取夹杂物列表"); // List l_cstditemclr = new List(); // l_cstditemclr = m_cpartstdfilemnrclr.GetSTDItemsList(); // if (null == l_cstditemclr) // { // m_LogFunExport.TraceErrorLog("(OTSPeriodicTableFun.GetSTDItemsList) 获取夹杂物列表失败"); // } // return l_cstditemclr; //} #endregion #region 自定义方法 /// /// 写入追踪日志 /// /// /// public int TraceLog(string strlog) { int ireslut = m_LogFunExport.TraceLog(strlog); return ireslut; } /// /// 写入错误日志 /// /// /// public int TraceErrorLog(string strlog) { int ireslut = m_LogFunExport.TraceErrorLog(strlog); return ireslut; } #endregion } }