frmReportApp.cs 52 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313
  1. using CefSharp;
  2. using CefSharp.WinForms;
  3. using OTS.WinFormsUI.Docking;
  4. using OTSIncAReportApp.DataOperation.Model;
  5. using OTSIncAReportApp.OTSDataMgrFunction;
  6. using OTSIncAReportApp.OTSRibbon;
  7. using OTSIncAReportApp.OTSSampleReportInfo;
  8. using OTSIncAReportApp.SysMgrTools;
  9. using OTSIncAReportGraph;
  10. using OTSIncAReprotCharts;
  11. using System;
  12. using System.Collections;
  13. using System.Collections.Generic;
  14. using System.Data;
  15. using System.Diagnostics;
  16. using System.Drawing;
  17. using System.IO;
  18. using System.Windows.Forms;
  19. namespace OTSIncAReportApp
  20. {
  21. /// <summary>
  22. /// 报告主窗体类
  23. /// </summary>
  24. public partial class frmReportApp : Form
  25. {
  26. #region 共享窗体对象--------------------------------------------------------------------------------------
  27. public frmMeasureRstMgr m_RstWindow = null; //测量结果,树控件窗体,属性Grid窗体
  28. public frmReportConditionChoose m_conditionChoose = null; //属性Grid窗体
  29. public frmSampleImage m_SImageWindow = null; //BSE窗体
  30. public frmCharts m_ChartsWindow = null; //图表窗体
  31. public frmTables m_TablesWindow = null; //报表窗体
  32. public frmReportSysConfig m_ReportSysConfigForm; //配置参数窗体
  33. #endregion //-----------------------------------------------------------------------------------------------
  34. #region 报告类结构相关------------------------------------------------------------------------------------
  35. NLog.Logger log;
  36. public OutputNlog m_OutputNlog; //日志类对象
  37. public ResultDataMgr m_rstDataMgr = null; //DataMgrFun 对象, 此类是和调用C++ DataMGR交互数据
  38. public OTSRibbonFun m_RibbonFun = null; //报告菜单相关操作类
  39. public string m_OTSReportMgrParamFile = ResultDataMgr.m_ReportMgrParamFile; //报告对应使用的参数文件名
  40. //测量结果ID
  41. //当前工作结果
  42. public static Dictionary<Guid, DisplayParticle> selectedParticles = new Dictionary<Guid, DisplayParticle>(); //所有选择颗粒
  43. public static RectangleF selectedRegion = new RectangleF();
  44. public string MoreSource = "";
  45. Hashtable table; //国际化表
  46. string[] m_str_resultfilepaths;
  47. #endregion //-----------------------------------------------------------------------------------------------
  48. #region EChart相关变量------------------------------------------------------------------------------------
  49. //定义浏览器
  50. public CefSharp.WinForms.ChromiumWebBrowser browser;
  51. public CefSharp.WinForms.ChromiumWebBrowser browsermore;//多测量结果对比时使用
  52. public bool more = false;
  53. public bool trans = false;
  54. //定义浏览器
  55. public CefSharp.WinForms.ChromiumWebBrowser browser_trio;
  56. public CefSharp.WinForms.ChromiumWebBrowser browser_triomore;//多测量结果对比时使用
  57. public class JsEvent
  58. {
  59. public string MessageText { set; get; }
  60. public void ShowTest()
  61. {
  62. MessageBox.Show(MessageText);
  63. }
  64. }
  65. public JsEvent js = new JsEvent();
  66. public string m_reportname;
  67. public string data;
  68. public string type;
  69. public bool timerKG;
  70. #endregion //------------------------------------------------------------------------------------------------
  71. #region 各功能模块窗体 -----------------------------------------------------------------------------------
  72. /// <summary>
  73. /// 颗粒分布图
  74. /// </summary>
  75. public OTSIncAReportGraph.Controls.Control_DrawDistrbutionImageAndBSE im_Control_DrawDistrbutionImageAndBSE = null;
  76. /// <summary>
  77. /// 颗粒排序图
  78. /// </summary>
  79. public OTSIncAReportGraph.Controls.Control_DrawDistrbutionSortImage im_Control_DrawDistrbutionSortImage = null;
  80. /// <summary>
  81. /// 颗粒列表_分页
  82. /// </summary>
  83. public OTSIncAReportGrids.ParticlesGridDevidePage im_ParticlesGridDevidePage = null;
  84. /// <summary>
  85. /// 颗粒成份分布表
  86. /// </summary>
  87. public OTSIncAReportGrids.CompositionDistributionGrid im_CompositionDistributionGrid = null;
  88. /// <summary>
  89. /// 平均元素含量表
  90. /// </summary>
  91. public OTSIncAReportGrids.ElementCompositionAvgGrid im_ElementCompositionAvgGrid = null;
  92. /// <summary>
  93. /// 元素含量表
  94. /// </summary>
  95. public OTSIncAReportGrids.ElementContentGrid im_ElementContentGrid = null;
  96. /// <summary>
  97. /// 颗粒尺寸表
  98. /// </summary>
  99. public OTSIncAReportGrids.ParticlesSizeGrid im_ParticlesSizeGrid = null;
  100. /// <summary>
  101. /// 测量结果概况
  102. /// </summary>
  103. public OTSIncAReportGrids.ResultGrid im_ResultGrid = null;
  104. /// <summary>
  105. /// 颗粒成份图EChart
  106. /// </summary>
  107. public Control_ECharts.EChart_ParticlesComposition im_EChart_ParticlesComposition = null;
  108. /// <summary>
  109. /// 三元相图EChart
  110. /// </summary>
  111. public Control_ECharts.EChart_Trianglediagram im_EChart_Trianglediagram = null;
  112. /// <summary>
  113. /// 国标信息表方法一
  114. /// </summary>
  115. public OTSIncAReportGB.ChineseStandardABCDDS im_ChineseStandardABCDDS = null;
  116. /// <summary>
  117. /// 国标信息表方法二
  118. /// </summary>
  119. public OTSIncAReportGB.NationalStandardMethodTwo im_NationalStandardMethodTwo = null;
  120. /// <summary>
  121. /// 美标
  122. /// </summary>
  123. public OTSIncAReportGB.ASTMStandardABCDDS im_ASTMStandardABCDDS = null;
  124. /// <summary>
  125. /// 德标
  126. /// </summary>
  127. public OTSIncAReportGB.DINStandardABCDDS im_DINStandardABCDDS = null;
  128. public List<Particle> GetSelectedParticles()
  129. {
  130. List<Particle> parts = new List<Particle>();
  131. foreach (var p in selectedParticles.Values)
  132. {
  133. parts.Add(p.objParticleData);
  134. }
  135. return parts;
  136. }
  137. public void SetSelectedParticles(List<Particle> value)
  138. {
  139. foreach (var p in im_Control_DrawDistrbutionImageAndBSE.m_list_allDPart)
  140. {
  141. var dp = (p as DisplayParticle);
  142. foreach (var p2 in value)
  143. {
  144. if (dp.objParticleData.FieldId == p2.FieldId)
  145. {
  146. if (dp.objParticleData.ParticleId == p2.ParticleId)
  147. {
  148. dp.IsSelect = true;
  149. }
  150. }
  151. }
  152. }
  153. }
  154. #endregion //--------------------------------------------------------------------------------------------
  155. #region 窗体初始化及构造函数
  156. /// <summary>
  157. /// 窗体构造函数
  158. /// </summary>
  159. public frmReportApp()
  160. {
  161. InitializeComponent();
  162. //初始化Ribbon类,操作Ribbon按钮的可用或者不可用
  163. m_RibbonFun = new OTSRibbonFun(this);
  164. //和DataMgr进行数据交互类
  165. m_rstDataMgr = new ResultDataMgr(this);
  166. //配置文件管理窗体
  167. m_ReportSysConfigForm = new frmReportSysConfig(this);
  168. //属性窗口
  169. m_conditionChoose = new frmReportConditionChoose(this);
  170. //树窗口
  171. m_RstWindow = new frmMeasureRstMgr(this);
  172. //分布图,排列图窗体
  173. m_SImageWindow = new frmSampleImage(this);
  174. //chart图表窗体
  175. m_ChartsWindow = new frmCharts(this);
  176. //grid表格窗体
  177. m_TablesWindow = new frmTables(this);
  178. SetTag();
  179. #region 国际化语言
  180. Language lan = new Language(this);
  181. table = lan.GetNameTable(this.Name);
  182. #endregion
  183. }
  184. /// <summary>
  185. /// 为生成后没有Name的控件添加标签,为了国际化语言设置时可以找到这个控件
  186. /// </summary>
  187. protected void SetTag()
  188. {
  189. ribbonPanel3.Tag = "ribbonPanel3";
  190. ribbonPanel2.Tag = "ribbonPanel2";
  191. rbSelTool.Tag = "rbSelTool";
  192. rbChoiceTools.Tag = "rbChoiceTools";
  193. ribbonTab1.Tag = "ribbonTab1";
  194. rbMenu.Tag = "rbMenu";
  195. dpbOpen.Tag = "dpbOpen";
  196. dpbExport.Tag = "dpbExport";
  197. dpbCopy.Tag = "dpbCopy";
  198. dpbCopyAll.Tag = "dpbCopyAll";
  199. ribbonOrbOptionButton1.Tag = "ribbonOrbOptionButton1";
  200. ribbonOrbMenuItem_Extremum.Tag = "ribbonOrbMenuItem_Extremum";
  201. }
  202. /// <summary>
  203. /// 窗体构造函数,可接收多个测量结果文件
  204. /// </summary>
  205. public frmReportApp(string[] str_resultfilepaths)
  206. {
  207. m_str_resultfilepaths = str_resultfilepaths;
  208. InitializeComponent();
  209. log = NLog.LogManager.GetCurrentClassLogger();
  210. //初始化Ribbon类,操作Ribbon按钮的可用或者不可用
  211. m_RibbonFun = new OTSRibbonFun(this);
  212. //和DataMgr进行数据交互类
  213. m_rstDataMgr = new ResultDataMgr(this);//必须放在new frmReportSysConfig(this)前
  214. //配置文件管理窗体
  215. m_ReportSysConfigForm = new frmReportSysConfig(this);
  216. //属性窗口
  217. m_conditionChoose = new frmReportConditionChoose(this);
  218. //树窗口
  219. m_RstWindow = new frmMeasureRstMgr(this);
  220. //属性窗口
  221. m_conditionChoose = new frmReportConditionChoose(this);
  222. //分布图,排列图窗体
  223. m_SImageWindow = new frmSampleImage(this);
  224. //chart图表窗体
  225. m_ChartsWindow = new frmCharts(this);
  226. //grid表格窗体
  227. m_TablesWindow = new frmTables(this);
  228. SetTag();
  229. #region 国际化语言
  230. Language lan = new Language(this);
  231. table = lan.GetNameTable(this.Name);
  232. #endregion
  233. }
  234. /// <summary>
  235. /// 报告主窗体加载事件
  236. /// </summary>
  237. /// <param name="sender"></param>
  238. /// <param name="e"></param>
  239. private void OTSReportApp_Load(object sender, EventArgs e)
  240. {
  241. //------------- initialize the HMI of the main form.
  242. if (Cef.IsInitialized == false)
  243. {
  244. var settings = new CefSettings();
  245. settings.Locale = "zh-CN";
  246. settings.CefCommandLineArgs.Add("disable-gpu", "1");
  247. Cef.Initialize(settings);
  248. }
  249. //加载配置文件
  250. m_rstDataMgr.m_RptConfigFile.LoadDataFromFile();
  251. //设置菜单按钮,都为true状态
  252. m_RibbonFun.SetAllRibbonButnStatu(false);
  253. //创建,树窗口,属性grid窗口,分布图,grid,chart窗体等。
  254. CreateNewWorkspaceWindow();
  255. //激活测量结果窗体
  256. this.m_RstWindow.Activate();
  257. //激活分布图窗体
  258. this.m_SImageWindow.Activate();
  259. //----------------end the initialization
  260. log = NLog.LogManager.GetCurrentClassLogger();
  261. if (m_str_resultfilepaths != null)
  262. {
  263. //构造函数直接接收传入的测量结果文件,并加载
  264. for (int i = 0; i < m_str_resultfilepaths.Length; i++)
  265. {
  266. this.m_RstWindow.AddSampleResult(m_str_resultfilepaths[i].Replace("^", " "));
  267. }
  268. }
  269. }
  270. #endregion
  271. #region Ribbon菜单按钮及菜单相关按按钮事件
  272. /// <summary>
  273. /// 新建按钮事件
  274. /// </summary>
  275. /// <param name="sender"></param>
  276. /// <param name="e"></param>
  277. private void ribTitleNewFile_Click(object sender, EventArgs e)
  278. {
  279. InitReportProState();
  280. }
  281. /// <summary>
  282. /// 初始伦报告加载
  283. /// </summary>
  284. public void InitReportProState()
  285. {
  286. //清除树窗体
  287. m_RstWindow.treeView1.Nodes.Clear();
  288. //清除属性Grid
  289. m_conditionChoose.m_ConditionGrid = new OTSSourceGrid(m_conditionChoose);
  290. m_rstDataMgr.ResultFilesList.Clear();
  291. //清除各模块报表文件
  292. m_ChartsWindow.Controls.Clear();
  293. m_TablesWindow.Controls.Clear();
  294. m_SImageWindow.Controls.Clear();
  295. //再重新初始化下拉菜单和ribbon菜单中的按钮状态
  296. m_RibbonFun.SetAllRibbonButnStatu(false);
  297. im_Control_DrawDistrbutionImageAndBSE = null;
  298. im_Control_DrawDistrbutionSortImage = null;
  299. im_ParticlesGridDevidePage = null;
  300. im_CompositionDistributionGrid = null;
  301. im_ElementCompositionAvgGrid = null;
  302. im_ElementContentGrid = null;
  303. im_ParticlesSizeGrid = null;
  304. im_ResultGrid = null;
  305. }
  306. /// <summary>
  307. /// 程序管理按钮点击事件
  308. /// </summary>
  309. /// <param name="sender"></param>
  310. /// <param name="e"></param>
  311. private void RibbonOrbOptionButton1_Click(object sender, EventArgs e)
  312. {
  313. //程序管理
  314. m_ReportSysConfigForm.ShowDialog();
  315. }
  316. /// <summary>
  317. /// 打开报告项目文件按钮事件
  318. /// </summary>
  319. /// <param name="sender"></param>
  320. /// <param name="e"></param>
  321. private void rbOpen_Click(object sender, EventArgs e)
  322. {
  323. string path = "";
  324. OpenFileDialog fileDialog = new OpenFileDialog();
  325. fileDialog.Filter = "text File|*.rst";
  326. fileDialog.RestoreDirectory = true;
  327. if (fileDialog.ShowDialog() == DialogResult.OK)
  328. path = System.IO.Path.GetFullPath(fileDialog.FileName);
  329. log.Info("begin to load the result!");
  330. this.m_RstWindow.AddSampleResult(path);
  331. }
  332. /// <summary>
  333. /// 模板导出按钮事件
  334. /// </summary>
  335. /// <param name="sender"></param>
  336. /// <param name="e"></param>
  337. private void rbOut_Click(object sender, EventArgs e)
  338. {
  339. OTSReport_Export oe = new OTSReport_Export(this);
  340. oe.ShowDialog();
  341. }
  342. /// <summary>
  343. /// 全图匹配按钮事件
  344. /// </summary>
  345. /// <param name="sender"></param>
  346. /// <param name="e"></param>
  347. private void rbAllImage_Click(object sender, EventArgs e)
  348. {
  349. int tabIndex = (int)(m_conditionChoose.tabIndex);
  350. switch (tabIndex)
  351. {
  352. case (int)DisplayPicutureType.AnalyzeImg:
  353. //int idx = m_DataMgrFun.GetPropIndexByPropItemName(SourceGridData.ConditionItemList, OTSSampleReportInfo.OTS_REPORT_PROP_GRID_ITEMS.IMAGE_DISPLAY_TYPE);
  354. //int imgDisType = SourceGridData.ConditionItemList[idx].comboDownList.IndexOf(SourceGridData.ConditionItemList[idx].itemVal.ToString());
  355. int imgDisType=m_conditionChoose.m_SourceGridData.GetComboDownListIndexByItemName(OTS_REPORT_PROP_GRID_ITEMS.IMAGE_DISPLAY_TYPE);
  356. if (imgDisType == 0)
  357. {
  358. if (im_Control_DrawDistrbutionImageAndBSE != null)
  359. {
  360. //分布图
  361. im_Control_DrawDistrbutionImageAndBSE.FullGraphMatch();
  362. im_Control_DrawDistrbutionImageAndBSE.Invalidate();
  363. }
  364. }
  365. else
  366. {
  367. if (im_Control_DrawDistrbutionSortImage != null)
  368. {
  369. //排列图
  370. }
  371. }
  372. break;
  373. case (int)DisplayPicutureType.AnalyzeDataTable:
  374. break;
  375. case (int)DisplayPicutureType.AnalyzeDataChart:
  376. break;
  377. default:
  378. break;
  379. }
  380. }
  381. /// <summary>
  382. /// 宽度匹配按钮事件
  383. /// </summary>
  384. /// <param name="sender"></param>
  385. /// <param name="e"></param>
  386. private void rbWidthImage_Click(object sender, EventArgs e)
  387. {
  388. int tabIndex = (int)(m_conditionChoose.tabIndex);
  389. switch (tabIndex)
  390. {
  391. case (int)DisplayPicutureType.AnalyzeImg:
  392. //int idx = m_DataMgrFun.GetPropIndexByPropItemName(SourceGridData.ConditionItemList, OTSSampleReportInfo.OTS_REPORT_PROP_GRID_ITEMS.IMAGE_DISPLAY_TYPE);
  393. //int imgDisType = SourceGridData.ConditionItemList[idx].comboDownList.IndexOf(SourceGridData.ConditionItemList[idx].itemVal.ToString());
  394. int imgDisType = m_conditionChoose.m_SourceGridData.GetComboDownListIndexByItemName(OTS_REPORT_PROP_GRID_ITEMS.IMAGE_DISPLAY_TYPE);
  395. if (imgDisType == 0)
  396. {
  397. if (im_Control_DrawDistrbutionImageAndBSE != null)
  398. {
  399. //分布图
  400. im_Control_DrawDistrbutionImageAndBSE.WidthMatch();
  401. im_Control_DrawDistrbutionImageAndBSE.Invalidate();
  402. }
  403. }
  404. else
  405. {
  406. if (im_Control_DrawDistrbutionSortImage != null)
  407. {
  408. //排列图
  409. }
  410. }
  411. break;
  412. case (int)DisplayPicutureType.AnalyzeDataTable:
  413. break;
  414. case (int)DisplayPicutureType.AnalyzeDataChart:
  415. break;
  416. default:
  417. break;
  418. }
  419. }
  420. /// <summary>
  421. /// 帧图边框按钮事件
  422. /// </summary>
  423. /// <param name="sender"></param>
  424. /// <param name="e"></param>
  425. private void rbFrame_Click(object sender, EventArgs e)
  426. {
  427. int tabIndex = (int)(m_conditionChoose.tabIndex);
  428. switch (tabIndex)
  429. {
  430. case (int)DisplayPicutureType.AnalyzeImg:
  431. //int idx = m_DataMgrFun.GetPropIndexByPropItemName(SourceGridData.ConditionItemList, OTSSampleReportInfo.OTS_REPORT_PROP_GRID_ITEMS.IMAGE_DISPLAY_TYPE);
  432. //int imgDisType = SourceGridData.ConditionItemList[idx].comboDownList.IndexOf(SourceGridData.ConditionItemList[idx].itemVal.ToString());
  433. int imgDisType = m_conditionChoose.m_SourceGridData.GetComboDownListIndexByItemName(OTS_REPORT_PROP_GRID_ITEMS.IMAGE_DISPLAY_TYPE);
  434. if (imgDisType == 0)
  435. {
  436. if (im_Control_DrawDistrbutionImageAndBSE != null)
  437. {
  438. //分布图
  439. im_Control_DrawDistrbutionImageAndBSE.ShowGridLine();
  440. im_Control_DrawDistrbutionImageAndBSE.Invalidate();
  441. }
  442. }
  443. else
  444. {
  445. if (im_Control_DrawDistrbutionSortImage != null)
  446. {
  447. }
  448. }
  449. break;
  450. case (int)DisplayPicutureType.AnalyzeDataTable:
  451. break;
  452. case (int)DisplayPicutureType.AnalyzeDataChart:
  453. break;
  454. default:
  455. break;
  456. }
  457. }
  458. /// <summary>
  459. /// 标尺按钮事件
  460. /// </summary>
  461. /// <param name="sender"></param>
  462. /// <param name="e"></param>
  463. private void rbStaff_Click(object sender, EventArgs e)
  464. {
  465. int tabIndex = (int)(m_conditionChoose.tabIndex);
  466. switch (tabIndex)
  467. {
  468. case (int)DisplayPicutureType.AnalyzeImg:
  469. //int idx = m_DataMgrFun.GetPropIndexByPropItemName(SourceGridData.ConditionItemList, OTSSampleReportInfo.OTS_REPORT_PROP_GRID_ITEMS.IMAGE_DISPLAY_TYPE);
  470. //int imgDisType = SourceGridData.ConditionItemList[idx].comboDownList.IndexOf(SourceGridData.ConditionItemList[idx].itemVal.ToString());
  471. int imgDisType = m_conditionChoose.m_SourceGridData.GetComboDownListIndexByItemName(OTS_REPORT_PROP_GRID_ITEMS.IMAGE_DISPLAY_TYPE);
  472. if (imgDisType == 0)
  473. {
  474. if (im_Control_DrawDistrbutionImageAndBSE != null)
  475. {
  476. //分布图
  477. im_Control_DrawDistrbutionImageAndBSE.ShowRulerControl();
  478. im_Control_DrawDistrbutionImageAndBSE.Invalidate();
  479. }
  480. }
  481. else
  482. {
  483. if (im_Control_DrawDistrbutionSortImage != null)
  484. {
  485. im_Control_DrawDistrbutionSortImage.ShowRulerControl();
  486. im_Control_DrawDistrbutionSortImage.Invalidate();
  487. }
  488. }
  489. break;
  490. case (int)DisplayPicutureType.AnalyzeDataTable:
  491. break;
  492. case (int)DisplayPicutureType.AnalyzeDataChart:
  493. break;
  494. default:
  495. break;
  496. }
  497. }
  498. /// <summary>
  499. /// 恢复按钮事件
  500. /// </summary>
  501. /// <param name="sender"></param>
  502. /// <param name="e"></param>
  503. private void rbRenew_Click(object sender, EventArgs e)
  504. {
  505. int tabIndex = (int)m_conditionChoose.tabIndex;
  506. //int idx = m_DataMgrFun.GetPropIndexByPropItemName(SourceGridData.ConditionItemList, OTSSampleReportInfo.OTS_REPORT_PROP_GRID_ITEMS.IMAGE_DISPLAY_TYPE);
  507. //int DisType = SourceGridData.ConditionItemList[idx].comboDownList.IndexOf(SourceGridData.ConditionItemList[idx].itemVal.ToString());
  508. int DisType = m_conditionChoose.m_SourceGridData.GetComboDownListIndexByItemName(OTS_REPORT_PROP_GRID_ITEMS.IMAGE_DISPLAY_TYPE);
  509. switch (tabIndex)
  510. {
  511. case (int)DisplayPicutureType.AnalyzeImg:
  512. if (DisType == (int)IMAGE_DISPLAY_TYPE.DISTRIBUTION)
  513. {
  514. if (im_Control_DrawDistrbutionImageAndBSE != null)
  515. {
  516. //分布图
  517. im_Control_DrawDistrbutionImageAndBSE.ShowRulerControl(false);
  518. im_Control_DrawDistrbutionImageAndBSE.ShowGridLine(false);
  519. im_Control_DrawDistrbutionImageAndBSE.Invalidate();
  520. m_SImageWindow.Controls.Clear();
  521. im_Control_DrawDistrbutionImageAndBSE = new OTSIncAReportGraph.Controls.Control_DrawDistrbutionImageAndBSE(this);
  522. im_Control_DrawDistrbutionImageAndBSE.Dock = DockStyle.Fill;
  523. m_SImageWindow.Controls.Add(im_Control_DrawDistrbutionImageAndBSE);
  524. m_SImageWindow.Activate();
  525. im_Control_DrawDistrbutionImageAndBSE.ShowSourceName = "";
  526. im_Control_DrawDistrbutionImageAndBSE.DrawDistrbutionImageAndBSE_ByQuery(m_conditionChoose.m_SourceGridData);
  527. im_Control_DrawDistrbutionImageAndBSE.SetSelectParticle(GetSelectedParticles());
  528. //并删除排列图
  529. im_Control_DrawDistrbutionSortImage = null;
  530. }
  531. }
  532. if (DisType == (int)IMAGE_DISPLAY_TYPE.IMAGE_GRID)
  533. {
  534. if (im_Control_DrawDistrbutionSortImage != null)
  535. {
  536. //排序图
  537. im_Control_DrawDistrbutionSortImage.ShowRulerControl(false);
  538. im_Control_DrawDistrbutionSortImage.Invalidate();
  539. m_SImageWindow.Controls.Clear();
  540. im_Control_DrawDistrbutionSortImage = new OTSIncAReportGraph.Controls.Control_DrawDistrbutionSortImage(this);
  541. im_Control_DrawDistrbutionSortImage.Dock = DockStyle.Fill;
  542. m_SImageWindow.Controls.Add(im_Control_DrawDistrbutionSortImage);
  543. m_SImageWindow.Activate();
  544. im_Control_DrawDistrbutionSortImage.ShowSourceName = "";
  545. im_Control_DrawDistrbutionSortImage.GetDistrbutionSortimage_ByQuery(m_conditionChoose.m_CurrentConditions);
  546. im_Control_DrawDistrbutionSortImage.SetSelectParticle(GetSelectedParticles());
  547. }
  548. }
  549. break;
  550. case (int)DisplayPicutureType.AnalyzeDataTable:
  551. break;
  552. case (int)DisplayPicutureType.AnalyzeDataChart:
  553. break;
  554. default:
  555. break;
  556. }
  557. }
  558. /// <summary>
  559. /// 反选操作按钮事件
  560. /// </summary>
  561. /// <param name="sender"></param>
  562. /// <param name="e"></param>
  563. private void rbReverseSelection_Click(object sender, EventArgs e)
  564. {
  565. int tabIndex = (int)(m_conditionChoose.tabIndex);
  566. switch (tabIndex)
  567. {
  568. case (int)DisplayPicutureType.AnalyzeImg:
  569. //int idx = m_DataMgrFun.GetPropIndexByPropItemName(SourceGridData.ConditionItemList, OTSIncAReportApp.OTSSampleReportInfo.OTS_REPORT_PROP_GRID_ITEMS.IMAGE_DISPLAY_TYPE);
  570. //int imgDisType = SourceGridData.ConditionItemList[idx].comboDownList.IndexOf(SourceGridData.ConditionItemList[idx].itemVal.ToString());
  571. int imgDisType = m_conditionChoose.m_SourceGridData.GetComboDownListIndexByItemName(OTS_REPORT_PROP_GRID_ITEMS.IMAGE_DISPLAY_TYPE);
  572. if (imgDisType == 0)
  573. {
  574. if (im_Control_DrawDistrbutionImageAndBSE != null)
  575. {
  576. //分布图
  577. im_Control_DrawDistrbutionImageAndBSE.ReverseSelection();
  578. }
  579. }
  580. else
  581. {
  582. if (im_Control_DrawDistrbutionSortImage != null)
  583. {
  584. im_Control_DrawDistrbutionSortImage.ReverSeSelection();
  585. }
  586. }
  587. break;
  588. case (int)DisplayPicutureType.AnalyzeDataTable:
  589. break;
  590. case (int)DisplayPicutureType.AnalyzeDataChart:
  591. break;
  592. default:
  593. break;
  594. }
  595. }
  596. /// <summary>
  597. /// 圆形工具按钮事件
  598. /// </summary>
  599. /// <param name="sender"></param>
  600. /// <param name="e"></param>
  601. private void rbCircular_Click(object sender, EventArgs e)
  602. {
  603. int tabIndex = (int)(m_conditionChoose.tabIndex);
  604. switch (tabIndex)
  605. {
  606. case (int)DisplayPicutureType.AnalyzeImg:
  607. //int idx = m_DataMgrFun.GetPropIndexByPropItemName(SourceGridData.ConditionItemList, OTSIncAReportApp.OTSSampleReportInfo.OTS_REPORT_PROP_GRID_ITEMS.IMAGE_DISPLAY_TYPE);
  608. //int imgDisType = SourceGridData.ConditionItemList[idx].comboDownList.IndexOf(SourceGridData.ConditionItemList[idx].itemVal.ToString());
  609. IMAGE_DISPLAY_TYPE imgDisType = (IMAGE_DISPLAY_TYPE)m_conditionChoose.m_SourceGridData.GetComboDownListIndexByItemName(OTS_REPORT_PROP_GRID_ITEMS.IMAGE_DISPLAY_TYPE);
  610. if (imgDisType == IMAGE_DISPLAY_TYPE.DISTRIBUTION)
  611. {
  612. if (im_Control_DrawDistrbutionImageAndBSE != null)
  613. {
  614. //分布图
  615. im_Control_DrawDistrbutionImageAndBSE.MultiSelect_Ellipse();
  616. }
  617. }
  618. else
  619. {
  620. if (im_Control_DrawDistrbutionSortImage != null)
  621. {
  622. im_Control_DrawDistrbutionSortImage.MultiSelect_Ellipse();
  623. }
  624. }
  625. break;
  626. case (int)DisplayPicutureType.AnalyzeDataTable:
  627. break;
  628. case (int)DisplayPicutureType.AnalyzeDataChart:
  629. break;
  630. default:
  631. break;
  632. }
  633. }
  634. /// <summary>
  635. /// 矩形工具按钮事件
  636. /// </summary>
  637. /// <param name="sender"></param>
  638. /// <param name="e"></param>
  639. private void rbRectangle_Click(object sender, EventArgs e)
  640. {
  641. int tabIndex = (int)(m_conditionChoose.tabIndex);
  642. switch (tabIndex)
  643. {
  644. case (int)DisplayPicutureType.AnalyzeImg:
  645. //int idx = m_DataMgrFun.GetPropIndexByPropItemName(SourceGridData.ConditionItemList, OTSIncAReportApp.OTSSampleReportInfo.OTS_REPORT_PROP_GRID_ITEMS.IMAGE_DISPLAY_TYPE);
  646. //int imgDisType = SourceGridData.ConditionItemList[idx].comboDownList.IndexOf(SourceGridData.ConditionItemList[idx].itemVal.ToString());
  647. int imgDisType = m_conditionChoose.m_SourceGridData.GetComboDownListIndexByItemName(OTS_REPORT_PROP_GRID_ITEMS.IMAGE_DISPLAY_TYPE);
  648. if (imgDisType == 0)
  649. {
  650. if (im_Control_DrawDistrbutionImageAndBSE != null)
  651. {
  652. //分布图
  653. im_Control_DrawDistrbutionImageAndBSE.MultiSelect_Rectangle();
  654. }
  655. }
  656. else
  657. {
  658. if (im_Control_DrawDistrbutionSortImage != null)
  659. {
  660. im_Control_DrawDistrbutionSortImage.MultiSelect_Rectangle();
  661. }
  662. }
  663. break;
  664. case (int)DisplayPicutureType.AnalyzeDataTable:
  665. break;
  666. case (int)DisplayPicutureType.AnalyzeDataChart:
  667. break;
  668. default:
  669. break;
  670. }
  671. }
  672. /// <summary>
  673. /// 取消多边形选择工具按钮事件
  674. /// </summary>
  675. /// <param name="sender"></param>
  676. /// <param name="e"></param>
  677. private void rbCancel_Click(object sender, EventArgs e)
  678. {
  679. int tabIndex = (int)(m_conditionChoose.tabIndex);
  680. switch (tabIndex)
  681. {
  682. case (int)DisplayPicutureType.AnalyzeImg:
  683. //int idx = m_DataMgrFun.GetPropIndexByPropItemName(SourceGridData.ConditionItemList, OTSIncAReportApp.OTSSampleReportInfo.OTS_REPORT_PROP_GRID_ITEMS.IMAGE_DISPLAY_TYPE);
  684. //int imgDisType = SourceGridData.ConditionItemList[idx].comboDownList.IndexOf(SourceGridData.ConditionItemList[idx].itemVal.ToString());
  685. int imgDisType = m_conditionChoose.m_SourceGridData.GetComboDownListIndexByItemName(OTS_REPORT_PROP_GRID_ITEMS.IMAGE_DISPLAY_TYPE);
  686. if (imgDisType == 0)// oper_module == "颗粒分布图"
  687. {
  688. if (im_Control_DrawDistrbutionImageAndBSE != null)
  689. {
  690. //分布图
  691. im_Control_DrawDistrbutionImageAndBSE.DeselectAllParticle();
  692. selectedParticles.Clear();
  693. }
  694. }
  695. else
  696. {
  697. if (im_Control_DrawDistrbutionSortImage != null)
  698. {
  699. im_Control_DrawDistrbutionSortImage.DeselectAllParticle();
  700. selectedParticles.Clear();
  701. }
  702. }
  703. break;
  704. case (int)DisplayPicutureType.AnalyzeDataTable:
  705. break;
  706. case (int)DisplayPicutureType.AnalyzeDataChart:
  707. break;
  708. default:
  709. break;
  710. }
  711. }
  712. #endregion
  713. #region 自定义封装相关方法
  714. /// <summary>
  715. /// 新建一个工作区域
  716. /// </summary>
  717. public void CreateNewWorkspaceWindow()
  718. {
  719. //Show BSE图窗口
  720. CreateSampleWindow();
  721. //创建测量数据窗口
  722. CreateCTablesWindow();
  723. //创建图表窗口
  724. CreateChartsWindow();
  725. m_OutputNlog = new OutputNlog();
  726. m_OutputNlog.Show(DockWindowPanel, OTS.WinFormsUI.Docking.DockState.DockRight);
  727. m_OutputNlog.Visible = true;
  728. m_RstWindow.Show(DockWindowPanel, OTS.WinFormsUI.Docking.DockState.DockLeft);
  729. m_conditionChoose.Show(DockWindowPanel);
  730. DockWindowPanel.DockLeftPortion = 300;
  731. DockWindowPanel.DockRightPortion = 351;
  732. }
  733. /// <summary>
  734. /// 创建新的窗体
  735. /// </summary>
  736. /// <param name="WorkWindow"></param>
  737. /// <param name="iType"></param>
  738. /// <returns></returns>
  739. private OTS.WinFormsUI.Docking.DockContent CreateNewDocument(OTS.WinFormsUI.Docking.DockContent WorkWindow, DisplayPicutureType iType)
  740. {
  741. string text = "";
  742. if (iType == DisplayPicutureType.AnalyzeImg)
  743. {
  744. text = table["analysisdiagram"].ToString(); ;
  745. }
  746. else if (iType == DisplayPicutureType.AnalyzeDataTable)
  747. {
  748. text = table["analysisdatasheet"].ToString();
  749. }
  750. else if (iType == DisplayPicutureType.AnalyzeDataChart)
  751. {
  752. text = table["analysisdatachart"].ToString();
  753. }
  754. WorkWindow.Text = text;
  755. return WorkWindow;
  756. }
  757. /// <summary>
  758. /// 创建样品BSE图窗口
  759. /// </summary>
  760. public void CreateSampleWindow()
  761. {
  762. if (null == m_SImageWindow)
  763. {
  764. m_SImageWindow = new frmSampleImage(this);
  765. }
  766. m_SImageWindow = (frmSampleImage)CreateNewDocument(m_SImageWindow, DisplayPicutureType.AnalyzeImg);
  767. if (DockWindowPanel.DocumentStyle == DocumentStyle.SystemMdi)
  768. {
  769. m_SImageWindow.MdiParent = this;
  770. m_SImageWindow.Show();
  771. }
  772. else
  773. {
  774. m_SImageWindow.Show(DockWindowPanel);
  775. }
  776. }
  777. /// <summary>
  778. /// 创建Grid表格窗体
  779. /// </summary>
  780. private void CreateCTablesWindow()
  781. {
  782. if (null == m_TablesWindow)
  783. {
  784. m_TablesWindow = new frmTables(this);
  785. }
  786. m_TablesWindow = (frmTables)CreateNewDocument(m_TablesWindow, DisplayPicutureType.AnalyzeDataTable);
  787. if (DockWindowPanel.DocumentStyle == DocumentStyle.SystemMdi)
  788. {
  789. m_TablesWindow.MdiParent = this;
  790. m_TablesWindow.Show();
  791. }
  792. else
  793. {
  794. m_TablesWindow.Show(DockWindowPanel);
  795. }
  796. }
  797. /// <summary>
  798. /// 创建chart图表窗体
  799. /// </summary>
  800. private void CreateChartsWindow()
  801. {
  802. if (null == m_ChartsWindow)
  803. {
  804. m_ChartsWindow = new frmCharts(this);
  805. }
  806. m_ChartsWindow = (frmCharts)CreateNewDocument(m_ChartsWindow, DisplayPicutureType.AnalyzeDataChart);
  807. if (DockWindowPanel.DocumentStyle == DocumentStyle.SystemMdi)
  808. {
  809. m_ChartsWindow.MdiParent = this;
  810. m_ChartsWindow.Show();
  811. }
  812. else
  813. {
  814. m_ChartsWindow.Show(DockWindowPanel);
  815. }
  816. }
  817. /// <summary>
  818. /// 新建样品时提示保存样品信息Messagebox
  819. /// </summary>
  820. /// <returns></returns>
  821. public int ShowSaveInfoMsgBox()
  822. {
  823. //是否保存修改信息,保存样品信息提示
  824. int iRev = (int)MessageBox.Show("Save modification information", "Tips", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Warning);
  825. if (iRev == (int)DialogResult.Yes)
  826. {
  827. return (int)MessageBoxRev.DIALOG_YES;
  828. }
  829. else if (iRev == (int)DialogResult.No)
  830. {
  831. return (int)MessageBoxRev.DIALOG_NO;
  832. }
  833. else
  834. {
  835. return (int)MessageBoxRev.DIALOG_CANCEL;
  836. }
  837. }
  838. #endregion
  839. #region 系统菜单相关功能
  840. private void ribbonOrbMenuItem4_Click(object sender, EventArgs e)
  841. {
  842. MemoryManagementClass.FlushMemory();
  843. //系统菜单,输出
  844. OTSReport_Export oe = new OTSReport_Export(this);
  845. oe.ShowDialog();
  846. oe.Dispose();
  847. oe = null;
  848. MemoryManagementClass.FlushMemory();
  849. }
  850. /// <summary>
  851. /// 复制
  852. /// </summary>
  853. /// <param name="sender"></param>
  854. /// <param name="e"></param>
  855. private void ribbonOrbMenuItem6_Click(object sender, EventArgs e)
  856. {
  857. int tabIndex = (int)m_conditionChoose.tabIndex;
  858. //int imgDisType = SourceGridData.SampleDataList[2].comboDownList.IndexOf(SourceGridData.SampleDataList[2].itemVal.ToString());
  859. //int calTableType = SourceGridData.SampleDataList[2].comboDownList.IndexOf(SourceGridData.SampleDataList[2].itemVal.ToString());
  860. //int calChartType = SourceGridData.SampleDataList[2].comboDownList.IndexOf(SourceGridData.SampleDataList[2].itemVal.ToString());
  861. //int idx = m_DataMgrFun.GetPropIndexByPropItemName(SourceGridData.ConditionItemList, OTSIncAReportApp.OTSSampleReportInfo.OTS_REPORT_PROP_GRID_ITEMS.CALCULATE_TABLE_TYPE);
  862. //int DisType = SourceGridData.ConditionItemList[idx].comboDownList.IndexOf(SourceGridData.ConditionItemList[idx].itemVal.ToString());
  863. int DisType = m_conditionChoose.m_SourceGridData.GetComboDownListIndexByItemName(OTS_REPORT_PROP_GRID_ITEMS.IMAGE_DISPLAY_TYPE);
  864. switch (tabIndex)
  865. {
  866. case (int)DisplayPicutureType.AnalyzeImg: //如果是分布图,排列图
  867. if (DisType == (int)IMAGE_DISPLAY_TYPE.DISTRIBUTION) //oper_module == "颗粒分布图"
  868. {
  869. if (im_Control_DrawDistrbutionImageAndBSE != null)
  870. {
  871. //分布图
  872. im_Control_DrawDistrbutionImageAndBSE.CopyToBitmap();
  873. }
  874. }
  875. if (DisType == (int)IMAGE_DISPLAY_TYPE.IMAGE_GRID)
  876. {
  877. if (im_Control_DrawDistrbutionSortImage != null)
  878. {
  879. //排列图
  880. im_Control_DrawDistrbutionSortImage.CopyToBitmap();
  881. }
  882. }
  883. break;
  884. case (int)DisplayPicutureType.AnalyzeDataTable: //如果是Grid表格
  885. if (DisType == (int)CALCULATE_TABLE_TYPE.MEASURE_INFO)
  886. {
  887. if (im_ResultGrid != null)
  888. {
  889. //测量结果信息
  890. im_ResultGrid.CopySelected();
  891. }
  892. }
  893. if (DisType == (int)CALCULATE_TABLE_TYPE.PARTICALE_GENE_INFO)
  894. {
  895. if (im_ParticlesGridDevidePage != null)
  896. {
  897. //颗粒列表
  898. im_ParticlesGridDevidePage.CopySelected();
  899. }
  900. }
  901. if (DisType == (int)CALCULATE_TABLE_TYPE.PARTICALE_COMP)
  902. {
  903. if (im_CompositionDistributionGrid != null)
  904. {
  905. //成份分布表
  906. im_CompositionDistributionGrid.CopySelected();
  907. }
  908. }
  909. if (DisType == (int)CALCULATE_TABLE_TYPE.AVE_ELEMENT_COMP)
  910. {
  911. if (im_ElementCompositionAvgGrid != null)
  912. {
  913. //平均元素含量表
  914. im_ElementCompositionAvgGrid.CopySelected();
  915. }
  916. }
  917. if (DisType == (int)CALCULATE_TABLE_TYPE.ELEMENT_COMP)
  918. {
  919. if (im_ElementContentGrid != null)
  920. {
  921. //元素含量表
  922. im_ElementContentGrid.CopySelected();
  923. }
  924. }
  925. if (DisType == (int)CALCULATE_TABLE_TYPE.PARTICALE_SIZE_DISTRIBUTION)
  926. {
  927. if (im_ParticlesSizeGrid != null)
  928. {
  929. //颗粒尺寸表
  930. im_ParticlesSizeGrid.CopySelected();
  931. }
  932. }
  933. break;
  934. case (int)DisplayPicutureType.AnalyzeDataChart: //如果是Chart图表
  935. if (DisType == (int)CALCULATE_CHART_TYPE.PARTICALE_COMP)
  936. {
  937. //if (im_ParticalesCompositionChart != null)
  938. //{
  939. // //颗粒成份图
  940. // im_ParticalesCompositionChart.CopyToBitmap();
  941. //}
  942. }
  943. if (DisType == (int)CALCULATE_CHART_TYPE.ELEMENT_COMP)
  944. {
  945. //if (im_ElementCompositionChart != null)
  946. //{
  947. // //元素成份图
  948. // im_ElementCompositionChart.CopyToBitmap();
  949. //}
  950. }
  951. if (DisType == (int)CALCULATE_CHART_TYPE.PARTICALE_SIZE_DISTRIBUTION)
  952. {
  953. //if (im_ParticalesSizeDistributionChart != null)
  954. //{
  955. // //颗粒尺寸分布图
  956. // im_ParticalesSizeDistributionChart.CopyToBitmap();
  957. //}
  958. }
  959. if (DisType == (int)CALCULATE_CHART_TYPE.TRIO_CHART)
  960. {
  961. //if (im_Trianglediagram != null)
  962. //{
  963. // //三角图
  964. // im_Trianglediagram.CopyToBitmap();
  965. //}
  966. }
  967. break;
  968. default:
  969. break;
  970. }
  971. }
  972. /// <summary>
  973. /// 复制全部
  974. /// </summary>
  975. /// <param name="sender"></param>
  976. /// <param name="e"></param>
  977. private void ribbonOrbMenuItem8_Click(object sender, EventArgs e)
  978. {
  979. int tabIndex = (int)m_conditionChoose.tabIndex;
  980. //int idx = m_DataMgrFun.GetPropIndexByPropItemName(SourceGridData.ConditionItemList, OTSIncAReportApp.OTSSampleReportInfo.OTS_REPORT_PROP_GRID_ITEMS.CALCULATE_TABLE_TYPE);
  981. //int DisType = SourceGridData.ConditionItemList[idx].comboDownList.IndexOf(SourceGridData.ConditionItemList[idx].itemVal.ToString());
  982. int DisType = m_conditionChoose.m_SourceGridData.GetComboDownListIndexByItemName(OTS_REPORT_PROP_GRID_ITEMS.IMAGE_DISPLAY_TYPE);
  983. switch (tabIndex)
  984. {
  985. case (int)DisplayPicutureType.AnalyzeImg:
  986. if (DisType == (int)IMAGE_DISPLAY_TYPE.DISTRIBUTION)
  987. {
  988. if (im_Control_DrawDistrbutionImageAndBSE != null)
  989. {
  990. //分布图
  991. im_Control_DrawDistrbutionImageAndBSE.CopyToBitmap();
  992. }
  993. }
  994. if (DisType == (int)IMAGE_DISPLAY_TYPE.IMAGE_GRID)
  995. {
  996. if (im_Control_DrawDistrbutionSortImage != null)
  997. {
  998. //排列图
  999. im_Control_DrawDistrbutionSortImage.CopyToBitmap();
  1000. }
  1001. }
  1002. break;
  1003. case (int)DisplayPicutureType.AnalyzeDataTable:
  1004. if (DisType == (int)CALCULATE_TABLE_TYPE.MEASURE_INFO)
  1005. {
  1006. if (im_ResultGrid != null)
  1007. {
  1008. //测量结果信息
  1009. im_ResultGrid.CopyAll();
  1010. }
  1011. }
  1012. if (DisType == (int)CALCULATE_TABLE_TYPE.PARTICALE_GENE_INFO)
  1013. {
  1014. if (im_ParticlesGridDevidePage != null)
  1015. {
  1016. //颗粒列表
  1017. im_ParticlesGridDevidePage.CopyAll();
  1018. }
  1019. }
  1020. if (DisType == (int)CALCULATE_TABLE_TYPE.PARTICALE_COMP)
  1021. {
  1022. if (im_CompositionDistributionGrid != null)
  1023. {
  1024. //成份分布表
  1025. im_CompositionDistributionGrid.CopyAll();
  1026. }
  1027. }
  1028. if (DisType == (int)CALCULATE_TABLE_TYPE.AVE_ELEMENT_COMP)
  1029. {
  1030. if (im_ElementCompositionAvgGrid != null)
  1031. {
  1032. //平均元素含量表
  1033. im_ElementCompositionAvgGrid.CopyAll();
  1034. }
  1035. }
  1036. if (DisType == (int)CALCULATE_TABLE_TYPE.ELEMENT_COMP)
  1037. {
  1038. if (im_ElementContentGrid != null)
  1039. {
  1040. //元素含量表
  1041. im_ElementContentGrid.CopyAll();
  1042. }
  1043. }
  1044. if (DisType == (int)CALCULATE_TABLE_TYPE.PARTICALE_SIZE_DISTRIBUTION)
  1045. {
  1046. if (im_ParticlesSizeGrid != null)
  1047. {
  1048. //颗粒尺寸表
  1049. im_ParticlesSizeGrid.CopyAll();
  1050. }
  1051. }
  1052. break;
  1053. case (int)DisplayPicutureType.AnalyzeDataChart:
  1054. if (DisType == (int)CALCULATE_CHART_TYPE.PARTICALE_COMP)
  1055. {
  1056. //if (im_ParticalesCompositionChart != null)
  1057. //{
  1058. // //颗粒成份图
  1059. // im_ParticalesCompositionChart.CopyToBitmap();
  1060. //}
  1061. }
  1062. if (DisType == (int)CALCULATE_CHART_TYPE.ELEMENT_COMP)
  1063. {
  1064. //if (im_ElementCompositionChart != null)
  1065. //{
  1066. // //元素成份图
  1067. // im_ElementCompositionChart.CopyToBitmap();
  1068. //}
  1069. }
  1070. if (DisType == (int)CALCULATE_CHART_TYPE.PARTICALE_SIZE_DISTRIBUTION)
  1071. {
  1072. //if (im_ParticalesSizeDistributionChart != null)
  1073. //{
  1074. // //颗粒尺寸分布图
  1075. // im_ParticalesSizeDistributionChart.CopyToBitmap();
  1076. //}
  1077. }
  1078. if (DisType == (int)CALCULATE_CHART_TYPE.TRIO_CHART)
  1079. {
  1080. //if (im_Trianglediagram != null)
  1081. //{
  1082. // //三角图
  1083. // im_Trianglediagram.CopyToBitmap();
  1084. //}
  1085. }
  1086. break;
  1087. default:
  1088. break;
  1089. }
  1090. }
  1091. private void frmReportApp_FormClosed(object sender, FormClosedEventArgs e)
  1092. {
  1093. //string strDBpathGB =m_DataMgrFun. resultFilesList[0].FilePath + "\\" + "ReportGBDB.db";
  1094. //File.Delete(strDBpathGB);
  1095. Process.GetCurrentProcess().Kill();
  1096. this.Hide();//打开EChar图后,回收浏览器资源暂卡,为达到操作流畅性,先隐藏窗体再回收资源
  1097. this.Invoke(new Action(() =>
  1098. {
  1099. if (Cef.IsInitialized)
  1100. Cef.Shutdown();
  1101. }));
  1102. }
  1103. #endregion
  1104. private void dpbOpen_Click(object sender, EventArgs e)
  1105. {
  1106. OpenProFile();
  1107. }
  1108. /// <summary>
  1109. /// 打开报告项目工程文件,封装方法
  1110. /// </summary>
  1111. /// <returns></returns>
  1112. private bool OpenProFile()
  1113. {
  1114. OpenFileDialog openFileDialog = new OpenFileDialog();
  1115. openFileDialog.Filter = "Measure Project Files((*.prj)|*.prj";
  1116. openFileDialog.ValidateNames = true;
  1117. openFileDialog.CheckPathExists = true;
  1118. openFileDialog.CheckFileExists = true;
  1119. openFileDialog.Multiselect = false;
  1120. if (openFileDialog.ShowDialog() == DialogResult.OK)
  1121. {
  1122. string strFilePath = System.IO.Path.GetDirectoryName(openFileDialog.FileName);
  1123. System.IO.DirectoryInfo folder = new System.IO.DirectoryInfo(strFilePath);
  1124. foreach (System.IO.DirectoryInfo directory in folder.GetDirectories())
  1125. {
  1126. foreach (System.IO.FileInfo file in directory.GetFiles("*.rst"))
  1127. {
  1128. this.m_RstWindow.AddSampleResult(file.FullName);
  1129. }
  1130. }
  1131. return true;
  1132. }
  1133. else return false;
  1134. }
  1135. private void frmReportApp_FormClosing(object sender, FormClosingEventArgs e)
  1136. {
  1137. ServiceInterface.SemController sem = new ServiceInterface.SemController();
  1138. sem.DisConnect();
  1139. }
  1140. private void ribbonOrbMenuItem_Extremum_Click(object sender, EventArgs e)
  1141. {
  1142. try
  1143. {
  1144. System.Diagnostics.Process p = System.Diagnostics.Process.Start(".\\OTSExtremum.exe");
  1145. p.WaitForExit();
  1146. }
  1147. catch (Exception ex)
  1148. {
  1149. log.Error("OTSPartA_STDEditor:" + ex.ToString());
  1150. }
  1151. }
  1152. }
  1153. }