frmReportApp.cs 51 KB

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