DataMgrFun.cs 50 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088
  1. using OTSCLRINTERFACE;
  2. using OTSIncAReportApp.OTSSampleReportInfo;
  3. using OTSIncAReportApp.SysMgrTools;
  4. using System;
  5. using System.Collections;
  6. using System.Collections.Generic;
  7. using System.Data;
  8. using System.IO;
  9. using System.Linq;
  10. namespace OTSIncAReportApp.OTSDataMgrFunction
  11. {
  12. /// <summary>
  13. /// 框架与底层进行交互的操作类
  14. /// </summary>
  15. public class DataMgrFun
  16. {
  17. #region 变量定义
  18. /// 报告文件操作类
  19. /// </summary>
  20. public CReportMgrClr m_ReportMgr = null;
  21. /// <summary>
  22. /// 报告主进程框架对象
  23. /// </summary>
  24. private frmReportApp m_ReportApp = null;
  25. #endregion
  26. #region 构造函数
  27. /// <summary>
  28. /// 构造函数
  29. /// </summary>
  30. /// <param name="ReportApp"></param>
  31. public DataMgrFun(frmReportApp ReportApp)
  32. {
  33. m_ReportApp = ReportApp;
  34. Language lan = new Language();
  35. table = lan.GetNameTable("DataMgrFun");
  36. if (null == m_ReportMgr)
  37. {
  38. //初始化相关变量
  39. m_ReportMgr = new CReportMgrClr();
  40. }
  41. //m_pRptParamFileMgr = new CRptParamFileMgrClr();
  42. //m_pRptParamFileMgr.SetRptParamFile(m_ReportProjFileMgr.GetRptParamFileClr());
  43. }
  44. //国际化存储信息
  45. Hashtable table;
  46. #endregion
  47. #region 获取组合项相关方法
  48. /// <summary>
  49. /// 根据系统设置的默认粒级表路径,获取所有的粒级表文件List
  50. /// </summary>
  51. /// <returns></returns>
  52. public List<string> GetPartSizeFileList()
  53. {
  54. List<string> ret_list = new List<string>();
  55. //遍历粒级文件夹
  56. DirectoryInfo theFolder = new DirectoryInfo(m_ReportApp.m_RptConfigFile.FileFolderSize);
  57. if (!theFolder.Exists)
  58. return ret_list;
  59. //读取遍历粒级文件信息
  60. foreach (FileInfo nextifile in theFolder.GetFiles())
  61. {
  62. //找出粒级文件
  63. if (nextifile.Name.Contains(".psf") == true || nextifile.Name.Contains(".PSF") == true)
  64. {
  65. ret_list.Add(nextifile.Name);
  66. }
  67. }
  68. return ret_list;
  69. }
  70. /// <summary>
  71. /// 根据系统设置默认的粒级表的路径,获取粒级表List
  72. /// </summary>
  73. /// <param name="path"></param>
  74. /// <returns></returns>
  75. public List<string> GetPartSizeList()
  76. {
  77. DataSet ds = DataOperation.DataAccess.XMLoperate.GetXml(m_ReportApp.m_RptConfigFile.FileFolderSize + m_ReportApp.m_RptConfigFile.PartSizeFile);
  78. string sizestr = ds.Tables[0].Rows[0]["Sizes"].ToString();
  79. List<string> sizeList = new List<string>();
  80. for (int i = 0; i < sizestr.Split(',').Length - 1; i++)
  81. {
  82. if (sizestr.Split(',')[i].Length > 0)
  83. {
  84. double d1 = Convert.ToDouble(sizestr.Split(',')[i]);
  85. double d2 = Convert.ToDouble(sizestr.Split(',')[i + 1]);
  86. sizeList.Add(d1.ToString() + "~" + d2.ToString());
  87. }
  88. }
  89. double d = Convert.ToDouble(sizestr.Split(',')[sizestr.Split(',').Length - 1]);
  90. sizeList.Add(d.ToString() + "~MAX");
  91. return sizeList;
  92. }
  93. /// <summary>
  94. /// 根据传入的粒级表目录,获取粒级表List
  95. /// </summary>
  96. /// <returns></returns>
  97. public List<string> GetPartSizeList(string path)
  98. {
  99. DataSet ds = DataOperation.DataAccess.XMLoperate.GetXml(path);
  100. string sizestr = ds.Tables[0].Rows[0]["Sizes"].ToString();
  101. List<string> sizeList = new List<string>();
  102. for (int i = 0; i < sizestr.Split(',').Length - 1; i++)
  103. {
  104. if (sizestr.Split(',')[i].Length > 0)
  105. {
  106. double d1 = Convert.ToDouble(sizestr.Split(',')[i]);
  107. double d2 = Convert.ToDouble(sizestr.Split(',')[i + 1]);
  108. sizeList.Add(d1.ToString() + "~" + d2.ToString());
  109. }
  110. }
  111. double d = Convert.ToDouble(sizestr.Split(',')[sizestr.Split(',').Length - 1]);
  112. sizeList.Add(d.ToString() + "~MAX");
  113. return sizeList;
  114. }
  115. /// <summary>
  116. /// 获取三元相图模板名称列表
  117. /// </summary>
  118. /// <returns></returns>
  119. public List<string> GetTriTemplateNameList()
  120. {
  121. string pathtpf = m_ReportApp.m_RptConfigFile.FileFolderTrigTemp + m_ReportApp.m_RptConfigFile.TriTempFile;
  122. List<string> ret_list = new List<string>();
  123. DataSet ds = DataOperation.DataAccess.XMLoperate.GetXmlData(pathtpf, "XMLData");
  124. DataTable dt = ds.Tables["Member"];
  125. foreach (DataRow item in dt.Rows)
  126. {
  127. if (item["TemplateName"].ToString() != "")
  128. {
  129. ret_list.Add(item["TemplateName"].ToString());
  130. }
  131. }
  132. return ret_list;
  133. }
  134. /// <summary>
  135. /// 获取测量结果名称列表
  136. /// </summary>
  137. /// <returns></returns>
  138. public List<string> GetSampleListName()
  139. {
  140. List<string> ret_list = new List<string>();
  141. var resultfileList = m_ReportApp.resultFilesList;
  142. foreach (var item in resultfileList)
  143. {
  144. ret_list.Add(item.FileName);
  145. }
  146. if (m_ReportApp.MoreSource != "")
  147. {
  148. ret_list.Add(m_ReportApp.MoreSource);
  149. }
  150. return ret_list;
  151. }
  152. /// <summary>
  153. /// 获取计算方法列表
  154. /// </summary>
  155. /// <returns></returns>
  156. public List<string> GetSizeCalMethodTypeList()
  157. {
  158. List<string> ret_list = new List<string>() { "DMAX", "DMIN", "Area", "FERET" };
  159. return ret_list;
  160. }
  161. /// <summary>
  162. /// 数据类型,全部颗粒,分析颗粒
  163. /// </summary>
  164. /// <returns></returns>
  165. public List<string> GetDataSourceTypeList()
  166. {
  167. string sscaptionname23 = table["sscaptionname23"].ToString();
  168. string sscaptionname24 = table["sscaptionname24"].ToString();
  169. List<string> ret_list = new List<string>() { sscaptionname23, sscaptionname24 };
  170. return ret_list;
  171. }
  172. #endregion
  173. #region [属性选项Grid窗体]相关封装方法
  174. /// <summary>
  175. /// 初始化加载sourceGrid各项
  176. /// </summary>
  177. /// <param name="tbindex"></param>
  178. /// <returns></returns>SampleData1
  179. private List<SampleData> GetSourceGridData(int tbindex)
  180. {
  181. List<SampleData> list = new List<SampleData>();
  182. if (tbindex == 0)//分布图页
  183. {
  184. //测量结果数据
  185. List<string> list_source_str = GetSampleListName();
  186. string sSCaptionName1 = table["sscaptionname1"].ToString();
  187. SampleData sampleData = new SampleData();
  188. sampleData.iItemId = 0;
  189. sampleData.sSCaptionName = sSCaptionName1;
  190. sampleData.iItemValType = OTS_ITEM_TYPES.COMBO;
  191. sampleData.bReadOnly = false;
  192. sampleData.sDescriptionInfo = "Select Measurement Result";
  193. sampleData.itemVal = list_source_str[m_ReportApp.WorkingResult];
  194. sampleData.comboDownList = list_source_str;
  195. list.Add(sampleData);
  196. string sSCaptionName2 = table["sscaptionname2"].ToString();
  197. string sSCaptionName13 = table["sscaptionname13"].ToString();
  198. SampleData sampleData1 = new SampleData();
  199. sampleData1.iItemId = OTS_REPORT_PROP_GRID_ITEMS.IMAGE_TYPE;
  200. sampleData1.sSCaptionName = sSCaptionName2;//测量图类型
  201. sampleData1.iItemValType = OTS_ITEM_TYPES.COMBO;
  202. sampleData1.bReadOnly = false;
  203. sampleData1.sDescriptionInfo = "Survey Chart Type";
  204. sampleData1.itemVal = "BSE";
  205. sampleData1.comboDownList = new List<string>() { "BSE", sSCaptionName13, "Original", "原图颗粒分布" };//bse,颗粒分类图
  206. list.Add(sampleData1);
  207. //测量图类型
  208. List<string> list_datasourcetypelist = GetDataSourceTypeList();
  209. string sSCaptionName3 = table["sscaptionname3"].ToString();
  210. string sscaptionname14 = table["sscaptionname14"].ToString();
  211. string sscaptionname15 = table["sscaptionname15"].ToString();
  212. List<string> list1 = new List<string>() { sscaptionname14, sscaptionname15 };
  213. SampleData sampleData2 = new SampleData();
  214. sampleData2.iItemId = OTS_REPORT_PROP_GRID_ITEMS.IMAGE_DISPLAY_TYPE;
  215. sampleData2.sSCaptionName = sSCaptionName3;
  216. sampleData2.iItemValType = OTS_ITEM_TYPES.COMBO;
  217. sampleData2.bReadOnly = false;
  218. sampleData2.sDescriptionInfo = "chart display mode";
  219. sampleData2.itemVal = list1[0];
  220. sampleData2.comboDownList = list1;
  221. list.Add(sampleData2);
  222. //测量图显示方式
  223. string sSCaptionName4 = table["sscaptionname4"].ToString();
  224. string sscaptionname16 = table["sscaptionname16"].ToString();
  225. string sscaptionname17 = table["sscaptionname17"].ToString();
  226. List<string> list2 = new List<string>() { sscaptionname16, sscaptionname17 };
  227. SampleData sampleData3 = new SampleData();
  228. sampleData3.iItemId = OTS_REPORT_PROP_GRID_ITEMS.PARTICLE_TYPE;
  229. sampleData3.sSCaptionName = sSCaptionName4;
  230. sampleData3.iItemValType = OTS_ITEM_TYPES.COMBO;
  231. sampleData3.bReadOnly = false;
  232. sampleData3.sDescriptionInfo = "Particle Type";
  233. sampleData3.itemVal = list2[0];
  234. sampleData3.comboDownList = list2;
  235. list.Add(sampleData3);
  236. //粒级表
  237. string sSCaptionName_partsizefile = "粒级表";
  238. List<string> list_partsizelist = GetPartSizeFileList();//从系统默认的路径中查找出所有的粒级表文件
  239. SampleData sampleData_partsizefile = new SampleData();
  240. sampleData_partsizefile.iItemId = OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE;
  241. sampleData_partsizefile.sSCaptionName = sSCaptionName_partsizefile;
  242. sampleData_partsizefile.iItemValType = OTS_ITEM_TYPES.COMBO;
  243. sampleData_partsizefile.bReadOnly = false;
  244. sampleData_partsizefile.sDescriptionInfo = "Particle Table";
  245. sampleData_partsizefile.itemVal = list_partsizelist[0];
  246. sampleData_partsizefile.comboDownList = list_partsizelist;
  247. list.Add(sampleData_partsizefile);
  248. //粒级
  249. string sscaptionname18 = table["sscaptionname18"].ToString();
  250. SampleData sampleData4 = new SampleData();
  251. List<string> sizeList = new List<string>();
  252. sizeList = GetPartSizeList();//获取粒级后额外增加全部,自定义,选项
  253. sizeList.Insert(0, sscaptionname16);//全部
  254. sizeList.Insert(1, sscaptionname18);//自定义
  255. string sSCaptionName5 = table["sscaptionname5"].ToString();
  256. sampleData4.iItemId = OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS;
  257. sampleData4.sSCaptionName = sSCaptionName5;
  258. sampleData4.iItemValType = OTS_ITEM_TYPES.COMBO;
  259. sampleData4.bReadOnly = false;
  260. sampleData4.sDescriptionInfo = "Grain Size";
  261. sampleData4.itemVal = sscaptionname16;
  262. sampleData4.comboDownList = sizeList;
  263. list.Add(sampleData4);
  264. //自定义最小
  265. string sSCaptionName6 = table["sscaptionname6"].ToString();
  266. SampleData sampleData41 = new SampleData();
  267. sampleData41.iItemId = OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_MIN;
  268. sampleData41.sSCaptionName = sSCaptionName6;
  269. sampleData41.iItemValType = OTS_ITEM_TYPES.DOUBLE;
  270. sampleData41.bReadOnly = false;
  271. sampleData41.sDescriptionInfo = "Smallest Particle";
  272. sampleData41.itemVal = "0";
  273. list.Add(sampleData41);
  274. //自定义最大
  275. string sSCaptionName7 = table["sscaptionname7"].ToString();
  276. SampleData sampleData42 = new SampleData();
  277. sampleData42.iItemId = OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_MAX;
  278. sampleData42.sSCaptionName = sSCaptionName7;
  279. sampleData42.iItemValType = OTS_ITEM_TYPES.DOUBLE;
  280. sampleData42.bReadOnly = false;
  281. sampleData42.sDescriptionInfo = "Maximum Particle";
  282. sampleData42.itemVal = "0";
  283. list.Add(sampleData42);
  284. //测量数据
  285. string sSCaptionName22 = table["sscaptionname22"].ToString();
  286. string sSCaptionName19 = table["sscaptionname19"].ToString();
  287. string sSCaptionName20 = table["sscaptionname20"].ToString();
  288. string sSCaptionName21 = table["sscaptionname21"].ToString();
  289. List<string> list3 = new List<string>() { sSCaptionName19, sSCaptionName20, sSCaptionName21 };
  290. SampleData sampleData6 = new SampleData();
  291. sampleData6.iItemId = OTS_REPORT_PROP_GRID_ITEMS.MEASURE_DATA_TYPE;
  292. sampleData6.sSCaptionName = sSCaptionName22;
  293. sampleData6.iItemValType = OTS_ITEM_TYPES.COMBO;
  294. sampleData6.bReadOnly = false;
  295. sampleData6.sDescriptionInfo = "Measured Data";
  296. sampleData6.itemVal = list3[0];
  297. sampleData6.comboDownList = list3;
  298. list.Add(sampleData6);
  299. //计算方式
  300. string sSCaptionName8 = table["sscaptionname8"].ToString();
  301. SampleData sampleData5 = new SampleData();
  302. sampleData5.iItemId = OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE;
  303. sampleData5.sSCaptionName = sSCaptionName8;
  304. sampleData5.iItemValType = OTS_ITEM_TYPES.COMBO;
  305. sampleData5.bReadOnly = false;
  306. sampleData5.sDescriptionInfo = "Dimension calculation method";
  307. sampleData5.itemVal = "DMAX";
  308. sampleData5.comboDownList = GetSizeCalMethodTypeList();
  309. list.Add(sampleData5);
  310. }
  311. else if (tbindex == 1)//Grid表格页
  312. {
  313. //测量结果数据
  314. List<string> list_source_str = GetSampleListName();
  315. string sSCaptionName1 = table["sscaptionname1"].ToString();
  316. SampleData sampleData = new SampleData();
  317. sampleData.iItemId = 0;
  318. sampleData.sSCaptionName = sSCaptionName1;
  319. sampleData.iItemValType = OTS_ITEM_TYPES.COMBO;
  320. sampleData.bReadOnly = false;
  321. sampleData.sDescriptionInfo = "Select Measurement Result";
  322. sampleData.itemVal = list_source_str[m_ReportApp.WorkingResult];
  323. sampleData.comboDownList = list_source_str;
  324. list.Add(sampleData);
  325. //数据类型
  326. List<string> list_datasourcetypelist = GetDataSourceTypeList();
  327. string sSCaptionName9 = table["sscaptionname9"].ToString();
  328. SampleData sampleData1 = new SampleData();
  329. sampleData1.iItemId = OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE_TYPE;
  330. sampleData1.sSCaptionName = sSCaptionName9;
  331. sampleData1.iItemValType = OTS_ITEM_TYPES.COMBO;
  332. sampleData1.bReadOnly = false;
  333. sampleData1.sDescriptionInfo = "Data Type";
  334. sampleData1.itemVal = list_datasourcetypelist[0];
  335. sampleData1.comboDownList = list_datasourcetypelist;
  336. list.Add(sampleData1);
  337. //数据表类型
  338. string sSCaptionName10 = table["sscaptionname10"].ToString();
  339. List<string> list2 = new List<string>() { table["sscaptionname25"].ToString(), table["sscaptionname26"].ToString(), table["sscaptionname27"].ToString(), table["sscaptionname28"].ToString(), table["sscaptionname29"].ToString(), table["sscaptionname30"].ToString()};
  340. string[] aa = m_ReportApp.Text.Split('-');
  341. if(aa[aa.Count()-1]== " Inclusion Analysis System")
  342. {
  343. List<string> listStd = new List<string>() {"国标一", "国标二", "美标", "德标" };
  344. list2.AddRange(listStd);
  345. }
  346. SampleData sampleData3 = new SampleData();
  347. sampleData3.iItemId = OTS_REPORT_PROP_GRID_ITEMS.CALCULATE_TABLE_TYPE;
  348. sampleData3.sSCaptionName = sSCaptionName10;
  349. sampleData3.iItemValType = OTS_ITEM_TYPES.COMBO;
  350. sampleData3.bReadOnly = false;
  351. sampleData3.sDescriptionInfo = "Data table type";
  352. sampleData3.itemVal = list2[0];
  353. sampleData3.comboDownList = list2;
  354. list.Add(sampleData3);
  355. //粒级表
  356. string sSCaptionName_partsizefile = "粒级表";
  357. List<string> list_partsizelist = GetPartSizeFileList();//从系统默认的路径中查找出所有的粒级表文件
  358. SampleData sampleData_partsizefile = new SampleData();
  359. sampleData_partsizefile.iItemId = OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE;
  360. sampleData_partsizefile.sSCaptionName = sSCaptionName_partsizefile;
  361. sampleData_partsizefile.iItemValType = OTS_ITEM_TYPES.COMBO;
  362. sampleData_partsizefile.bReadOnly = false;
  363. sampleData_partsizefile.sDescriptionInfo = "Particle Table";
  364. sampleData_partsizefile.itemVal = list_partsizelist[0];
  365. sampleData_partsizefile.comboDownList = list_partsizelist;
  366. list.Add(sampleData_partsizefile);
  367. //尺寸计算方法
  368. string sSCaptionName8 = table["sscaptionname8"].ToString();
  369. SampleData sampleData13 = new SampleData();
  370. sampleData13.iItemId = OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE;
  371. sampleData13.sSCaptionName = sSCaptionName8;
  372. sampleData13.iItemValType = OTS_ITEM_TYPES.COMBO;
  373. sampleData13.bReadOnly = false;
  374. sampleData13.sDescriptionInfo = "Dimension Calculation Method";
  375. sampleData13.itemVal = "DMAX";
  376. sampleData13.comboDownList = GetSizeCalMethodTypeList();
  377. list.Add(sampleData13);
  378. }
  379. else if (tbindex == 2)//Chart图页
  380. {
  381. //测量结果数据
  382. List<string> list_source_str = GetSampleListName();
  383. string sSCaptionName1 = table["sscaptionname1"].ToString();
  384. SampleData sampleData = new SampleData();
  385. sampleData.iItemId = 0;
  386. sampleData.sSCaptionName = sSCaptionName1;
  387. sampleData.iItemValType = OTS_ITEM_TYPES.COMBO;
  388. sampleData.bReadOnly = false;
  389. sampleData.sDescriptionInfo = "Select Measurement Result";
  390. sampleData.itemVal = list_source_str[m_ReportApp.WorkingResult];
  391. sampleData.comboDownList = list_source_str;
  392. list.Add(sampleData);
  393. //数据类型
  394. List<string> list_datasourcetypelist = GetDataSourceTypeList();
  395. string sSCaptionName9 = table["sscaptionname9"].ToString();
  396. SampleData sampleData1 = new SampleData();
  397. sampleData1.iItemId = OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE_TYPE;
  398. sampleData1.sSCaptionName = sSCaptionName9;
  399. sampleData1.iItemValType = OTS_ITEM_TYPES.COMBO;
  400. sampleData1.bReadOnly = false;
  401. sampleData1.sDescriptionInfo = "Data Type";
  402. sampleData1.itemVal = list_datasourcetypelist[0];
  403. sampleData1.comboDownList = list_datasourcetypelist;
  404. list.Add(sampleData1);
  405. //数据图类型
  406. string sSCaptionName10 = table["sscaptionname10"].ToString();
  407. List<string> list2 = new List<string>() { "常用夹杂物分类", table["sscaptionname27"].ToString(), table["sscaptionname28"].ToString(), table["sscaptionname29"].ToString(), table["sscaptionname12"].ToString() };
  408. SampleData sampleData3 = new SampleData();
  409. sampleData3.iItemId = OTS_REPORT_PROP_GRID_ITEMS.CALCULATE_CHART_TYPE;
  410. sampleData3.sSCaptionName = sSCaptionName10;
  411. sampleData3.iItemValType = OTS_ITEM_TYPES.COMBO;
  412. sampleData3.bReadOnly = false;
  413. sampleData3.sDescriptionInfo = "Data graph type";
  414. sampleData3.itemVal = list2[0];
  415. sampleData3.comboDownList = list2;
  416. list.Add(sampleData3);
  417. //三元相图模板
  418. string sSCaptionName12 = table["sscaptionname12"].ToString();
  419. SampleData sampleData15 = new SampleData();
  420. List<string> trio_listname = GetTriTemplateNameList();
  421. sampleData15.iItemId = OTS_REPORT_PROP_GRID_ITEMS.TRIO_CHART_TYPE;
  422. sampleData15.sSCaptionName = sSCaptionName12;
  423. sampleData15.iItemValType = OTS_ITEM_TYPES.COMBO;
  424. sampleData15.bReadOnly = false;
  425. sampleData15.sDescriptionInfo = "Ternary phase diagram";
  426. sampleData15.itemVal = trio_listname.First();
  427. sampleData15.comboDownList = trio_listname;
  428. list.Add(sampleData15);
  429. //粒级表
  430. string sSCaptionName_partsizefile = "粒级表";
  431. List<string> list_partsizelist = GetPartSizeFileList();
  432. SampleData sampleData_partsizefile = new SampleData();
  433. sampleData_partsizefile.iItemId = OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE;
  434. sampleData_partsizefile.sSCaptionName = sSCaptionName_partsizefile;
  435. sampleData_partsizefile.iItemValType = OTS_ITEM_TYPES.COMBO;
  436. sampleData_partsizefile.bReadOnly = false;
  437. sampleData_partsizefile.sDescriptionInfo = "Particle Table";
  438. sampleData_partsizefile.itemVal = list_partsizelist[0];
  439. sampleData_partsizefile.comboDownList = list_partsizelist;
  440. list.Add(sampleData_partsizefile);
  441. //尺寸计算法
  442. string sSCaptionName8 = table["sscaptionname8"].ToString();
  443. SampleData sampleData13 = new SampleData();
  444. sampleData13.iItemId = OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE;
  445. sampleData13.sSCaptionName = sSCaptionName8;
  446. sampleData13.iItemValType = OTS_ITEM_TYPES.COMBO;
  447. sampleData13.bReadOnly = false;
  448. sampleData13.sDescriptionInfo = "Dimension Calculation Method";
  449. sampleData13.itemVal = "DMAX";
  450. sampleData13.comboDownList = GetSizeCalMethodTypeList();
  451. list.Add(sampleData13);
  452. }
  453. return list;
  454. }
  455. /// <summary>
  456. /// 分发SourceGrid,各选项值改变事件
  457. /// </summary>
  458. /// <param name="tbindex"></param>
  459. /// <param name="typ"></param>
  460. /// <param name="val"></param>
  461. /// <param name="sel"></param>
  462. /// <returns></returns>
  463. public OTSSampleMeaInfo ChangeSouceGrid(int tbindex, OTS_REPORT_PROP_GRID_ITEMS typ, string val, int sel)
  464. {
  465. OTSSampleMeaInfo ret = new OTSSampleMeaInfo();
  466. ret = m_ReportApp.SourceGridDataList[tbindex];
  467. switch (tbindex)
  468. {
  469. case 0:
  470. ret = ChangeSouceGrid_Image(typ, val, sel);
  471. break;
  472. case 1:
  473. ret = ChangeSouceGrid_Grid(typ, val, sel);
  474. break;
  475. case 2:
  476. ret = ChangeSouceGrid_Chart(typ, val, sel);
  477. break;
  478. }
  479. return ret;
  480. }
  481. /// <summary>
  482. /// SourceGrid,分析图页面组合各项方法
  483. /// </summary>
  484. /// <param name="typ"></param>
  485. /// <param name="val"></param>
  486. /// <param name="sel"></param>
  487. /// <returns></returns>
  488. public OTSSampleMeaInfo ChangeSouceGrid_Image(OTS_REPORT_PROP_GRID_ITEMS typ, string val, int sel)
  489. {
  490. OTSSampleMeaInfo ret = new OTSSampleMeaInfo();
  491. ret = m_ReportApp.SourceGridDataList[0];
  492. //string strlist = ret.TSampleParam.sSampleTitleName;
  493. List<OTS_REPORT_PROP_GRID_ITEMS> list_showgrid_item = ret.TSampleParam.List_ShowGrid_Items;
  494. //测量结果数据
  495. if (typ == OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE)
  496. {
  497. if (val.Contains("+"))
  498. {
  499. ret.SampleDataList[GetSampleIndexByPropItemName(ret.SampleDataList, OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE)].itemVal = val;
  500. }
  501. else
  502. {
  503. DataOperation.Model.ResultFile resultFile = m_ReportApp.resultFilesList.Find(s => s.FileName == val);
  504. int index = m_ReportApp.resultFilesList.IndexOf(resultFile);
  505. m_ReportApp.WorkingResult = index;
  506. }
  507. }
  508. //测量图类型
  509. if (typ == OTS_REPORT_PROP_GRID_ITEMS.IMAGE_DISPLAY_TYPE)
  510. {
  511. }
  512. ////---------------------------------------------------------------
  513. //测量图显示方式
  514. if (typ == OTS_REPORT_PROP_GRID_ITEMS.IMAGE_DISPLAY_TYPE)
  515. {
  516. if (sel == 0)//选择分布图
  517. {
  518. //strlist = ",0,2,3,7,10,13,";
  519. list_showgrid_item = new List<OTS_REPORT_PROP_GRID_ITEMS>(){OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE,//0
  520. OTS_REPORT_PROP_GRID_ITEMS.IMAGE_TYPE,//2
  521. OTS_REPORT_PROP_GRID_ITEMS.IMAGE_DISPLAY_TYPE,//3
  522. OTS_REPORT_PROP_GRID_ITEMS.PARTICLE_TYPE,//7
  523. OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS,//10
  524. OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE };//13
  525. if (ret.SampleDataList[GetSampleIndexByPropItemName(ret.SampleDataList, OTS_REPORT_PROP_GRID_ITEMS.IMAGE_DISPLAY_TYPE)].comboDownList.IndexOf(ret.SampleDataList[4].itemVal.ToString()) != 0)
  526. {
  527. //strlist = ",0,2,3,7,10,11,12,13,";
  528. list_showgrid_item = new List<OTS_REPORT_PROP_GRID_ITEMS>(){OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE,//0
  529. OTS_REPORT_PROP_GRID_ITEMS.IMAGE_TYPE,//2
  530. OTS_REPORT_PROP_GRID_ITEMS.IMAGE_DISPLAY_TYPE,//3
  531. OTS_REPORT_PROP_GRID_ITEMS.PARTICLE_TYPE,//7
  532. OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS,//10
  533. OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_MIN,//11
  534. OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_MAX,//12
  535. OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE };//13
  536. }
  537. }
  538. else if (sel == 1)//选择排序图时
  539. {
  540. //strlist = ",0,2,3,4,13,";
  541. list_showgrid_item = new List<OTS_REPORT_PROP_GRID_ITEMS>(){OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE,//0
  542. OTS_REPORT_PROP_GRID_ITEMS.IMAGE_TYPE,//2
  543. OTS_REPORT_PROP_GRID_ITEMS.IMAGE_DISPLAY_TYPE,//3
  544. OTS_REPORT_PROP_GRID_ITEMS.MEASURE_DATA_TYPE,//4
  545. OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE };//13
  546. }
  547. }
  548. //颗粒类型
  549. if (typ == OTS_REPORT_PROP_GRID_ITEMS.PARTICLE_TYPE)
  550. {
  551. }
  552. //测量数据
  553. if (typ == OTS_REPORT_PROP_GRID_ITEMS.MEASURE_DATA_TYPE)
  554. {
  555. if (sel == 0)//全部颗粒类型
  556. {
  557. //strlist = ",0,2,3,4,13,";
  558. list_showgrid_item = new List<OTS_REPORT_PROP_GRID_ITEMS>(){OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE,//0
  559. OTS_REPORT_PROP_GRID_ITEMS.IMAGE_TYPE,//2
  560. OTS_REPORT_PROP_GRID_ITEMS.IMAGE_DISPLAY_TYPE,//3
  561. OTS_REPORT_PROP_GRID_ITEMS.MEASURE_DATA_TYPE,//4
  562. OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE };//13
  563. }
  564. else if (sel == 1)//分析颗粒类型
  565. {
  566. list_showgrid_item = new List<OTS_REPORT_PROP_GRID_ITEMS>(){OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE,//0
  567. OTS_REPORT_PROP_GRID_ITEMS.IMAGE_TYPE,//2
  568. OTS_REPORT_PROP_GRID_ITEMS.IMAGE_DISPLAY_TYPE,//3
  569. OTS_REPORT_PROP_GRID_ITEMS.MEASURE_DATA_TYPE,//4
  570. OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE };//13
  571. }
  572. else if (sel == 2)//颗粒尺寸类型
  573. {
  574. list_showgrid_item = new List<OTS_REPORT_PROP_GRID_ITEMS>(){OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE,//0
  575. OTS_REPORT_PROP_GRID_ITEMS.IMAGE_TYPE,//2
  576. OTS_REPORT_PROP_GRID_ITEMS.IMAGE_DISPLAY_TYPE,//3
  577. OTS_REPORT_PROP_GRID_ITEMS.MEASURE_DATA_TYPE,//4
  578. OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE,//9
  579. OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS,//10
  580. OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE };//13
  581. }
  582. }
  583. //颗粒粒级表
  584. if (typ == OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE)
  585. {
  586. //点击下拉框,级联联动事件
  587. int idx = m_ReportApp.m_DataMgrFun.GetSampleIndexByPropItemName(m_ReportApp.SourceGridData.SampleDataList, OTSIncAReportApp.OTSSampleReportInfo.OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE);
  588. List<string> list_partsize = GetPartSizeList(m_ReportApp.m_RptConfigFile.FileFolderSize + ret.SampleDataList[idx].itemVal.ToString());
  589. List<string> list_partsizeChart = new List<string>();
  590. for (int i = 0; i < ret.SampleDataList[idx].comboDownList.Count;i++)
  591. list_partsizeChart.Add(ret.SampleDataList[idx].comboDownList[i].ToString());
  592. string sscaptionname16 = table["sscaptionname16"].ToString();
  593. string sscaptionname18 = table["sscaptionname18"].ToString();
  594. list_partsize.Insert(0, sscaptionname16);//全部
  595. list_partsize.Insert(1, sscaptionname18);//自定义
  596. ret.SampleDataList[GetSampleIndexByPropItemName(ret.SampleDataList, OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE)].itemVal = ret.SampleDataList[idx].itemVal.ToString();
  597. ret.SampleDataList[GetSampleIndexByPropItemName(ret.SampleDataList, OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE)].comboDownList = list_partsizeChart;
  598. ret.SampleDataList[GetSampleIndexByPropItemName(ret.SampleDataList, OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS)].comboDownList = list_partsize;
  599. m_ReportApp.m_RptConfigFile.PartSizeFile = ret.SampleDataList[idx].itemVal.ToString();
  600. }
  601. //粒级
  602. if (typ == OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS)
  603. {
  604. switch (sel)
  605. {
  606. case 0:
  607. list_showgrid_item.Remove(OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_MIN);//11
  608. list_showgrid_item.Remove(OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_MAX);//12
  609. break;
  610. case 1:
  611. if (!list_showgrid_item.Contains(OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_MIN))
  612. {
  613. list_showgrid_item.Add(OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_MIN);//11
  614. list_showgrid_item.Add(OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_MAX);//12
  615. }
  616. ret.SampleDataList[GetSampleIndexByPropItemName(ret.SampleDataList, OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_MIN)].bReadOnly = false;
  617. ret.SampleDataList[GetSampleIndexByPropItemName(ret.SampleDataList, OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_MIN)].itemVal = "0";
  618. ret.SampleDataList[GetSampleIndexByPropItemName(ret.SampleDataList, OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_MAX)].bReadOnly = false;
  619. ret.SampleDataList[GetSampleIndexByPropItemName(ret.SampleDataList, OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_MAX)].itemVal = "0";
  620. break;
  621. default:
  622. if (!list_showgrid_item.Contains(OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_MIN))
  623. {
  624. list_showgrid_item.Add(OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_MIN);//11
  625. list_showgrid_item.Add(OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_MAX);//12
  626. }
  627. string[] v = ret.SampleDataList[5].itemVal.ToString().Split('~');
  628. ret.SampleDataList[GetSampleIndexByPropItemName(ret.SampleDataList, OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_MIN)].bReadOnly = true;
  629. ret.SampleDataList[GetSampleIndexByPropItemName(ret.SampleDataList, OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_MIN)].itemVal = v[0];
  630. ret.SampleDataList[GetSampleIndexByPropItemName(ret.SampleDataList, OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_MAX)].bReadOnly = true;
  631. ret.SampleDataList[GetSampleIndexByPropItemName(ret.SampleDataList, OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_MAX)].itemVal = v[1];
  632. break;
  633. }
  634. }
  635. //尺寸计算法
  636. if (typ == OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE)
  637. {
  638. }
  639. //ret.TSampleParam.sSampleTitleName = strlist;
  640. ret.TSampleParam.List_ShowGrid_Items = list_showgrid_item;
  641. ret = FilterData(ret);
  642. return ret;
  643. }
  644. /// <summary>
  645. ///
  646. /// </summary>
  647. /// <param name="in_list_sampledata"></param>
  648. /// <param name="in_orpgi"></param>
  649. /// <returns></returns>
  650. public int GetSampleIndexByPropItemName(List<SampleData> in_list_sampledata, OTS_REPORT_PROP_GRID_ITEMS in_orpgi)
  651. {
  652. for (int i = 0; i < in_list_sampledata.Count; i++)
  653. {
  654. if (in_list_sampledata[i].iItemId == in_orpgi)
  655. {
  656. return i;
  657. }
  658. }
  659. return -1;
  660. }
  661. /// <summary>
  662. /// SourceGrid,Grid表格部份组合各项方法
  663. /// </summary>
  664. /// <param name="typ"></param>
  665. /// <param name="val"></param>
  666. /// <param name="sel"></param>
  667. /// <returns></returns>
  668. public OTSSampleMeaInfo ChangeSouceGrid_Grid(OTS_REPORT_PROP_GRID_ITEMS typ, string val, int sel)
  669. {
  670. OTSSampleMeaInfo ret = new OTSSampleMeaInfo();
  671. ret = m_ReportApp.SourceGridDataList[1];
  672. //string strlist = ret.TSampleParam.sSampleTitleName;
  673. List<OTS_REPORT_PROP_GRID_ITEMS> list_showgrid_item = ret.TSampleParam.List_ShowGrid_Items;
  674. //测量结果数据
  675. if (typ == OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE)
  676. {
  677. if (val.Contains("+"))
  678. {
  679. ret.SampleDataList[GetSampleIndexByPropItemName(ret.SampleDataList, OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE)].itemVal = val;
  680. }
  681. else
  682. {
  683. DataOperation.Model.ResultFile resultFile = m_ReportApp.resultFilesList.Find(s => s.FileName == val);
  684. int index = m_ReportApp.resultFilesList.IndexOf(resultFile);
  685. m_ReportApp.WorkingResult = index;
  686. }
  687. }
  688. //数据类型
  689. if (typ == OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE_TYPE)
  690. {
  691. }
  692. //数据表类型
  693. if (typ == OTS_REPORT_PROP_GRID_ITEMS.CALCULATE_TABLE_TYPE)
  694. {
  695. switch (sel)
  696. {
  697. case 2://颗粒成份
  698. if (!list_showgrid_item.Contains(OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE))//13
  699. {
  700. list_showgrid_item.Add(OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE);
  701. }
  702. list_showgrid_item.Remove(OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE);//9
  703. break;
  704. case 4://颗粒尺寸分布
  705. if (!list_showgrid_item.Contains(OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE))//9
  706. {
  707. list_showgrid_item.Add(OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE);
  708. }
  709. if (!list_showgrid_item.Contains(OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE))//13
  710. {
  711. list_showgrid_item.Add(OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE);
  712. }
  713. break;
  714. default://其它Grid模块不需要,粒级表和尺寸计算法
  715. list_showgrid_item.Remove(OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE);//9
  716. //list_showgrid_item.Remove(OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE);//13
  717. break;
  718. }
  719. }
  720. //颗粒粒级表
  721. if (typ == OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE)
  722. {
  723. m_ReportApp.m_RptConfigFile.PartSizeFile = ret.SampleDataList[GetSampleIndexByPropItemName(ret.SampleDataList, OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE)].itemVal.ToString();
  724. }
  725. //尺寸计算方法
  726. if (typ == OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE)
  727. {
  728. }
  729. //ret.TSampleParam.sSampleTitleName = strlist;
  730. ret.TSampleParam.List_ShowGrid_Items = list_showgrid_item;
  731. ret = FilterData(ret);
  732. return ret;
  733. }
  734. /// <summary>
  735. /// SourceGrid,Chart图表部份组合各项方法
  736. /// </summary>
  737. /// <param name="typ"></param>
  738. /// <param name="val"></param>
  739. /// <param name="sel"></param>
  740. /// <returns></returns>
  741. public OTSSampleMeaInfo ChangeSouceGrid_Chart(OTS_REPORT_PROP_GRID_ITEMS typ, string val, int sel)
  742. {
  743. OTSSampleMeaInfo ret = new OTSSampleMeaInfo();
  744. ret = m_ReportApp.SourceGridDataList[2];
  745. //string strlist = ret.TSampleParam.sSampleTitleName;
  746. List<OTS_REPORT_PROP_GRID_ITEMS> list_showgrid_item = ret.TSampleParam.List_ShowGrid_Items;
  747. //测量结果数据
  748. if (typ == OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE)
  749. {
  750. if (val.Contains("+"))
  751. {
  752. //ret.SampleDataList[1].bReadOnly = true;
  753. //ret.SampleDataList[1].itemVal = ret.SampleDataList[GetSampleIndexByPropItemName(ret.SampleDataList, OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE)].comboDownList[0];
  754. ret.SampleDataList[0].itemVal = val;
  755. }
  756. else
  757. {
  758. //ret.SampleDataList[1].bReadOnly = false;
  759. DataOperation.Model.ResultFile resultFile = m_ReportApp.resultFilesList.Find(s => s.FileName == val);
  760. int index = m_ReportApp.resultFilesList.IndexOf(resultFile);
  761. m_ReportApp.WorkingResult = index;
  762. }
  763. }
  764. //数据类型
  765. if (typ == OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE_TYPE)
  766. {
  767. }
  768. //数据图类型
  769. if (typ == OTS_REPORT_PROP_GRID_ITEMS.CALCULATE_CHART_TYPE)
  770. {
  771. switch (sel)
  772. {
  773. case 4://三元相图
  774. if (!list_showgrid_item.Contains(OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE) && !list_showgrid_item.Contains(OTS_REPORT_PROP_GRID_ITEMS.TRIO_CHART_TYPE) && !list_showgrid_item.Contains(OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE))
  775. {
  776. list_showgrid_item.Add(OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE);
  777. list_showgrid_item.Add(OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE);
  778. list_showgrid_item.Add(OTS_REPORT_PROP_GRID_ITEMS.TRIO_CHART_TYPE);//15
  779. }
  780. else if (!list_showgrid_item.Contains(OTS_REPORT_PROP_GRID_ITEMS.TRIO_CHART_TYPE))
  781. {
  782. list_showgrid_item.Add(OTS_REPORT_PROP_GRID_ITEMS.TRIO_CHART_TYPE);//15
  783. }
  784. break;
  785. case 3://颗粒尺寸分布图
  786. if (!list_showgrid_item.Contains(OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE))//9
  787. {
  788. list_showgrid_item.Add(OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE);
  789. }
  790. if (!list_showgrid_item.Contains(OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE))//13
  791. {
  792. list_showgrid_item.Add(OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE);
  793. }
  794. if (list_showgrid_item.Contains(OTS_REPORT_PROP_GRID_ITEMS.TRIO_CHART_TYPE))//15
  795. {
  796. list_showgrid_item.Remove(OTS_REPORT_PROP_GRID_ITEMS.TRIO_CHART_TYPE);
  797. }
  798. break;
  799. default:
  800. list_showgrid_item.Remove(OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE);
  801. list_showgrid_item.Remove(OTS_REPORT_PROP_GRID_ITEMS.TRIO_CHART_TYPE);//15
  802. break;
  803. }
  804. }
  805. //三元相图模板
  806. if (typ == OTS_REPORT_PROP_GRID_ITEMS.TRIO_CHART_TYPE)
  807. {
  808. }
  809. //颗粒种类
  810. if (typ == OTS_REPORT_PROP_GRID_ITEMS.PARTICLE_TYPE)
  811. {
  812. }
  813. //颗粒粒级表
  814. if (typ == OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE)
  815. {
  816. m_ReportApp.m_RptConfigFile.PartSizeFile = ret.SampleDataList[GetSampleIndexByPropItemName(ret.SampleDataList, OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE)].itemVal.ToString();
  817. }
  818. //尺寸计算方法
  819. if (typ == OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE)
  820. {
  821. }
  822. //ret.TSampleParam.sSampleTitleName = strlist;
  823. ret.TSampleParam.List_ShowGrid_Items = list_showgrid_item;
  824. ret = FilterData(ret);
  825. return ret;
  826. }
  827. /// <summary>
  828. /// 按照枚举字符串,过滤Source掉不显示的项
  829. /// </summary>
  830. /// <param name="source"></param>
  831. /// <returns></returns>
  832. private OTSSampleMeaInfo FilterData(OTSSampleMeaInfo source)
  833. {
  834. OTSSampleMeaInfo ret = new OTSSampleMeaInfo();
  835. ret.TabIndex = source.TabIndex;
  836. //new
  837. List<OTS_REPORT_PROP_GRID_ITEMS> list_shogrid_items = source.TSampleParam.List_ShowGrid_Items;
  838. for (int i = 0; i < source.SampleDataList.Count; i++)
  839. {
  840. if (list_shogrid_items.Contains(source.SampleDataList[i].iItemId))
  841. {
  842. ret.SampleDataList.Add(source.SampleDataList[i]);
  843. }
  844. }
  845. return ret;
  846. }
  847. /// <summary>
  848. /// 获取sourceGrid数据
  849. /// </summary>
  850. /// <param name="SMeasureInfo"></param>
  851. /// <returns></returns>
  852. public bool GetWorkSamplePropertyVal(ref OTSSampleMeaInfo SMeasureInfo)
  853. {
  854. int tabindex = (int)m_ReportApp.m_PropWindow.tabIndex;
  855. if (m_ReportApp.WorkingResult == -1)
  856. {
  857. return false;
  858. }
  859. if (m_ReportApp.SourceGridData.SampleDataList.Count > 0)
  860. {
  861. OTSSampleMeaInfo a = m_ReportApp.SourceGridData;
  862. //if (a.TSampleParam.sSampleTitleName == null)
  863. //{
  864. // a.TSampleParam.sSampleTitleName = m_ReportApp.SourceGridDataListLog[a.TabIndex].TSampleParam.sSampleTitleName;
  865. //}
  866. //new
  867. if (a.TSampleParam.List_ShowGrid_Items == null)
  868. {
  869. a.TSampleParam.List_ShowGrid_Items = m_ReportApp.SourceGridDataListLog[a.TabIndex].TSampleParam.List_ShowGrid_Items;
  870. }
  871. m_ReportApp.SourceGridDataListLog[a.TabIndex] = a;
  872. OTSSampleMeaInfo b = m_ReportApp.SourceGridDataListLog[tabindex];
  873. SMeasureInfo = FilterData(b);
  874. m_ReportApp.SourceGridData = SMeasureInfo;
  875. }
  876. else
  877. {
  878. OTSSampleMeaInfo data = new OTSSampleMeaInfo();
  879. data.TabIndex = 0;
  880. //data.TSampleParam.sSampleTitleName = ",0,2,3,7,9,10,13,";
  881. data.TSampleParam.List_ShowGrid_Items = new List<OTS_REPORT_PROP_GRID_ITEMS> { OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE,//0
  882. OTS_REPORT_PROP_GRID_ITEMS.IMAGE_TYPE,//2
  883. OTS_REPORT_PROP_GRID_ITEMS.IMAGE_DISPLAY_TYPE,//3
  884. OTS_REPORT_PROP_GRID_ITEMS.PARTICLE_TYPE,//7
  885. OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE,//9
  886. OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS,//10
  887. OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE};//13
  888. data.SampleDataList = GetSourceGridData(0);
  889. m_ReportApp.SourceGridDataList.Add(data);
  890. m_ReportApp.SourceGridDataListLog.Add(data);
  891. OTSSampleMeaInfo data1 = new OTSSampleMeaInfo();
  892. data1.TabIndex = 1;
  893. //data1.TSampleParam.sSampleTitleName = ",0,1,5,";
  894. data1.TSampleParam.List_ShowGrid_Items = new List<OTS_REPORT_PROP_GRID_ITEMS> { OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE,//0
  895. OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE_TYPE,//1
  896. OTS_REPORT_PROP_GRID_ITEMS.CALCULATE_TABLE_TYPE};//5
  897. data1.SampleDataList = GetSourceGridData(1);
  898. m_ReportApp.SourceGridDataList.Add(data1);
  899. m_ReportApp.SourceGridDataListLog.Add(data1);
  900. OTSSampleMeaInfo data2 = new OTSSampleMeaInfo();
  901. data2.TabIndex = 2;
  902. //data2.TSampleParam.sSampleTitleName = ",0,1,6,";
  903. data2.TSampleParam.List_ShowGrid_Items = new List<OTS_REPORT_PROP_GRID_ITEMS> { OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE,//0
  904. OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE_TYPE,//1
  905. OTS_REPORT_PROP_GRID_ITEMS.CALCULATE_CHART_TYPE };
  906. //,//6
  907. //OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE};//13
  908. data2.SampleDataList = GetSourceGridData(2);
  909. m_ReportApp.SourceGridDataList.Add(data2);
  910. m_ReportApp.SourceGridDataListLog.Add(data2);
  911. switch (tabindex)
  912. {
  913. case 0:
  914. SMeasureInfo = FilterData(data);
  915. break;
  916. case 1:
  917. SMeasureInfo = FilterData(data1);
  918. break;
  919. case 2:
  920. SMeasureInfo = FilterData(data2);
  921. break;
  922. }
  923. m_ReportApp.SourceGridData = SMeasureInfo;
  924. }
  925. return true;
  926. }
  927. #endregion
  928. #region [测量结果treeview]相关封装方法
  929. /// <summary>
  930. /// 获取测量结果treeview树测量结果名
  931. /// </summary>
  932. /// <returns></returns>
  933. public string GetSampleName()
  934. {
  935. //获取样品名
  936. String sWorkSampleName = m_ReportApp.resultFilesList[m_ReportApp.WorkingResult].FileName;
  937. if (null == sWorkSampleName)
  938. {
  939. return "";
  940. }
  941. return sWorkSampleName;
  942. }
  943. #endregion
  944. #region 自定义方法相关
  945. /// <summary>
  946. /// 显示默认图表
  947. /// </summary>
  948. public void ShowsTheDefaultPic()
  949. {
  950. try
  951. {
  952. if (m_ReportApp.resultFilesList.Count > 0)
  953. {
  954. m_ReportApp.m_PropWindow.m_SampleGrid.ShowDataDiagram((int)m_ReportApp.m_PropWindow.tabIndex);
  955. }
  956. }
  957. catch (Exception ex)
  958. {
  959. //日记记录
  960. string str = ex.ToString();
  961. }
  962. }
  963. #endregion
  964. }
  965. }