DataMgrFun.cs 53 KB

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