DataMgrFun.cs 50 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085
  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. List<string> listStd = new List<string>() { "国标一", "国标二", "美标", "德标" };
  342. list2.AddRange(listStd);
  343. SampleData sampleData3 = new SampleData();
  344. sampleData3.iItemId = OTS_REPORT_PROP_GRID_ITEMS.CALCULATE_TABLE_TYPE;
  345. sampleData3.sSCaptionName = sSCaptionName10;
  346. sampleData3.iItemValType = OTS_ITEM_TYPES.COMBO;
  347. sampleData3.bReadOnly = false;
  348. sampleData3.sDescriptionInfo = "Data table type";
  349. sampleData3.itemVal = list2[0];
  350. sampleData3.comboDownList = list2;
  351. list.Add(sampleData3);
  352. //粒级表
  353. string sSCaptionName_partsizefile = "粒级表";
  354. List<string> list_partsizelist = GetPartSizeFileList();//从系统默认的路径中查找出所有的粒级表文件
  355. SampleData sampleData_partsizefile = new SampleData();
  356. sampleData_partsizefile.iItemId = OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE;
  357. sampleData_partsizefile.sSCaptionName = sSCaptionName_partsizefile;
  358. sampleData_partsizefile.iItemValType = OTS_ITEM_TYPES.COMBO;
  359. sampleData_partsizefile.bReadOnly = false;
  360. sampleData_partsizefile.sDescriptionInfo = "Particle Table";
  361. sampleData_partsizefile.itemVal = list_partsizelist[0];
  362. sampleData_partsizefile.comboDownList = list_partsizelist;
  363. list.Add(sampleData_partsizefile);
  364. //尺寸计算方法
  365. string sSCaptionName8 = table["sscaptionname8"].ToString();
  366. SampleData sampleData13 = new SampleData();
  367. sampleData13.iItemId = OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE;
  368. sampleData13.sSCaptionName = sSCaptionName8;
  369. sampleData13.iItemValType = OTS_ITEM_TYPES.COMBO;
  370. sampleData13.bReadOnly = false;
  371. sampleData13.sDescriptionInfo = "Dimension Calculation Method";
  372. sampleData13.itemVal = "DMAX";
  373. sampleData13.comboDownList = GetSizeCalMethodTypeList();
  374. list.Add(sampleData13);
  375. }
  376. else if (tbindex == 2)//Chart图页
  377. {
  378. //测量结果数据
  379. List<string> list_source_str = GetSampleListName();
  380. string sSCaptionName1 = table["sscaptionname1"].ToString();
  381. SampleData sampleData = new SampleData();
  382. sampleData.iItemId = 0;
  383. sampleData.sSCaptionName = sSCaptionName1;
  384. sampleData.iItemValType = OTS_ITEM_TYPES.COMBO;
  385. sampleData.bReadOnly = false;
  386. sampleData.sDescriptionInfo = "Select Measurement Result";
  387. sampleData.itemVal = list_source_str[m_ReportApp.WorkingResult];
  388. sampleData.comboDownList = list_source_str;
  389. list.Add(sampleData);
  390. //数据类型
  391. List<string> list_datasourcetypelist = GetDataSourceTypeList();
  392. string sSCaptionName9 = table["sscaptionname9"].ToString();
  393. SampleData sampleData1 = new SampleData();
  394. sampleData1.iItemId = OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE_TYPE;
  395. sampleData1.sSCaptionName = sSCaptionName9;
  396. sampleData1.iItemValType = OTS_ITEM_TYPES.COMBO;
  397. sampleData1.bReadOnly = false;
  398. sampleData1.sDescriptionInfo = "Data Type";
  399. sampleData1.itemVal = list_datasourcetypelist[0];
  400. sampleData1.comboDownList = list_datasourcetypelist;
  401. list.Add(sampleData1);
  402. //数据图类型
  403. string sSCaptionName10 = table["sscaptionname10"].ToString();
  404. List<string> list2 = new List<string>() { "常用夹杂物分类", table["sscaptionname27"].ToString(), table["sscaptionname28"].ToString(), table["sscaptionname29"].ToString(), table["sscaptionname12"].ToString() };
  405. SampleData sampleData3 = new SampleData();
  406. sampleData3.iItemId = OTS_REPORT_PROP_GRID_ITEMS.CALCULATE_CHART_TYPE;
  407. sampleData3.sSCaptionName = sSCaptionName10;
  408. sampleData3.iItemValType = OTS_ITEM_TYPES.COMBO;
  409. sampleData3.bReadOnly = false;
  410. sampleData3.sDescriptionInfo = "Data graph type";
  411. sampleData3.itemVal = list2[0];
  412. sampleData3.comboDownList = list2;
  413. list.Add(sampleData3);
  414. //三元相图模板
  415. string sSCaptionName12 = table["sscaptionname12"].ToString();
  416. SampleData sampleData15 = new SampleData();
  417. List<string> trio_listname = GetTriTemplateNameList();
  418. sampleData15.iItemId = OTS_REPORT_PROP_GRID_ITEMS.TRIO_CHART_TYPE;
  419. sampleData15.sSCaptionName = sSCaptionName12;
  420. sampleData15.iItemValType = OTS_ITEM_TYPES.COMBO;
  421. sampleData15.bReadOnly = false;
  422. sampleData15.sDescriptionInfo = "Ternary phase diagram";
  423. sampleData15.itemVal = trio_listname.First();
  424. sampleData15.comboDownList = trio_listname;
  425. list.Add(sampleData15);
  426. //粒级表
  427. string sSCaptionName_partsizefile = "粒级表";
  428. List<string> list_partsizelist = GetPartSizeFileList();
  429. SampleData sampleData_partsizefile = new SampleData();
  430. sampleData_partsizefile.iItemId = OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE;
  431. sampleData_partsizefile.sSCaptionName = sSCaptionName_partsizefile;
  432. sampleData_partsizefile.iItemValType = OTS_ITEM_TYPES.COMBO;
  433. sampleData_partsizefile.bReadOnly = false;
  434. sampleData_partsizefile.sDescriptionInfo = "Particle Table";
  435. sampleData_partsizefile.itemVal = list_partsizelist[0];
  436. sampleData_partsizefile.comboDownList = list_partsizelist;
  437. list.Add(sampleData_partsizefile);
  438. //尺寸计算法
  439. string sSCaptionName8 = table["sscaptionname8"].ToString();
  440. SampleData sampleData13 = new SampleData();
  441. sampleData13.iItemId = OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE;
  442. sampleData13.sSCaptionName = sSCaptionName8;
  443. sampleData13.iItemValType = OTS_ITEM_TYPES.COMBO;
  444. sampleData13.bReadOnly = false;
  445. sampleData13.sDescriptionInfo = "Dimension Calculation Method";
  446. sampleData13.itemVal = "DMAX";
  447. sampleData13.comboDownList = GetSizeCalMethodTypeList();
  448. list.Add(sampleData13);
  449. }
  450. return list;
  451. }
  452. /// <summary>
  453. /// 分发SourceGrid,各选项值改变事件
  454. /// </summary>
  455. /// <param name="tbindex"></param>
  456. /// <param name="typ"></param>
  457. /// <param name="val"></param>
  458. /// <param name="sel"></param>
  459. /// <returns></returns>
  460. public OTSSampleMeaInfo ChangeSouceGrid(int tbindex, OTS_REPORT_PROP_GRID_ITEMS typ, string val, int sel)
  461. {
  462. OTSSampleMeaInfo ret = new OTSSampleMeaInfo();
  463. ret = m_ReportApp.SourceGridDataList[tbindex];
  464. switch (tbindex)
  465. {
  466. case 0:
  467. ret = ChangeSouceGrid_Image(typ, val, sel);
  468. break;
  469. case 1:
  470. ret = ChangeSouceGrid_Grid(typ, val, sel);
  471. break;
  472. case 2:
  473. ret = ChangeSouceGrid_Chart(typ, val, sel);
  474. break;
  475. }
  476. return ret;
  477. }
  478. /// <summary>
  479. /// SourceGrid,分析图页面组合各项方法
  480. /// </summary>
  481. /// <param name="typ"></param>
  482. /// <param name="val"></param>
  483. /// <param name="sel"></param>
  484. /// <returns></returns>
  485. public OTSSampleMeaInfo ChangeSouceGrid_Image(OTS_REPORT_PROP_GRID_ITEMS typ, string val, int sel)
  486. {
  487. OTSSampleMeaInfo ret = new OTSSampleMeaInfo();
  488. ret = m_ReportApp.SourceGridDataList[0];
  489. //string strlist = ret.TSampleParam.sSampleTitleName;
  490. List<OTS_REPORT_PROP_GRID_ITEMS> list_showgrid_item = ret.TSampleParam.List_ShowGrid_Items;
  491. //测量结果数据
  492. if (typ == OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE)
  493. {
  494. if (val.Contains("+"))
  495. {
  496. ret.SampleDataList[GetSampleIndexByPropItemName(ret.SampleDataList, OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE)].itemVal = val;
  497. }
  498. else
  499. {
  500. DataOperation.Model.ResultFile resultFile = m_ReportApp.resultFilesList.Find(s => s.FileName == val);
  501. int index = m_ReportApp.resultFilesList.IndexOf(resultFile);
  502. m_ReportApp.WorkingResult = index;
  503. }
  504. }
  505. //测量图类型
  506. if (typ == OTS_REPORT_PROP_GRID_ITEMS.IMAGE_DISPLAY_TYPE)
  507. {
  508. }
  509. ////---------------------------------------------------------------
  510. //测量图显示方式
  511. if (typ == OTS_REPORT_PROP_GRID_ITEMS.IMAGE_DISPLAY_TYPE)
  512. {
  513. if (sel == 0)//选择分布图
  514. {
  515. //strlist = ",0,2,3,7,10,13,";
  516. list_showgrid_item = new List<OTS_REPORT_PROP_GRID_ITEMS>(){OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE,//0
  517. OTS_REPORT_PROP_GRID_ITEMS.IMAGE_TYPE,//2
  518. OTS_REPORT_PROP_GRID_ITEMS.IMAGE_DISPLAY_TYPE,//3
  519. OTS_REPORT_PROP_GRID_ITEMS.PARTICLE_TYPE,//7
  520. OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS,//10
  521. OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE };//13
  522. if (ret.SampleDataList[GetSampleIndexByPropItemName(ret.SampleDataList, OTS_REPORT_PROP_GRID_ITEMS.IMAGE_DISPLAY_TYPE)].comboDownList.IndexOf(ret.SampleDataList[4].itemVal.ToString()) != 0)
  523. {
  524. //strlist = ",0,2,3,7,10,11,12,13,";
  525. list_showgrid_item = new List<OTS_REPORT_PROP_GRID_ITEMS>(){OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE,//0
  526. OTS_REPORT_PROP_GRID_ITEMS.IMAGE_TYPE,//2
  527. OTS_REPORT_PROP_GRID_ITEMS.IMAGE_DISPLAY_TYPE,//3
  528. OTS_REPORT_PROP_GRID_ITEMS.PARTICLE_TYPE,//7
  529. OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS,//10
  530. OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_MIN,//11
  531. OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_MAX,//12
  532. OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE };//13
  533. }
  534. }
  535. else if (sel == 1)//选择排序图时
  536. {
  537. //strlist = ",0,2,3,4,13,";
  538. list_showgrid_item = new List<OTS_REPORT_PROP_GRID_ITEMS>(){OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE,//0
  539. OTS_REPORT_PROP_GRID_ITEMS.IMAGE_TYPE,//2
  540. OTS_REPORT_PROP_GRID_ITEMS.IMAGE_DISPLAY_TYPE,//3
  541. OTS_REPORT_PROP_GRID_ITEMS.MEASURE_DATA_TYPE,//4
  542. OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE };//13
  543. }
  544. }
  545. //颗粒类型
  546. if (typ == OTS_REPORT_PROP_GRID_ITEMS.PARTICLE_TYPE)
  547. {
  548. }
  549. //测量数据
  550. if (typ == OTS_REPORT_PROP_GRID_ITEMS.MEASURE_DATA_TYPE)
  551. {
  552. if (sel == 0)//全部颗粒类型
  553. {
  554. //strlist = ",0,2,3,4,13,";
  555. list_showgrid_item = new List<OTS_REPORT_PROP_GRID_ITEMS>(){OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE,//0
  556. OTS_REPORT_PROP_GRID_ITEMS.IMAGE_TYPE,//2
  557. OTS_REPORT_PROP_GRID_ITEMS.IMAGE_DISPLAY_TYPE,//3
  558. OTS_REPORT_PROP_GRID_ITEMS.MEASURE_DATA_TYPE,//4
  559. OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE };//13
  560. }
  561. else if (sel == 1)//分析颗粒类型
  562. {
  563. list_showgrid_item = new List<OTS_REPORT_PROP_GRID_ITEMS>(){OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE,//0
  564. OTS_REPORT_PROP_GRID_ITEMS.IMAGE_TYPE,//2
  565. OTS_REPORT_PROP_GRID_ITEMS.IMAGE_DISPLAY_TYPE,//3
  566. OTS_REPORT_PROP_GRID_ITEMS.MEASURE_DATA_TYPE,//4
  567. OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE };//13
  568. }
  569. else if (sel == 2)//颗粒尺寸类型
  570. {
  571. list_showgrid_item = new List<OTS_REPORT_PROP_GRID_ITEMS>(){OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE,//0
  572. OTS_REPORT_PROP_GRID_ITEMS.IMAGE_TYPE,//2
  573. OTS_REPORT_PROP_GRID_ITEMS.IMAGE_DISPLAY_TYPE,//3
  574. OTS_REPORT_PROP_GRID_ITEMS.MEASURE_DATA_TYPE,//4
  575. OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE,//9
  576. OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS,//10
  577. OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE };//13
  578. }
  579. }
  580. //颗粒粒级表
  581. if (typ == OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE)
  582. {
  583. //点击下拉框,级联联动事件
  584. int idx = m_ReportApp.m_DataMgrFun.GetSampleIndexByPropItemName(m_ReportApp.SourceGridData.SampleDataList, OTSIncAReportApp.OTSSampleReportInfo.OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE);
  585. List<string> list_partsize = GetPartSizeList(m_ReportApp.m_RptConfigFile.FileFolderSize + ret.SampleDataList[idx].itemVal.ToString());
  586. List<string> list_partsizeChart = new List<string>();
  587. for (int i = 0; i < ret.SampleDataList[idx].comboDownList.Count;i++)
  588. list_partsizeChart.Add(ret.SampleDataList[idx].comboDownList[i].ToString());
  589. string sscaptionname16 = table["sscaptionname16"].ToString();
  590. string sscaptionname18 = table["sscaptionname18"].ToString();
  591. list_partsize.Insert(0, sscaptionname16);//全部
  592. list_partsize.Insert(1, sscaptionname18);//自定义
  593. ret.SampleDataList[GetSampleIndexByPropItemName(ret.SampleDataList, OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE)].itemVal = ret.SampleDataList[idx].itemVal.ToString();
  594. ret.SampleDataList[GetSampleIndexByPropItemName(ret.SampleDataList, OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE)].comboDownList = list_partsizeChart;
  595. ret.SampleDataList[GetSampleIndexByPropItemName(ret.SampleDataList, OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS)].comboDownList = list_partsize;
  596. m_ReportApp.m_RptConfigFile.PartSizeFile = ret.SampleDataList[idx].itemVal.ToString();
  597. }
  598. //粒级
  599. if (typ == OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS)
  600. {
  601. switch (sel)
  602. {
  603. case 0:
  604. list_showgrid_item.Remove(OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_MIN);//11
  605. list_showgrid_item.Remove(OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_MAX);//12
  606. break;
  607. case 1:
  608. if (!list_showgrid_item.Contains(OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_MIN))
  609. {
  610. list_showgrid_item.Add(OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_MIN);//11
  611. list_showgrid_item.Add(OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_MAX);//12
  612. }
  613. ret.SampleDataList[GetSampleIndexByPropItemName(ret.SampleDataList, OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_MIN)].bReadOnly = false;
  614. ret.SampleDataList[GetSampleIndexByPropItemName(ret.SampleDataList, OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_MIN)].itemVal = "0";
  615. ret.SampleDataList[GetSampleIndexByPropItemName(ret.SampleDataList, OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_MAX)].bReadOnly = false;
  616. ret.SampleDataList[GetSampleIndexByPropItemName(ret.SampleDataList, OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_MAX)].itemVal = "0";
  617. break;
  618. default:
  619. if (!list_showgrid_item.Contains(OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_MIN))
  620. {
  621. list_showgrid_item.Add(OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_MIN);//11
  622. list_showgrid_item.Add(OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_MAX);//12
  623. }
  624. string[] v = ret.SampleDataList[5].itemVal.ToString().Split('~');
  625. ret.SampleDataList[GetSampleIndexByPropItemName(ret.SampleDataList, OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_MIN)].bReadOnly = true;
  626. ret.SampleDataList[GetSampleIndexByPropItemName(ret.SampleDataList, OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_MIN)].itemVal = v[0];
  627. ret.SampleDataList[GetSampleIndexByPropItemName(ret.SampleDataList, OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_MAX)].bReadOnly = true;
  628. ret.SampleDataList[GetSampleIndexByPropItemName(ret.SampleDataList, OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_MAX)].itemVal = v[1];
  629. break;
  630. }
  631. }
  632. //尺寸计算法
  633. if (typ == OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE)
  634. {
  635. }
  636. //ret.TSampleParam.sSampleTitleName = strlist;
  637. ret.TSampleParam.List_ShowGrid_Items = list_showgrid_item;
  638. ret = FilterData(ret);
  639. return ret;
  640. }
  641. /// <summary>
  642. ///
  643. /// </summary>
  644. /// <param name="in_list_sampledata"></param>
  645. /// <param name="in_orpgi"></param>
  646. /// <returns></returns>
  647. public int GetSampleIndexByPropItemName(List<SampleData> in_list_sampledata, OTS_REPORT_PROP_GRID_ITEMS in_orpgi)
  648. {
  649. for (int i = 0; i < in_list_sampledata.Count; i++)
  650. {
  651. if (in_list_sampledata[i].iItemId == in_orpgi)
  652. {
  653. return i;
  654. }
  655. }
  656. return -1;
  657. }
  658. /// <summary>
  659. /// SourceGrid,Grid表格部份组合各项方法
  660. /// </summary>
  661. /// <param name="typ"></param>
  662. /// <param name="val"></param>
  663. /// <param name="sel"></param>
  664. /// <returns></returns>
  665. public OTSSampleMeaInfo ChangeSouceGrid_Grid(OTS_REPORT_PROP_GRID_ITEMS typ, string val, int sel)
  666. {
  667. OTSSampleMeaInfo ret = new OTSSampleMeaInfo();
  668. ret = m_ReportApp.SourceGridDataList[1];
  669. //string strlist = ret.TSampleParam.sSampleTitleName;
  670. List<OTS_REPORT_PROP_GRID_ITEMS> list_showgrid_item = ret.TSampleParam.List_ShowGrid_Items;
  671. //测量结果数据
  672. if (typ == OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE)
  673. {
  674. if (val.Contains("+"))
  675. {
  676. ret.SampleDataList[GetSampleIndexByPropItemName(ret.SampleDataList, OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE)].itemVal = val;
  677. }
  678. else
  679. {
  680. DataOperation.Model.ResultFile resultFile = m_ReportApp.resultFilesList.Find(s => s.FileName == val);
  681. int index = m_ReportApp.resultFilesList.IndexOf(resultFile);
  682. m_ReportApp.WorkingResult = index;
  683. }
  684. }
  685. //数据类型
  686. if (typ == OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE_TYPE)
  687. {
  688. }
  689. //数据表类型
  690. if (typ == OTS_REPORT_PROP_GRID_ITEMS.CALCULATE_TABLE_TYPE)
  691. {
  692. switch (sel)
  693. {
  694. case 2://颗粒成份
  695. if (!list_showgrid_item.Contains(OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE))//13
  696. {
  697. list_showgrid_item.Add(OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE);
  698. }
  699. list_showgrid_item.Remove(OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE);//9
  700. break;
  701. case 4://颗粒尺寸分布
  702. if (!list_showgrid_item.Contains(OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE))//9
  703. {
  704. list_showgrid_item.Add(OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE);
  705. }
  706. if (!list_showgrid_item.Contains(OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE))//13
  707. {
  708. list_showgrid_item.Add(OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE);
  709. }
  710. break;
  711. default://其它Grid模块不需要,粒级表和尺寸计算法
  712. list_showgrid_item.Remove(OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE);//9
  713. //list_showgrid_item.Remove(OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE);//13
  714. break;
  715. }
  716. }
  717. //颗粒粒级表
  718. if (typ == OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE)
  719. {
  720. m_ReportApp.m_RptConfigFile.PartSizeFile = ret.SampleDataList[GetSampleIndexByPropItemName(ret.SampleDataList, OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE)].itemVal.ToString();
  721. }
  722. //尺寸计算方法
  723. if (typ == OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE)
  724. {
  725. }
  726. //ret.TSampleParam.sSampleTitleName = strlist;
  727. ret.TSampleParam.List_ShowGrid_Items = list_showgrid_item;
  728. ret = FilterData(ret);
  729. return ret;
  730. }
  731. /// <summary>
  732. /// SourceGrid,Chart图表部份组合各项方法
  733. /// </summary>
  734. /// <param name="typ"></param>
  735. /// <param name="val"></param>
  736. /// <param name="sel"></param>
  737. /// <returns></returns>
  738. public OTSSampleMeaInfo ChangeSouceGrid_Chart(OTS_REPORT_PROP_GRID_ITEMS typ, string val, int sel)
  739. {
  740. OTSSampleMeaInfo ret = new OTSSampleMeaInfo();
  741. ret = m_ReportApp.SourceGridDataList[2];
  742. //string strlist = ret.TSampleParam.sSampleTitleName;
  743. List<OTS_REPORT_PROP_GRID_ITEMS> list_showgrid_item = ret.TSampleParam.List_ShowGrid_Items;
  744. //测量结果数据
  745. if (typ == OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE)
  746. {
  747. if (val.Contains("+"))
  748. {
  749. //ret.SampleDataList[1].bReadOnly = true;
  750. //ret.SampleDataList[1].itemVal = ret.SampleDataList[GetSampleIndexByPropItemName(ret.SampleDataList, OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE)].comboDownList[0];
  751. ret.SampleDataList[0].itemVal = val;
  752. }
  753. else
  754. {
  755. //ret.SampleDataList[1].bReadOnly = false;
  756. DataOperation.Model.ResultFile resultFile = m_ReportApp.resultFilesList.Find(s => s.FileName == val);
  757. int index = m_ReportApp.resultFilesList.IndexOf(resultFile);
  758. m_ReportApp.WorkingResult = index;
  759. }
  760. }
  761. //数据类型
  762. if (typ == OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE_TYPE)
  763. {
  764. }
  765. //数据图类型
  766. if (typ == OTS_REPORT_PROP_GRID_ITEMS.CALCULATE_CHART_TYPE)
  767. {
  768. switch (sel)
  769. {
  770. case 4://三元相图
  771. 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))
  772. {
  773. list_showgrid_item.Add(OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE);
  774. list_showgrid_item.Add(OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE);
  775. list_showgrid_item.Add(OTS_REPORT_PROP_GRID_ITEMS.TRIO_CHART_TYPE);//15
  776. }
  777. else if (!list_showgrid_item.Contains(OTS_REPORT_PROP_GRID_ITEMS.TRIO_CHART_TYPE))
  778. {
  779. list_showgrid_item.Add(OTS_REPORT_PROP_GRID_ITEMS.TRIO_CHART_TYPE);//15
  780. }
  781. break;
  782. case 3://颗粒尺寸分布图
  783. if (!list_showgrid_item.Contains(OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE))//9
  784. {
  785. list_showgrid_item.Add(OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE);
  786. }
  787. if (!list_showgrid_item.Contains(OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE))//13
  788. {
  789. list_showgrid_item.Add(OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE);
  790. }
  791. if (list_showgrid_item.Contains(OTS_REPORT_PROP_GRID_ITEMS.TRIO_CHART_TYPE))//15
  792. {
  793. list_showgrid_item.Remove(OTS_REPORT_PROP_GRID_ITEMS.TRIO_CHART_TYPE);
  794. }
  795. break;
  796. default:
  797. list_showgrid_item.Remove(OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE);
  798. list_showgrid_item.Remove(OTS_REPORT_PROP_GRID_ITEMS.TRIO_CHART_TYPE);//15
  799. break;
  800. }
  801. }
  802. //三元相图模板
  803. if (typ == OTS_REPORT_PROP_GRID_ITEMS.TRIO_CHART_TYPE)
  804. {
  805. }
  806. //颗粒种类
  807. if (typ == OTS_REPORT_PROP_GRID_ITEMS.PARTICLE_TYPE)
  808. {
  809. }
  810. //颗粒粒级表
  811. if (typ == OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE)
  812. {
  813. m_ReportApp.m_RptConfigFile.PartSizeFile = ret.SampleDataList[GetSampleIndexByPropItemName(ret.SampleDataList, OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE)].itemVal.ToString();
  814. }
  815. //尺寸计算方法
  816. if (typ == OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE)
  817. {
  818. }
  819. //ret.TSampleParam.sSampleTitleName = strlist;
  820. ret.TSampleParam.List_ShowGrid_Items = list_showgrid_item;
  821. ret = FilterData(ret);
  822. return ret;
  823. }
  824. /// <summary>
  825. /// 按照枚举字符串,过滤Source掉不显示的项
  826. /// </summary>
  827. /// <param name="source"></param>
  828. /// <returns></returns>
  829. private OTSSampleMeaInfo FilterData(OTSSampleMeaInfo source)
  830. {
  831. OTSSampleMeaInfo ret = new OTSSampleMeaInfo();
  832. ret.TabIndex = source.TabIndex;
  833. //new
  834. List<OTS_REPORT_PROP_GRID_ITEMS> list_shogrid_items = source.TSampleParam.List_ShowGrid_Items;
  835. for (int i = 0; i < source.SampleDataList.Count; i++)
  836. {
  837. if (list_shogrid_items.Contains(source.SampleDataList[i].iItemId))
  838. {
  839. ret.SampleDataList.Add(source.SampleDataList[i]);
  840. }
  841. }
  842. return ret;
  843. }
  844. /// <summary>
  845. /// 获取sourceGrid数据
  846. /// </summary>
  847. /// <param name="SMeasureInfo"></param>
  848. /// <returns></returns>
  849. public bool GetWorkSamplePropertyVal(ref OTSSampleMeaInfo SMeasureInfo)
  850. {
  851. int tabindex = (int)m_ReportApp.m_PropWindow.tabIndex;
  852. if (m_ReportApp.WorkingResult == -1)
  853. {
  854. return false;
  855. }
  856. if (m_ReportApp.SourceGridData.SampleDataList.Count > 0)
  857. {
  858. OTSSampleMeaInfo a = m_ReportApp.SourceGridData;
  859. //if (a.TSampleParam.sSampleTitleName == null)
  860. //{
  861. // a.TSampleParam.sSampleTitleName = m_ReportApp.SourceGridDataListLog[a.TabIndex].TSampleParam.sSampleTitleName;
  862. //}
  863. //new
  864. if (a.TSampleParam.List_ShowGrid_Items == null)
  865. {
  866. a.TSampleParam.List_ShowGrid_Items = m_ReportApp.SourceGridDataListLog[a.TabIndex].TSampleParam.List_ShowGrid_Items;
  867. }
  868. m_ReportApp.SourceGridDataListLog[a.TabIndex] = a;
  869. OTSSampleMeaInfo b = m_ReportApp.SourceGridDataListLog[tabindex];
  870. SMeasureInfo = FilterData(b);
  871. m_ReportApp.SourceGridData = SMeasureInfo;
  872. }
  873. else
  874. {
  875. OTSSampleMeaInfo data = new OTSSampleMeaInfo();
  876. data.TabIndex = 0;
  877. //data.TSampleParam.sSampleTitleName = ",0,2,3,7,9,10,13,";
  878. data.TSampleParam.List_ShowGrid_Items = new List<OTS_REPORT_PROP_GRID_ITEMS> { OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE,//0
  879. OTS_REPORT_PROP_GRID_ITEMS.IMAGE_TYPE,//2
  880. OTS_REPORT_PROP_GRID_ITEMS.IMAGE_DISPLAY_TYPE,//3
  881. OTS_REPORT_PROP_GRID_ITEMS.PARTICLE_TYPE,//7
  882. OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE,//9
  883. OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS,//10
  884. OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE};//13
  885. data.SampleDataList = GetSourceGridData(0);
  886. m_ReportApp.SourceGridDataList.Add(data);
  887. m_ReportApp.SourceGridDataListLog.Add(data);
  888. OTSSampleMeaInfo data1 = new OTSSampleMeaInfo();
  889. data1.TabIndex = 1;
  890. //data1.TSampleParam.sSampleTitleName = ",0,1,5,";
  891. data1.TSampleParam.List_ShowGrid_Items = new List<OTS_REPORT_PROP_GRID_ITEMS> { OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE,//0
  892. OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE_TYPE,//1
  893. OTS_REPORT_PROP_GRID_ITEMS.CALCULATE_TABLE_TYPE};//5
  894. data1.SampleDataList = GetSourceGridData(1);
  895. m_ReportApp.SourceGridDataList.Add(data1);
  896. m_ReportApp.SourceGridDataListLog.Add(data1);
  897. OTSSampleMeaInfo data2 = new OTSSampleMeaInfo();
  898. data2.TabIndex = 2;
  899. //data2.TSampleParam.sSampleTitleName = ",0,1,6,";
  900. data2.TSampleParam.List_ShowGrid_Items = new List<OTS_REPORT_PROP_GRID_ITEMS> { OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE,//0
  901. OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE_TYPE,//1
  902. OTS_REPORT_PROP_GRID_ITEMS.CALCULATE_CHART_TYPE };
  903. //,//6
  904. //OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE};//13
  905. data2.SampleDataList = GetSourceGridData(2);
  906. m_ReportApp.SourceGridDataList.Add(data2);
  907. m_ReportApp.SourceGridDataListLog.Add(data2);
  908. switch (tabindex)
  909. {
  910. case 0:
  911. SMeasureInfo = FilterData(data);
  912. break;
  913. case 1:
  914. SMeasureInfo = FilterData(data1);
  915. break;
  916. case 2:
  917. SMeasureInfo = FilterData(data2);
  918. break;
  919. }
  920. m_ReportApp.SourceGridData = SMeasureInfo;
  921. }
  922. return true;
  923. }
  924. #endregion
  925. #region [测量结果treeview]相关封装方法
  926. /// <summary>
  927. /// 获取测量结果treeview树测量结果名
  928. /// </summary>
  929. /// <returns></returns>
  930. public string GetSampleName()
  931. {
  932. //获取样品名
  933. String sWorkSampleName = m_ReportApp.resultFilesList[m_ReportApp.WorkingResult].FileName;
  934. if (null == sWorkSampleName)
  935. {
  936. return "";
  937. }
  938. return sWorkSampleName;
  939. }
  940. #endregion
  941. #region 自定义方法相关
  942. /// <summary>
  943. /// 显示默认图表
  944. /// </summary>
  945. public void ShowsTheDefaultPic()
  946. {
  947. try
  948. {
  949. if (m_ReportApp.resultFilesList.Count > 0)
  950. {
  951. m_ReportApp.m_PropWindow.m_SampleGrid.ShowDataDiagram((int)m_ReportApp.m_PropWindow.tabIndex);
  952. }
  953. }
  954. catch (Exception ex)
  955. {
  956. //日记记录
  957. string str = ex.ToString();
  958. }
  959. }
  960. #endregion
  961. }
  962. }