OTSPeriodicTableFun.cs 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using OTSINTERFACE;
  7. using NSLogFunExport;
  8. using System.Drawing;
  9. using System.Data;
  10. using System.Collections;
  11. namespace OTSPeriodicTable
  12. {
  13. #region 枚举定义
  14. /// <summary>
  15. /// 作用类别
  16. /// </summary>
  17. enum OTS_SOFT_PACKAGE_ID
  18. {
  19. OTSIncA = 0, //夹杂物分析
  20. OTSPartA = 1, //颗粒度分析
  21. };
  22. /// <summary>
  23. /// 当前选择标准库下拉选项
  24. /// </summary>
  25. enum OTS_STDLIB_SELECT_OPTIONS
  26. {
  27. SySSTDData = 0,
  28. GeneralSTDData = 1,
  29. GeneralAlloySteelSTDData = 2,
  30. SpringSteelSTDSata = 3,
  31. }
  32. #endregion
  33. public class OTSPeriodicTableFun
  34. {
  35. #region 变量定义
  36. ClassinicationRuleForm m_CRF;
  37. //public CPartSTDFileMnrClr m_cpartstdfilemnrclr; //STD文件类
  38. public CGenParamClr m_cgenparamclr; //参数类
  39. //public CPartSTDDataClr m_cpartstddataclr; //std类 用这个类先定义一个文件,然后再进行操作
  40. // 初始化日志类
  41. public CFunExportClass m_LogFunExport = null; //日志类
  42. const String m_csFileName = "OTSMeasureAppLog"; // 测量程序日志文件名
  43. //为了获取默认路径而定义
  44. public COTSProgMgrCLR m_cotsprogmgrclr; //从这里开始load
  45. public COTSProgMgrParamFileClr m_cotsprogmgrparamfileclr; //参数类
  46. //国际化
  47. OTSSysMgrTools.Language lan;
  48. Hashtable table;
  49. #endregion
  50. #region 构造函数
  51. /// <summary>
  52. /// 构造函数
  53. /// </summary>
  54. public OTSPeriodicTableFun(ClassinicationRuleForm in_crf)
  55. {
  56. m_LogFunExport = new CFunExportClass();
  57. m_LogFunExport.InitLog(m_csFileName);
  58. //m_cpartstdfilemnrclr = new CPartSTDFileMnrClr();
  59. m_cgenparamclr = new CGenParamClr();
  60. //m_cpartstddataclr = new CPartSTDDataClr();
  61. m_cotsprogmgrparamfileclr = new COTSProgMgrParamFileClr();
  62. m_cotsprogmgrclr = new COTSProgMgrCLR();
  63. m_CRF = in_crf;
  64. //国际化
  65. lan = new OTSSysMgrTools.Language();
  66. table = lan.GetNameTable("ClassinicationRuleForm");
  67. }
  68. #endregion
  69. #region STD文件操作相关
  70. /// <summary>
  71. /// 读取STD文件
  72. /// </summary>
  73. //public bool STDLoad(string strPath)
  74. //{
  75. // //m_LogFunExport.TraceLog("(OTSPeriodicTableFun.STDLoad) 加载STD文件数据");
  76. // if (false == m_cpartstdfilemnrclr.Load(strPath, true))
  77. // {
  78. // m_LogFunExport.TraceErrorLog("(OTSPeriodicTableFun.STDLoad) 加载STD文件数据错误");
  79. // return false;
  80. // }
  81. // return true;
  82. //}
  83. /// <summary>
  84. /// 保存STD文件
  85. /// </summary>
  86. /// <returns></returns>
  87. //public bool STDSave(string strPath,string LibraryName)
  88. //{
  89. // //m_LogFunExport.TraceLog("(OTSPeriodicTableFun.STDSave) 保存STD文件数据");
  90. // //先将std类设置给std文件类
  91. // bool b_ret = m_cpartstdfilemnrclr.SetPartSTDData(m_cpartstddataclr);
  92. // if (false == b_ret)
  93. // {
  94. // m_LogFunExport.TraceErrorLog("(OTSPeriodicTableFun.SetPartSTDData) 将STD类设置给STD文件类失败!");
  95. // return false;
  96. // }
  97. // //最后再进行保存
  98. // if (false == m_cpartstdfilemnrclr.Save(strPath, LibraryName))
  99. // {
  100. // m_LogFunExport.TraceErrorLog("(OTSPeriodicTableFun.STDLoad) 保存STD文件数据错误");
  101. // return false;
  102. // }
  103. // return true;
  104. //}
  105. /// <summary>
  106. /// 设置库名
  107. /// </summary>
  108. /// <param name="strName"></param>
  109. //public void STDPartSetName(string strName)
  110. //{
  111. // // m_LogFunExport.TraceLog("(OTSPeriodicTableFun.STDPartSetName) 设置库名");
  112. // m_cpartstddataclr.SetName(strName);
  113. //}
  114. /// <summary>
  115. /// 获取库名
  116. /// </summary>
  117. /// <returns></returns>
  118. //public string STDPartGetName()
  119. //{
  120. // // m_LogFunExport.TraceLog("(OTSPeriodicTableFun.STDPartGetName) 获取库名");
  121. // //将std类设置给std文件夹,再获取名字
  122. // m_cpartstddataclr = m_cpartstdfilemnrclr.GetPartSTDData();
  123. // if (null == m_cpartstddataclr)
  124. // {
  125. // m_LogFunExport.TraceErrorLog("(OTSPeriodicTableFun.STDPartGetName) 获取STD类失败,导致获取库名失败!");
  126. // return "";
  127. // }
  128. // string strName = m_cpartstddataclr.GetName();
  129. // return strName;
  130. //}
  131. /// <summary>
  132. /// 设置CPartSTDDataClr类给CPartSTDFileMnrClr
  133. /// </summary>
  134. /// <param name="in_CPartSTDDataClr"></param>
  135. /// <returns></returns>
  136. //public bool SetPartSTDData(CPartSTDDataClr in_CPartSTDDataClr)
  137. //{
  138. // bool b_ret = false;
  139. // // m_LogFunExport.TraceLog("(OTSPeriodicTableFun.SetPartSTDData) 将CPartSTDDataClr类给CPartSTDFileMnrClr");
  140. // //用这个设置
  141. // b_ret = m_cpartstdfilemnrclr.SetPartSTDData(in_CPartSTDDataClr);
  142. // //还是用这个设置?
  143. // m_cgenparamclr.SetPartSTDLib(in_CPartSTDDataClr);
  144. // if (b_ret == false)
  145. // {
  146. // m_LogFunExport.TraceErrorLog("(OTSPeriodicTableFun.SetPartSTDData) 将CPartSTDDataClr类给CPartSTDFileMnrClr失败!");
  147. // }
  148. // return b_ret;
  149. //}
  150. /// <summary>
  151. /// 获取系统 设置的std文件路径
  152. /// </summary>
  153. /// <returns></returns>
  154. public string GetPartSTDLibFolderName()
  155. {
  156. // m_LogFunExport.TraceLog("(OTSPeriodicTableFun.GetPartSTDLibFolderName) 获取STD设置的路径");
  157. m_cotsprogmgrparamfileclr = m_cotsprogmgrclr.LoadInfoFromProgMgrFile((int)OTS_SOFT_PACKAGE_ID.OTSIncA);
  158. if (null == m_cotsprogmgrparamfileclr)
  159. {
  160. m_LogFunExport.TraceErrorLog("(OTSPeriodicTableFun.GetPartSTDLibFolderName) 获取STD设置的路径失败!");
  161. return "";
  162. }
  163. m_cgenparamclr = m_cotsprogmgrparamfileclr.GetGenParam();
  164. if (null == m_cgenparamclr)
  165. {
  166. m_LogFunExport.TraceErrorLog("(OTSPeriodicTableFun.GetPartSTDLibFolderName) 获取STD设置的路径失败!");
  167. return "";
  168. }
  169. return m_cgenparamclr.GetPartSTDLibFolderName().ToString();
  170. }
  171. #endregion
  172. #region 元素操作相关
  173. /// <summary>
  174. /// 获取元素列表
  175. /// </summary>
  176. /// <returns></returns>
  177. //public List<CElementClr> GetElementsList()
  178. //{
  179. // //m_LogFunExport.TraceLog("(OTSPeriodicTableFun.GetElementsList) 获取元素列表");
  180. // List<CElementClr> l_celementclr = new List<CElementClr>();
  181. // l_celementclr = m_cpartstdfilemnrclr.GetElementsList();
  182. // if (null == l_celementclr)
  183. // {
  184. // m_LogFunExport.TraceErrorLog("(OTSPeriodicTableFun.GetElementsList) 获取元素列表失败");
  185. // }
  186. // return l_celementclr;
  187. //}
  188. /// <summary>
  189. /// 设置元素列表
  190. /// </summary>
  191. /// <returns></returns>
  192. public bool SetElementsList()
  193. {
  194. List<CElementClr> l_celementclr = new List<CElementClr>();
  195. //m_LogFunExport.TraceLog("(OTSPeriodicTableFun.SetElementsList) 设置元素列表");
  196. for (int i = 0; i < m_CRF.m_otf_small.m_List_Periodic.Count(); i++)
  197. {
  198. CElementClr ls_celementclr = new CElementClr();
  199. //少元素名字,不用名字,只传入原子数就可以了
  200. //原子数,传入序号
  201. int ls_atomnum = Convert.ToInt32(m_CRF.m_otf_small.m_List_Periodic[i].XH);
  202. ls_celementclr.SetAtomNum(ls_atomnum);
  203. ////百分比,目前无用
  204. //double ls_percentage = Convert.ToDouble(CRF.otf_small.List_Periodic[i].YZZL);
  205. //ls_celementclr.SetPercentage(ls_percentage);
  206. //添加到list
  207. l_celementclr.Add(ls_celementclr);
  208. }
  209. //最后将elementlist添加给std类
  210. //m_cpartstddataclr.SetElementsList(l_celementclr);
  211. return true;
  212. }
  213. #endregion
  214. #region 夹杂物操作相关
  215. /// <summary>
  216. /// 设置夹杂物列表
  217. /// </summary>
  218. /// <returns></returns>
  219. //public bool SetSTDItemsList()
  220. //{
  221. // string str6= table["str6"].ToString();
  222. // string str8 = table["str8"].ToString();
  223. // string str9 = table["str9"].ToString();
  224. // string str10 = table["str10"].ToString();
  225. // string str11 = table["str11"].ToString();
  226. // string str12 = table["str12"].ToString();
  227. // string str16 = table["str16"].ToString();
  228. // string str18 = table["str18"].ToString();
  229. // string str19 = table["str19"].ToString();
  230. // //STD默认编号
  231. // int nIdInit = 1000;
  232. // //夹杂物主List
  233. // List<CSTDItemClr> l_cstditemclr = new List<CSTDItemClr>();
  234. // //m_LogFunExport.TraceLog("(OTSPeriodicTableFun.SetSTDItemsList) 设置夹杂物列表");
  235. // for (int i = 0; i < m_CRF.m_dt_jzw.Rows.Count; i++)
  236. // {
  237. // //m_LogFunExport.TraceLog("(OTSPeriodicTableFun.SetSTDItemsList) 设置夹杂物列表,夹杂物" + m_CRF.dt_jzw.Rows[i]["夹杂物名"].ToString());
  238. // CSTDItemClr ls_cstditemclr = new CSTDItemClr(); //详细参数类
  239. // //这里改成对系统库的编号进行判断并保存
  240. // if (Convert.ToInt32(m_CRF.m_dt_jzw.Rows[i][str6].ToString()) > 10000)
  241. // {
  242. // ls_cstditemclr.SetSTDId(Convert.ToInt32(m_CRF.m_dt_jzw.Rows[i][str6].ToString()));
  243. // }
  244. // else
  245. // {
  246. // ls_cstditemclr.SetSTDId(nIdInit);
  247. // ++nIdInit;
  248. // }
  249. // ls_cstditemclr.SetName(m_CRF.m_dt_jzw.Rows[i][str8].ToString());
  250. // ls_cstditemclr.SetColor(m_CRF.m_dt_jzw.Rows[i][str9].ToString());
  251. // //ls_cstditemclr.SetColor(Color.FromArgb(Convert.ToInt32( CRF.dt_fl.Rows[i]["代表色"].ToString())));
  252. // ls_cstditemclr.SetWidth_HeightRadio(Convert.ToDouble(m_CRF.m_dt_jzw.Rows[i][str10].ToString()));
  253. // CIntRangeClr ls_cintrangeclr = new CIntRangeClr(Convert.ToInt32(m_CRF.m_dt_jzw.Rows[i][str11].ToString()),
  254. // Convert.ToInt32(m_CRF.m_dt_jzw.Rows[i][str12].ToString()));
  255. // ls_cstditemclr.SetGrayLevelRange(ls_cintrangeclr);
  256. // //再保存详细的规则
  257. // List<CElementRangeClr> l_celemenrangeclr = new List<CElementRangeClr>();
  258. // //获取对应的规则列表
  259. // DataRow[] ls_drs = m_CRF.m_dt_ysxx.Select(str6+" ='" + m_CRF.m_dt_jzw.Rows[i][str6].ToString() + "'");
  260. // for (int y = 0; y < ls_drs.Count(); y++)
  261. // {
  262. // //m_LogFunExport.TraceLog("(OTSPeriodicTableFun.SetSTDItemsList) 设置夹杂物列表元素" + m_CRF.dt_ysxx.Rows[y]["元素名"].ToString());
  263. // CElementRangeClr ls_celementrangeclr = new CElementRangeClr(); //规则项
  264. // CElementClr ls_celementclr = new CElementClr(); //元素
  265. // //原子数
  266. // int ls_atomnum = Convert.ToInt32(ls_drs[y][str16].ToString());
  267. // ls_celementclr.SetAtomNum(ls_atomnum);
  268. // //百分比
  269. // ls_celementrangeclr.SetElement(ls_celementclr);
  270. // CIntRangeClr ls_cintrangeclr2 = new CIntRangeClr(Convert.ToInt32(ls_drs[y][str18].ToString()),
  271. // Convert.ToInt32(ls_drs[y][str19].ToString()));
  272. // ls_celementrangeclr.SetRange(ls_cintrangeclr2);
  273. // l_celemenrangeclr.Add(ls_celementrangeclr);
  274. // }
  275. // //设置元素规则
  276. // ls_cstditemclr.SetElementRangeList(l_celemenrangeclr);
  277. // //添加夹杂物主List
  278. // l_cstditemclr.Add(ls_cstditemclr);
  279. // }
  280. // //最后将夹杂物规则添加给std类
  281. // m_cpartstddataclr.SetSTDItemsList(l_cstditemclr);
  282. // //m_LogFunExport.TraceLog("(OTSPeriodicTableFun.SetSTDItemsList) 设置夹杂物列表完成");
  283. // return true;
  284. //}
  285. /// <summary>
  286. /// 获取夹杂物列表
  287. /// </summary>
  288. /// <returns></returns>
  289. //public List<CSTDItemClr> GetSTDItemsList()
  290. //{
  291. // //m_LogFunExport.TraceLog("(OTSPeriodicTableFun.GetSTDItemsList) 获取夹杂物列表");
  292. // List<CSTDItemClr> l_cstditemclr = new List<CSTDItemClr>();
  293. // l_cstditemclr = m_cpartstdfilemnrclr.GetSTDItemsList();
  294. // if (null == l_cstditemclr)
  295. // {
  296. // m_LogFunExport.TraceErrorLog("(OTSPeriodicTableFun.GetSTDItemsList) 获取夹杂物列表失败");
  297. // }
  298. // return l_cstditemclr;
  299. //}
  300. #endregion
  301. #region 自定义方法
  302. /// <summary>
  303. /// 写入追踪日志
  304. /// </summary>
  305. /// <param name="strlog"></param>
  306. /// <returns></returns>
  307. public int TraceLog(string strlog)
  308. {
  309. int ireslut = m_LogFunExport.TraceLog(strlog);
  310. return ireslut;
  311. }
  312. /// <summary>
  313. /// 写入错误日志
  314. /// </summary>
  315. /// <param name="strlog"></param>
  316. /// <returns></returns>
  317. public int TraceErrorLog(string strlog)
  318. {
  319. int ireslut = m_LogFunExport.TraceErrorLog(strlog);
  320. return ireslut;
  321. }
  322. #endregion
  323. }
  324. }