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
}
}