DataMgrFun.cs 54 KB

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