SampleGrid.cs 50 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949
  1. using OTSIncAReportApp.OTSSampleReportInfo;
  2. using OTSIncAReportApp.SysMgrTools;
  3. using OTSIncAReportGB;
  4. using OTSIncAReportGrids;
  5. using SourceGrid;
  6. using System;
  7. using System.Collections;
  8. using System.Collections.Generic;
  9. using System.Diagnostics;
  10. using System.Drawing;
  11. using System.Linq;
  12. using System.Windows.Forms;
  13. namespace OTSIncAReportApp.OTSDataMgrFunction
  14. {
  15. /// <summary>
  16. /// 属性Grid相关操作封装类
  17. /// </summary>
  18. public class SampleGrid
  19. {
  20. #region 变量定义
  21. /// <summary>
  22. /// 主框架窗体
  23. /// </summary>
  24. private frmMeasureRstProp m_RstProp = null;
  25. /// <summary>
  26. /// 当grid被click时,确定点击的行
  27. /// </summary>
  28. public int m_ClickRow = 0;
  29. /// <summary>
  30. /// 当grid被click时,确定点击的列
  31. /// </summary>
  32. public int m_ClickColumn = 0;
  33. /// <summary>
  34. /// 当改变ProperyWindow窗口大小时,窗口响应Resize(object sender, EventArgs e),返回改变后的尺寸,利用改变后的窗口尺寸重回Grid的行宽和列宽
  35. /// </summary>
  36. public int m_PropWindow_X = 0;
  37. /// <summary>
  38. /// 当改变ProperyWindow窗口大小时,窗口响应Resize(object sender, EventArgs e),返回改变后的尺寸,利用改变后的窗口尺寸重回Grid的行宽和列宽
  39. /// </summary>
  40. public int m_PropWindow_Y = 0;
  41. /// <summary>
  42. /// 临时用于计算用的grid行号 总行数
  43. /// </summary>
  44. public static int m_Const_Grid_Row = 42; //总行数
  45. /// <summary>
  46. /// 临时用于计算用的grid行号 总列数
  47. /// </summary>
  48. public static int m_Const_Grid_Column = 3; //总列数
  49. /// <summary>
  50. /// 测量结果相关类
  51. /// </summary>
  52. OTSSampleMeaInfo m_WSampleInfo = new OTSSampleMeaInfo();
  53. /// <summary>
  54. /// 当选择了Grid的某个row ,修改Row的值,引发的事件
  55. /// </summary>
  56. ChangeGridCellValEvent m_ChangeCellValEvent = null;
  57. /// <summary>
  58. /// 选择COMBOBOX值引发的事件
  59. /// </summary>
  60. ItemValueChange2 m_ValChangeEvent2 = null;
  61. /// <summary>
  62. /// 定义分栏表头样式
  63. /// </summary>
  64. public SourceGrid.Cells.Views.Cell m_Col_HeaderMode = null;
  65. /// <summary>
  66. /// 定义大表头grid表头样式
  67. /// </summary>
  68. SourceGrid.Cells.Views.Cell m_CellTitleModel = null;
  69. /// <summary>
  70. /// 定义分栏标题格样式
  71. /// </summary>
  72. SourceGrid.Cells.Views.Cell m_Col_NameMode = null;
  73. /// <summary>
  74. /// 定义分栏内容格样式
  75. /// </summary>
  76. SourceGrid.Cells.Views.Cell m_Col_ValMode = null;
  77. /// <summary>
  78. /// 只读样式cell设置
  79. /// </summary>
  80. SourceGrid.Cells.Views.Cell M_Col_readonly = null;
  81. /// <summary>
  82. /// 通用参数组的标题名
  83. /// </summary>
  84. public String m_Display_Mode_Name = "参数";
  85. /// <summary>
  86. /// 通用参数组的GRID行数
  87. /// </summary>
  88. public int m_Display_Mode_Row = 0;
  89. Language lan = new Language();
  90. Hashtable table;
  91. //窗体索引
  92. private int tabIndex = 0;
  93. #endregion
  94. #region 构造函数及初始化函数
  95. public SampleGrid(frmMeasureRstProp Propwindow)
  96. {
  97. m_RstProp = Propwindow;
  98. m_RstProp.PropGrid.Rows.Clear();
  99. m_RstProp.PropGrid.Redim(m_Const_Grid_Row, m_Const_Grid_Column);
  100. table = lan.GetNameTable("SampleGrid");
  101. string str = table["str1"].ToString();
  102. m_Display_Mode_Name = str;
  103. }
  104. /// <summary>
  105. /// 初始化Grid修改值事件
  106. /// </summary>
  107. void InitChangeValEvent()
  108. {
  109. m_ChangeCellValEvent = new ChangeGridCellValEvent(this);
  110. m_ValChangeEvent2 = new ItemValueChange2(this);
  111. }
  112. #endregion
  113. #region 初始化属性Grid相关方法
  114. /// <summary>
  115. /// 初始化属性Grid相关样式
  116. /// </summary>
  117. public void InitGrid()
  118. {
  119. //初始化Grid修改值事件
  120. InitChangeValEvent();
  121. //定义大表头grid表头样式
  122. {
  123. m_CellTitleModel = new SourceGrid.Cells.Views.Cell();
  124. m_CellTitleModel.BackColor = Color.LightGray;
  125. m_CellTitleModel.ForeColor = Color.Black;
  126. m_CellTitleModel.TextAlignment = DevAge.Drawing.ContentAlignment.MiddleLeft;
  127. }
  128. //定义分栏表头样式
  129. {
  130. m_Col_HeaderMode = new SourceGrid.Cells.Views.Cell();
  131. m_Col_HeaderMode.BackColor = Color.LightGray; //背景色
  132. m_Col_HeaderMode.ForeColor = Color.Black; //字体颜色
  133. m_Col_HeaderMode.TextAlignment = DevAge.Drawing.ContentAlignment.MiddleCenter;
  134. }
  135. //定义分栏标题格样式
  136. {
  137. m_Col_NameMode = new SourceGrid.Cells.Views.Cell();
  138. m_Col_NameMode.TextAlignment = DevAge.Drawing.ContentAlignment.MiddleLeft;
  139. }
  140. //定义分栏内容格样式
  141. {
  142. m_Col_ValMode = new SourceGrid.Cells.Views.Cell();
  143. m_Col_ValMode.TextAlignment = DevAge.Drawing.ContentAlignment.MiddleLeft;
  144. }
  145. //只读样式cell设置
  146. {
  147. M_Col_readonly = new SourceGrid.Cells.Views.Cell();
  148. M_Col_readonly.ForeColor = Color.Gray;
  149. }
  150. }
  151. /// <summary>
  152. /// 初始化属性Grid相关表头
  153. /// </summary>
  154. public void InitGridTitlet()
  155. {
  156. int firstColumnWidth = 15; //第一列的宽度
  157. int SecondColumnWidth = 150;
  158. //设备各单元格宽度---------------------------------------------
  159. m_RstProp.PropGrid.Columns.SetWidth(0, firstColumnWidth); //设置第一列宽度
  160. m_RstProp.PropGrid.Columns.AutoSizeColumn(2); //固定进度条
  161. //ProperyWindows的窗口宽度包括是第二列和第三列的长度总和
  162. m_RstProp.PropGrid.Columns.SetWidth(1, 150); //第二列宽度
  163. m_RstProp.PropGrid.Columns.SetWidth(2, (m_PropWindow_X - firstColumnWidth - SecondColumnWidth - 18)); //第三列宽度
  164. }
  165. /// <summary>
  166. /// 初始化组的标题栏 iRow:GroupTitle的行号, sGroupName: GroupTitle的名字
  167. /// </summary>
  168. /// <param name="iRow"></param>
  169. /// <param name="sGroupName"></param>
  170. public void InitGroupTitle(int iRow, String sGroupName)
  171. {
  172. if (null == m_RstProp.PropGrid[iRow, 0])
  173. {
  174. m_RstProp.PropGrid[iRow, 0] = new SourceGrid.Cells.Link("-");//第一行,上面用来折叠的"-",一会点击后变成"+"
  175. m_RstProp.PropGrid[iRow, 0].View = m_CellTitleModel; //设置表头的样式
  176. //设置表头"-"按钮,点击后的事件
  177. }
  178. if (null == m_RstProp.PropGrid[iRow, 1])
  179. {
  180. m_RstProp.PropGrid[iRow, 1] = new SourceGrid.Cells.Cell(sGroupName); // 设置GroupTitle的名字
  181. m_RstProp.PropGrid[iRow, 1].View = m_CellTitleModel;
  182. m_RstProp.PropGrid[iRow, 1].ColumnSpan = 2; //设置第二列与第三列合并,表头效果完成。 2:从当前列开始合并2列
  183. }
  184. }
  185. #endregion
  186. #region 属性Grid显示相关方法
  187. public void ShowGeneralGrid(OTSSampleMeaInfo SampleInfo)
  188. {
  189. if (SampleInfo.SampleDataList.Count() == 0)
  190. return;
  191. int nGridRow = 0;
  192. string str = table["str2"].ToString();
  193. this.InitGroupTitle(nGridRow, str);
  194. nGridRow++;
  195. int Display_Mode_Row = 1;//确定跨行样式的跨行数变量
  196. // 设置样品Grid数据
  197. for (int i = 0; i < SampleInfo.SampleDataList.Count; i++)
  198. {
  199. Display_Mode_Row++;
  200. //显示样品的属性值
  201. SampleData SData = SampleInfo.SampleDataList[i];
  202. this.SetGridCellVal(nGridRow, SData);
  203. nGridRow++;
  204. }
  205. //控制左边的竖形条框栏的显示
  206. //第二行,第一列,为了效果美化,向下跨行,共跨m_Grid_TotleRow - 1行
  207. if (Display_Mode_Row > 1) //有通用参数组的Grid值显示
  208. {
  209. //获取Grid组Title所在的行号
  210. int iCurRow = Display_Mode_Row;
  211. //第二行的时候,需要定义左边的条框栏
  212. if (m_RstProp.tabIndex == DisplayPicutureType.AnalyzeImg)
  213. {
  214. if (null == m_RstProp.PropGrid[1 + 1, 0])
  215. {
  216. m_RstProp.PropGrid[1, 0] = new SourceGrid.Cells.Cell("");
  217. m_RstProp.PropGrid[1, 0].View = m_Col_HeaderMode;
  218. }
  219. else
  220. {
  221. m_RstProp.PropGrid[iCurRow + 1, 0].Value = "";
  222. }
  223. if (iCurRow == 0)
  224. {
  225. m_RstProp.PropGrid[iCurRow + 1, 0].RowSpan = iCurRow + Display_Mode_Row - 1; //iCurRow + General_Totle_Row-1 : 去掉标题栏计数
  226. }
  227. else
  228. {
  229. m_RstProp.PropGrid[1, 0].RowSpan = Display_Mode_Row - 1; //iCurRow + General_Totle_Row-1 : 去掉标题栏计数
  230. }
  231. }
  232. if (m_RstProp.tabIndex == DisplayPicutureType.AnalyzeDataTable)
  233. {
  234. //第二行的时候,需要定义左边的条框栏
  235. if (null == m_RstProp.PropGrid[1 + 1, 0])
  236. {
  237. m_RstProp.PropGrid[1, 0] = new SourceGrid.Cells.Cell("");
  238. m_RstProp.PropGrid[1, 0].View = m_Col_HeaderMode;
  239. }
  240. else
  241. {
  242. m_RstProp.PropGrid[iCurRow + 1, 0].Value = "";
  243. }
  244. if (iCurRow == 0)
  245. {
  246. m_RstProp.PropGrid[iCurRow + 1, 0].RowSpan = iCurRow + Display_Mode_Row - 1; //iCurRow + General_Totle_Row-1 : 去掉标题栏计数
  247. }
  248. else
  249. {
  250. m_RstProp.PropGrid[1, 0].RowSpan = Display_Mode_Row - 1; //iCurRow + General_Totle_Row-1 : 去掉标题栏计数
  251. }
  252. }
  253. if (m_RstProp.tabIndex == DisplayPicutureType.AnalyzeDataChart)
  254. {
  255. //第二行的时候,需要定义左边的条框栏
  256. if (null == m_RstProp.PropGrid[1, 0])
  257. {
  258. m_RstProp.PropGrid[1, 0] = new SourceGrid.Cells.Cell("");
  259. m_RstProp.PropGrid[1, 0].View = m_Col_HeaderMode;
  260. }
  261. else
  262. {
  263. m_RstProp.PropGrid[iCurRow + 1, 0].Value = "";
  264. }
  265. if (iCurRow == 0)
  266. {
  267. m_RstProp.PropGrid[iCurRow + 1, 0].RowSpan = iCurRow + Display_Mode_Row - 1; //iCurRow + General_Totle_Row-1 : 去掉标题栏计数
  268. }
  269. else
  270. {
  271. m_RstProp.PropGrid[1, 0].RowSpan = Display_Mode_Row - 1; //iCurRow + General_Totle_Row-1 : 去掉标题栏计数
  272. }
  273. }
  274. }
  275. }
  276. /// <summary>
  277. /// 显示Chart图表相关属性Grid
  278. /// </summary>
  279. /// <param name="note"></param>
  280. public void SetPictureProperty(DisplayPicutureType note)
  281. {
  282. m_RstProp.tabIndex = note;
  283. m_RstProp.PropGrid.Show();
  284. }
  285. public void SetGridCellVal(int Row, SampleData SData)
  286. {
  287. OTS_REPORT_PROP_GRID_ITEMS SampleID = SData.iItemId;
  288. String sCaptionName = SData.sSCaptionName;
  289. object SampleVal = SData.itemVal;
  290. List<String> comboDownList = SData.comboDownList;
  291. OTS_ITEM_TYPES SampleValType = SData.iItemValType;
  292. bool bReadOnly = SData.bReadOnly;
  293. //每行的第一列显示属性名称
  294. if (null == m_RstProp.PropGrid[Row, 1])
  295. {
  296. m_RstProp.PropGrid[Row, 1] = new SourceGrid.Cells.Cell(sCaptionName);
  297. }
  298. else
  299. {
  300. m_RstProp.PropGrid[Row, 1].Value = sCaptionName;
  301. }
  302. m_RstProp.PropGrid[Row, 1].View = m_Col_NameMode;
  303. //每行的第二列显示属性值
  304. if (null == m_RstProp.PropGrid[Row, 2])
  305. {
  306. switch (SData.iItemValType)
  307. {
  308. case OTS_ITEM_TYPES.COMBO:
  309. try
  310. {
  311. SourceGrid.Cells.Editors.ComboBox m_ComboboxText = null;
  312. List<string> ValList = new List<string>();
  313. string[] arraySample;
  314. if (null == comboDownList)
  315. {
  316. List<string> sSampleVal = new List<string>();
  317. ValList = sSampleVal;
  318. }
  319. else
  320. {
  321. ValList = (List<string>)comboDownList;
  322. }
  323. int iValCount = ValList.Count();
  324. if (iValCount > 0)
  325. {
  326. arraySample = new string[iValCount];
  327. for (int i = 0; i < iValCount; i++)
  328. {
  329. arraySample[i] = ValList[i];
  330. }
  331. }
  332. else
  333. {
  334. arraySample = new string[3] { "", "", "" };
  335. }
  336. m_RstProp.PropGrid[Row, 2] = new SourceGrid.Cells.Cell(SampleVal);
  337. m_ComboboxText = new SourceGrid.Cells.Editors.ComboBox(typeof(string), arraySample, true);
  338. m_RstProp.PropGrid[Row, 2].Editor = m_ComboboxText;
  339. m_ComboboxText.Control.DropDownStyle = ComboBoxStyle.DropDownList; //设置下拉框为不可以编辑的状态
  340. m_RstProp.PropGrid[Row, 2].Value = SampleVal;
  341. m_RstProp.PropGrid[Row, 2].AddController(m_ChangeCellValEvent);
  342. m_RstProp.PropGrid[Row, 2].AddController(m_ValChangeEvent2);
  343. m_ComboboxText.EditableMode = EditableMode.SingleClick;
  344. }
  345. catch (Exception)
  346. {
  347. }
  348. break;
  349. case OTS_ITEM_TYPES.DOUBLE:
  350. var txtbox = new SourceGrid.Cells.Editors.TextBoxNumeric(typeof(double));
  351. m_RstProp.PropGrid[Row, 2] = new SourceGrid.Cells.Cell(SampleVal);
  352. txtbox.EditableMode = EditableMode.SingleClick;
  353. m_RstProp.PropGrid[Row, 2].Editor = txtbox;
  354. m_RstProp.PropGrid[Row, 2].AddController(m_ChangeCellValEvent);
  355. m_RstProp.PropGrid[Row, 2].AddController(m_ValChangeEvent2);
  356. break;
  357. default:
  358. break;
  359. }
  360. if (bReadOnly) //只读模式
  361. {
  362. m_RstProp.PropGrid[Row, 2].Editor = null;
  363. m_RstProp.PropGrid[Row, 2].View = M_Col_readonly;// 设置只读
  364. }
  365. else
  366. {
  367. m_RstProp.PropGrid[Row, 2].View = m_Col_ValMode;
  368. }
  369. //行绑定ID值
  370. m_RstProp.PropGrid.Rows[Row].Tag = SampleID;
  371. //数据位置绑定数据类型
  372. m_RstProp.PropGrid[Row, 2].Tag = SampleValType;
  373. }
  374. else
  375. {
  376. m_RstProp.PropGrid[Row, 2].Value = SampleVal;
  377. }
  378. }
  379. #endregion
  380. #region 属性Grid与各功能模块操作等方法
  381. /// <summary>
  382. /// 根据样品属性 显示对应的图表
  383. /// </summary>
  384. /// <param name="tabIndex">标签索引</param>
  385. /// <param name="strTableTypeName">属性中选择的图表名称</param>
  386. public void ShowDataDiagram(int tabindex)
  387. {
  388. int sourceid = m_RstProp.m_ReportApp.WorkingResult;
  389. var projFileMgrClr1 = m_RstProp.m_ReportApp.resultFilesList[sourceid];
  390. var prop = m_RstProp.m_ReportApp.SourceGridData;
  391. String m_fileName = projFileMgrClr1.FileName;
  392. tabIndex = (int)m_RstProp.tabIndex;
  393. #region 对各窗体模块进行实际加载的代码
  394. switch (tabIndex)
  395. {
  396. //分析图
  397. case (int)DisplayPicutureType.AnalyzeImg://第一页选项窗体,分析图
  398. m_RstProp.m_ReportApp.m_RibbonFun.SetRibbonButnStatu_ByModule(DisplayPicutureType.AnalyzeImg);
  399. int idx = m_RstProp.m_ReportApp.m_DataMgrFun.GetSampleIndexByPropItemName(m_RstProp.m_ReportApp.SourceGridData.SampleDataList, OTSIncAReportApp.OTSSampleReportInfo.OTS_REPORT_PROP_GRID_ITEMS.IMAGE_DISPLAY_TYPE);
  400. int display = prop.SampleDataList[idx].comboDownList.IndexOf(prop.SampleDataList[idx].itemVal.ToString());
  401. if (display == 0)
  402. {
  403. //分布图对象为空,或当前显示的与在测量结果中选择的不匹配,则重新加载
  404. if (null != m_RstProp.m_ReportApp.im_Control_DrawDistrbutionImageAndBSE)
  405. {
  406. if (m_fileName != m_RstProp.m_ReportApp.im_Control_DrawDistrbutionImageAndBSE.ShowSourceName)
  407. {
  408. //如果已经不是原先的数据源,则需要重新加载,设定为空,后面重新加载
  409. m_RstProp.m_ReportApp.im_Control_DrawDistrbutionImageAndBSE = null;
  410. }
  411. }
  412. //不需重新加载,则加载条件
  413. if (m_RstProp.m_ReportApp.im_Control_DrawDistrbutionImageAndBSE != null)
  414. {
  415. m_RstProp.m_ReportApp.m_SImageWindow.Controls.Clear();
  416. m_RstProp.m_ReportApp.im_Control_DrawDistrbutionImageAndBSE.DataSourceID = sourceid;
  417. m_RstProp.m_ReportApp.im_Control_DrawDistrbutionImageAndBSE.ShowSourceName = m_fileName;
  418. m_RstProp.m_ReportApp.im_Control_DrawDistrbutionImageAndBSE.Dock = DockStyle.Fill;
  419. m_RstProp.m_ReportApp.m_SImageWindow.Controls.Add(m_RstProp.m_ReportApp.im_Control_DrawDistrbutionImageAndBSE);
  420. m_RstProp.m_ReportApp.m_SImageWindow.Activate();
  421. m_RstProp.m_ReportApp.im_Control_DrawDistrbutionImageAndBSE.DrawDistrbutionImageAndBSE_ByQuery(m_RstProp.m_ReportApp.SourceGridData);
  422. m_RstProp.m_ReportApp.im_Control_DrawDistrbutionImageAndBSE.SetSelectParticle(m_RstProp.m_ReportApp.SelectedParticles);
  423. idx = m_RstProp.m_ReportApp.m_DataMgrFun.GetSampleIndexByPropItemName(m_RstProp.m_ReportApp.SourceGridData.SampleDataList, OTSIncAReportApp.OTSSampleReportInfo.OTS_REPORT_PROP_GRID_ITEMS.IMAGE_TYPE);
  424. string ImageType = prop.SampleDataList[idx].itemVal.ToString();
  425. //切换分布图显示方式
  426. m_RstProp.m_ReportApp.im_Control_DrawDistrbutionImageAndBSE.ShowMode(ImageType);
  427. }
  428. else if (m_RstProp.m_ReportApp.im_Control_DrawDistrbutionImageAndBSE == null)
  429. {
  430. m_RstProp.m_ReportApp.m_SImageWindow.Controls.Clear();
  431. m_RstProp.m_ReportApp.im_Control_DrawDistrbutionImageAndBSE = new OTSIncAReportGraph.Controls.Control_DrawDistrbutionImageAndBSE(m_RstProp.m_ReportApp);
  432. m_RstProp.m_ReportApp.im_Control_DrawDistrbutionImageAndBSE.DataSourceID = sourceid;
  433. m_RstProp.m_ReportApp.im_Control_DrawDistrbutionImageAndBSE.ShowSourceName = m_fileName;
  434. m_RstProp.m_ReportApp.im_Control_DrawDistrbutionImageAndBSE.Dock = DockStyle.Fill;
  435. m_RstProp.m_ReportApp.m_SImageWindow.Controls.Add(m_RstProp.m_ReportApp.im_Control_DrawDistrbutionImageAndBSE);
  436. m_RstProp.m_ReportApp.m_SImageWindow.Activate();
  437. m_RstProp.m_ReportApp.im_Control_DrawDistrbutionImageAndBSE.DrawDistrbutionImageAndBSE_ByQuery(m_RstProp.m_ReportApp.SourceGridData);
  438. m_RstProp.m_ReportApp.im_Control_DrawDistrbutionImageAndBSE.SetSelectParticle(m_RstProp.m_ReportApp.SelectedParticles);
  439. }
  440. }
  441. else
  442. {
  443. //排列图为空,或与在测量结果中选择的名字不一致时,则重新加载
  444. if (null != m_RstProp.m_ReportApp.im_Control_DrawDistrbutionSortImage)
  445. {
  446. if (m_fileName != m_RstProp.m_ReportApp.im_Control_DrawDistrbutionSortImage.ShowSourceName)
  447. {
  448. //如果已经不是原先的数据源,则需要重新加载,设定为空,后面重新加载
  449. m_RstProp.m_ReportApp.im_Control_DrawDistrbutionSortImage = null;
  450. }
  451. }
  452. //不需重新加载,则加载条件
  453. if (m_RstProp.m_ReportApp.im_Control_DrawDistrbutionSortImage != null)
  454. {
  455. m_RstProp.m_ReportApp.m_SImageWindow.Controls.Clear();
  456. m_RstProp.m_ReportApp.im_Control_DrawDistrbutionSortImage.DataSourceID = sourceid;
  457. m_RstProp.m_ReportApp.im_Control_DrawDistrbutionSortImage.ShowSourceName = m_fileName;
  458. m_RstProp.m_ReportApp.im_Control_DrawDistrbutionSortImage.Dock = DockStyle.Fill;
  459. m_RstProp.m_ReportApp.m_SImageWindow.Controls.Add(m_RstProp.m_ReportApp.im_Control_DrawDistrbutionSortImage);
  460. m_RstProp.m_ReportApp.m_SImageWindow.Activate();
  461. m_RstProp.m_ReportApp.im_Control_DrawDistrbutionSortImage.Control_DrawDistrbutionSortImage_ByQuery(m_RstProp.m_ReportApp.SourceGridData);
  462. m_RstProp.m_ReportApp.im_Control_DrawDistrbutionSortImage.SetSelectParticle(m_RstProp.m_ReportApp.SelectedParticles);
  463. //判断当前点击测量结果中的数据源名,是否与已经加载的排序图显示的数据源名相同
  464. if (m_fileName == m_RstProp.m_ReportApp.im_Control_DrawDistrbutionSortImage.ShowSourceName)
  465. {
  466. //相同,加载计算条件
  467. // m_RstProp.m_ReportApp.im_Control_DrawDistrbutionSortImage.Control_DrawDistrbutionSortImage_ByQuery(listGriddataclr);
  468. m_RstProp.m_ReportApp.im_Control_DrawDistrbutionSortImage.SetSelectParticle(m_RstProp.m_ReportApp.SelectedParticles);
  469. idx = m_RstProp.m_ReportApp.m_DataMgrFun.GetSampleIndexByPropItemName(m_RstProp.m_ReportApp.SourceGridData.SampleDataList, OTSIncAReportApp.OTSSampleReportInfo.OTS_REPORT_PROP_GRID_ITEMS.IMAGE_TYPE);
  470. string ImageType = prop.SampleDataList[idx].itemVal.ToString();
  471. //切换BSE和分类,两种影像的显示方式
  472. if (ImageType == "BSE")
  473. {
  474. m_RstProp.m_ReportApp.im_Control_DrawDistrbutionSortImage.ShowMode(false);
  475. }
  476. else
  477. {
  478. m_RstProp.m_ReportApp.im_Control_DrawDistrbutionSortImage.ShowMode(true);
  479. }
  480. return;
  481. }
  482. }
  483. else if (m_RstProp.m_ReportApp.im_Control_DrawDistrbutionSortImage == null)
  484. {
  485. m_RstProp.m_ReportApp.m_SImageWindow.Controls.Clear();
  486. m_RstProp.m_ReportApp.im_Control_DrawDistrbutionSortImage = new OTSIncAReportGraph.Controls.Control_DrawDistrbutionSortImage(m_RstProp.m_ReportApp);
  487. m_RstProp.m_ReportApp.im_Control_DrawDistrbutionSortImage.DataSourceID = sourceid;
  488. m_RstProp.m_ReportApp.im_Control_DrawDistrbutionSortImage.ShowSourceName = m_fileName;
  489. m_RstProp.m_ReportApp.im_Control_DrawDistrbutionSortImage.Dock = DockStyle.Fill;
  490. m_RstProp.m_ReportApp.m_SImageWindow.Controls.Add(m_RstProp.m_ReportApp.im_Control_DrawDistrbutionSortImage);
  491. m_RstProp.m_ReportApp.m_SImageWindow.Activate();
  492. m_RstProp.m_ReportApp.im_Control_DrawDistrbutionSortImage.Control_DrawDistrbutionSortImage_ByQuery(m_RstProp.m_ReportApp.SourceGridData);
  493. m_RstProp.m_ReportApp.im_Control_DrawDistrbutionSortImage.SetSelectParticle(m_RstProp.m_ReportApp.SelectedParticles);
  494. }
  495. }
  496. break;
  497. //分析数据表
  498. case (int)DisplayPicutureType.AnalyzeDataTable:
  499. #region 第二页选项窗体,分析数据表
  500. m_RstProp.m_ReportApp.m_RibbonFun.SetRibbonButnStatu_ByModule(DisplayPicutureType.AnalyzeDataTable);
  501. idx = m_RstProp.m_ReportApp.m_DataMgrFun.GetSampleIndexByPropItemName(m_RstProp.m_ReportApp.SourceGridData.SampleDataList, OTSIncAReportApp.OTSSampleReportInfo.OTS_REPORT_PROP_GRID_ITEMS.CALCULATE_TABLE_TYPE);
  502. int TableType = prop.SampleDataList[idx].comboDownList.IndexOf(prop.SampleDataList[idx].itemVal.ToString());
  503. switch (TableType)
  504. {
  505. case 0:
  506. m_RstProp.m_ReportApp.m_CTablesWindow.Controls.Clear();
  507. m_RstProp.m_ReportApp.im_ResultGrid = new ResultGrid(m_RstProp.m_ReportApp);
  508. m_RstProp.m_ReportApp.im_ResultGrid.Dock = DockStyle.Fill;
  509. m_RstProp.m_ReportApp.m_CTablesWindow.Controls.Add(m_RstProp.m_ReportApp.im_ResultGrid);
  510. m_RstProp.m_ReportApp.m_CTablesWindow.Activate();
  511. break;
  512. case 1:
  513. if (m_RstProp.m_ReportApp.im_ParticlesGridDevidePage != null && m_RstProp.m_ReportApp.im_ParticlesGridDevidePage.FileName == m_fileName)
  514. {
  515. m_RstProp.m_ReportApp.m_CTablesWindow.Controls.Clear();
  516. m_RstProp.m_ReportApp.m_CTablesWindow.Controls.Add(m_RstProp.m_ReportApp.im_ParticlesGridDevidePage);
  517. m_RstProp.m_ReportApp.m_CTablesWindow.Activate();
  518. }
  519. else
  520. {
  521. m_RstProp.m_ReportApp.m_CTablesWindow.Controls.Clear();
  522. m_RstProp.m_ReportApp.im_ParticlesGridDevidePage = new OTSIncAReportGrids.ParticlesGridDevidePage(m_RstProp.m_ReportApp);
  523. m_RstProp.m_ReportApp.im_ParticlesGridDevidePage.FileName = m_fileName;
  524. m_RstProp.m_ReportApp.im_ParticlesGridDevidePage.Dock = DockStyle.Fill;
  525. m_RstProp.m_ReportApp.m_CTablesWindow.Controls.Add(m_RstProp.m_ReportApp.im_ParticlesGridDevidePage);
  526. m_RstProp.m_ReportApp.m_CTablesWindow.Activate();
  527. }
  528. break;
  529. case 2:
  530. m_RstProp.m_ReportApp.m_CTablesWindow.Controls.Clear();
  531. m_RstProp.m_ReportApp.im_CompositionDistributionGrid = new CompositionDistributionGrid(m_RstProp.m_ReportApp);
  532. m_RstProp.m_ReportApp.im_CompositionDistributionGrid.Dock = DockStyle.Fill;
  533. m_RstProp.m_ReportApp.m_CTablesWindow.Controls.Add(m_RstProp.m_ReportApp.im_CompositionDistributionGrid);
  534. m_RstProp.m_ReportApp.m_CTablesWindow.Activate();
  535. break;
  536. case 3:
  537. m_RstProp.m_ReportApp.m_CTablesWindow.Controls.Clear();
  538. m_RstProp.m_ReportApp.im_ElementContentGrid = new ElementContentGrid(m_RstProp.m_ReportApp);
  539. m_RstProp.m_ReportApp.im_ElementContentGrid.Dock = DockStyle.Fill;
  540. m_RstProp.m_ReportApp.m_CTablesWindow.Controls.Add(m_RstProp.m_ReportApp.im_ElementContentGrid);
  541. m_RstProp.m_ReportApp.m_CTablesWindow.Activate();
  542. break;
  543. case 4://颗粒尺寸分布表
  544. m_RstProp.m_ReportApp.m_CTablesWindow.Controls.Clear();
  545. m_RstProp.m_ReportApp.im_ParticlesSizeGrid = new ParticlesSizeGrid(m_RstProp.m_ReportApp);
  546. m_RstProp.m_ReportApp.im_ParticlesSizeGrid.Dock = DockStyle.Fill;
  547. m_RstProp.m_ReportApp.m_CTablesWindow.Controls.Add(m_RstProp.m_ReportApp.im_ParticlesSizeGrid);
  548. m_RstProp.m_ReportApp.m_CTablesWindow.Activate();
  549. break;
  550. case 5:
  551. m_RstProp.m_ReportApp.m_CTablesWindow.Controls.Clear();
  552. m_RstProp.m_ReportApp.im_ElementCompositionAvgGrid = new ElementCompositionAvgGrid(m_RstProp.m_ReportApp);
  553. m_RstProp.m_ReportApp.im_ElementCompositionAvgGrid.Dock = DockStyle.Fill;
  554. m_RstProp.m_ReportApp.m_CTablesWindow.Controls.Add(m_RstProp.m_ReportApp.im_ElementCompositionAvgGrid);
  555. m_RstProp.m_ReportApp.m_CTablesWindow.Activate();
  556. break;
  557. case 6:
  558. //国标一
  559. string resultfile = m_RstProp.m_ReportApp.resultFilesList[m_RstProp.m_ReportApp.WorkingResult].FilePath + "\\"
  560. + m_RstProp.m_ReportApp.resultFilesList[m_RstProp.m_ReportApp.WorkingResult].FileName;
  561. m_RstProp.m_ReportApp.m_DataMgrFun.m_ReportMgr.AddASmplMsrResultMgr(resultfile);
  562. OTSCLRINTERFACE.CPropParamClr clr_prop = m_RstProp.m_ReportApp.m_DataMgrFun.m_ReportMgr.GetPropertyParamTable();
  563. clr_prop.SetDataSourceId(0);//
  564. clr_prop.SetType(1);//table
  565. clr_prop.SetCalTableType(6);//国标1
  566. List<OTSCLRINTERFACE.CGridDataClr> listGriddataclr = m_RstProp.m_ReportApp.m_DataMgrFun.m_ReportMgr.GridDataTransfer(clr_prop);//
  567. m_RstProp.m_ReportApp.m_CTablesWindow.Controls.Clear();
  568. m_RstProp.m_ReportApp.im_ChineseStandardABCDDS = new ChineseStandardABCDDS(m_RstProp.m_ReportApp.m_DataMgrFun.m_ReportMgr, listGriddataclr);
  569. m_RstProp.m_ReportApp.im_ChineseStandardABCDDS.Dock = DockStyle.Fill;
  570. m_RstProp.m_ReportApp.m_CTablesWindow.Controls.Add(m_RstProp.m_ReportApp.im_ChineseStandardABCDDS);
  571. m_RstProp.m_ReportApp.m_CTablesWindow.Activate();
  572. //OpenOTSINcAreportTemplateAPP(m_RstProp.m_ReportApp.resultFilesList[m_RstProp.m_ReportApp.WorkingResult].FilePath+"\\"
  573. // + m_RstProp.m_ReportApp.resultFilesList[m_RstProp.m_ReportApp.WorkingResult].FileName, "GB1");
  574. break;
  575. case 7:
  576. //国标二
  577. string resultfile2 = m_RstProp.m_ReportApp.resultFilesList[m_RstProp.m_ReportApp.WorkingResult].FilePath + "\\"
  578. + m_RstProp.m_ReportApp.resultFilesList[m_RstProp.m_ReportApp.WorkingResult].FileName;
  579. m_RstProp.m_ReportApp.m_DataMgrFun.m_ReportMgr.AddASmplMsrResultMgr(resultfile2);
  580. OTSCLRINTERFACE.CPropParamClr clr_prop2 = m_RstProp.m_ReportApp.m_DataMgrFun.m_ReportMgr.GetPropertyParamTable();
  581. clr_prop2.SetDataSourceId(0);//
  582. clr_prop2.SetType(1);//table
  583. clr_prop2.SetCalTableType(7);//国标2
  584. List<OTSCLRINTERFACE.CGridDataClr> listGriddataclr2 = m_RstProp.m_ReportApp.m_DataMgrFun.m_ReportMgr.GridDataTransfer(clr_prop2);//
  585. m_RstProp.m_ReportApp.m_CTablesWindow.Controls.Clear();
  586. m_RstProp.m_ReportApp.im_NationalStandardMethodTwo = new NationalStandardMethodTwo(m_RstProp.m_ReportApp.m_DataMgrFun.m_ReportMgr, listGriddataclr2);
  587. m_RstProp.m_ReportApp.im_NationalStandardMethodTwo.Dock = DockStyle.Fill;
  588. m_RstProp.m_ReportApp.m_CTablesWindow.Controls.Add(m_RstProp.m_ReportApp.im_NationalStandardMethodTwo);
  589. m_RstProp.m_ReportApp.m_CTablesWindow.Activate();
  590. //OpenOTSINcAreportTemplateAPP(m_RstProp.m_ReportApp.resultFilesList[m_RstProp.m_ReportApp.WorkingResult].FilePath + "\\"
  591. // + m_RstProp.m_ReportApp.resultFilesList[m_RstProp.m_ReportApp.WorkingResult].FileName, "GB2");
  592. break;
  593. case 8:
  594. //美标
  595. string resultfile3 = m_RstProp.m_ReportApp.resultFilesList[m_RstProp.m_ReportApp.WorkingResult].FilePath + "\\"
  596. + m_RstProp.m_ReportApp.resultFilesList[m_RstProp.m_ReportApp.WorkingResult].FileName;
  597. m_RstProp.m_ReportApp.m_DataMgrFun.m_ReportMgr.AddASmplMsrResultMgr(resultfile3);
  598. OTSCLRINTERFACE.CPropParamClr clr_prop3 = m_RstProp.m_ReportApp.m_DataMgrFun.m_ReportMgr.GetPropertyParamTable();
  599. clr_prop3.SetDataSourceId(0);//
  600. clr_prop3.SetType(1);//table
  601. clr_prop3.SetCalTableType(8);
  602. List<OTSCLRINTERFACE.CGridDataClr> listGriddataclr3 = m_RstProp.m_ReportApp.m_DataMgrFun.m_ReportMgr.GridDataTransfer(clr_prop3);
  603. m_RstProp.m_ReportApp.m_CTablesWindow.Controls.Clear();
  604. m_RstProp.m_ReportApp.im_ASTMStandardABCDDS = new ASTMStandardABCDDS(m_RstProp.m_ReportApp.m_DataMgrFun.m_ReportMgr, listGriddataclr3);
  605. m_RstProp.m_ReportApp.im_ASTMStandardABCDDS.Dock = DockStyle.Fill;
  606. m_RstProp.m_ReportApp.m_CTablesWindow.Controls.Add(m_RstProp.m_ReportApp.im_ASTMStandardABCDDS);
  607. m_RstProp.m_ReportApp.m_CTablesWindow.Activate();
  608. //OpenOTSINcAreportTemplateAPP(m_RstProp.m_ReportApp.resultFilesList[m_RstProp.m_ReportApp.WorkingResult].FilePath + "\\"
  609. // + m_RstProp.m_ReportApp.resultFilesList[m_RstProp.m_ReportApp.WorkingResult].FileName, "ASTM");
  610. break;
  611. case 9:
  612. //德标
  613. string resultfile4 = m_RstProp.m_ReportApp.resultFilesList[m_RstProp.m_ReportApp.WorkingResult].FilePath + "\\"
  614. + m_RstProp.m_ReportApp.resultFilesList[m_RstProp.m_ReportApp.WorkingResult].FileName;
  615. m_RstProp.m_ReportApp.m_DataMgrFun.m_ReportMgr.AddASmplMsrResultMgr(resultfile4);
  616. OTSCLRINTERFACE.CPropParamClr clr_prop4 = m_RstProp.m_ReportApp.m_DataMgrFun.m_ReportMgr.GetPropertyParamTable();
  617. clr_prop4.SetDataSourceId(0);//
  618. clr_prop4.SetType(1);//table
  619. clr_prop4.SetCalTableType(9);
  620. List<OTSCLRINTERFACE.CGridDataClr> listGriddataclr4 = m_RstProp.m_ReportApp.m_DataMgrFun.m_ReportMgr.GridDataTransfer(clr_prop4);
  621. m_RstProp.m_ReportApp.m_CTablesWindow.Controls.Clear();
  622. m_RstProp.m_ReportApp.im_DINStandardABCDDS = new DINStandardABCDDS(m_RstProp.m_ReportApp.m_DataMgrFun.m_ReportMgr, listGriddataclr4);
  623. m_RstProp.m_ReportApp.im_DINStandardABCDDS.Dock = DockStyle.Fill;
  624. m_RstProp.m_ReportApp.m_CTablesWindow.Controls.Add(m_RstProp.m_ReportApp.im_DINStandardABCDDS);
  625. m_RstProp.m_ReportApp.m_CTablesWindow.Activate();
  626. //OpenOTSINcAreportTemplateAPP(m_RstProp.m_ReportApp.resultFilesList[m_RstProp.m_ReportApp.WorkingResult].FilePath + "\\"
  627. // + m_RstProp.m_ReportApp.resultFilesList[m_RstProp.m_ReportApp.WorkingResult].FileName, "DIN");
  628. break;
  629. }
  630. #endregion 第二页选项窗体,分析数据表
  631. break;
  632. //分析数据图
  633. case (int)DisplayPicutureType.AnalyzeDataChart:
  634. m_RstProp.m_ReportApp.m_RibbonFun.SetRibbonButnStatu_ByModule(DisplayPicutureType.AnalyzeDataChart);
  635. #region 第三页选项窗体,分析数据图
  636. m_RstProp.m_ReportApp.m_CChartsWindow.Controls.Clear();
  637. string m_reportname = "";
  638. string m_str_AxisY = "";
  639. string str_operatonmodule = "";
  640. idx = m_RstProp. m_ReportApp.m_DataMgrFun.GetSampleIndexByPropItemName(m_RstProp.m_ReportApp.SourceGridData.SampleDataList, OTSIncAReportApp.OTSSampleReportInfo.OTS_REPORT_PROP_GRID_ITEMS.CALCULATE_CHART_TYPE);
  641. int ChartType = prop.SampleDataList[idx].comboDownList.IndexOf(prop.SampleDataList[idx].itemVal.ToString());
  642. switch (ChartType)
  643. {
  644. case 0:
  645. m_reportname = table["m_reportname1"].ToString();//常用夹杂物分类
  646. m_str_AxisY = table["m_str_axisy1"].ToString();
  647. str_operatonmodule = table["str_operatonmodule1"].ToString();
  648. m_RstProp.m_ReportApp.im_EChart_ParticlesComposition = new Control_ECharts.EChart_ParticlesComposition(m_RstProp.m_ReportApp, "CommonlyUsedClassify");
  649. m_RstProp.m_ReportApp.im_EChart_ParticlesComposition.Dock = DockStyle.Fill;
  650. m_RstProp.m_ReportApp.m_reportname = m_reportname;
  651. m_RstProp.m_ReportApp.im_EChart_ParticlesComposition.m_str_AxisY = m_str_AxisY;
  652. m_RstProp.m_ReportApp.type = "pie";
  653. m_RstProp.m_ReportApp.m_CChartsWindow.Controls.Add(m_RstProp.m_ReportApp.im_EChart_ParticlesComposition);
  654. m_RstProp.m_ReportApp.m_CChartsWindow.Activate();
  655. break;
  656. case 1:
  657. m_reportname = table["m_reportname2"].ToString();//颗粒成分
  658. m_str_AxisY = table["m_str_axisy2"].ToString();//颗粒数
  659. str_operatonmodule = table["str_operatonmodule2"].ToString();//颗粒成分图
  660. m_RstProp.m_ReportApp.im_EChart_ParticlesComposition = new Control_ECharts.EChart_ParticlesComposition(m_RstProp.m_ReportApp, "PComponent");
  661. m_RstProp.m_ReportApp.im_EChart_ParticlesComposition.Dock = DockStyle.Fill;
  662. m_RstProp.m_ReportApp.m_reportname = m_reportname;
  663. m_RstProp.m_ReportApp.im_EChart_ParticlesComposition.m_str_AxisY = m_str_AxisY;
  664. m_RstProp.m_ReportApp.type = "pie";
  665. m_RstProp.m_ReportApp.m_CChartsWindow.Controls.Add(m_RstProp.m_ReportApp.im_EChart_ParticlesComposition);
  666. m_RstProp.m_ReportApp.m_CChartsWindow.Activate();
  667. break;
  668. case 2:
  669. m_reportname = table["m_reportname3"].ToString();//元素成分
  670. m_str_AxisY = table["m_str_axisy3"].ToString();//元素含量
  671. str_operatonmodule = table["str_operatonmodule3"].ToString();//元素成分图
  672. m_RstProp.m_ReportApp.im_EChart_ParticlesComposition = new Control_ECharts.EChart_ParticlesComposition(m_RstProp.m_ReportApp, "EComponent");
  673. m_RstProp.m_ReportApp.im_EChart_ParticlesComposition.Dock = DockStyle.Fill;
  674. m_RstProp.m_ReportApp.m_reportname = m_reportname;
  675. m_RstProp.m_ReportApp.im_EChart_ParticlesComposition.m_str_AxisY = m_str_AxisY;
  676. m_RstProp.m_ReportApp.type = "bar";
  677. m_RstProp.m_ReportApp.m_CChartsWindow.Controls.Add(m_RstProp.m_ReportApp.im_EChart_ParticlesComposition);
  678. m_RstProp.m_ReportApp.m_CChartsWindow.Activate();
  679. break;
  680. case 3://颗粒尺寸分布图
  681. m_reportname = table["m_reportname4"].ToString();//颗粒尺寸分布
  682. m_str_AxisY = table["m_str_axisy4"].ToString();//颗粒数
  683. str_operatonmodule = table["str_operatonmodule4"].ToString();//颗粒尺寸分布图
  684. m_RstProp.m_ReportApp.im_EChart_ParticlesComposition = new Control_ECharts.EChart_ParticlesComposition(m_RstProp.m_ReportApp, "PSize");
  685. m_RstProp.m_ReportApp.im_EChart_ParticlesComposition.Dock = DockStyle.Fill;
  686. m_RstProp.m_ReportApp.m_reportname = m_reportname;
  687. m_RstProp.m_ReportApp.im_EChart_ParticlesComposition.m_str_AxisY = m_str_AxisY;
  688. m_RstProp.m_ReportApp.type = "bar";
  689. m_RstProp.m_ReportApp.m_CChartsWindow.Controls.Add(m_RstProp.m_ReportApp.im_EChart_ParticlesComposition);
  690. m_RstProp.m_ReportApp.m_CChartsWindow.Activate();
  691. break;
  692. case 4:
  693. idx = m_RstProp. m_ReportApp.m_DataMgrFun.GetSampleIndexByPropItemName(m_RstProp. m_ReportApp.SourceGridData.SampleDataList, OTSIncAReportApp.OTSSampleReportInfo.OTS_REPORT_PROP_GRID_ITEMS.TRIO_CHART_TYPE);
  694. string TrioChartType = prop.SampleDataList[idx].itemVal.ToString();
  695. List<string> nameList = prop.SampleDataList[idx].comboDownList;
  696. int index = nameList.IndexOf(TrioChartType);
  697. str_operatonmodule = table["str_operatonmodule5"].ToString();
  698. m_RstProp.m_ReportApp.im_EChart_Trianglediagram = new Control_ECharts.EChart_Trianglediagram(m_RstProp.m_ReportApp);
  699. m_RstProp.m_ReportApp.im_EChart_Trianglediagram.Template = "";
  700. m_RstProp.m_ReportApp.im_EChart_Trianglediagram.Dock = DockStyle.Fill;
  701. m_RstProp.m_ReportApp.m_CChartsWindow.Controls.Add(m_RstProp.m_ReportApp.im_EChart_Trianglediagram);
  702. m_RstProp.m_ReportApp.m_CChartsWindow.Activate();
  703. break;
  704. }
  705. #endregion 第三页窗体,分析数据图
  706. break;
  707. }
  708. #endregion
  709. }
  710. /// <summary>
  711. /// 打开国标进程EXE
  712. /// </summary>
  713. private void OpenOTSINcAreportTemplateAPP(string str_path, string str_gbname)
  714. {
  715. //----------------------------------
  716. //共传2个参数
  717. //参数1:测量结果的路径,国标底层需要
  718. //参数2:是打开的国标一,国标二,美标,德标,的类型
  719. ProcessStartInfo process = new ProcessStartInfo();
  720. process.FileName = "ReportGBExe\\OTSIncAReportGB.exe";//打开app的路径
  721. string arg1 = str_path.Replace(" ", "^");//参数1,测量结果的路径
  722. string arg2 = str_gbname.Trim().Replace(" ", "^");//参数2,是打开的类型
  723. process.Arguments = string.Format("{0} {1}", arg1, arg2); //多个参数用空格隔开
  724. process.WindowStyle = ProcessWindowStyle.Normal;
  725. Process.Start(process);
  726. }
  727. #endregion
  728. #region 与属性Grid相关的类
  729. /// <summary>
  730. /// 与属性Grid操作事件对应的事件类,在该类中实现属性Grid的操作方法实现
  731. /// </summary>
  732. class ChangeGridCellValEvent : SourceGrid.Cells.Controllers.ControllerBase
  733. {
  734. #region 变量定义
  735. /// <summary>
  736. /// 属性Grid类对象全局变量
  737. /// </summary>
  738. SampleGrid m_SampleGrid = null;
  739. private const int Constant = 1;
  740. #endregion
  741. #region 构造函数
  742. /// <summary>
  743. /// 构造函数
  744. /// </summary>
  745. /// <param name="SGrid"></param>
  746. public ChangeGridCellValEvent(SampleGrid SGrid)
  747. {
  748. m_SampleGrid = SGrid;
  749. }
  750. #endregion
  751. #region 下拉框事件
  752. /// <summary>
  753. /// 属性Grid的下拉框下拉完成后,触发的事件。SourceGrid的事件不是用delegate方法实现的,与dot net 的标准事件实现方式不同,需要在这里override才可以
  754. /// </summary>
  755. /// <param name="sender"></param>
  756. /// <param name="e"></param>
  757. public override void OnValueChanged(SourceGrid.CellContext sender, EventArgs e)
  758. {
  759. OTSSampleMeaInfo SourceGridData = m_SampleGrid.m_RstProp.m_ReportApp.SourceGridData;
  760. int selindex = 0;
  761. foreach (var item in SourceGridData.SampleDataList)
  762. {
  763. if (item.iItemId == (OTS_REPORT_PROP_GRID_ITEMS)m_SampleGrid.m_RstProp.PropGrid.Rows[m_SampleGrid.m_ClickRow].Tag)
  764. {
  765. OTS_ITEM_TYPES ValType = item.iItemValType;
  766. switch (ValType)
  767. {
  768. case OTS_ITEM_TYPES.COMBO:
  769. item.itemVal = (string)m_SampleGrid.m_RstProp.PropGrid[m_SampleGrid.m_ClickRow, 2].Value;
  770. selindex = item.comboDownList.IndexOf(item.itemVal.ToString());
  771. break;
  772. case OTS_ITEM_TYPES.DOUBLE:
  773. var dValue = m_SampleGrid.m_RstProp.PropGrid[m_SampleGrid.m_ClickRow, 2].Value;
  774. double v = Convert.ToDouble(dValue);
  775. item.itemVal = v;
  776. break;
  777. default:
  778. break;
  779. }
  780. break;
  781. }
  782. }
  783. int tabinex = (int)m_SampleGrid.m_RstProp.m_ReportApp.m_PropWindow.tabIndex;
  784. SourceGridData = m_SampleGrid.m_RstProp.m_ReportApp.m_DataMgrFun.ChangeSouceGrid(tabinex, (OTS_REPORT_PROP_GRID_ITEMS)m_SampleGrid.m_RstProp.PropGrid.Rows[m_SampleGrid.m_ClickRow].Tag, m_SampleGrid.m_RstProp.PropGrid[m_SampleGrid.m_ClickRow, 2].Value.ToString(), selindex);
  785. m_SampleGrid.m_RstProp.m_ReportApp.SourceGridData = SourceGridData;
  786. m_SampleGrid.m_RstProp.m_ReportApp.m_PropWindow.DisProperyWindow(SourceGridData);
  787. }
  788. #endregion
  789. }
  790. /// <summary>
  791. /// 组合框类,与属性Grid关联
  792. /// </summary>
  793. class ItemValueChange2 : SourceGrid.Cells.Controllers.ControllerBase
  794. {
  795. SampleGrid m_SampleGrid = null;
  796. public ItemValueChange2(SampleGrid SGrid)
  797. {
  798. m_SampleGrid = SGrid;
  799. }
  800. public override void OnValueChanged(CellContext sender, EventArgs e)
  801. {
  802. //判断如果对选择颗粒,全部颗粒进行了重新选择的话
  803. if (sender.Position.Row == 2)
  804. m_SampleGrid.m_RstProp.m_ReportApp.im_ParticlesGridDevidePage = null;//需要重新刷新颗粒列表
  805. //3,并根据CGridInClr条件从底层获取数据,并加载相应的模块
  806. m_SampleGrid.ShowDataDiagram(m_SampleGrid.tabIndex);
  807. //------------------------------------------------------------------------------------------------------------------
  808. m_SampleGrid.m_ClickRow = sender.Position.Row;
  809. if (m_SampleGrid.m_RstProp.PropGrid.Rows[m_SampleGrid.m_ClickRow].Tag != null)
  810. {
  811. m_SampleGrid.m_RstProp.m_ReportApp.m_RstWindow.SelectWorkSampleNode();
  812. }
  813. }
  814. }
  815. #endregion
  816. }
  817. }