DataMgrFun.cs 53 KB

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